C程序2级题

来源:百度知道 编辑:UC知道 时间:2024/07/02 19:48:34
#define N 2
#define M N+1
#define NUM (M+1)*M/2
main()
{
int I
for(i=1;i<=NUM;i++=;
printf("%d\n",i);}
问FOR循环执行的次数
答案是9 不知道为什么

循环执行了8次,因为NUM=8,计算如下;
宏定义是直接替换的,所以;
#define N 2
#define M N+1
#define NUM (M+1)*M/2--------(N+1+1)*N+1/2=4*2+0=8

最后的打印输出是9

for(i=1;i<=8;i++),最后在i++中i变成了9,然后回去判断i<=8不成立了,所以for循环退出,

for这句的确是走到了第9次,但是要是for()之后有语句的话,这条语句就只有8次了,所以看问的是什么了