C语言 以下程序的运行结果为( ) void fun(int n) { if(n) fun(n-1); printf(“%d”,n); } main() {?

作者&投稿:宗叶 (若有异议请与网页底部的电邮联系)
以下程序运行结果是: 24 #include<stdio.h> int fun(int n) { if(n==0) return 1;~

func(int n)其实是用递归的方法求n的阶乘,即n!。
所以func(4)的值为4!=4*3*2*1*1=24
(注意0! =1)

void fun(int x)
{
if(x/2>1) fun(x/2);
printf("%d", x);
}
main()
{
fun(10);printf("
");
}
//函数fun为递归函数,递归作用是将传递进来的x参数除以2,如果结果比1大继续递归,也就是调用自身,再次将除2以后的值传递进这个函数,直到x除以2后不比1大,那么才将这个值输出出来.在main中调用函数fun为他传递参数值为10.第一次调用fun此时x为10,除2是5,比1大,继续调用自身,将5传入新的fun函数.5除2是2.5(这里x是int形只能保存整数,所以2.5被强制截去小数部分,变成2)还是比1大,继续调用自身,此时传递2进第三个fun函数.2除2就是1了,不比1大了,递归结束,开始返回,
先返回第三个fun函数,输出此时的x值是2.再回返第二个函数func.输出值5最后是第一个输出是10.
所以程序运行的结果应该是.2510

先递归,再打印,当n为0的时候结束打印,但0还是会执行后续的输出
于是是从0打印到5
选c

C、012345


惠山区13855895372: c语言,以下程序的执行结果是?
允熊氨基: 运行结果:266 266的16进制是:0x010A x.c[0]=10; 的16进制是0x0A x.c[1]=1;的16进制是0x01 楼主,应该看出来它们的关系了吧? __________________ |__x.c[0]__|__x.c[1]__| 如上图,按char排放 当按int排放的时候, x.c[1]是低字节,x.c[0]是高字节

惠山区13855895372: C语言:下面程序的运行结果是() -
允熊氨基: 因为i=3;进入switch(i)后,执行a+=3;后a的值是3;因为没有break语句,它并没退出switch()语句,所以又执行到a+=2.a值变成了5.接着,执行break语句,退出switch(),执行printf().所以选B

惠山区13855895372: C语言,下面程序运行的结果是 -
允熊氨基: a<b<c你理解错了,在c语言里不能这样用的,只能写成a<b && b<c,a<b<c在c语言里的真正意思是(a<b)<c,而(a<b)给出的结果是真(1)或假(0),所以其实a<b<c就是1或者0跟c比较.第一次比较,a<b得1(也就是说a<b是真),1比c(=2)小,执行程序,使得a=2,b=1,c=1 第二次比较,a<b得0(也就是说a<b是假),0比c(=1)小,执行程序,使得a=1,b=2,c=0 第三次比较,a<b得1(也就是说a<b是真),1比c(=0)大,不执行程序,所以最后的结果还是a=1,b=2,c=0

惠山区13855895372: C语言程序结果 以下程序的运行结果是: . -
允熊氨基: 木有返回值, 看样子是C代码, 程序应该不能运行吧, printf需要头文件的, 函数写法也不标准, 代码格式就更别说了...... 程序运行结果应该是" 7 7 7", 三个空格7, 三个空格7, 三个空格7. 不知道你哪里不明白, printf("%4d"), "%4d"是格式控制, 输出整型数据, 不够4位前面补空, 够或者超出的话直接输出, 4位限制无效. b++ 等同于 b = b + 1. 多看书, 多练习.

惠山区13855895372: c语言.下面程序运行的结果是 - -----------.求过程 -
允熊氨基: 感觉你程序写错了.void abc(char *P) {while(*P) {*p+=2,*p++;}//*p=*p+2,将所有字符ascii码值+2;*p++,单目运算符结合性从右向左,先算p++//即指针向高位移动一位,然后再算*p(算完没存,没有意义,所以这里可以将*p++前的*去掉) } main() {char str[5]=”abcd”; abe(str); //应该是abc(str);你函数名写错了 printf(”%S”,str); } 这样程序输出结果应该就是cdef了.另外注意所有标点请用英文半角

惠山区13855895372: C语言题目:以下程序的运行结果是? -
允熊氨基: 第一题 254第二题 27第三题 11第四题 aCD12第五题 cbaXYZ789第六题 15

惠山区13855895372: 在C语言中,下面程序的执行结果是 ( ) -
允熊氨基: a+=SUM(i+j)/SUM(i+j); 相当于 a=a+SUM(i+j)/SUM(i+j);=a+i+j*i+j+2/i+j*i+j+2=2+1+1*1+1+2/1+1*1+1+2=2+1+1+1+2+1+1+2=11

惠山区13855895372: 在C语言中,下面程序的执行结果是
允熊氨基: #define SUM(X) X+X这是一个函数宏,即在程序中用X+X替代SUM(X),注意:是简单的替代. a+=SUM(i)/SUM(j); 即 a=a+i+i/j+j=6+1+1/2+2=9 如果是这样的:#define SUM(X) (X+X) 结果又不同了. a+=SUM(i)/SUM(j);即 a=a+(i+i)/(j+j)=6+(1+1)/(2+2)=6+2/4=6

惠山区13855895372: 下列程序运行结果为()main(){ int i,j,k,s,p,t; p= - 1,t=0; for(i=6;i>0;i...
允熊氨基: while (a<b<c) 从左至右运算 1<2 所以 a<b的结果为0 0<2 所以(a<b) < c的结果为1 故a b 交换 c减一 选D

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网