C语言习题摘不明白.希望给出祥细解答:以下程序的输出结果是() A 39 81 B 42 84 C 26 68 D 28

C语言习题摘不明白.希望给出祥细解答:以下程序的输出结果是() A 39 81 B 42 84 C 26 68 D 28 70
main()
{ int x,i;
for(i=1;i
cc神厕14 1年前 已收到1个回答 举报

870919 幼苗

共回答了11个问题采纳率:81.8% 举报

if(++x%2==0)的意思是x的值先+1,然后判断x是否能整出2
所以
x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf("%d ",x);
就表示x的初值是i,要是x+1是偶数并且x+2是3的倍数并且x+3是7的倍数的话,那么就输出x的值
注意2点,这里首先3个if是递进关系,所以输出的x值要同时满足3个if,另外,x的值是经过3次++以后的值
所以这个程序可以另外理解为1到100的整数中,当这个整数+1是偶数,这个整数+2是3的倍数,这个整数+3是7的倍数的话,就输出这个整数+3以后的值.
因为7的倍数的数最少,是 7,14,21,28,35,42,49,56,63,70,77,84,91,98
所以输出的数只可能是上面的数字值(也就是7的倍数),那么排除法就可以知道答案是D了

1年前

3
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.033 s. - webmaster@yulucn.com