C语言问题 要过程

来源:百度知道 编辑:UC知道 时间:2024/05/22 04:45:27
14、以下程序段的输出结果是( )。
int k,j,s;
for(k=2;k<6;k++,k++)
{ s=1;
for(j=k;j<6;j++)
s+=j;}
printf("%d\n",s);
A) 1 B) 9
C) 11 D) 10
for(k=2;k<6;k++,k++) 这步怎么算的写清楚

答案都被说了2次了,补充一点,让你更清楚一点。
k++,k++的意思就等于说k自加2.
所以第一次k=2,第二次大循环时k=4,没有第3次循环。
而每次循环时s都会被重新被赋值为1(如楼上所说)。
所以实际上就当k=4的这次循环对结果有影响。
将k=4带入内层循环,
s=1
s=s+4 (s=5)
s=s+5 (s=10)
输出结果10.

D

每次大循环,s都会赋值为1
最后一次大循环时,k=4,s=1+4+5=10

int k,j,s;
for(k = 2; k < 6; k++, k++)
{
s=1;
for(j = k; j < 6; j++)
s+=j;
}

结果:D

因为外循环只有最后一次对计算结果有用
所以实际上过程为
s=1
s=s+4
s=s+5

最后结果s=10