若有如下程序:main(){int a=1,b=1;for(;a<=10;a++){if(b>=9)break;if(b%3==1){b+=3;continue;}b+

题目
若有如下程序:main(){int a=1,b=1;for(;a<=10;a++){if(b>=9)break;if(b%3==1){b+=3;continue;}b+

若有如下程序: main() { int a=1,b=1; for(;a<=10;a++) { if(b>=9) break; if(b%3==1) {b+=3;continue;} b++; } printf("%d,%d",b,a); } 则程序运行后的输出结果是( )。

A.10,4

B.7,3

C.10,3

D.11,3

参考答案和解析
正确答案:A
解析:本题中for循环循环10次。如果b>=9结束循环。如果b能被3整除结束本次循坏。都不成立b加1。for循环执行过程为:当a=1,b=1时,b%3=1,b=b+3=1+3=4,进入下一次循环:当a=2,b=4时,b%3=1,b=b+3=4+3=7,进入下一次循环;当a=3,b=7时,b%3=1,b=b+3=7+3=10,进入下一次循环;当a=4,b=10时,因b>=9成立,执行“break;”退出循环。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序:includemain(){int a=1,b=2;for(;a<12;a++) {b+=a*2;a+=3;}printf("%d,%d\

有以下程序: #include <stdio.h> main() { int a=1,b=2; for(;a<12;a++) {b+=a*2;a+=3;} printf("%d,%d\n",b,A); } 程序运行后的输出结果是( )。

A.32,13

B.46,10

C.72,13

D.72,10


正确答案:A

第2题:

main {inta,b; for (a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) {b+=3; continue; } b-=5; } } 程序的输出结果a的值为__________。


正确答案:
8

第3题:

执行下面的程序后,a的值为 main() { int a,b; for(a=1,b=1;a<=10;a++) {if(b%3==1) {b+=3; continue;} b-=5;}}

A.7

B.8

C.9

D.10


正确答案:D

第4题:

下面程序的执行结果为______。main(){ int a,b; for(a=1,b=1;a<=100;a++) { if (b>=20)break;if(b

下面程序的执行结果为______。 main() { int a,b; for(a=1,b=1;a<=100;a++) { if (b>=20)break; if(b%3==1) {b+=3; continue; } b-=5; } printf("%d",A) ; }

A.7

B.8

C.9

D.10


正确答案:B
解析:本题考查循环辅助控制语句break和continue,建议读者用本书采用的列表法分析本题。

第5题:

有以下程序:main(){ int a=1,b; for(b=1 ;b<=10;b++) { if(a>=8) break; if(a%2==1) { a+=5; con

有以下程序:

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


正确答案:B
解析:本题中a的初始值为1,在循环体中首先判断a,如果>=8就用break跳出循环,接下来的判断语句a%2==1,是判断a除以2的余数是否为1,即a是否为奇数,是的话给a累加一个5,然后用continue开始下‘次循环。若两个条件都不满足就让a自减一个3。因此第1次循环开始a为1不大于8,且是奇数,所以a被累加5开始下—次循环;第2次循环开始a为6不大于8,不是奇数,所以a被减去3:第3次循环开始a为3不大于8,是奇数,所以a被加上一个5;第4次开始a为8,满足第一个条件跳出循环。b在第1次循环时等于1,以后每次累加1,所以最后输出为4,选项B正确。

第6题:

下面程序段的输出结果是( )。 publiCClaSsTest{ publicstatic voidmain(SthngarSs[]){ inta,b; for(a=1,b=1;a<(z100;a++){ if(b>=10)break; if(b%2=1){ b+=2; continUe; } } System.out.println(a); } }

A.5

B.6

C.7

D.101


正确答案:B
解析: 本题考查for循环和if语句的嵌套以及break语句和continue语句的用法。第1个if语句的意义为,当b>=10时退出for循环,第2个if语句的意义为:如果b%2=1,则b的值加2并退出本次循环。本程序当b的值分别为1、3、5、7和 9的时候执行5次循环,此时a=5,b=9,当执行第6次循环时,a的值为6但b=11,所以退出循环,程序结束。

第7题:

请读程序:includemain(){int a,b; for(a = 1,b = 1 ;a<= 100;a++) {if(b>=20)break;if

请读程序: #include <stdio.h> main() { int a,b; for(a = 1,b = 1 ;a <= 100;a++) { if(b>=20) break; if(b%3 ==1) { b +=3;continue; } b-=5; } printf("%d\n",a); } 上面程序的输出结果是( )。

A.7

B.8

C.9

D.10


正确答案:B
解析:本题考查break语句和continue语句。程序要输出循环结束时循环变量a的值,执行第一次循环时,条件(b%3==1)为真,b=4,继续下一次循环,如此反复,当b=22时,条件(b>=20)为真,跳出循环,此时共循环8次,即a=8。

第8题:

有以下程序:main(){int a=1,b;for(b=1:b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=

有以下程序: 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


正确答案:B
解析:本题是考查手工模拟执行程序的能力。a初值是1,循环开始时b值为1,由于a>=8为假,不执行break,但a%2==1为真,执行a+=5,a值变为6,再执行continue跳过不执行a-=3语句,而立即开始下一次循环。这时b值为2,由于a值为6,a>=8仍为假,不执行break,但a%2==1为假,不执行复合语句“{a+=5;continue;}”而执行a-=3,a值变为3。再开始下一次循环,这时b值为3。由于a值为3,a>=8仍为假,不执行break,但a%2==1为真,执行a+=5,a值变为8,再执行continue跳过不执行a-=3语句,而立即开始下一次循环。这时b值为4。由于a值为8,a>=8为真,执行break,停止for循环。此时输出的b值应为4。

第9题:

执行下面的程序后,a的值为main(){ int a,b;for(a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1)

执行下面的程序后,a的值为 main() { int a,b; for(a=1,b=1;a<=100;a++) { if(b>=20)break; if(b%3==1) { b+=3; continue; } b-=5; } }

A.7

B.8

C.9

D.10


正确答案:B
解析:本题主要考查了循环语句中break和continue语句的使用。break语句的作用是结束本层循环,而continue语句的作用是结束本次循环直接进入到下次循环。

第10题:

下面程序的执行结果为______。 main() { int a,b; for(a=1,b=1;a<=100;a++) { if(b>=20) break; i

下面程序的执行结果为______。 main() { int a,b; for(a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) { b+=3; continue; } b-=5; } printf("%d",a); }

A.7

B.8

C.9

D.10


正确答案:B

更多相关问题