关于C语言 求解一道选择题 需要详细解答
有以下程序main(){intx,i;for(i=1;i<=100;i++){x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf...
有以下程序
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);
}
printf("\n");
}
程序输出结果是: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("%d",x);
}
printf("\n");
}
程序输出结果是:28 70
我想知道详细解答 展开
6个回答
展开全部
int main()
{
int x,i;//声明
for(i=1;i<=100;i++)//x从1到100遍历
{ x=i;
if(++x%2==0)//先计算(++x);****相当于 int y=x+1; if (y%2==0)****;如果y(i+1)也能被2整处则继续,
if(++x%3==0)//先计算(++x);****相当于 int y=x+1; if (y%3==0)****;如果y(i+2)也能被3整处则继续,
if(++x%7==0)//先计算(++x);****相当于 int y=x+1; if (y%7==0)****;如果y(i+3)也能被3整处则继续,
printf("%d",x);//输出x,即输出i+3
/*输出的结果x,满足以下条件:
1、x能被7整处
2、x-1能被3整处
3、x-2能被2整处*/
}
printf("\n");
return 0;
}
//程序输出结果是:28 70
{
int x,i;//声明
for(i=1;i<=100;i++)//x从1到100遍历
{ x=i;
if(++x%2==0)//先计算(++x);****相当于 int y=x+1; if (y%2==0)****;如果y(i+1)也能被2整处则继续,
if(++x%3==0)//先计算(++x);****相当于 int y=x+1; if (y%3==0)****;如果y(i+2)也能被3整处则继续,
if(++x%7==0)//先计算(++x);****相当于 int y=x+1; if (y%7==0)****;如果y(i+3)也能被3整处则继续,
printf("%d",x);//输出x,即输出i+3
/*输出的结果x,满足以下条件:
1、x能被7整处
2、x-1能被3整处
3、x-2能被2整处*/
}
printf("\n");
return 0;
}
//程序输出结果是:28 70
展开全部
i=25时,x=25。
此时if(++x%2==0)等价于先++x,此时x为26,模除2为0,进入if
if(++x%3==0)等价于先++x,此时x为27,模除3为0,进入if
if(++x%7==0)等价于先++x,此时x为28,模除7为0,进入if,执行printf,输出28
输出70情况同理
此时if(++x%2==0)等价于先++x,此时x为26,模除2为0,进入if
if(++x%3==0)等价于先++x,此时x为27,模除3为0,进入if
if(++x%7==0)等价于先++x,此时x为28,模除7为0,进入if,执行printf,输出28
输出70情况同理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
这三句话是重点。
第一局说明x+1能被 2 整除。
第二个在第一个的基础上,说明x+2能被3整除。
第三个判断说明x+3能被7整除。
100以内,就是28,70
if(++x%3==0)
if(++x%7==0)
这三句话是重点。
第一局说明x+1能被 2 整除。
第二个在第一个的基础上,说明x+2能被3整除。
第三个判断说明x+3能被7整除。
100以内,就是28,70
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个程序是输出一类数:这个数A必须满足下列条件即
A能被7整除上一个数能被3整除再上一个数能被2整除。并且A是1至100的整数。
A能被7整除上一个数能被3整除再上一个数能被2整除。并且A是1至100的整数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
三个IF等价于: if((++x%2==0)&&(++x%3==0)&&(++x%7==0))
要注意++X是先自加,再运算,在上面的逻辑表达式内,X自己加了三次
例如,i=1时,x先等于1,(((然后等于2)与2求余数)与0比较),(((然后等于3)与3求余数)与0比较),(((然后等于4)与7求余数)与0比较),当三个条件满足时输出最后的X值。
反推结果:
X最后等于28,i=25,x先等于25,然后等于26与2求余数,再等于27与3求余数,最后等于28与7求余数,结果为0,条件成立输出28;
X最后等于70,i=67,x先等于67,然后等于68与2求余数,再等于69与3求余数,最后等于70与7求余数,结果为0,条件成立输出70;
要注意++X是先自加,再运算,在上面的逻辑表达式内,X自己加了三次
例如,i=1时,x先等于1,(((然后等于2)与2求余数)与0比较),(((然后等于3)与3求余数)与0比较),(((然后等于4)与7求余数)与0比较),当三个条件满足时输出最后的X值。
反推结果:
X最后等于28,i=25,x先等于25,然后等于26与2求余数,再等于27与3求余数,最后等于28与7求余数,结果为0,条件成立输出28;
X最后等于70,i=67,x先等于67,然后等于68与2求余数,再等于69与3求余数,最后等于70与7求余数,结果为0,条件成立输出70;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用监控系统执行.C文件,你可以看的很清楚哦!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询