下列程序的运行结果是______。includelong func(int x){ long p;if(x==O‖x==1)return(1)下列程序的运行结果是______。include<stdio.h>long func(int x){ long p;if(x==O‖x==1)return(1);p=x*func(x-1);return(p);}main(){ printf("%d\n",func(4));}

题目
下列程序的运行结果是______。includelong func(int x){ long p;if(x==O‖x==1)return(1)

下列程序的运行结果是______。

include<stdio.h>

long func(int x)

{ long p;

if(x==O‖x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{ printf("%d\n",func(4));

}


相似考题
更多“下列程序的运行结果是______。include<stdio.h>long func(int x){ long p;if(x==O‖x==1)return(1) ”相关问题
  • 第1题:

    下面程序的运行结果是#include "stdio.h" void fun(int k,int *p) { int a,b; if(k==1|| k==2) *p=1; else { fun(k-1,&a); fun(k-2,&b); *p=a+b; } }main(){ int x; fun(6,&x); printf("%d\n",x);}


    正确答案:8
    本题主要考查函数的递归调用。在本题中,程序首先定义了一个无返回类型的fun函数,该函数带有一个整型变量的形参和一个指针型的变量形参。从函数体中我们可以看出,该递归函数的出口是形参k的值等于1或2,如果运行到函数出口,则指针变量形参p的值等1。
    在主函数中,首先定义了一个整型变量x,然后调用fun函数,传递的实参分别为6和变量x的地址,然后程序运行fun函数,在fun函数中,首先定义了两个整型变量a和b,然后判断形参变量k的值是否到达函数出口,这时,k的值为6,没有到达出口,然后程序分别递归执行fun(5,&a)和fun(4,&b)。从程序中可以看出,p的值为分别调用两个函数的p值的和。
    首先执行fun(5,&a)时,k=5,没有到达出口,又进行一次递归,分别执行fun(4,&a)和fun(3,&b),由于都没达到出口,分别执行fun(3,&a)和fun(2,&b),fun(2,&a)和fun(1,&b),由于fun(2,&a)和fun(1,&b)返回的p值都为1,那么fun(3,&a)返回p的值为2,fun(4,&a)返回的p值就等于fun(3,&a)和fun(2,&b)之和,为3,同理可以得出fun(5,&a)返回的p值为5,fun(6,&a)返回的p值为8。因此,最后题目要求输出的结果为8。

  • 第2题:

    分析以下程序的运行结果是_______ #include “stdio.h” func(int a ,int b) { int c; c=a+b; return c; } int main() { int x=6,y,r; y=x+2; r=func(x++,y); printf("%d %d %dn",x,y,r); return 0; }


    emoclew emoclew

  • 第3题:

    4.以下程序的执行结果是: #include<stdio.h> struct n { int x; char c; }; func(struct n b) { b.x=20; b.c=’y’; } int main() { struct n a={10,’x’}; func(a); printf(“%d,%c”,a.x,a.c); return 0; }


    D.10,9答案:A

  • 第4题:

    下列程序的输出结果是()。include void p(int *x){printf("%d",++*x);}void main(){ in

    下列程序的输出结果是( )。 #include <stdio.h> void p(int *x) { printf("%d",++*x); } void main() { int y=3; p(&y); }

    A.3

    B.4

    C.2

    D.5


    正确答案:B
    解析:本题考查函数调用时的参数传递。在函数调用时,形参是指向实参的指针变量,则printf的执行结果为3+1=4。

  • 第5题:

    下列程序运行后的输出结果是:_____ #include<stdio.h> void fun(int *pa, int pb ) { int pt; pt = *pa, *pa = pb, pb = pt; } int main() { int x=1, y=2; fun(&x, y); printf("%d", x==y); return 0; }


    D 本程序中通过DATA语句对数组B赋值的结果为矩阵DO循环语句的功能是将数组B的第2列的元素的值依次赋值给数组A。因此,A(1)=4、A(2)=5、A(3)=6,所以格式输出数组A后输出的结果为456。