C语言几题 实在迷糊 帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/25 10:08:48
1 有以下程序
main()
{ int k=4,n=4;
for( ; n<k ;)
{ n++;
if(n%3!=0) continue;
k--; }
printf("%d,%d\n",k,n);
}
程序运行后的输出结果是c
A) 1,1 B) 2,2 C) 3,3 D) 4,4
我感觉for的第一次控制循环处就进行不了 不理解 帮忙 详解 感谢

2有以下程序
main()
{
int a=1,b;
for(b=1;b<=10;b++)
{
if(a>=8) break;
if(a%2==1) { a+=5; continue;}
a-=3;
}
printf("%d\n",b);
}
程序运行后的输出结果是
A)3
B)4
C)5
D)6 感觉for的循环体中不涉及到b的值 ,那就应该在for的表达式中就能完成b的值了,答案怎不是10呢
您帮忙讲一下第3题 感谢

第一题,答案是D.4,4,FOR那句就假了就直接PRINTF.
第二题,答案是B.4
1.b=1,因为a%2==1为真,执行a=a+5=6;continue跳过a-=3返回FOR;
2.b=4,因为a%2==1为假,执行a=a-3=3;
3.b=3,因为a%2==1为真,执行a=a+5=8;continue跳过a-=3返回FOR;
4,b=4,因为a>=8为真了,BREAK,结束.
第三题, 答案是A.16
1.i%2=0为假,执行I++;和S+=I,则I=1,S=1;
2.i%2=1为真,执行{i++;continue;}这句,跳过I++;和S+=I,则I=2,S=1;
以下的问题以此类推:
分别:
3.i=3,s=4
4.i=4,s=4
5.i=5,s=9
6.i=6,s=9
7.i=7,s=16
接这句while(i<7);这句为假了,退出。

1. 程序运行后的输出结果是D 而不是C
... A) 1,1 B) 2,2 C) 3,3 D) 4,4
...你的感觉是对的.
2. 循环体中 有break语句, 当a>=8循环中断,此时b=4
3. i=0 , i%2为0 if表达式为假....

1.可能是你编译有问题吧, 这个运行结果是D不是C;
2.if(a>=8) break; 重点是这句,在a>=8的时候 程序就跳出循环了,所以第2题是B.
3.第一个0%2的时候值为假,然后i++ i=1了... 然后继续做循环

本人是新手,请大侠继续解答!11