以下程序的运行结果是_______

以下程序的运行结果是_______,第1张

这个程序本身就没有错啊!!只是要保持一个好习惯调用函数之前要先声明

至于运行结果为什么会是这样呢前三次的reset函数的调用对i都是没有用的,因为输出的是i的值,所以i=5,i=2,i=2(第二次的时候i被赋值为i/2=2)之后调用workover,在workover中,i(此时为2)被赋值(i%i)((ii)/(2i)+4),因为i%i的值为0,则该式为0((ii)/(2i)+4), 故为0,所以在workover中输出i的值为0接着在主函数中,输出i的值为2

故运行结果为

i=5

i=2

i=2

i=0

i=2

你应该就这一句不好理解吧?

for (i =0; ch[i]>=’0’ &&ch[i]<=’9’;i+=2 )

s =10s +ch [ i ]- ‘0’;

printf (“ %d\n” , s);

分下格式,容易看。

for循环,循环进行的条件是 ch[i]是'0'字符到'9'字符之间。首先i=0,ch[0]就是 char ch[7] = {“12ab56”}; 这个字符串的第一个字符,就是'1'符合条件,进入循环的下一条语句s =10s +ch [ i ]- ‘0’; s = 0,所以10s是0,ch[0]-'0'='1'-'0' =1,2个字符串进行算术运算,取他们的asc 编码进行运算,你查下编码表就知道了,‘1’比‘0’大1然后相加 s = 0+1 =1。

然后进入循环更新式,也就是i+=2 这一条了,这个简单吧,i = i+2,开始i = 0, 现在 i=2了,然后i=2代入测试式ch[i]>=’0’ &&ch[i]<=’9’,ch [2]这次是字符数组的的第3个元素,也就是'a'了,不满足循环条件,所以不执行循环的下一条语句s =10s +ch [ i ]- ‘0’,循环结束。

然后输出s的值,s = 1,输出1

i从1到5循环,对应的b初始为1,0,1,0,1。

b-->=0是先取b的值判断是否>=0,再将b减1。

所以当b=0时,b-->=0成立,之后b=-1,b>=0不成立,但b--还会执行,b变成-2。

所以当b=0时,while(b-->=0)会执行一次,当b=1时,会执行两次。所以k++总共执行了2+1+2+1+2=8次。

n 的初始字符为 'c',由于 switch 语句中是 switch(n ++),故先执行完 switch 语句之后,n 的值才增加 1,即 n 的值为 'd'。因此,该程序的输出结果应该为:pass

函数sub中的引入参数是是形式参考,比方说第一个sub(x3, x4);

函数最先执行的语句是:int x = x3, int y = x4;//把x3跟x4的值赋给x跟y

所以函数里面改变的是x跟y的值,而x跟y在函数结束后就被清除了,所以受改变的只有全局变量x1,第一次执行sub的时候,

x = x3;

x1 = x;//x1==10;

同理,第二次的时候x1的值就等于x2了,所以x1最终值为40,其他值不变,输出结果是:

10, 20, 40, 40

以上就是关于以下程序的运行结果是_______全部的内容,包括:以下程序的运行结果是_______、下面程序的运行结果是 。、下面程序的运行结果是:等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9622935.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存