下面程序的输出结果是( ) #include<stdio.h> void main() { int i,n,k=0; for(i=1;i<=6;

下面程序的输出结果是( )
#include<stdio.h>
void main()
{
int i,n,k=0;
for(i=1;i<=6;i++)
{
n=i%2;
while(--n>=0) k++;
}
printf("%d,%d",k,n);
}

结果是31,因为你的程序里面case 后面都没有break语句跳出,所以会依次执行下去,知道循环结束,具体来说就是当i=1的时候先执行case1,在执行case2,在执行default 此时a=8;然后执行i++,i=2,然后执行case2,在执行default 此时a先加3在加5就等于16,在执行i++,i=3,然后依次执行case3,case1(什么都没做),case2,defaultcase3此时a=16+2+3+5=26;然后就是i++,i=4,执行default a=a+5=31,i++,i=5,不满足循环条件跳出循环,程序结束,a=31;希望采纳
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-30
答案是k=3,n=-1追问

可以写下过程吗我不懂为什么

追答

int i,n,k=0;
for(i=1;i=0) k++; ③
}
①i=1,i=0先执行的是n-1;此时n=0;进行判断,n>=0;满足,所以k=0+1=1;此时n=0-1=-1,不满足while的条件
进行①的第二次循环,此时i=1+1=2了,2%2=0;此时n=0;
0-1=0,此时k+1,即1+1=2;
过程同第一次一样,之后不满足while
进行①的第四次循环,此时i=3+1=4了,4%2=0过程同第二次,k不会+1
进行①的第五次循环,过程同一,k+1
进行①的第六次循环,过程同二,k不会加1,此时的n=-1
所以说,就第一次,第三次,第五次k从0加了3次,所以为3
n=-1

追问

谢谢您的过程很详细我懂了

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网