计算机二级

有以下程序main(){ int i; for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); }}程序执行后的输出结果是A.011122 B.012C.012020 D.120

题目

有以下程序main(){ int i; for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); }}程序执行后的输出结果是A.011122 B.012C.012020 D.120

参考答案和解析
正确答案:A
在本题中,程序首先定义了一个循环变量i,然后执行for循环,从循环变量的初始值及循环的结束条件可以判断出循环执行3次。
第一次循环时,i=0,然后执行switch语句,由于i=0,无法找到匹配的case结构,执行default结构,此时输出变量i的值0。本次循环结束。
第二次循环时,i=1,然后执行switch语句,由于i=1,首先执行case 1结构,输出1,由于没有break,程序接着执行case 1结构,又输出1,接着又执行default结构,又输出一个1。在本次循环中,总共输出3个1。
第三次循环时,i=2,然后执行switch语句,由于i=2,首先执行case 2结构,输出2,由于没有break,程序接着执行default结构,又输出一个2。在本次循环中,总共输出2个2。三次循环后循环结束,主函数结束。
从上面对程序的分析我们可以知道,程序最后的输出结果是011122。因此本题的正确答案选A。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下程序的输出结果是( )。main(){ int i; for(i=0;i<3;i++) switch(i) { case 0:printf(&quo

以下程序的输出结果是( )。

main()

{ int i;

for(i=0;i<3;i++)

switch(i)

{ case 0:printf("%d",i);

case 2:printf("%d",i);

default:printf("%d",i); }

}

A.000102

B.000020

C.000122

D.000111


正确答案:C
当i=0时,执行switch语句,对应的执行case0,输出0,因为没有break,接着执行case2的语句,又输出一个0,接着执行default语句,再输出一个0,返回i++;i=1时,没有case语句,执行default语句,输出一个1,接着又返回i++;当i=2时执行case2和default语句分别输出一个2,此时又返回i++,i变为3,for循环不成立,终止,最后输出000122。

第2题:

有以下程序: main() { int i; for(i=0;i<3;i++) switch(i) { case1:printf("%d",i); case2:printf("%d",i); default:printf("%d",i); } } 执行后输出结果是( )。

A.11122

B.12

C.12020

D.120


正确答案:A
解析:for循环执行了3次,第一次时i的值为0,执行其后的switch语句,没有匹配的分支,执行default语句后的printf语句,输出为0;第二次循环时i的值为1,执行其后的switch语句,与第一个分支匹配,执行其后的primf语句,输出1,由于没有遇到break语句,所以一直向下执行,又输出了两个1,第三次循环时i值为2,执行其后的switch语句,同理输出两个2。所以, A选项是正确的。

第3题:

有以下程序 main () { int i; for(i=0;i<3;i++) switch(i) { case 1: printf ("%d",i); case 2: printf ("%d", i); default: printf ("%d",i); } 执行扣输出的结果是

A.11122

B.12

C.12020

D.120


正确答案:A
解析:本题考核的知识点是for循环和switch语句的综合运用。for循环执行了3次,第一次时i的值为0,执行其后的switch语句,没有匹配的case,执行default语句后的pdntf语句,输出为0;第二次循环时i的值为1,执行其后的switch语句,与第一个case分支匹配,执行其后的printf语句,输出1,由于没有遇到break语句,所以一直向下执行,又输出了两个1,第三次循环时i值为2,执行其后的switch语句,同理输出两个2。所以,A选项为所选。

第4题:

有以下程序: main() { int I; For (i=0;i<3;i++) switch(i) { case 0:printf("%d",i); case 2:printf("%d",i); default:printf("%d",i); } } 程序运行后的输出结果是 ______。

A.22111

B.21021

C.122

D.12


正确答案:C
解析:本题考查switch语句的执行过程。如果case语句中没有break语句,则顺序执行。因此第一次循环i=0被输出了3次,i=1被输出一次,i=2被输出两次。

第5题:

有以下程序

main( )

{ int i;

for(i=0;i<3;i++)

switch(i){

case 0:printf("%d",i);

case 2:printf("%d",i);

default:printf("%d",i);

}

}

程序运行后的输出结果是

A.22111

B.21021

C.122

D.12


正确答案:C
解析:swltch分支结构程序中每一个分支(case)后应有一个break语句跳出,否则程序会由符合条件的入点顺序执行,所以本程序中循环3次的入点分别为caseO、(default、case2,由于没有跳出语句,从进入点顺序执行,最后输出结果为000122。

第6题:

有以下程序 main() {int i; for(i=0;i<3;i++) switch(i) { case0:printf("%d",i); case2:printf("%d",i); default:printf("%d",i); } } 程序运行后的输出结果是

A.22111

B.21021

C.122

D.12


正确答案:C
解析:程序中for循环了三次,第一次i=0,执行switch语句中case0:分支,直到遇到default语句,退出switch,这里共执行了三个输出语句分别输出0,0,0,第二次循环i=1,switch语句中没有匹配的分支,故只执行default语句输出1,退出switch语句;第三次循环i=2,从switch语句中的case2:开始执行,共执行了两个输出语句输出2、2。最后输出的结果为000122。

第7题:

有以下程序 main() { int i; for(i=0;i<3;i++) switch(i) { case 0: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); } } 程序运行后的输出结果是______。

A.22111

B.21021

C.122

D.12


正确答案:C

第8题:

有以下程序 main( ) { int a=0,i; for(i=1;i<5; i++) { switch (i) { case 0 case 3:a+ =2; case 1; case 2;a+=3; default, a+=5; } } printf("%d\n",a) ; }

A.31

B.13

C.10

D.20


正确答案:A

第9题:

有以下程序 main( ) { int i; for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); } } 执行后输出的结果是

A.11122

B.12

C.12020

D.120


正确答案:A
解析:当执行switch语句时,首先计算紧跟其后一对括号中的值,然后在语句体内寻找与该值吻合的case标号。若相等,则执行该标号后开始的各语句,包括在其后的所有case和default后的语句,直到switch语句体结束。