for(k=2;k<6,;k++,k++) 外循环2次 k=2时和k=4时
k=2时 j=2,3,4,5 s=14;
k=4时 j=4,5, 这时S被重新赋值为1
s=1+4+5=10 然后推出循环
结果就为10了
{s=1;
for(j=k;j<6;j++)s+=j;
} 因为这个是复合语句,所以再次循环时s的值被重赋值为1
k = 2;
k < 6;
s = 1;
j = k; // 2
j < 6;
s += j; //3
j++; //3
s+= j; //6
j<6;
j++;//4
s+=j; // 10
j<6;
j++; // 5
s+=j;//15
j++; //6
j < 6 ; // false
k++;
k++;//4
s = 1;
j = k; //4
j < 6;
s += j; // 5
j++; //5
j < 6;
s+= j;//10;
j++;
j <6; // false
k++;
k++;
k < 6; false
这时候s就是10
...继续循环
k++不是先加,而是先使用k的值后再加1.
main()
{
int k,j,s;
for(k=2;k<6;k++,k++){
s=1;
for(j=k;j<6;j++)s+=j;
}
printf("s=%d\n",s);
}
因为有s=1;这一刷新条件,所以直接看外循环
它只执行一次,因为k++,k++就成了4,而若再来一次就是6
所以内循环从k=4开始,自然s=10
经计算,答案是2。
以下程序运算通过:
#include
#include
void
main()
{
int
a,c;
double
b,m,n;
a=10;
b=3.6;
c=2;
m=pow(10,3.6);
n=log(log(m+c));
printf("%.f",n);
}