问题 单项选择题

有以下程序
#include<stdio.h>
main()
int i;
for(i=1;i<=40;i++)
if(i++%5==0)
if(++i%8==0)printf("%d",i);

printf("\n"1);

执行后的输出结果是______。

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

答案

参考答案:A

解析: 本题考查了自增运算符。自增运算符“++”分为前缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量的值加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成立,此时i=32。

单项选择题 B型题
单项选择题