《C语言程序设计》考试模拟笔试试卷(B)【附答案】.pdf
C 语言程序设计考试模拟笔试试卷(B) 【附答案】一、选择题(一、选择题(1 1 到到 1010 题,每空题,每空 1 1 分;分;1111 到到 2222 题,每空题,每空 2 2 分;分;2323 到到 3232 题,每题,每空空 3 3 分;共分;共 7070 分)分)1)C 语言的基本数据类型包括【 B 】 (1 1 分)分)A)整型,实型,逻辑型 B)整型,实型,字符型C)整型,字符型,逻辑型 D)整型,实型,逻辑型,字符型2)设 int 类型的数据长度为 2 个字节,则 unsigned int 类型数据的取值范围是【 B 】 (1 1 分)分)A)0 至 255 B)0 至 65535 C)-32768 至 32767 D)-256 至 2553)以下【 C 】组中的标识符都是合法的 C 语言用户标识符:(1 1 分)分)A)a_10 B)CHAR C)_int D)signed 3ab a#b day a4)若有变量定义:int x; float y; char z10; 且执行语句scanf(%3d%f%3s,&x,&y,z);时,从第一列开始输入以下数据:12345$123%($符号代表空格符号代表空格) ,则 x 的值为【 B 】 (1 1 分)分)A)12345 B)123 C)345 D)45y 的值为【 B 】 (1 1 分)分)A)无定值 B)45.0 C)45 D)123.0z 的值为【 B 】 (1 1 分)分)A)$ B)123 C)123% D)无定值5)b在内存中以【 B 】个字节存放:(1 1 分)分)A)1 B)2 C)3 D)不确定6)C 语言中,十进制 12 的八进制常量形式为【 B 】 (1 1 分)分)A)14 B)014 C)12 D)0 x127)一个 C 程序总是从【 D 】开始执行。 (1 1 分)分)A)第一个子函数 B)最后一个函数 C)第一个函数 D)主函数8)以下不正确的转义字符是【 C 】 (1 1 分)分)A) B) C)074 D)09)下述合法的 C 语言的字符常量是【 D 】 (1 1 分)分)A)A B)65 C)A D)t10)C 语言中的函数【 D 】 (1 1 分)分)A)可以嵌套定义 B)不可以嵌套调用C)可以嵌套调用,但不可以递归调用 D)嵌套调用和递归调用均可11)e=(34)?3:(12)?1:2; e 的值为【 B 】 (2 2 分)分)A)1 B)2 C)3 D)412)a=3*4,a+5; a 的值为【 B 】 (2 2 分)分)A)17 B)12 C)60 D)513)执行下面语句段后 x 的值为【 D 】 (2 2 分)分) int a=14,b=15,x; char c=A; x=(a&b)&(ca);A)TRUE B)FALSE C)0 D)114)设 x、y、z、m、n 均为 int 型变量, m=10; n=5; x=(-m=n+)?(-m):(+n); y=m+; z=n;则执行上面语句段后,x 值为【 D 】 (2 2 分)分)A)5 B)6 C)10 D)7y 值为【 C 】 (2 2 分)分)A)11 B)6 C)9 D)10z 值为【 D 】 (2 2 分)分)A)5 B)10 C)6 D)715)若 char c10=%da101;则 strlen(c)的值为【 C 】 (2 2 分)分)A)9 B)10 C)5 D)416)C 语言中函数返回值的类型是由【 D 】决定的(2 2 分)分)A)return 语句中的表达式类型B)调用该函数的主调函数类型C)调用函数时临时指定D)定义函数时所指定的函数类型17)若用数组名作为函数调用时的实参,则实际上传递给形参的是【 A 】(2 2 分)分)A)数组首地址 B)数组的第一个元素值C)数组中全部元素的值 D)数组元素的个数18)若已经定义了 x 和 y 为 double 类型,则表达式:x=1,y=x+3/2 的值是【 C 】(2 2 分)分)A)1 B)2 C)2.0 D)2.519)下面不正确的赋值语句是【 D 】 (2 2 分)分)A)+t; B)n1=(n2=(n3=0);C)k=i=j; D)a=a+b=1;20)有以下程序【 A 】 (2 2 分)分)main() int m=0256,n=256;printf(%o %on,m,n);程序运行后的输出结果是A)0256 0400 B) 0256 256 C) 256 400 D) 400 400 21)设有以下定义【 D 】 (2 2 分)分)int a=0; double b=1.25;char c=A;#define d 2则下面语句中错误的是A) a+; B) b+ C) c+; D) d+;22)有以下程序main( ) int x=102,y=012; printf(“%2d,%2dn”,x,y); 执行后输出结果是【 C 】 (2 2 分)分)A) 10,01 B) 02,12 C) 102,10 D) 02,1023)下列程序执行后的输出结果是【 C 】 (3 3 分)分) void func1(int i); void func2(int i); char st=hello,friend!; void func1(int i) printf(%c,sti); if(i3)i+=2;func2(i); void func2(int i) printf(%c,sti); if(i3)i+=2;func1(i); main() int i=0; func1(i); printf(n); A) hello B) hel C) hlo D) hlm24)运行下列程序段后,i 的结果是【 C 】 (3 3 分)分) int i=10; switch(i) case 9: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; A)11 B)12 C)13 D)1425)下列程序输出结果是【 A 】 (3 3 分)分) main() int i; for(i=1;ia)|(m=ab);printf(%d,%dn,k,m);程序运行后的输出结果是【 C 】 (3 3 分)分)A) 0,0 B) 0,1 C) 1,0 D) 1,1二、程序填空(每空二、程序填空(每空 3 3 分,共分,共 3030 分)分)1)要求打印出以下的杨辉三角形(共 10 行) 。算法中用一维数组 a 依次实现各行。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1main() int a10=1,0,i,j; for(i=0;i0;【1】 );/*生成第 i 行除首元素外的各元素*/ aj=aj+【2】 ; for(j=0;j=i;j+) /*打印第 i 行*/ printf(%3d,【3】 ); printf(n); 【1】j- 【2】aj-1 【3】aj2)以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。main() int i,a20,sum,count;sum=count=0;for(i=0;i20;i+) scanf(%d,【4】 );for(i=0;i0) count+;sum+=【5】 ;printf(sum=%d,count=%dn,sum,count);【4】&ai或 a+i 【5】ai或*(a+i)3)下面程序的功能是输出以下形式的金字塔图案是: * * * *main( ) int i,j; for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf(“ “); for(j=1;j=【6】_ _;j+) printf(“*”); printf(“n”);【6】2*i-14)下面 rotate 函数的功能是:将 n 行 n 列的矩阵 A 转置为 A ,例如:#define N 4main() int aN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;int i,j,t; for(i=0;iN;i+) for(j=0;【7】 ;j+) t=aij; 【8】 ; aji=t; 【7】ji 【8】aij=aji5)以下程序的功能是计算 s=1+,请填空。! 21! 31!1nmain() int n,i;double s=0.0,fac=1.0; scanf(%d,&n);for(i=1;i=n;i+)fac=fac【9】 ;s=s+fac;当 A1 2 3 45 6 7 89 10 11 1213 14 15 16则 A1 5 9 132 6 10 143 7 11 154 8 12 16return s;【9】/i6)若有以下程序int f(int x,int y) return(y-x)*x); main() int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c);printf(%dn,d);执行后输出的结果是【10】 。【10】9