C语言题目 因为是C语言初学者 请给出详细解答 谢谢诶

2025-03-03 21:10:13
推荐回答(4个)
回答1:

1、输出3。a>b>c即(a>b)>c,先执行“a>b”为真,得值为1,再执行关系运算“1>c”得值0,故不执行第一个 if 后面语句;而(c-1>=d)==1,同理,先执行 c-1>=d 为真,得值为1,1==1,所以执行第二个 if 后面的语句,即输出d+1,故得3。.
2、选BC。b=1时,第一次执行s=s+1,b=2时,第二次执行,……,b=c时,第c次执行,b=c+1时,不再执行,因此总共执行了c次s=s+1,即s=s+c, C正确,又因为开始for 语句之前就有s=a,故s=a+c,B正确。
3、这个题目不太完整,但如果把 } 补在最后面,那么输出74。当j=10的时候,j%3的值为1,执行 j--;--j;--j, 最终输出 j 为7,然后执行(j=10;j>3;j--)中的 j--, j为6满足 j>3,故又进行 if 语句的判断,此时 j%3 为0,所以不执行j--, 只执行--j;--j,最终输出 j 为4,最后,进行 j-- , j 为3,不再满足 j>3, 循环结束。
我已经尽量把解释说得足够详细与易懂了,希望能理解。但无论如何,我保证我的答案是正确的,因为我都有亲自运行来检查过。:)

回答2:

1输出3理由同 328873248
2\第二题明显的S加了c次嘛,因为从1循环到b=c那刚好就是c次咯,所以s =a+c选B项,(但是不同意328873248的观点,因为题目给出的已知数只有a和c虽然程序中给出了s=a那已经是属于整段程序的内容了,题目要求选择的是同上面程序的代替内容,如果你连上面的那个s=a都用了进去那代个PP啊,你就等于是多了一行代码了知道不)
3\首先运行程序一次才会j-1,那么第一次运行j=10,(10%3)=1也就是if成立,所以依次执行j--,--j,--j这时j=7(因为自减了3次)所以输出7,然后回到循环的头部执行j--,这时j=6所以j>3继续循环,因为j%3就是6%3=0所以if条件不成立,接下来的j--不执行,只执行了--j,--j两条,这时j=4所以输出为4,再回到头部执行j--后j=3所以j>3的条件不成立,退出循环,结果第3题输出为7和4

回答3:

1,输出为2,第一个if成立,则下面的else不执行,直接将d的结果输出
2,选择B,首先s赋值为a,然后一个for循环,s=a然后又将s(此时值为a)从1加到c
3,输出为-1,-2,0,-1,-2,0,-1

回答4:

1、输出值为 3;
2、A
3、运行结果为 7 4