问题 单项选择题

有以下程序:
main()
int i;
for(i=1;1<=40;i++)
if(i++%5==0)
if(++i%8==0)printf("%d",i);

printf("\n");

执行后的输出结果是( )。

A) 5
B) 24
C) 32
D) 40

答案

参考答案:C

解析: 本题考查了自增运算符。自增运算符“++”分为前缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量的值加1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量加1之后的值,而后缀形式表达式的值为运算分量加1之前的值。题目中使用了一个for循环,循环变量i从1递增到40。在循环体中有两条嵌套的if语句,首先判断i++%5==0,即判断i++的值(i加1之前的值)是否能被5整除(判断后i被加1),然后再判断++i的值(i加1之后的值)是否能被8整除(判断后i被加1),若两个条件都满足了,就输出i的值,只有i=30时,满足i++%5=0,此时i=31,++i%8==0成立,此时1=32。

填空题
判断题