《c语言期末考试试题4.pdf》由会员分享,可在线阅读,更多相关《c语言期末考试试题4.pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、选择题答案1.以下所列的C 语言常量中,错误的是A)OxFFB)1.2e0.5C)2LD)72你所选择的答案是:*,正确答案是:B X2.下列程序段的输出结果是void fun(int*x,int*y)printf(%d%d,*x,*y);*x=3;*y=4;main()int x=l,y=2;fun(&y,&x);printf(%d%dn,x,y);)A)2 1 4 3B)1 2 1 2C)1 2 3 4D)2 1 1 2你所选择的答案是:*,正确答案是:A X3.以下程序的输出结果是main()int i,k,a10,k=5;for(=0;i10;i+)for 仁0;ix);A)10B
2、)11C)51D)60你所选择的答案是:*,正确答案是:c X5.以下有4 组用户标识符,其中合法的一组是A)For-subCaseB)4dDOSizeC)f2_G3IFabcD)WORDvoiddefine你所选择的答案是:*,正确答案是:C X6.以下定义语句中,错误的是A)ht a=l,2;B)char*a3;C)chars10=ntestn;D)ht n=5,an;你所选择的答案是:*,正确答案是:D X7.以下程序的输出结果是main()char st20=helloXOW1;printf(%d%d nu,strlen(st),sizeof(st);)A)9 9B)5 20C)13
3、20D)20 20你所选择的答案是:*,正确答案是:B X8.以下程序的输出结果是#include stdio.hmain()(int a,b;for(a=l,b=l;a=10)break;if(b%3=l)b+=3;continue;)printf(%dn,a);)A)101B)6C)5D)4你所选择的答案是:*,正确答案是:D X9.在 16位 C 编译系统上,若定义long a;,则能给a 赋 40000的正确语句是A)a=20000+20000;B)a=4000*10;C)a=30000+10000;D)a=4000L*10L;你所选择的答案是:*,正确答案是:D X1 0.以下叙述正
4、确的是A)可以把define和 if定义为用户标识符B)可以把define定义为用户标识符,但不能把if定义为用户标识符C)可以把if定义为用户标识符,但不能把define定义为用户标识符D)define和 if都不能定义为用户标识符你所选择的答案是:*,正确答案是:B X11.以下程序中,while循环的循环次数是main()ht i=0;while(i10)if(il)continue;if(i=5)break;i+;)A)1B)10C)6D)死循环,不能确定次数你所选择的答案是:*,正确答案是:D X12.以下程序的输出结果是f(int blj,int m,int n)ht i,s=O;
5、for(i=m;in;i=i+2)s=s+bi;return s;)main()int x,a=12,3,4,5,6,7,8,9;x=f(a,3,7);printf(dn”,x);)A)10B)18C)8D)15你所选择的答案是:*,正确答案是:A X13.若有以下定义和语句:int s45,(*ps)5;ps=s;则对S数组元素的正确引用形式是A)ps+1B)*(ps+3)C)psD)*(ps+l)+3你所选择的答案是:*,正确答案是:C X14.不合法的main函数命令行参数表示形式是A)miin(int a,char*c)B)rrain(int arc,char*arv)C)main(i
6、nt argc,char*argv)D)rmin(int argv,char*argc)你所选择的答案是:*,正确答案是:c X15.以下选项中合法的用户标识符是A)bng B)_2Tesl C)Dmax D)A.dal你所选择的答案是:*,正确答案是:B X16.有以下程序int f(int n)if(n=l)return 1;else return f(n-l)+l;main()int i,j=0;for(i=i;i3;i+)j+=f(i);printf(dn”,j);程序运行后的输出结果是A)4B)3C)2D)1你所选择的答案是:*,正确答案是:B X17.有以下程序main()int
7、aa44=l,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6);int i,s=Ofor(i=0;i while、do-whileD)if for A continue你所选择的答案是:*,正确答案是:A X21.若有以下程序段int m=0 xabc,n=0 xabc;m-=n;printf(n%Xnn,m);执行后输出结果是()oA)0X0B)0 x0C)0D)OXABC你所选择的答案是:*,正确答案是:c X22.有以下程序main()int i=0,s=0;doif(i%2)i+;continue;i+;s+=i;while(i7);printf(n%dnn,s);)执行
8、后输出结果是()oA)16B)12C)28D)21你所选择的答案是:*,正确答案是:A X23.有以下程序#include stdio.hint f(int*x,int*y)(if(*x*y)return*x;elsereturn*y;)main()int a=7,b=8,c=9;int f(int*,int*);printf(n%d,%d,%d,f(&a,&b),f(&c,&b),f(&b,&a);)执行后输出结果是()。A)7,8,8B)7,8,7C)8,7,7D)8,7,8你所选择的答案是:*,正确答案是:B X24.以下能正确定义数组并正确赋初值的语句是(A)int N=5,bNN;B
9、)int al2=l,3);C)intc2=1.2,3(4);D)int d32=l,2,34);你所选择的答案是:*,正确答案是:D X25.有以下程序main()char s=nl23;printf(%d,%dn,strlen(s),sizeof(s);)执行后输出结果是()。A)赋初值的字符串有错B)6,7C)5,6D)6,6你所选择的答案是:*,正确答案是:C X26.有以下程序main()ini a3=1,2,3),(4,5,0),(*pa)3,i;pa=a;for(i=0;i3;i+)if(i2)pali=pali-l;else pali=l;printf(%dn,aOl+all+
10、al2);)执行后输出结果是()。A)7B)6C)8D)无确定值你所选择的答案是:*,正确答案是:A X27.有以下程序void fun(int*a,int i,int j)(int t;if(ij)(l=ai;ai=aj;aj=t;fun(a,+i,-j);)main()(int a=l,2,3,4,5,6,i;fun(a,0,5);for(i=0;i6;i+)printf(%d,ai);)执行后的输出结果是A)6 5 4 3 2 1B)432 1 560 4 5 6 12 3D)1 2 3 4 5 6你所选择的答案是:*,正确答案是:A X28.有定义语句:血 2=15=2,。=3区,则以
11、下选项中各程序段执行后,*的值不为3 魄()。A)if(ca)x=I;else if(ba)x=l;else x=3;C)if(a3)x=3;if(a2)x=2;if(al)x=l;B)if(a3)x=3;else if(a2)x=2;else x=l;D)if(ab)x=b;if(bc)x=c;if(cy?x:y;B)int max(int x,y)int z;z=xy?x:y;return z;)C)max(int x,int y)int z;z=xy?x:y;return(z);)D)int max(int x,int y)return(xy?x:y);你所选择的答案是:*,正确答案是:
12、B X32.以下程序main()int x=3,y=2,z=l;printf(n%dnn,x/y&-z);程序运行后的输出结果是()oA)3B)2C)1D)0你所选择的答案是:*,正确答案是:D X3 3.下列关于C语言数据文件的叙述中正确的是()。A)文件由ASCH码字符序列组成,C语言只能读写文木文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件山记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件你所选择的答案是:*,正确答案是:D X3 4 .以下符合C语言语法的实型常量是()。A)1.2 E 0.
13、5 B)3.1 4.1 5 9 E C).5 E-3 D)E 1 5你所选择的答案是:*,正确答案是:C X3 5 .有以下程序c h a r f u n(c h a r x ,c h a r y)i f(x re t u rn y;)m a i n()i n t a=,9,b=,8 ,c=7 ;p ri n t f(%c nw,f u n(f u n(a.B),f u n(b,C);)程序的执行结果是()。A)函数调用出错 B)8 C)9 D)7你所选择的答案是:*,正确答案是:D X3 6 .有以下程序段i n t a 1 0 =1,2,3,4,5,6 7,8,9,1 0,*p=&a 3
14、,b;b=p 5 ;b中的值是()。A)5 B)6 C)8 D)9你所选择的答案是:*,正确答案是:D X3 7 .有以下程序i n t a=2;i n t f(i n t *A)re t u rn (*A)+;m a i n()i n t s=0;i n t a=5;s+=f(&A);)s+=f(&A);printf(d n,s);)执行后输出结果是()oA)10 B)9 C)7 D)8你所选择的答案是:*,正确答案是:C X38.设有以下语句typedef struct S int g;char h;T;则下面叙述中正确的是()。A)可用S 定义结构体变量 B)可以用T 定义结构体变量C)
15、S 是 struct类型的变量 D)T 是 struct S 类型的变量你所选择的答案是:*,正确答案是:D X39.有以下程序main()int m=0256,n=256;printf(%o%on,mn,n);)程序运行后的输出结果是()oA)0256 0400B)0256 256C)256 400D)400 400你所选择的答案是:*,正确答案是:C X40.下列条件语句中,功能与其他语句不同的是()oA)if(a)printf(%dn,x);else printf(M%dn,y);B)if(a=0)printf(,%dn,y);else printf(%dn,x);C)if(a!=0)p
16、rintf(n%dnn,x);else printf(M%dn,y);D)if(a=0)printf(n%dnn,x);else printf(u%dnn,y);你所选择的答案是:*,正确答案是:D X41.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是()。A)for(i=1 ,p=1 ;i=5;i+)p*=i;B)for(i=1 ;i=5;i+)p=l;p*=i;C)i=1 ;p=1 ;while(i=5)p*=i;i+;D)i=l;p=l;dop*=i;i+;while(i=5);你所选择的答案是:*,正确答案是:B X42.有以下程序int f(int a)re
17、 t u rn a%2;m a i n()i n t s 8 =l,3,4,2,3,6,i,d=0;f o r(i=O;f(s i );i+)d=d+s i ;p ri n t f(%d,%d nn,i,s i );p ri n t f(%d n ,d);)程序运行后的输出结果是()。A)9B)4C)1 9D)2 1你所选择的答案是:*,正确答案是:B X4 3 .以下叙述中正确的是()A)局部变量说明为st a t i c存储数,其生存期将得到延长B)全局变量说明为st a t i c存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局
18、部变量完全相同你所选择的答案是:*,正确答案是:A X4 4 .若整型变量a、b、c、d中的值依次为:1、4、3、2,则条件表达式a v b?a:c v d?c:d的值()。A)1B)2C)3D)4你所选择的答案是:*,正确答案是:A X4 5 .有以下程序m a i n()(i n t p 8 =l l,1 2,1 3,1 4,1 5,1 6 J 7 J 8),i=0,j=0;w h i l e(i+7)i f(p i%2)j+=p i ;p r血f(“d ”,j);程序运行后的输出结果是()oA)4 2B)4 5C)5 6D)6 0你所选择的答案是:*,正确答案是:B X46.以下程序的功
19、能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。m a i n()/*Beginning*/int r;float s;scanf(%d,&r);s=PI*r*r;printf(,s=%fn,s);)出错的原因是()。A)注释语句书写位置错误 B)存放圆半径的变量r 不应该定义为整型C)输出语句中格式描述符非法 D)计算圆面积的赋值语句中使用了非法变量你所选择的答案是:*.正确答案是:D X47.设有定义:inta=2,b=3,c=4;,则以下选项中值为0 的表达式是()。A)(!a=l)&(!b=0)B)a C)a&b D)all(b+b)&(c-a)你所选择的答案是:*,正确
20、答案是:A X48.有以下程序void sort(int a,int n)in tij,t;for(i=0;i for(j=i+1;j if(ai)main()int aa10=1,2,3,4,5,6,7,8,9,10),i;sort(aa+2,5);for(i=0;i10;i+)printf(%d,aai);printf(n);)程序运行后的输出结果是()oA)1,2,3,4,5,6,7,8,9,10,B)1,2,76,3,4,5,8,9/0,C)1,2,7,6,5,4,3,8,9,10,D)1,2,9,8,7,6,5,4,3,10,你所选择的答案是:*,正确答案是:C X49.有以下程序v
21、oid swap 1 (int c0,int cl)int t;t=c00;c00=cl0;cl0=t;)void swap2(int*c0,int*cl)int t;t=*cO;*c0=*cl;*cl=t;)main()int a2=3,5,b=3,5;swap 1 (a,a+1);swap2(&b0,&bl);printf(u%d%d%d%dnM,a0,al,b0,bl);程序运行后的输出结果是()。A)3 553B)5335C)3535D)5 3 5 3你所选择的答案是:*,正确答案是:50.有以下程序#includevoid f(char*s,char*t)char k;k=*s;*s
22、=*t;*t=k;s+;t-;if(*s)f(s,t);)main()char str10=nabcdefgM,*p;p=str+strlen(str)/2+1;f(P,P-2);printf(,%sn,str);)程序运行后的输出结果是()oA)abcdefg B)gfedcba你所选择的答案是:*,正确答案是:51.以下程序的功能是进行位运算main()unsigned char a,b;a=7A3;b=4&3;printf(%d%dn,a,b);程序运行后的输出结果是()oA)43 B)73 C)70A XC)gbcdefa D)abedcfgB XD)40你所选择的答案是:*,正确答案
23、是:A X52.以下不合法的数值常量是A)011B)leiC)8.0 E0.5D)Oxabcd你所选择的答案是:*,正确答案是:C X53.若有定义:float x=1.5;int a=l,b=3,c=2;则正确的 switch 语句是A)switch(x)case 1.0:printf(n*nu);case 2.0:printf(n*nn);B)switch(int)x);case 1:printf(*nn);case 2:printf(*n);C)switch(a+b)case 1:printf(,*nn);case 2+1:printf(”*n);D)switch(a+b)case 1:
24、printf(*n);case c:primf(*n);你所选择的答案是:*,正确答案是:C X5 4.已定义以下函数int fun(int*p)return*p;fu n 函数返回值是A)不确定的值B)一个整数C)形参p 中存放的值D)形参p 的地址值你所选择的答案是:*,正确答案是:B X5 5.有以下程序main()(inti,t3=9,8,7,6,5,4,3,2,l;for(i=0;i3;i+)printfCl%d,t2-iiJ);程序的执行后的输出结果是A)753B)357C)369D)75 1你所选择的答案是:*,正确答案是:B X5 6.设有以下定义和语句char str20=u
25、Program,*p;p=str;则以下叙述中正确的是A)*p与strO中的值相等B)str与p的类型完全相同C)str数组长度和p所指向的字符串长度相等D)数组str中存放的内容和指针变量p中存放的内容相同你所选择的答案是:*,正确答案是:A X57.有以下程序main()int a=O,b=O;a=10;/*给a赋值b=20;给b赋 值*/printf(a+b=%dn,a+b);/*输出计算结果*/)程序运行后输出结果是 oA)a+b=0 B)a+b=30 C)30 D)出错你所选择的答案是:*,正确答案是:B X58.有以下程序main()(int k=5;while(-k)printf
26、(%d,k-=3);printf(n);执 行 后 的 输 出 结 果 是。A)1 B)2 C)4 D)死循环你所选择的答案是:*,正确答案是:A X59.若有定义语句:intk3,*pk3;,则以下语句中正确的是_A)pk=k:B)pk0=&kl2;C)pk=k0;D)pkl=k;你所选择的答案是:*,正确答案是:B X60.有以下程序#include#define N 5#define M N+1#define f(x)(x*M)main()(int il,i2;il=f(2);i2=f(l+l);printf(%d%dnn,il,i2);)程序的运行结果是 oA)12 12 B)11 7
27、 C)11 11 D)127你所选择的答案是:*,正确答案是:B X二、填空题1.设 x 和 y 均为int型变量,且 x=l,y=2,则以下表达式的值为().1.0+x/y你所选择的答案是:,正确常答案是:1.0或 1,X2.下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x 是数组名,n 是 x 中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。#include#includevoid fun(int a ,int n,int*max,int*d)int i;*max=a 0
28、;*d=0;for(i=0;i+)if(*maxalij)*max=a Ei;*d=i;)main()int i,x 20,max,index,n=10;randomize();for(i=0;ii,X3.设 x 和 y 均为int型变量,且 x=l,y=2,则表达式doubled+x/y)的值为()。你所选择的答案是:,正确常答案是:1.0或 1,X4.下 面 程 序 的 输 出 是。Main()int k=l 1;printf(d,%o,%xn”,k,k,k);)你所选择的答案是:,正确答案是:11,13,b,X5.设x为int型变量,执行以下语句,x=10;x+=x-=x-x;x的值为你
29、所选择的答案是:,正确答案是:20,X6.若有如下结构体说明:struct STRU int a,b;char c;double d:struct STRU pl,p2;);请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型t20J;你所选择的答案是:,正确答案是:struct STRU,X7.以下程序输出的结果是【】。main()int a=5,b=4,c=3,d;d=(abc);printf(dn”,d);)你所选择的答案是:,正确答案是:0,X8.执行以下程序后,输 出#号 的 个 数 是K 2 o#includemain()int i,j;for(i=l;i5;i+)for(j=2;jl)return a0+f(&al,n-l);else return a0;)main()int aa3=1,2,3,s;s=f(&aa0,3);printf(u%dn,s);你所选择的答案是:,正确答案是:efgh,X1 0.以下程序运行后的输出结果是【】。main()char c;int n=100;float f=10;double x;x=f*=n/=(c=50);printf(n%d%fn,n,x);你所选择的答案是:,正确答案是:220,X