下面程序的运行结果是 ?(要详细解释啊!!!)
#include<stdio.h> main() {int x,i; for(i=1;i<=100;i++) {x=i;...
#include<stdio.h>
main()
{int x,i;
for(i=1;i<=100;i++) {x=i;
if(++x%2==0) if(++x%3==0) if(++x%7==0) printf("%3d",x); } }
A) 39 81 B)42 84 C)26 68 D)28 70 展开
main()
{int x,i;
for(i=1;i<=100;i++) {x=i;
if(++x%2==0) if(++x%3==0) if(++x%7==0) printf("%3d",x); } }
A) 39 81 B)42 84 C)26 68 D)28 70 展开
2个回答
展开全部
结果时 28 70,所以D)正确,选D)。把缩进写好这代码是这样的:
main(){
int x,i;
for(i=1;i<=100;i++){
x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf("%3d",x);
}
return 0;
}
可见意思是:从2到100间,从某个数开始连续的3个数符合最小能被2整除、中间的能被3整除、最大的能被7整除。输出最大的数。找出的第一个数是28,28能被7整除,27能被3整除,26能被2整除。找出的第2个数是70,70能被7整除,69能被3整除,68能被2整除。那3个if的条件实质是“与”的关系,所以写成一句if(++x%2==0 && ++x%3==0 && ++x%7==0)也是可以的。
展开全部
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了
所以
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了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询