2010上半年等考二级C语言笔试精选试题(2)
1.若有以下定义:floatx;inta,b,c=2;,则正确的switch语句是() A)switch(x) { case1.0∶printf("* "); case2.0∶printf("** "); } B)switch(int(x)) { case1∶printf("* "); case2∶printf("** "); } C) switch(a+b) { case1∶printf("* "); case1+2∶printf("** "); } D)switch(a+b) { case1∶printf("* "); casec∶printf("** "); } 2.执行下面程序片段的结果是() int x=123; do { printf("= ",x--);} while(!x); A)打印出321 B)打印出123 C)不打印任何内容 D)陷入死循环 3.以下程序的输出结果是() # include main() { int i=0,a=0; while(i<20) { for(;;){ if((i)==0)break;else i--; } i+=11;a+=i; }考试通 printf("%d ",a); } A)21 B)32 C)33 D)11 4.下列与表达式“b=(a<0?-1∶a>0?1∶0)”的功能等价选项是() A)b=0; if(a>=0) if(a>0) b=1; else b=-1; B)if(a>0)b=1; else if(a<0)b=-1; elseb=0 C)if(a) if(a<0) b=-1; else if(a>0)b=1; else b=0; D) b=-1; if(a) if(a>0)b=1; else if(a==0)b=0; else b=-1; 5.若有以下定义:char a; int b; float c; double d; 则表达式“a*b+d-c”值的类型为() A)float B)int C)char D)double 6.以下叙述中正确的是() A)在函数中必须要有return语句 B)在函数中可以有多个return语句,但只执行其中的一个 C)return语句中必须要有一个表达式 D)函数值并不总是通过return语句传回调用处 7.有以下程序 float fun(int x,int y) { return(x+y); } main() {int a=2,b=5,c=8; printf("%3.0f ",fun((int)fun(a+c,b),a-c)); } 程序运行后的输出结果是() A)编译出错 B)9 C)21 D)9.0 8.若已定义: inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,I; 其中0≤i≤9,则对a数组元素不正确的引用是() A)a[p-a] B)*(&a[i]) C)p[i] D)a[10] 9.以下叙述中正确的是() A)全局变量的作用域一定比局部变量的作用域大 B)静态(static)类型变量的生存期贯穿于整个程序的运行期间 C)函数的形参都属于全局变量 D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值 10.若有如下程序: main() {char a[][9]={"china","Japan","USA","France"}; printf("′%s′ ",a[2]);} 则程序运行后的输出结果是() A)′Japan′ B)′USA′ C)USA D)′inaJapanUSAFrance′ 答案:1.C 2.B 3.B 4.B 5.D 6.B 7.B 8.D 9.B 10.B 相关资料 |