两道C语言填空题,要说明解题步骤

2025-03-06 20:45:09
推荐回答(5个)
回答1:

第一题:有点绕,楼主仔细看哈!
while(++i)的意思是当“++I”这个表达式的值不为0的时候就执行循环体。
先了解 ++i是表达式“++i”先加1然后 i 再加1的,也就是说在第一次进行while中的判断时,判断语句“++i” 等于-4,然后i的值也加1变成了-4,再然后s=0+(-4)。
以此类推,当执行判断“++i”的值为0的时候将不再执行s+=i;在这之前i的值不难推出为-1。所以s最终是(-4) + (-3) + (-2) + (-1) = -10;
那 i 的值最终又咋会为0呢?
原来在最后执行判断“++i ” 这一步还是要执行的,既然执行,i 的值便要再加1,即为0,只是不再执行循环里面的语句罢了。(这边需要楼主好好查看while语句的基本执行步骤,(while语句的最后一步是判断语句哦),很重要的基础知识哦)

第二题:
楼主需要了解C语言的define语句
#define s(r) PI*r*r
PI*r*r使用的时候外面是不带括号的,使用起来需特别注意(个人感觉这是C语言的缺陷)。

先去吃饭,回来继续解答,希望楼主采纳我的解答呀!

回答2:

0,-10
9
=====================
++i为先自增再参与运算,自增到0时结束运算。
i自增5次: -4 -3 -2 -1 0(此时不会进入循环)
相应的s: -4 -7 -9 -10
=====================
宏只会生拉硬拽的替换,不会自动加上参数。
s(s1+s2) s(r) PI*r*r
PI*S1+S2*S1+S2
3.14*2+1*2+1
6.28+2+1
9.28
再强转后变为9

回答3:

0,-10
i=-4 -3 -2 -1 0
s=-4 -7 -9 -10

7
s(1+2)=3.14*1+2*1+2=7.14
7.14取整后为7

回答4:

①-4,-4
++i → i=i+1=-4
s+=i →s=s+i=-4
②28
s1+s2=3

s(3)=PI*3*3=3.14*9=28.26,因为是int型,输出28

回答5:

让人回答问题,还这么嚣张!