1、2013年 3月计算机二级 C语言模拟试题-3 及答案解析(总分:94.00,做题时间:90 分钟)一、单项选择题(总题数:20,分数:40.00)1.运算符_的优先级最高。(分数:2.00)A B.+=C.?:D.+2.main( ) int n; ( n=6*4,n+6),n*2; printf(“n=%d/n”,n); 此程序的输出结果是_.(分数:2.00)A.30B.24C.60D.483.若有如下定义,则_是对数组元素的正确的引用。. int a10 , *p ; p=a ;(分数:2.00)A.*”后,n 的值是_(分数:2.00)A.0B.4C.- 4D.25.为了避免嵌套的条
2、件分支语句 if-else 中的 else总是与( ) 组成成对关系。(分数:2.00)A.缩排位置相同的B.在其之前未配对的C.在其之前未配对的最近的 ifD.在同一行上的 if6.下面的变量说明中_是正确的。(分数:2.00)A.char:a, b, cB.char a; b; cC.char a, b, cD.char a, b, c7.表达式 y=(1312?15:67?8:9)的值为_ 。(分数:2.00)A.9B.8C.15D.18.若 x=5,y=3 则 y*=x+5; y的值为_.(分数:2.00)A.10B.20C.15D.309.能正确表示 a和 b同时为正或同时为负的逻辑
3、表达式是_。(分数:2.00)A.a=0|b=0)则表达式“!(x+y)+z-1 Ch=getchar1; While( 2 ) if ( 3 ) n+; c=getchar4; (分数:2.00)填空项 1:_34.C语言中 getchar1 函数的功能是 2。(分数:2.00)填空项 1:_35.int *p 的含义是 1。(分数:2.00)填空项 1:_36.定义 fp为文件型指针变量的定义方法为 1。(分数:2.00)填空项 1:_37.数组 int a33;共定义了 1 个数组元素。(分数:2.00)填空项 1:_四、读程序(总题数:5,分数:10.00)38.改正下列程序中不正确的
4、语句。 main( ) int a; scanf(“%d”, a); if (a = 1) printf(“One/n”) ; (分数:2.00)_39.写出下列程序的运行结果。 fun(int a, int b) if(ab) return (a); Else return (b); main() int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf(“%d/n”,r); (分数:2.00)_40.改正下列程序中不正确的语句。 main() int n ; float s=1.0; for(n=10;n1;n- -) s=s+1/n; printf(“
5、%6.1f/n”,s); (分数:2.00)_41.写出下列程序的运行结果。 main() int n; For(n=3; n12?15:67?8:9)的值为_ 。(分数:2.00)A.9B.8C.15 D.1解析:8.若 x=5,y=3 则 y*=x+5; y的值为_.(分数:2.00)A.10B.20C.15D.30 解析:9.能正确表示 a和 b同时为正或同时为负的逻辑表达式是_。(分数:2.00)A.a=0|b=0)则表达式“!(x+y)+z-1 Ch=getchar1; While( 2 ) if ( 3 ) n+; c=getchar4; (分数:2.00)填空项 1:_ (正确答
6、案:ch!=/n ch=0 Else return (b); main() int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf(“%d/n”,r); (分数:2.00)_正确答案:(12)解析:40.改正下列程序中不正确的语句。 main() int n ; float s=1.0; for(n=10;n1;n- -) s=s+1/n; printf(“%6.1f/n”,s); (分数:2.00)_正确答案:(s=s+1.0/n)解析:41.写出下列程序的运行结果。 main() int n; For(n=3; n=10; n+) if(n%6= =0
7、) break; Printf(“%d”,n); (分数:2.00)_正确答案:(3 4 5)解析:42.写出下列程序的运行结果。 #include “stdio.h” Main() int a=1,2,3,-4,5; int m,n,*p; p= m=*(p+1); n=*(p+4); printf(“%d %d %d ”,*p,m,n); (分数:2.00)_正确答案:(1 2 5)解析:编程43.编程计算下列表达式:s=n!(n 从键盘上输入)(分数:2.00)_正确答案:(#include “stdio.h“ main() long t=1; int i; for(i=1;i=10;i
8、+) t=t*i; printf(“%ld“,t); )解析:44.输出 1100之间不能被 12整除的数。(分数:2.00)_正确答案:( )解析:45.从键盘上输出 10个整数存入一维数组中,按由大到小的顺序输出。(分数:2.00)_正确答案:(#include “stdio.h“ main() int i,j,a10; for(i=1;i=10;i+) scanf(“%d“, for(i=0;ii;j-) if(aj-1 t=aj-1; aj-1=aj; aj=t; for(i=0;i解析:46.从键盘上输入 9个数,按 3行 3列的格式输出。(分数:2.00)_正确答案:(#include “stdio.h“ main() int a33,i,j,s=0; for(i=0;i解析:47.编程将文件 read.txt中的字符读出显示到屏幕上。(分数:2.00)_正确答案:(#include “stdio.h“ main() int c; FILE *fp; fp=open(“read.txt“,“r“); c=fgetc(fp); while(c!=/n) putchar(c); c=fgetcr(fp); fclose(); )解析: