计算机二级

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

题目

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

A.11122

B.12

C.12020

D.120

参考答案和解析
正确答案:A
解析:for循环执行了3次,第一次时i的值为0,执行其后的switch语句,没有匹配的case,执行default语句后的printf语句,输出为0;第二次循环时i的值为1,执行其后的switch语句,与第一个case分支匹配,执行其后的printf语句,输出1,由于没有遇到break语句,所以一直向下执行,又输出了两个1,第三次循环时i值为2,执行其后的switch语句,同理输出两个2。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列程序的输出结果是()。 include main() {int a=0,i; for(i=1;i<5;i++) {switch(i) {

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

#include<stdio.h>

main()

{ int a=0,i;

for(i=1;i<5;i++)

{ switch(i)

{ case 0:

case 3:a+=1;

case 1:

case2:a+=2;

default:a+=3;

}

}

printf("%d",a);

}

A.19

B.18

C.6

D.8


正确答案:A
解析:本题考查switch语句。当i=1时,执行 case 1,因为没有遇到break语句,所以依次往下运行, a=a+2=2,a=a+3=5 当i=2时,执行case2,因为没有遇到break语句,所以依次往下运行,a=a+2=7, a=a+3=10;当i=3时,执行case3,a=a+1=11,因为没有遇到break语句,所以依次往下运行,a=a+2=13, a=a+3=16;当i=4时,执行default,a=a+3=19,结束循环。

第2题:

以下程序的运行结果是______。includemain(){ int fun();fun();}fun(){static int a[3]=

以下程序的运行结果是______。

include<stdio.h>

main()

{ int fun();fun();}

fun()

{static int a[3]={0,1,2};

int i;

for(i=0;i<3;i++)a[i]+=a[i];

for(i=0;i<3;i++)printf("%d,",a[i]);

pfintf("\n",);}


正确答案:
本题主要考查for循环语句的使用以及静态局部变量的特点。

第3题:

有以下程序

main()

{ int i;

for(i=1; i<=40; i++)

{ if(i++%5==0)

if(++i%8==0) printf("%d ",i);

}

printf("\n");

}

执行后的输出结果是

A)5

B)24

C)32

D)40


正确答案:C
答案 C
解析 : 当 for 循环语句执行到 30 次时 , i 的值为 30 能被 5 整除 , 然后继续执行两次 if 语句 ,i 经过两次自加 1 运算,值变为 32 ,能被 8 整除,故此时才第一次执行 “ printf("%d",i) ” 语句,即输出 32 ,故本题的答案为选 C.

第4题:

有以下程序: void fun(int *a,int i,int i) { int t; if(i<j) { t==a[i];a[i]=a[j];a[i]=t; i++; j--; fun(a,i,j); } } main() { int x[]={2,6,1,8),i; fun(x,0,3), for(i=0;i<4;i++) printf("%2d",x[i]); printf("\n"); } 程序运行后的输出结果是( )。

A.1268

B.8621

C.8162

D.8612


正确答案:C
解析:函数fun()中用了一个if语句,当数组下标i小于数组下标j时,交换数组元素a[i]和a[j]的值,并使i值加1,j值减1。其功能就是把数组a中从下标i到j的元素首尾互换。主函数中定义一个数组x,该数组有4个元素,接着调用fun(a,O,3),其中将a数组的第一个元素的下标0和最后一个元素的下标3传给了函数fun(),故执行完该函数后,数组a中的元素首尾互换,因此最后依次输出的数组a中值为8、1、6和2,所以,4个选项中选项C符合题意。

第5题:

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

第6题:

有以下程序 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语句体结束。

第7题:

下列程序的输出结果是______。 main() { int i=3; switch(i) { case1: case2:printf("%d",i); case3: case4:break; default: printf ("OK"); } }

A.0

B.3

C.OK

D.没有任何输出


正确答案:D
解析:在题中,i的值为3,由于“case3:”后面没有break语句,所以继续向下执行“case4:”后面的语句,由于“case4:”后面的语句为break强行退出switch语句,所以,本题没有任何输出。

第8题:

有以下程序 main() {int i; for(i=1;i<=40;i++) { if(i++%5=0) if(++i%8=0) printf ("%d",i); } printf("\n"); }

A.5

B.24

C.32

D.40


正确答案:C
解析:在满足for语句条件下,第—个if语句的条件是指i先对5取余后,再自行加1;第二个if语句的条件是指:i=i+1后,再对8取余。设可以满足第—个if语句的值为:x,那么可以满足第二个if语句的值为:x+2,转换为方程组:

x=32,所以答案选C。

第9题:

有以下程序: include main ( ) int i;for(i =0;i <3 ;i ++ )switch (i)case 0: printf

有以下程序: #include <stdio.h> 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
解析:程序中没有使用break终止switch语句的执行。当i:0时,执行第一个case语句,因为它后面没有break,所以一直到执行完default语句结束,输出3个0,再执行下一循环。所以只有选项C)正确。

第10题:

有以下程序main ( ) { int a[3] [3],*p, i; p=&a[0] [0]; for (i=0;i<9; i++) p[i] =i; for(i=0;i<3;i++) printf ("%d" ,a[1] [i] );} 程序运行后的输出结果是

A.12

B.123

C.234

D.345


正确答案:D
解析:本题考查的是二维数组元素在内存中的排列形式。虽然二维数组成多维数组从结构上来看不是线性的,但是在C语言中,这些数组元素在内存中的排列是连续线性存放的。它们的排列规则是:第一维下标变化最慢,最右边的下标变化最快.例如本题中定义的二维数组a[3][3]中9个元素在内存中的排列顺序是:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]。在主函数中,首先定义了二维数组a[3][3],然后定义了一个指针p指向数组a的第1个元素a[0][0]。在第一个for循环中,依数组a在内存中的排列顺序为其元素赋从0~8九个值,然后用第二个for循环依次输出a[1][0],a[1][1],a[1][2]三个元素的值。所以,4个选项中选项D符合题意。

更多相关问题