《C语言期末复习题82427.docx》由会员分享,可在线阅读,更多相关《C语言期末复习题82427.docx(22页珍藏版)》请在第一文库网上搜索。
1、C程序设计复习题一、单项选择题(请从4个备选答案中选择最适合的一项,每小题1分,共20分)1算法具有5个特性,以下选项中不属于算法特性的是()o)有穷性B)简洁性C)有效性D)确定性2 .设有定义:f1oata=2,b=4,h=3;,其中a为梯形的上底,b为梯形的下底,h为梯形的高,以下C语言表达式不能计算出梯形面积的()(a+b)*h2B)(1/2)*(a+b)*hC)(a+b)*h*12D)h2*(a+b)3 .经inta=7;f1oatx=2.5,y=4.7;说明后,表达式x+a%3*(int)(x+y)%24的值是(A)2.500000B)2.750000C)3.500000D)0.0
2、000004 .若t为doub1e类型,表达式t=1,t+5,+t的值是A)1B)6.0C)7.0D)2.05 .若有以下定义和语句:intu=010,V=OX10,w=10;printf(%d,%d,%dn,u,v,w);则输出结果是A)8,16,10B)io,o,oC)8,8J0D)8,10,106 .以下选项中不合法的用户标识符是D)AS_88_mjA)_12B)abc7C)a-27 .若有以下定义和语句charc1=,b,c2=,e,;printf(,%d,%cn,c2-c1,c2-,a+An);则输出结果是A)2,MB)3,EC)2,ED)输出项与对应的格式控制不一致,输出结果不确定
3、8 .若有以下定义:chars20=,programming,*ps=s;则不能代表字符。的表达式是A)ps+2B)s2C)ps2D)ps+=2,*ps9 .设变量a为int,f为f1oat,i为doub1e,则表达式10+a+i*f的数据类型是()。A)int型B)f1oat型C)doub1e型D)不确定10 .设a为int,不能正确表达数学关系:1(Xa15的C语言表达式是()。A)10a10&a15D)!(a=15)11 .语句for(x=0,y=0;(y!=123)&(x4);x+);循环()。A)是无限循环B)循环次数不定C)执行4次D)执行3次12 .下面的程序main()inta
4、,b,s;scanf(zz%d%dzz,&a,&b);s=a;if(sb)s=b;s=s*s;printf(%dn”,s);)运行时,若从键盘输入3和2,则输出()。A)14B)16C)18D)913 .若ij已定义为int类型,则以下程序段中内循环体的总的执行次数是for(i=5;i;i-)for(j=0;jdo-whi1eC)if、whi1econtinueD)顺序结构、选择结构、循环结构17 .已知a=1,b=2,c=3,d=4,则表达式ab?a:cd?a:d的结果是A)4B)3C)1D)218 .若执行下面程序时,从键盘输入3,4,则输出是()。mainOinta,b,s;scanf(
5、,z%d,&a,&b);if(ab)s=b;e1ses=s*s;printf(%dn”,s);A)4B)16C)18D)2019 .若函数的类型和return语句中的表达式的类型不一致,则()。A)编译时出错B)运行时出现不正确的结果C)不会出错,且返回值的类型以ret.n语句中表达式的类型为准D)不会出错,且返回值的类型以函数类型为准20 .在C语言程序中,以下叙述正确的是()oA)函数的定义和函数的调用均可以嵌套B)函数的定义可以嵌套,但函数的调用不能嵌套C)函数的定义和函数的调用均不能嵌套D)函数的定义不能嵌套,但函数的调用可以嵌套21 .若用数组名作为函数调用的实参,则传递给形参的是(
6、)。A)数组的首地址B)数组的第一个元素的值O数组中全部元素的值D)数组元素的个数22 .在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是()oA)外部(extern)B)寄存器(register)C)自动(atuo)D)静态(StatiC)23 .在下面一组运算符中,优先级最高的运算符是A)=B)=C)%D)&24 .有如下函数调用语句func(rec1,rec2+rec3,rec4);该函数调用语句中,含有的实参个数是A)3B)4C)5D)有语法错25 .表示关系X=Y=Z的c语言表达式为A)(X=Y)&(Y=Z)B)(X=Y)AND(
7、Y=Z)C)(X=Y=Z)D)(X=Y)&(Y=Z)26 .C语言中,若未说明函数的类型,则系统默认该函数的类型是()。)f1oat型B)int型C)1ong型D)doub1e型27 .若定义数组inta34;,并以f(a)语句调用函数f,则在定义f函数时,对形参数组array错误的定义方式为()。)f(intarray6)B)f(intarray3)C)f(intarray4)D)f(intarray25)28 .下列一维数组初始化语句中,正确的是()。A)inta5=0,2,0,3,5;B)inta5=0;C)inta5=5*2);D)inta=(0,2,0,3,7);29 .现要定义一个
8、二维字符型数组cMN来存放字符串China,Tianjin和Education,则常量M和N的合理取值应为()。A)3和9B)2和10C)4和9D)3和1030 .若有说明charc=,N,a,n,K,a,i,;则对其元素的非法引用是()。)c0B)c9-6C)c2*2D)c731.在C语言中,运算对象必须是整型的运算符是A)*B)%C)/D)!32.设有以下宏定义:#defineN3#defineY(n)(N+1)*n)则执行语句:z=2*(N+Y(5+1);后,z的值为A)出错B)42C)48D)5433.以下结构体变量的字节数是structstudent(intnum;charname8
9、;doub1escore;unionintc1ass;charposition10;!category;stu;A)18B)30C)28D)3234.若有代数式黄,则错误的表达式是ae/bc35 .要将字符串str2连接到字符串Str1后,应使用的函数是()。)strcpy(str1,str2);B)strcat(str2,str1);C)Strcat(str1,str2);D)StrCmP(Str2,Str1);B)P指向a,而不再指向b36 .若定义inta=8,b,*p=&b;则赋值语句p=&a执行后,结果为()。C)P指向b,而b取a的值D)P指向a,a取b的值37.定义以下结构体类型
10、structs(inta;f1oatf;m3;语句printf(zz%dzz,SiZeof(m)的输出结果为()。38.)4B)12下面程序的输出是main()(intx=32;Printf(dn,x=x1);)A)100B)160C)18D)6C)120D)6439.不正确的转义字符是A)R018B)“V”C)“xaa”D)4tV,40.以下程序执行后sum的值是voidmain()inti,sum;for(i=1;i6;i+)sum+=i;printf(%dn,sum);)A)15B)14C)不确定D)0A)p同时指向a和b二、程序填空题(每空1分)1 .以下程序调用readrec函数读入
11、数据,把3名学生的学号、姓名、四门成绩以及平均分放在一个结构体数组中,学生的学号、姓名和四门成绩由键盘输入,然后计算出平均分放在结构体对应的域中,调用WritreC函数输出3名学生的记录。请填空。#inc1ude#defineN3structstudcharnum15,name10;ints4;intave;stN;writrec(structstud*s)intk,i;pritf(nnumtnametmark1tmark2tmark3tmark4taven);for(k=0;k3;k+,s+)Drintfr%st%st”,S”,S);for(i=0;iz);printf(,%dn-f1ve)
12、;)readrec(structstud*p)inti,j,sum;for(j=0;jnum);gets(p-name);for(i=0;i5/):getchar();sum=O;for(i=0;isi;p-ave-sum4:main()readrec(st);writrec(st);)2 .求1!+3!+5!+7!+21!之和#inc1udevoidmain()f1oats,t;intn;s=0;t=1;for(n=1;n=21;n+)(t=t*n;if(n%2!=0)s+=t;)Printf(1!+3!+5!+7!+21!=%en”,s);))问题,每行控制输出3 .用数组来处理求FibOnaCCi数列(即:1,1,2,3,5,8,135个数据。ttinc1udevoidmain()(inti;intf20=();for(i=2;i20;i+)fi=fiT+fA2;for(i=0;i20;i+)(if(i%50)printf(“n”);printf(w%12dw,fi);printf(nw);4 .以下程序调用readrec函数读入数据,把3名学生的学号、姓名、四门成绩以及平均分放在一个结构体数组中,学生的学号、姓名和四门成绩由键盘输入,然后计算出平均分放在结构体对应的域中,调用WritreC函数输出3名学生的记录。请填空。#