有如下程序 #include<stdio.h> main() { int i,data; scanf("%d",&data); for(i=0;i<5;i++) { if((i<data&&i%2)||(i>data&&i%3==0))continue;

admin2021-07-09  18

问题 有如下程序
#include<stdio.h>
main()
{
int i,data;
scanf("%d",&data);
for(i=0;i<5;i++)
{
if((i<data&&i%2)||(i>data&&i%3==0))continue;
printf("%d,",i);
程序运行时,从键盘输入:13<回车>后,程序输出结果为(    )。

选项 A、0,2.4,
B、1,3,5,
C、0,1,2.3,4,5,
D、0,1,2,3,

答案A

解析 程序通过scanf()函数,输入data的值13,for循环中,i的值遍历0~4,对每个i的值执行if语句判断,其中:i>data始终为假;所以表达式i>data&&i%3==0始终为假;所以if语句的判断条件需要看i<data&&i%2的值,由于i<data始终为真,所以i<data&&i%2的值又取决于i%2的值,也就是说整个if语句的判断条件取决于i%2的值,如果i%2为真,那么if语句成立,执行continue,否则执行printf()函数,所以当i取值l、3时,i%2的为1,if条件成立,执行continue;当i取值0、2、4时,i%2的值为0,if条件不成立,执行printf()函数,输出0,2,4,本题答案为A。
转载请注明原文地址:https://kaotiyun.com/show/W7tp777K
0

最新回复(0)