《《C语言程序设计》考试模拟笔试试卷(一)【附答案】.pdf》由会员分享,可在线阅读,更多相关《《C语言程序设计》考试模拟笔试试卷(一)【附答案】.pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C 语言程序设计语言程序设计 笔试试卷(一)笔试试卷(一)C 语言程序设计 笔试试卷(一)考试时间:考试时间:120120 分钟分钟注意:注意:请将答案书写在答卷纸上,否则不给分!一、一、单项选择题(每个选项单项选择题(每个选项 1.51.5 分,共分,共 6060 分)分)1、以下叙述中正确的是( ) 。A)构成 C 程序的基本单位是函数 B)可以在一个函数中定义另一个函数C)main()函数必须放在其它函数之前D)所有被调用的函数一定要在调用之前进行定义2、以下对 C 语言函数的有关描述中,正确的是( ) 。A)函数必须有返回值,否则不能使用函数B)C 函数既可以嵌套定义又可以递归调用 C
2、)在 C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参D)C 程序中有调用关系的所有函数必须放在同一个源程序文件中3、C 语言的基本数据类型包括( ) 。A)整型,实型,逻辑型 B)整型,实型,字符型C)整型,字符型,逻辑型 D)整型,实型,逻辑型,字符型4、C 语言中用于结构化程序设计的三种基本结构是( ) 。A)顺序结构、选择结构、循环结构 B)if、switch、breakC)for、while、do-while D)if、for、continue5、下述合法的 C 语言的字符常量是( ) 。A)A B)65 C)A D)t6、下面不正确的赋值语句是( ) 。A)+t
3、; B)n1=(n2=(n3=0); C)k=i=j; D)a=a+b=1;7、b在内存中以( )个字节存放。A)1 B)2 C)3 D)不确定8、a 是 int 类型变量,c 是字符变量。下列输入语句中哪一个是错误的( ) 。A)scanf (%d, %c,&a, &c); B)scanf ( %d%c, a, c);C)scanf ( %d%c, &a,&c ); D)scanf ( d=% d, c=%c,&a, &c);9、假设定义:int x = 3, y = 3; 则复合赋值表达式 x /= 1+y 的值为( ) 。A)0 B)0.75 C)6 D)以上都错10、a=3*4,a+5
4、; a 的值为( ) 。A)17 B)12 C)60 D)511、若已定义 x 和 y 为 double 类型,则表达式: x=1,y=x+3/2 的值是( ) 。A)1 B)2 C)2.0 D)2.5 12、设 a 为整型变量,不能正确表达数学关系 10a15 的 C 语言表达式是( ) 。A)10a10&a15 D)!(a=15) 13、对于 int x, y; 语句 if (x=0) if (x) y=1; else y= -1; B) if (x!=0) if (x0) y=1; else y= -1; else y=0;C)if (x0) y=1; else y=0;14、下列程序段
5、执行后 s 值为( ) 。int i=1, s=0;do if (!(i%2) continue; s+=i; while (+i10);A) 1 B) 45 C) 25 D) 以上均不是15、下列程序执行后,输出结果为( ) 。int func(int x,int y)return x+y;main() int a=1,b=2,c=3,d=4,e=5;printf(%dn,func(a+b,b+c,c+a),(d,e);A) 15 B)5 C)函数调用出错 D)916、对于以下程序段, 运行后 i 值为( ) 。int i=0, a=1;switch (a) case 1: i+=1;cas
6、e 2: i+=2; break;default: i+=3; A) 1 B) 3 C) 6 D) 上述程序有语法错误17、设有以下程序段,则( ) 。int x=0,s=0;while(!x!=0) s+=+x;printf(“%d”,s);A)运行程序段后输出 0 B)运行程序段后输出 1C)程序段中的控制表达式是非法的 D)程序段执行无限次18、下列程序中的变量已正确定义,要求程序段完成求 5!(阶乘)的计算,不能完成此操作的程序段是( ) 。A)for(i=1,p=1;i=5;i+) p*=i;B)for(i=1;i=5;i+) p=1; p*=i;C)i=1; p=1; while(
7、i=5)p*=i; i+;D)i=1; p=1; dop*=i; i+; while(ia)|(m=ab);printf(%d,%dn,k,m);A) 0,0 B) 0,1 C) 1,0 D) 1,120、下列程序运行后的输出结果是( ) 。void fun(char *c,intd) *c=*c+1;d=d+1; printf(%c,%c,*c,d); main() char a=A,b=a; fun(&b,a); printf(%c,%cn,a,b); A) B,a,B,a B) a,B,a,B C) A,b,A,b D) b,B,A,b21、下列程序运行后的输出结果是( ) 。int f
8、(int n) if (n=1) return 1; else return f(n-1)+1; main() int i,j=0; for(i=1;i3;i+) j+=f(i); printf(%dn,j); A) 4 B) 3 C) 2 D) 122、下列程序执行后的输出结果是( ) 。 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; func
9、1(i); printf(n);A) hello B) hel C) hlo D) hlm23、在位运算中,操作数每左移 1 位,其结果相当于( ) 。A)操作数乘以 2 B)操作数除以 2 C)操作数除以 16 D)操作数乘以 1624、下列数组定义语句中合法的是( ) 。A)int a=string; B)int a5=0,1,2,3,4,5; C)char a=string; D)char a=0,1,2,3,4,5;25、若有以下的定义:int a=1,2,3,4,5,6,7,8,9,10,*p=a则值为 3 的表达式是( ) 。A)p+=2,*(p+) B)p+=2,*+p C)p+
10、=3,*p+ D)p+=2,+*p 26、下列语句或语句组中,能正确进行字符串赋值的是( ) 。A)char *sp;*sp=right!; B)char s10;s=right!; C)char s10;*s=right!; D)char *sp=right!;27、假定所有变量均已正确说明,下列是程序段运行后 x 的值是( ) 。a=b=c=0;x=35;if(!a) x-;else if(b);if(c) x=3;else x=4;A)34 B)4 C)35 D)328、下列程序运行后的输出结果是( ) 。main() int p8=11,12,13,14,15,16,17,18,i=0
11、,j=0; while(i+y?x:y; int f2(int x,int y)return xy?y:x; main() int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d); f=f1(f2(a,b),f2(c,d); g=a+b+c+d-e-f;printf(%d,%d,%dn,e,f,g); A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,730、下列函数的功能是( ) 。fun(char *a,char *b) while(*a!=0)&(*b!=0)&(*a=*b) a+;b+; return(*a-*b); A)计算 a 和
12、b 所指字符串的长度之差 B)将 b 所指字符串连接到 a 所指字符串中 C)将 b 所指字符串连接到 a 所指字符串后面 D)比较 a 和 b 所指字符串的大小31、下列程序运行后的输出结果是( ) 。point(char *p)p+=3; main() char b4=a,b,c,d,*p=b; point(p);printf(%cn,*p); A)a B)b C)c D)d32、下列程序运行后的输出结果是( ) 。void ss(char *s,char t) while(*s) if(*s=t) *s=t-a+A; s+; main() char str1100=abcddfefdbd
13、,c=d; ss(str1,c); printf(%sn,str1); A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd33、C 语言中函数返回值的类型是由( )决定的。A)return 语句中的表达式类型 B)调用该函数的主调函数类型C)调用函数时临时指定 D)定义函数时所指定的函数类型34、设有定义:struct skint a;float b;data,*p;若有 p=data;,则对 data 中的 a 域的正确引用是( ) 。A)(*p).data.a B)(*p).a C)p-data.a D)p.data.a 35、若
14、有下列说明和定义,则以下叙述中错误的是( ) 。union dt int a;char b;double c;data; A)data 的每个成员起始地址都相同B)变量 data 所占的内存字节数与成员 c 所占字节数相等C)程序段:data.a=5;printf(%fn,data.c);输出结果为 5.000000 D)data 可以作为函数的实参36、以下叙述中错误的是( ) 。A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以 B)在程序结束时,应当用 fclose 函数关闭已打开的文件 C)利用 fread 函数从二进制文件中读数据,可以用数组名给数组中所有元素读入数据 D)不可
15、以用 FILE 定义指向二进制文件的文件指针37、有下列程序#include main(int argc,char *argv) int i,len=0; for(i=1;iargc;i+) len+=strlen(argvi); printf(%dn,len); 程序编译连接后生成的可执行文件是 ex1.exe,若运行时输入带参数的命令行是:ex1 abcd efg 10 则运行的结果是( ) 。A) 22 B) 17 C) 12 D) 938、若用数组名作为函数调用时的实参,则实际上传递给形参的是( ) 。A)数组首地址 B)数组的第一个元素值C)数组中全部元素的值 D)数组元素的个数39
16、、有一函数: int f(int a) auto int b = 0; static int c = 3; b = b+1; c = c+1; return(a+b+c); 如果有 int i, j; 则执行两次调用:i=f(2); j=f(2) 后, i, j 值为( ) 。A) i = 7, j = 7 B) i = 7, j = 8C) i = 8, j = 7 D) i = 8, j = 840、有下列函数则,调用 f(“1234”)的返回结果是( ) 。int f(char *s) int k = 0; while (*s) k = k*10+*s+-0; return(k); A)
17、 “1234” B) 1234 C) “4321” D) 4321二、二、填空题(每空填空题(每空 2 2 分,共分,共 4040 分)分)1、判断一个字符是否是字母或数字的逻辑表达式是: 【1】 。2、执行语句:for(i=1;i+10&x50) x+; if(x/3)x+;break; else continue; printf(%dn,x); 7、下面程序的功能是输出以下形式的金字塔图案是: * * * *main( ) int i,j; for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf(“ “); for(j=1;j= 【8】_;j+) printf(“
18、*”); printf(“n”);8、下面程序的功能是:将 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; 【9】 ;j+) t=aij; 【10】 ; aji=t; 9、下面程序的功能是用公式求 的近似值,直到最后一项的小2222213121116n于 10- 6为止。请填空。#include #include main()long i=1; 【11】 pi=0;当 A1 2 3 45 6 7 89
19、 10 11 1213 14 15 16则A1 5 9 132 6 10 143 7 11 154 8 12 16while(i*i=1e+6) pi= 【12】 ; i+; pi=sqrt(6.0*pi);printf(“pi=%10.6fn”,pi);10、以下程序的功能是调用函数 fun 计算:m=1-2+3-4+9-10,并输出结果。请填空。int fun( int n) int m=0,f=1,i;for(i=1; i=n; i+) m+=i*f;f= 【13】 ; return m;main() printf(m=%dn, 【14】 ); 11、以下程序运行后的输出结果是 【15】 。main() int i,n=0,0,0,0,0;for(i=1;ib?a:b); C 语言程序设计语言程序设计 笔试试卷(一)笔试试卷(一) 参考答案参考答案C 语言程序设计 笔试试卷(一) 参考答案一、选择题:1-10: ACBAD DBBAB11-20: CABCD BBBCD21=30: BCADA CBBAD31-40: DBDBC DDABB二、填空题:【1】c=a&c=A&c=0&c=9【2】5【3】k【4】*k【5】20,0【6】1【7】17【8】2*i1【9】j0【19】i%10【20】double a,double b 或 double,double