以下程序的输出结果是_______________。 #include <stdio.h> main() {int k=4,m=1,p; p=func(k,m); printf(

以下程序的输出结果是_______________。 #include <stdio.h> main() {int k=4,m=1,p; p=func(k,m); printf(,第1张

第一次func(a,b)函数时,传递过来的两个值是4,1 即在func(a,b)函数中a=4,b=1 static int m=0,i=2,定义了两个静态变量,即一直战用内存,函数调用结束不释放,结果依然是上一次改变后的结果。

执行 i+=m+1 →即 i=2+0+1=3;

执行 m=i+a+b; → m=3+4+1=8;

执行 return(m) →返回 m=8;

printf("%d,",p); 输出 8

第二次执行func函数 依然传递 4,1

在func函数中,因为m 和i是静态变量,所以这时m=1,i=3

执行 i+=m+1; → i=3+8+1=12;

执行 m=i+a+b; → m=12+4+1=17;

执行 return(m) →返回 m=17;

printf("%d,",p); 输出 17

最后结果为 8 ,17

输出会是8,10,16

这是因为i=010; C语言默认以数字0开头的是一个八进制数,所以转为十进制后就是8。

k=0x10;这是明文写明了这是一个十六进制数,转为十进制就是16。

#include <stdioh> /这一句是包涵数学运算的库进本程序/

main()

{

int x=2; /这一句是定义一个变量x的值为2/

while(x--); /这一句是进入while循环,先赋值,再自减/

printf("%d\n",x); /这一句是打印出结果,\n表示回车,将x的值打出来/

}

这段程序,是这样运行的,进入循环后,第一次循环由于是先赋值,再自减,所以,第一次循环时x=2,然后打出一个2,再回车,再边成了1,然后再循环,打出1再回车,然后边成了0,0是表示假,假不符合条件,所以退出循环,故结果应该是:

2

1

不知道这么多年不看c了,还对不对。呵呵,老了,真的都忘了,让各位看官见笑了。

以上就是关于以下程序的输出结果是_______________。 #include <stdio.h> main() {int k=4,m=1,p; p=func(k,m); printf(全部的内容,包括:以下程序的输出结果是_______________。 #include <stdio.h> main() {int k=4,m=1,p; p=func(k,m); printf(、以下程序的输出结果是___________.、以下程序的输出结果为:#include <stdio.h>等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9280283.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存