C++问题,高手请进,感激不尽!!!

来源:百度知道 编辑:UC知道 时间:2024/05/28 11:30:00
以下程序段的输出结果是_______。
int k,j,s;
for (k=2; k<6;k++, k++)
{ s=1;
for (j=k;j<6; j++) s+=j;
}
cout<<s<<endl;
A) 9
B) l
C) 11
D) 10
刚入手c,请高手赐教。最好有解释,谢谢!!!还有,那两个k++是什么意思???

int k,j,s; //声明变量
for (k=2; k<6;k++, k++)两个k++相当于k+=2,就是说每次循环k加2 ,所以外循环总共循环两次k=2和k=4时
{ s=1;
for (j=k;j<6; j++) s+=j;此为内循环
}
cout<<s<<endl;
解题:k=2时,内部循环开始执行
j=2;s=s+2=3;j++变成3
然后循环执行两次,直到j=5
循环结束时s=5;
k=4时。内部循环开始执行
注意此时s=1
j=4;s=s+4=5;j++变成5
然后只执行一次
s=s+j=5+5=10
直到j=6了退出内循环
接着退出外循环
所以s=10
不知道答案对不对,但是思路是对的,希望对你有帮助!

选D,在第一个for循环中每循环一次,k加两次,即k在第一个for循环中可以取2和4,在每次进行第二个for循环前,s都被赋值为1,所以结果为k=4的时候的第二个循环,所以答案为10.

K++写错了!
没有那么写的吧!

自己多思考...

不要什么问题都问,尤其是高手,想好了再问..

尽量靠自己,不行问同学,是在搞不定了才发到网上...

选D啊