《c语言期末考试试题.pdf》由会员分享,可在线阅读,更多相关《c语言期末考试试题.pdf(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、选择题答案1.以下所列的C 语言常量中,错误的是A)OxFFB)1.2e0.5C)2LD)72你所选择的答案是:*,正确答案是:B X2.下列程序段的输出结果是void fun(int*x,int*y)printf(%d%dH,*x,*y);*x=3;*y=4;main()int x=l,y=2;fun(&y,&x);printf(%d%d,x,y);IA)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(i=0;i10;i+)for(i=0;i3;i+)f
2、or(i=0;ix);A)10B)11C)51D)60你所选择的答案是:*,正确答案是:c X5.以下有4 组用户标识符,其中合法的一组是A)For-subCaseB)4dDOSizeC)f2_G3IFabcD)WORDvoiddefine你所选择的答案是:*,正确答案是:c X6.以下定义语句中,错误的是A)int a=l,2;B)char*a3;C)chars10=Htest;D)int n=5,an;你所选择的答案是:*,正确答案是:D X7.以下程序的输出结果是main()char st20=hello0tn;printf(%d%d nH,strlen(st),sizeof(st);)
3、A)9 9B)5 20C)13 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;你所选择的答案是:*,正
4、确答案是:D X1 0.以下叙述正确的是A)可以把define和 if定义为用户标识符B)可以把define定义为用户标识符,但不能把if定义为用户标识符C)可以把if定义为用户标识符,但不能把define定义为用户标识符D)define和 if都不能定义为用户标识符你所选择的答案是:*.正确答案是:B X1 1.以下程序中,while循环的循环次数是main()int i=0;while(iIO)if(il)continue;if(i=5)break;i+;)A)1B)10C)6D)死循环,不能确定次数你所选择的答案是:*,正确答案是:D X1 2.以下程序的输出结果是f(int blj,i
5、nt m,int n)int i,s=O;for(i=m;in;i=i+2)s=s+bi;return s;)main()int x,a=l,2,3,4,5,6,7,8,9;x=f(a,3,7);printf(n%dn;x);)A)10B)18C)8D)15你所选择的答案是:*,正确答案是:A X13.若有以下定义和语句:int s45,(*ps)5;ps=s;则对S数组元素的正确引用形式是A)ps+lB)*(ps+3)C)psD)*(ps+l)+3你所选择的答案是:*,正确答案是:C X14.不合法的main函数命令行参数表示形式是A)main(int a,char*c)B)main(int
6、 arc,char*arv)C)main(int argc,char*argv)D)main(int argv,char*argcJ)你所选择的答案是:*,正确答案是:c X15.以下选项中合法的用户标识符是A)long B)_2Test C)3Dmax D)A.dat你所选择的答案是:*,正确答案是: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);程序运行后的输HI结果是A)4B)3C)2D)1你所选择的答案是:*,正
7、确答案是:B X17.有以下程序main()int aa44=l,2,3,4,5,6,7,8,3,9/0,2,4,2,9,6);int i,s=0for(i=0;i while do-whileD)if、for、continue你所选择的答案是:*,正确答案是:A X21.若有以下程序段int m=0 xabc,n=0 xabc;m-=n;printf(n%Xnn,m);执行后输出结果是()。A)0X0B)0 x0C)0D)OXABC你所选择的答案是:*,正确答案是:C X22.有以下程序main()int i=0,s=0;doif(i%2)i+;continue;i+;s+=i;while(
8、i7);printf(n%dnn,s);)执行后输出结果是()oA)16B)12C)28D)21你所选择的答案是:*,正确答案是:A X2 3.有以下程序#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(%d,%d,%d,f(&a,&b),f(&c,&b),f(&b,&a);I执行后输出结果是(A)7,8,8B)7,8,7C)8,7,7D)8,7,8你所选择的答案是:*,正确答案是:B X2 4.以下能正确定义数组并正确赋
9、初值的语句是()。A)int N=5,bNNl;B)intal2=l,3);C)intc2=l(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,70 5,6D)6,6你所选择的答案是:*,正确答案是:C X26.有以下程序main()int a3=1,2,3)44,5,0),(*pa)3,i;pa=a;for(i=0;i3;i+)if(i2)pali=pali-l;else pal
10、i=l;printf(n%dnn,a0 1 +a 1 1 +a 1 2);)执行后输出结果是()oA)7B)6C)8D)无确定值你所选择的答案是:*,正确答案是:A X2 7.有以下程序void fun(int*a,int i,int j)(int t;if(ij)(t=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(M%d,ai);)执行后的输出结果是A)6 5 4 3 2 1B)432 1 56C)4 5 6 1 2 3D)1 2 3 4 5 6你所选择的答案是:*
11、,正确答案是:A X2 8.有定义语句:inla=l,b=2,c=3,x;,则以下选项中各程序段执行后,x 的值不为3 的是()。A)if(ca)x=1;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
12、 x,int y)return(xy?x:y);你所选择的答案是:*,正确答案是:B X32.以下程序main()int x=3,y=2,z=l;printf(n%dn,x/y&-z);程序运行后的输出结果是()oA)3B)2C)1D)0你所选择的答案是:*,正确答案是:D X33.下列关于C 语言数据文件的叙述中正确的是()。A)文件由ASCH码字符序列组成,C 语言只能读写文本文件B)文件由二进制数据序列组成,C 语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件你所选择的答案是:*,
13、正确答案是:D X34.以下符合C 语言语法的实型常量是()。A)1.2E0.5 B)3.14.159E C).5E-3 D)E15你所选择的答案是:*,正确答案是:C X35.有以下程序char fun(char x,char y)if(x return y;main()inta=9,b=8,c=7 ;printf(%cnw,fun(fun(a.B),fun(b,C);)程序的执行结果是()oA)函数调用出错 B)8 C)9 D)7你所选择的答案是:*,正确答案是:D X36.有以下程序段int a10=l,2,3A5,6,7,8,9,10),*p=&a3,b;b=p5;b 中 的 值 是(
14、)。A)5 B)6 C)8 D)9你所选择的答案是:*,正确答案是:D X37.有以下程序int a=2;int f(int*A)return(*A)+;main()int s=0;int 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)S 是 struct类型的变量 D)T 是 struct S 类型的变量你
15、所选择的答案是:*,正确答案是:D X39.有以下程序main()int m=0256,n=256;printf(%o%on,mn,n);)程序运行后的输出结果是()。A)0256 0400B)0256 256C)256 400D)400 400你所选择的答案是:*,正确答案是:C X40.下列条件语句中,功能与其他语句不同的是()。A)if(a)printf(%dn,x);else printf(%dn,y);B)if(a=0)printf(dn”,y);else printf(,%dn,x);C)if(a!=0)printf(n%dn,x);else printf(n%dnu,y);D)i
16、f(a=0)printf(u%dnu,x);else printf(n%dnH,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=l;while(i=5)p*=i;i+;D)i=l;p=l;dop*=i;i+;while(i=5);你所选择的答案是:*,正确答案是:B X42.有以下程序int f(int a)r e t u r n a%2;m a i n()i n t s 8 =l,3,4
17、,2,3,6 ,i,d=0;f o r (i=0;f(s i );i+)d=d+s i ;pr i n t f(,%d,%d nH,i,s i );pr i n t f(%d n ,d);)程序运行后的输出结果是()。A)9B)4C)1 9D)2 1你所选择的答案是:*,正确答案是:B X4 3 .以下叙述中正确的是()A)局部变量说明为s t a t i c存储数,其生存期将得到延长B)全局变量说明为s t a t i c存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同你所选择的答案是:*,正确答案是:A X4 4 .
18、若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a b?a:c d?c:d的值()。A)1B)2C)3D)4你所选择的答案是:*,正确答案是:A X4 5 .有以下程序m a i n()(i n t p 8 =1 1,1 2,1 3,1 4,1 5,1 6,1 7,1 8),i=0,j=0;w h i l e(i+7)i f(p i%2)j+=p i ;pr i n t f(M%d”,j);)程序运行后的输出结果是()oA)4 2B)4 5C)5 6D)6 0你所选择的答案是:*,正确答案是:B X46.以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错
19、。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)你所选择的答案是:*,正确答案是:A X48.有以下程序void sort(int a,i
20、nt n)int i,j,t;for(i=0;i for(j=i+l;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,7,6,3,4,5,8,9,10,C)1,2,7,6,5,4,3,8,9,10,D)1,2,9,8,7,6,5,4,3,10,你所选择的答案是:*,正确答案是:C X4 9.有以下程序void swap 1 (int c0,int cl)in
21、t t;t=c00;c00=cl0;cl0=t;)void swap2(int*c0,int*cl)int t;t=*cO;*c0=*cl;*cl=t;)main()int a=3,5,b=3,5;swap 1 (a,a+1);swap2(&b0,&bl);printf(n%d%d%d%dnM,a0,al,b0,bl);程序运行后的输出结果是()。A)3 5 5 3B)5 3 3 5C)3 5 3 5D)5 3 5 3你所选择的答案是:*,正确答案是:5 0.有以下程序#i nclu dev o i d f(ch a r*s,ch a r*t)ch a r k;k=*s;*s=*t;*t=k;
22、s+;t-;i f(*s)f(s,t);ma i n()ch a r s t r10=a bcdefg ,*p;p=s t r+s t rlen(s t r)/2+1;f(p,p-2);pri nt f(H%s n,s t r);)程序运行后的输出结果是()。A)a bcdefg B)g fedcba你所选择的答案是:*,正确答案是:51.以下程序的功能是进行位运算ma i n()u ns i g ned ch a r a,b;a=7A3;b=4&3;pri nt f(n%d%dnn,a,b);)程序运行后的输出结果是()oA)4 3 B)7 3 C)7 0A XC)g bcdefa D)a
23、bedcfgB XD)4 0你所选择的答案是:*,正确答案是:A X52.以下不合法的数值常量是A)011B)leiC)8.0 E0.5D)Ox a bcd你所选择的答案是:*,正确答案是:C X53.若有定义:flo a t x=L5;i nt a=l,b=3,c=2;则正确的 s w i t ch 语句是A)s w i t ch(x)ca s e 1.0:pri nt f(,*nH);case 2.0:printf(*rT);B)switch(int)x);case 1:printf(*nn);case2:prinlf(*n);C)switch(a+b)case 1:printf(n*nu
24、);case 2+1:printf(”*n);D)switch(a+b)case 1:printf(*n);case c:printf(*nH);你所选择的答案是:*,正确答案是: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+)printfC4%d,t2-ii);程序的执行后的输出结果是A)753B)357C)369D)75 1你
25、所选择的答案是:*,正确答案是:B X5 6.设有以下定义和语句char str20=ProgramH,*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=O B)a+b=30 C)30 D)出错你所选择的答
26、案是:*,正确答案是:B X58.有以下程序main()(int k=5;while(-k)printf(%d,k-=3);printf(n);执 行 后 的 输 出 结 果 是。A)1 B)2 C)4 D)死循环你所选择的答案是:*,正确答案是:A X59.若有定义语句:intk23,*pk3;,则以下语句中正确的是一A)pk=k;B)pk0=&kl2;C)pk=k0;D)pkl=k;你所选择的答案是:*,正确答案是:B X60.有以下程序#include#define N 5#define M N+l#define f(x)(x*M)main()intil,i2;il=f(2);i2=f(
27、l+l);printf(%d%dn,il,i2);)程 序 的 运 行 结 果 是。A)12 12 B)11 7 C)11 11 D)127你所选择的答案是:*,正确答案是:B X二、填空题1.设x和y均为int型变量,且x=l,y=2,则以下表达式的值为().1.0+x/y你所选择的答案是:,正确常答案是:1.0或I,X2.F面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。#include#includevoid
28、fun(int a ,int n,int*max,int*d)int i;*max=a 0 ;*d=0;for(i=0;i+)if(*maxi,X3.设x和y均为int型变量,且x=l,y=2,则表达式double(l+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的值为你所选择的答案是:,正确答案是:20,X6.若有如下结构体说明:
29、struct STRU int a,b;char c;double d:struct STRU pl,p2;);请填空,以完成对t 数组的定义,t 数组的每个元素为该结构体类型1 H20;你所选择的答案是:,正确答案是:struct STRU,X7.以下程序输出的结果是【】。main()int a=5,b=4,c=3,d;d=(abc);prmtf(n%dnn,d);)你所选择的答案是:,正确答案是:0,X8.执行以下程序后,输 出#号 的 个 数 是 K 3。#includemain()向 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(%dn,s);你所选择的答案是:,正确答案是:efgh,X1 0.以下程序运行后的输出结果是【】。main()char c;int n=100;float f=10;double x;x=f*=n/=(c=50);printf(,%d%fnM,n,x);)你所选择的答案是:,正确答案是:220,X
限制150内