计算机二级

有以下程序: include main ( ) {int k=5,n =0; while ( k>0){switch (k) {default: b有以下程序: #include <stdio, h>main ( ) { int k=5,n =0; while ( k>0) { switch (k) { default: break; case 1 : n+ =k; case 2 : case3 : n+ =k; } k--; printf( "% d \n" ,n);}程序运行后的输出结果是( )。A.

题目
有以下程序: include main ( ) {int k=5,n =0; while ( k>0){switch (k) {default: b

有以下程序: #include <stdio, h>main ( ) { int k=5,n =0; while ( k>0) { switch (k) { default: break; case 1 : n+ =k; case 2 : case3 : n+ =k; } k--; printf( "% d \n" ,n);}程序运行后的输出结果是( )。

A.0

B.4

C.6

D.7

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

【填空题】下面程序的运行结果是 。 #include<stdio.h> main() {char str[]="SSSWLIA",c; int k; for(k=2;(c=str[k])!='0';k++) {switch(c) {case 'I':++k;break; case 'L':continue; default:putchar(c);continue; } putchar('*'); } }


abcee

第2题:

以下程序的输出结果是()。includeint fan(int);main(){int w=5; fun(w);printf("\n");}

以下程序的输出结果是( )。 #include <stdio.h> int fan(int); main() { int w=5; fun(w); printf("\n"); } fun(int k) { if(k>0) fun(k-1); printf("%d",k); }

A.5 4 3 2 1

B.0 1 2 3 4 5

C.1 2 3 4 5

D.5 4 3 2 1 0


正确答案:B
解析:本题考查函数的递归调用。fun函数共被调用6次,即fun(5)、fun(4)、fun(3)、fun(2)、fun(1)、fun(0),其中fun(5)是main函数调用的,其余是在fun函数中调用的。

第3题:

有以下程序 main ( ) { int k=5,n=0; while (k>0) { switch (k) { default : break; case 1 : n+=k; case 2 : case 3 : n+=k; } k--; } printf ("%d\n",n); 程序运行后的输出结果是

A.0

B.4

C.6

D.7


正确答案:D
解析:本题考查的是switch语句。switch语句中的case或default只是一种入口标号,它并不形成一种子句的概念。当满足其中某个标号的条件而进入switch语句中时,如果没碰到break语句,将一直执行到switch语句的结尾。题目中使用了一个while循环使k从5递减到1,当k=5或4的时候从default标号进入switch,碰到break;语句立即跳出,没有改变n:当k=3时,执行了一次n+=k;;k=2时,也执行了一次n+=k;k=1时,执行了两次n+=k;所以最终n的值为3+2+1+1=7。故应该选择D。

第4题:

有下列程序:

main

{ int k=5,n=0;

while(k>0)

{switch(k)

{default:break;

case 1:n=n+k;

case 2:

case 3:n+=k;

}

k--;

}

printf("%d\n".n);

}

程序运行后的输出结果足( )。

A.0

B.4

C.6

D.7


正确答案:D
本题主要考查while循环语句和switchcase语句的使用方法。其执行步骤为:k=5时,跳出switch语句,然后k自减1;当k=4时,跳出switch语句,然后k自减1;当k=3时,n=13+k=0+3=3,跳出switch语句,然后k自减1;当k=2时n=n+k=3+2=5,跳出switch语句,然后k自减l;当k=1时,case1:n=n+k一5+1=6,没有break继续执行CaSe3;n=n+k=6+1=7,跳出switch语句,然后k自减1;当k=0时,退出循环,所以输出结果为7。

第5题:

有以下程序

main( )

{ int k=5,n=0;

do

{ switch(k)

{ case 1: case 3:n+=1;k--;break;

default:n=0;k--;

case 2: case 4:n+=2;k--;break;

}

printf("%d",n);

}while(k>0&&n<5);

}

程序运行后的输出结果是

A.235

B.0235

C.02356

D.2356


正确答案:A
解析:因为变量的初始值分别为“k=5,n=0”,所以程序第一次进入循环时,执行default语句,这时k=4,执行"case 4:”这个分支,结果是 “n=2,k=3”,打印出2;然后程序进行第二次循环,这时“n=2,k=3”,执行"case 3:”这个分支,结果是“n=3,k=2”,打印出3;程序进行第三次循环,这时“n=3,k=2”,执行“case 2:case 4:”这两个分支,结果是“n=5,k=1”,打印出5,这时因为n=5不满足n<5的循环条件,因此退出循环,程序运行结束,故输出结果为235。

第6题:

有以下程序includemain(){int k=5,n=0;while(k>0){switch(k){defhult:break;case 1:n+

有以下程序 #include<stdio.h> main() {int k=5,n=0; while(k>0) {switch(k) {defhult:break; case 1:n+=k: case 2: case 3:n+=k; } k--; } printf("%d\n",n); } 程序运行后的输出结果是( )

A.0

B.4

C.6

D.7


正确答案:D
解析:因为没有break语句,当k=2的时候,会顺序执行两条语句,k=1的时候,会顺序执行3条语句。

第7题:

有以下程序: main() {int k=5,n=0; while(k>0) {switch(k) { default:break; case 1:n+=k; case 2: case3:n+=k; } k-; } printf("%d\n",n); } 程序运行后的输出结果是 ______。

A.0

B.4

C.6

D.7


正确答案:D
解析:在switch语句中,表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,若所有的 case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句,各个case和default的出现次序不影响执行结果。所以在本题中,当k=5和k=4的时候,case都没有与其匹配的值,所以执行了default语句;当k=3时,执行“case3:n+=k;”得n=3,然后执行default;当k=2时,执行“case2:case3:n+=k”得n=5,然后执行default;当 k=1时,执行“case1:n+=k;case2:case3:n+=k;”使得n加两次k,得到n=7。

第8题:

有以下程序: main() {int k=5, n=0; while(k>0); { switch(k) { default; break; case 1:n+=k; case 2; case 3:n+=k; } k--; } printf("% d\n", n); } 程序运行后的输出结果是______。

A.0

B.4

C.6

D.7


正确答案:D
解析:当k为4、5时,n值没有变化。当k=3时,满足case 3,得到n=3;当k=2时,满足case 2,因为没有break语句,继续执行case 3得n=n+2=5;当k=1时,满足case 1,得n=6,又因为没有break,继续执行case 2,case 3,最后得n=7。

第9题:

有以下程序: main() {int k=5,n=0; while(k>0) {switch(k) {default:break; case 1:n+=k; case 2: case 3:n+=k; } k--; } printf("%d\n",n); } 程序运行后的输出结果是( )。

A.0

B.4

C.6

D.7


正确答案:D
解析:在switch语句中,若case语句后没有break语句,则执行完本层case后会继续执行后面case中的操作。k的初值为5,while条件成立,进入switch(5),执行default语句,退出switch,执行k--后得4,再进入while循环,执行switch(4),退出switch,再执行k--后得3,继续while循环,执行switch(3),n=n+k=3,再执行k--后得2,进入while循环,执行case 2,再执行n=n+k=5,然后执行k--后得1,最后一次进入while循环,执行case1,n=n+k=6,然后继续执行case 2和case 3后的语句,n=n+k=7,且执行k--后得0,此时while条件不满足,退出循环,输出n的值为7。