银行全面风险管理培训:c语言试题

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/02 18:55:37
【2.21】下面程序的输出结果是____。
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("%d ",x);
}
}
A) 39 81 B) 42 84 C) 26 68 D) 28 70

参考答案D,请人分析此程序的运行过程。

28%7=0
28-1=27
27%3=0
27-1=26
26%2=0
同样
70%7=0
70-1=69
69%3=0
69-1=68
68%2=0

选 B

首先X从1开始,
if(++x%2==0)表示x的值加一后模2的值是零
if(++x%3==0)表示上一个值如果成立第一个if再加一模3为零
同理下一句
所以在1到100之内只有28和70符合

如果x自加1模2等于0(即能被2整除),则继续执行第二个if语句,如果不等于0,则回for语句的i++.第二,第三个if语句也是如此.
这个程序的功能是找出从1到100这100个数中
能被7整除,减1后能被3整除,再减1后能被2整除的数.