《《C语言程序设计》考试模拟笔试试卷(一)【附答案】.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》考试模拟笔试试卷(一)【附答案】.docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计 笔试试卷(一)C语言程序设计 笔试试卷(一)考试时间:120分钟注意:请将答案书写在答卷纸上,否则不给分!一、 单项选择题(每个选项1.5分,共60分)1、以下叙述中正确的是( )。A)构成C程序的基本单位是函数 B)可以在一个函数中定义另一个函数C)main()函数必须放在其它函数之前D)所有被调用的函数一定要在调用之前进行定义2、以下对C语言函数的有关描述中,正确的是( )。A)函数必须有返回值,否则不能使用函数B)C函数既可以嵌套定义又可以递归调用 C)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参D)C程序中有调用关系的所有函数必须放在同一个源程序
2、文件中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; B)n1=(n2=(n3=0); C)k=i=j; D)a=a+b=1;7、b在内存中以( )个字节存放。A)1 B)2 C)3 D)不确定
3、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; a的值为( )。A)17 B)12 C)60 D)511、若已定义x和y为double类型,则表达式: x=1,y=x+3/2的值是( )。A)1 B)2
4、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、下列程序段执行后s值为( )。int i=1, s=0;do if (!(i%2) continue; s+=i; while (+i10);A) 1 B) 45 C) 25 D) 以上均不是15、下列程序
5、执行后,输出结果为( )。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;case 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
6、;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(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、下列程序运行后的输出
7、结果是( )。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(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
8、 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; func1(i); printf(n);A) hello B) hel C) hlo D) hlm23、在位运算中,操作数每左移1位,其结果相当于( )。A)操作数乘以2 B)操作数除以2 C)操作数除以16 D)操作数乘以1624、下列数
9、组定义语句中合法的是( )。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、若有以下的定义:inta=1,2,3,4,5,6,7,8,9,10,*p=a则值为3的表达式是( )。A)p+=2,*(p+) B)p+=2,*+p C)p+=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=righ
10、t!;27、假定所有变量均已正确说明,下列是程序段运行后x的值是( )。a=b=c=0;x=35;if(!a)x-;elseif(b);if(c)x=3;elsex=4;A)34 B)4 C)35 D)328、下列程序运行后的输出结果是( )。main() int p8=11,12,13,14,15,16,17,18,i=0,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+
11、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和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; poin
12、t(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,c=d; ss(str1,c); printf(%sn,str1); A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd33、C语言中函数返回值的类型是由( )决定的。A)return语句中的表达式类型 B)调用该函数的主调函数类型C)调用函数时临时
13、指定 D)定义函数时所指定的函数类型34、设有定义:structskinta;floatb;data,*p;若有p=data;,则对data中的a域的正确引用是( )。A)(*p).data.a B)(*p).a C)p-data.a D)p.data.a 35、若有下列说明和定义,则以下叙述中错误的是( )。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可以作为函数的实
14、参36、以下叙述中错误的是( )。A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以 B)在程序结束时,应当用fclose函数关闭已打开的文件 C)利用fread函数从二进制文件中读数据,可以用数组名给数组中所有元素读入数据 D)不可以用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 e
15、fg 10 则运行的结果是( )。A) 22 B) 17 C) 12 D) 938、若用数组名作为函数调用时的实参,则实际上传递给形参的是( )。A)数组首地址 B)数组的第一个元素值C)数组中全部元素的值 D)数组元素的个数39、有一函数: 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)
16、 i = 8, j = 840、有下列函数则,调用f(“1234”)的返回结果是( )。int f(char *s) int k = 0; while (*s) k = k*10+*s+-0; return(k); A) “1234” B) 1234 C) “4321” D) 4321二、 填空题(每空2分,共40分)1、判断一个字符是否是字母或数字的逻辑表达式是: 【1】 。2、执行语句:for(i=1;i+10&x50) x+; if(x/3)x+;break; else continue; printf(%dn,x); 7、下面程序的功能是输出以下形式的金字塔图案是: * * * *ma
17、in( ) int i,j; for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf(“ “); for(j=1;j= 【8】_;j+) printf(“*”); printf(“n”);8、下面程序的功能是:将n行n列的矩阵A转置为A,例如:则A1 5 9 132 6 10 143 7 11 154 8 12 16当A1 2 3 45 6 7 89 10 11 1213 14 15 16#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+) f
18、or(j=0; 【9】 ;j+) t=aij; 【10】 ; aji=t; 9、下面程序的功能是用公式求的近似值,直到最后一项的小于10- 6为止。请填空。#include #include main()long i=1; 【11】 pi=0;while(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
19、】 ; 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