《华中科技大学C语言末考试题库试题及答案汇总.docx》由会员分享,可在线阅读,更多相关《华中科技大学C语言末考试题库试题及答案汇总.docx(298页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、华中科技大学C语言期末考试题库试题及答案汇总1 .设inta =12,则执行完语句a +=a-=a*a 后,a的值是D oA、552B、264C、144D、-264知识点:算术表达式2 .以下变量x、y、z均为double类型且已正确赋值,不能正确表示数字式子x/(y*z)的C语言表达式是AoA、x/y*zB、x*(l/(y*z)C、x/y*l/zD、x/y/z 知识点:算术表达式3 .若有定义:inta=8,b=5,c;,执行语句 c=a/b+0.4;后,c的值是B。A、1.4B、IC、2.0D、2知识点:算术表达式4 .有如下程序main()inta;charc=10;floatf=100
2、.0;doublex;a=f/=c*=(x=6.5);printf(%d%d%3.1f%3.1fnza,c,f,x);程序运行后输出结果是B。A、16516.5B,1651.56.5C,1651.06.5D.2651.56.5知识点:赋值表达式5 .若变量a、i已正确定义,且i已正确赋值,合法的语句是BoA、a = lB、+i;C、d=a+=5;D、a = int(i);知识点:赋值表达式6 .若变量已正确定义并赋值,下面符合C语言语法的表达式是 B oA、d:= b+lB、a = b=c+2C、intl8.5%3D、 a=a+7=c+b知识点:赋值表达式7 .设变量x为float型且已赋值,
3、则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是 C OA、x=x*100+0.5/100.OB.x=(x*100+0.5)/100.0C、x=(int)(x*100+0.5)/100.0? D、 x=(x/100+0.5)*100.0知识点:赋值表达式8 .在一个C程序中BoA.main函数必须出现在所有函数之前B、main 函数可以在任何地方出现C、main函数必须出现在所有函数之后Domain 函数必须出现在固定位置知识点:简单c语言程序的构成和格式9 .以下说法中正确的是 D oA、#define 和 printf 都是 C 语句 B、#define 是C语句,而p
4、rintf不是C、printf是C语句,但#16甘1不是D、#define和printf都不是C语句知识点:简单C语言程序的构成和格式10 .若k是int型变量,且有下面的程序片段k=-3if(k0);D. if(b=0)m = l;n =2;?知识点:简单c语言程序的构成和格式12 .有以下程序main()inta = O,b=O;d =10;/*给 a 赋值*/b=20;/*给 b 赋值*/printf(,a+b=%dn/a-i-b);程序运行后的输出结果是BoA、a + b =10B、a + b =30C、30D、出错知识点:简单c语言程序的构成和格式13 .以下选项中,不能作为合法常量
5、的是_BoA、1.234eO4B、1.234eO.4C,1.234e+4D、1.234e0知识点:实型数据14 .以下符合C语言语法的实型常量是COA、1.2E0.5B,3.14159EC.5E-3D、E15知识点:实型数据15.表达式3.6-5/2+L2+5%2的值是_DoA、4.3B、4.8C、3.3D.3.8知识点:算术表达式16 .下列定义变量的语句中错误的是_DoA、int_intB、doubleint_C charForD. floatUS$知识点:常量、变量和标识符17 .以下不合法的用户标识符是_C。A、j2_KEYB、DoubleC.4dD、_8_知识点:常量、变量和标识符1
6、8 .以下4组用户定义标识符中,全部合法的一组是 A。A、_mainencludesinB, If-maxturboC、txtREAL3COMD, intk_2_001?知识点:常量、变量和标识符19 .以下定义语句中正确的是 C oA、chara =,A,b=B,;B. floata = b=10.0;(正解 a =10.0b=10.0)CJnta =10z*b=&a;D.float*a,b=&a;?知识点:常量、变量和标识符20 .以下不能定义为用户标识符的是_DoA、scanfB、VoidC._3com_D. int知识点:常量、变量和标识符21 .以下有4组用户标识符,其中合法的一组是
7、C0A、For-subCaseB.4dD0SizeC、 f2_G3IFabcD. WORDVoiddefine知识点:常量、变量和标识符22 .C语言中最简单的数据类型包括_B oA、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型知识点:常量、变量和标识符23 .下列选项中,合法的C语言关键字是_D。A、VARB、cherC、integerD、default知识点:常量、变量和标识符24 .以下不能定义为用户标识符的是_D。A、MainB、_0C、_intD、sizeof知识点:常量、变量和标识符25 .下列叙述中正确的是_D oA、C语言中既有
8、逻辑类型也有集合类型B、C 语言中没有逻辑类型但有集合类型C、C语言中有逻辑类型但没有集合类型D、C 语言中既没有逻辑类型也没有集合类型知识点:常量、变量和标识符26 .当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是 C oA、c=b=a;B.(a=c) II (b=c);C、(a=c)&(b=c);D、a=c=b;知识点:赋值表达式27 .以下选项中非法的表达式是DA、0=x100B, i=j = OC.(char)(65+3)D、x+l=x+l知识点:赋值表达式28 .以下程序的输出结果是B,#include7main()inta,b,d=241;a=d/100%9;b=(
9、-l)&(-l);printf(u%d,%dn”,d,b);?A、6,IB、2,1C、6,0D、2,0知识点:赋值表达式29 .以下循环体的执行次数是Comain()intij;for(i=0,j = l;i5)pnntf(%dn,x);elseprintf(%dn,x);)则输出是 B oA、7B、6C、5D、4知识点:自加、自减运算符和逗号运算符50 .有以下程序main()charal =M,a2=m;printf(%cnn,(alza2);以下叙述中正确的是B。A、程序输出大写字母MB、程序输出小写字母 mC、格式说明符不足,编译出错D、程序运行时产生出错信息知识点:自加、自减运算符和
10、逗号运算符51 .以下程序的输出结果是 B omain()inta;printf(%dnz(a=3*5,a*4za+5);)A、65B、20C、15D、10知识点:自加、自减运算符和逗号运算符53 .设有如下程序段intx=2002,y=2003;printf(%dn,(x,y);则以下叙述中正确的是 D oA、输出语句中格式说明符的个数少于输出项的个数,不能正确输出B、运行时产生错误信息C、输出值为2002D、输出值为2003知识点:自加、自减运算符和逗号运算符54 .有以下程序main()intx,y,z;x=y=l;z=x+,y+,+y;printf(”%d,%d,%drT,x,y,z)
11、;)程序运行后的输出结果是COA、2,3,3B、2,3,2C、2,3,ID、2,2,1知识点:自加、自减运算符和逗号运算符55 .设有以下定义inta = O;doubleb=1.25;charc=A;#defined2则下面语句中错误的是 D oA、a+;B、b+;C、c+;D、d +;知识点:自加、自减运算符和逗号运算符56.以下程序的输出结果是Do main()intx=10,y=10;printf(%d%dn,x-y);)A、1010B.99C、910D、109知识点:自加、自减运算符和逗号运算符57 .若x和y都是int型变量,x=100、y=200,且有下面的程序片段printf(
12、n%d,(x,y);上面程序片段的输出结果是A-oA、200B、100C,100200D.输则格式符不够,输出不确定的值知识点:自加、自减运算符和逗号运算符58 .设有如下定义:intx=10zy=3zz;则语句printf(%dn,z=(x%y,x/y);的输出结果是DoA、IB、OC、4D、3知识点:自加、自减运算符和逗号运算符59 .两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是Aomain()(intx;scanf(%d,&x);if(x+5) printf(%d,x);elseprintf(%dnzx);)A、7和5B、6和3C、7和 D、6和4知识点:自加、自减运算符
13、和逗号运算符60 .若 t 为 double 类型,表达式 t=l,t+5,t+的值是DoA、IB、6.0C、2.0D、1.0知识点:自加、自减运算符和逗号运算符61 .以下程序的输出结果是 A o#includemain()inti =10J=10;printf(,%d,%dn,+i,j-);)A、9,IOC、010,9D、10,9知识点:自加、自减运算符和逗号运算符62 .有以下程序main()inty=10;while(y-);printf(y=%dn,y);)程序执行后的输出结果是 B oA、y=OB、y=-lC、y=lD、while 构成无限循环知识点:自加、自减运算符和逗号运算符6
14、3 .以下叙述中正确的是 B oA、全局变量的作用域一定比局部变量的作用域范围大B、静态(static)类别变量的生存期贯穿于整个程序的运行期间C、函数的形参都属于全局变量D、未在定义语句中赋初值的auto变量和static 变量的初值都是随机值知识点:局部变量及其作用域和生存期64 .下面程序的输出是Cofun3(intx)staticinta =3;a +=x;return(a);)main()intk=2,m = l,n;n=fun3(k);n=fun3(m);printf(%dnzn);)A、3B、4C、6D、9知识点:局部变量及其作用域和生存期65 .以下叙述中正确的是AoA、局部变
15、量说明为static存储类,其生存期将得到延长B、全局变量说明为static存储类,其作用域将被扩大C、任何存储类的变量在未赋初值时,其值都是不确定的D、形参可以使用的存储类说明符与局部变量完全相同知识点:局部变量及其作用域和生存期66 .有以下程序intfun(intx jntn)staticintsum = OJ;for(i=0;in;i +)sum+=xi;returnsum;main()in 匕口=1,2,3,4,5,b=6,7,8,9,s=0;s=fun(a,5)+fun(b,4);printf(%dn,s);)程序执行后的输出结果是C0A、45B、50C、60D、55知识点:局部变
16、量及其作用域和生存期67 .以下程序执行后sum的值是 C omain()inti,sum;for(i = l;i6;i+)sum+= i;printf(%dnzsum);)A、15B、14C、不确定 D、0知识点:局部变量及其作用域和生存期68.以下程序的输出结果是A main()intk=4zm = l,p;p=func(k,m);printf(%d,zp); p=func(k,m);printf(%dn,p);func(intajntb)staticintm =0J =2;i += m + l;m = i+a+b;return(m);)A、8,17B、8,16C、8,20D、8,8知识点
17、:局部变量及其作用域和生存期70.有以下程序fun(intxzinty)staticintm =0J =2;i += m + l;m = i+x+y;return m;)main()intj = lzm = l,k;k=fun(j,m);printf(%d/,k);k=fun(j,m);printf(%dn,k);)执行后的输出结果是 B oA、5,5B、5,11C、11,5知识点:局部变量及其作用域和生存期71.以下程序的输出结果是B inta,b;voidfun()a =100;b=200;main()inta =5,b=7;fun();printf(%d%dn,a,b);)A、10020
18、0B.57C、200100D.75知识点:全局变量及其作用域和生存期72 .有如下程序intfunc(intajntb)y)f(x,y);elseif(yz)f(y,z);elsef(x,z);printf(”%d,%d,%drT,x,y,z);)执行后输出结果是CoA、1,2,3B、3,1,2C、1,3,2D、2,3,1知识点:调用函数和被调用函数之间的数据传递74 .有以下程序voidf(intx,inty)intt;if(x2)return(fib(n-l)+fib(n-2);elsereturn(2);)main()printf(%ldn,fib(3);该程序的输出结果是BoA、2B、
19、4C、6D、8知识点:函数的调用83 .设函数fun的定义形式为voidfun(charch,floatx)则以下对函数fun的调用语句中,正确的是_DoA、fun(abcz3.0);B. t=fun(Dz16.5);C. fun(65,2.8);D、fun(32,32);知识点:函数的调用84 .有以下程序charfun(charx,chary)if(xy)returnx;returny;)main()inta =9,b=,8,c=,7,;printf(%cnzfun(fun(a,b),fun(b,c);)程序的执行结果是DoA、函数调用出错B、8C、9D、7知识点:函数的调用85 .若已定
20、义的函数有返回值,则以下关于该函数调用的叙述中错误的是DoA、函数调用可以作为独立的语句存在B、函数调用可以作为一个函数的实参C、函数调用可以出现在表达式中D、函数调用可以作为一个函数的形参知识点:函数的调用86 .有如下函数调用语句func(recl,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是_A。A、3B、4C、5D、有语法错知识点:函数的调用92 .以下函数值的类型是Ao fun(floatx)floaty;y=3*x-4;returny;)A、intB、不确定 C、voidD、float知识点:函数的定义和返回值93 .在C语言中,形参的缺省存储类是
21、A。A、autoB、registerC、staticD. extern知识点:函数的定义和返回值94 .有以下程序intf(inta)returna%2;main()ints8=l,3,5,2,4,6,i,d=0;for(i=0;f(si);i+)d +=si;printf(%dn,d);)程序运行后的输出结果是 A oA、9B、11C、19D、21知识点:函数的定义和返回值95 .在C语言中,函数的隐含存储类别是COA、autoB、staticC、externD,无存储类别知识点:函数的定义和返回值97 .若程序中定义了以下函数doublemyadd(doublea,doubleb)retu
22、rn(a + b);并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是_AoA、doublemyadd(doubled,b);B、doublemyadd(double,double);C、doublemyadd(doubleb,doublea);D、 doublemyadd(doublex,doubley);知识点:函数的定义和返回值98 .若有以下程序#includevoidf(intn)main()voidf(intn);f;voidf(intn);printf(%dnzn);则以下叙述不正确的是COA、若只在主函数中对函数f进行说明,则只能在主函数中正确调用
23、函数fB、若在主函数前对函数f进行说明,则在主函数和其它函数中都可以正确调用函数fC、对于以上程序,编译时系统会出提示出错信息:提示对f函数重复说明D、函数f无返回值,所以可用void将其类型定义为无值型知识点:函数的说明99 .下列叙述中正确的是DoA、C语言编译时不检查语法B、C语言的子程序有过程和函数两种C、C语言的函数可以嵌套定义D、C语言所有函数都是外部函数知识点:库函数101 .以下不能正确定义二维数组的选项是_DoA、inta22=lz2;B.inta2=l,2,3,4;C、irta2=123;D、 inta2=l,2,3,4;知识点:二维数组的定义和二维数组元素的引用102 .
24、以下能正确定义二维数组的是BoA. inta3;B. inta3=2*3;C.inta3=);D.知识点:二维数组的定义和二维数组元素的引用103 .以下程序的输出结果是Aomain()inta33=l,2,3,4,5,6,i,j,s=0;for(i = l;iv3;i+)for(j=0;j= i;j+)s+=aij;printf(%dnzs);)A、18B、19C、20D、21知识点:二维数组的定义和二维数组元素的引用104 .以下程序的输出结果是 C 0main()(nti,x33=l,2,3,4,5,6,7,8,9;for(i=0;i3;i+)printf(%d,xi2-i);)A、1,
25、5,9B、1,4,7C、3,5,7D、3.6.9知识点:二维数组的定义和二维数组元素的引用知识点:二维数组的定义和二维数组元素的引用106.以下数组定义中错误的是B-0A. intx3=0; B、C、intx3=l,2,3,4,5,6;D、 intx23=l,2,3,4A6;知识点:二维数组的定义和二维数组元素的引用107.以下数组定义中不正确的是Do A. inta23;B. intb3=0,lz2z3;C、intc100100=0;D.intd3=l,2,l,2,3,l,2,3,4;知识点:二维数组的定义和二维数组元素的引用108.有以下程序main()intm3=l,4,7,2,5,8,
26、3,6,9;inti,j,k=2;for(i=0;i3;i+)printf(%dAmki);)执行后输出结果是COA、456B、258C、369D、789知识点:二维数组的定义和二维数组元素的引用109.以下能正确定义数组并正确赋初值的语句是DoA、intN =5,bNN;B、intal2=l,3;C、intc2=l,2,3,4;D、 intd32=l,2,34);知识点:二维数组的定义和二维数组元素的引用111.以下程序的输出结果是Ao main()inta44=l,3,5,2,4,6,3,5,7;printf(%d%d%d%dn,a03,al2z a2l,a30);)A、0650B、147
27、0C、5430D、输出值不定知识点:二维数组的定义和二维数组元素的引用112.定义如下变量和数组:inti;intx33=l,2,3,4,5,6,7,8,9;则下面语句的输出结果是 C 0for(i=0;i3;i+)printf(%d,xi2-i);A、159B、147C、357D、369知识点:二维数组的定义和二维数组元素的引用113.有以下程序main()intx32=0,i;for(i=0;i3;i+)scanf(%d,xi);printf(,%3d%3d%3dn,x00,x0lz xlO);)若运行时输入:246V回车,则输出结果为BoA、200B、204C、240D、246知识点:二
28、维数组的定义和二维数组元素的引用130.当调用函数时,实参是一个数组名,则向函数传送的是BoA、数组的长度B、数组的首地址C、数组每一个元素的地址D、数组每个元素中的值知识点:函数之间对一维数组和数组元素的引用132.有以下程序voidsum(inta)d0=dT+dl;main()inta10=l,2,3,4,5,6,7,8,9,10;sum(&a2);printf(%dn,a2);)程序运行后输出结果是 A oA、6B、7C、5D、8知识点:函数之间对一维数组和数组元素的引用138 .有以下程序main()chars=abcde;s+=2;printf(%dn,sO);)执行后的结果是Do
29、A、输出字符a的ASCH码B、输出字符c的 ASCH码C、输出字符CD、程序出错知识点:函数之间对一维数组和数组元素的引用139 .请读程序:#includef(intbJntn)r=l;for(i=0;i inta= nstring;B. inta5=0,lz2,3,4,5);C、chars=string;D. chara=0,l,2,3,4/5;知识点:一维数组的定义和一维数组元素的引用144.以下能正确定义一维数组的选项是BoA、inta5=0,l,2,3,4,5;B、 chara =0,1,2,3,4,5;C、chara =,A7B,C);D. inta5=0123;知识点:一维数组的
30、定义和一维数组元素的引用145.有如下程序 main()intn5=0,0,0,i,k=2;for(i=0;ik;i+) ni= ni+l;printf(%dnHznk);该程序的输出结果是D。A、不确定的值B、2C、1D、0知识点:一维数组的定义和一维数组元素的引用146.以下程序的输出结果是Co main()=0;i-)ai=10-i;printf(%d%d%d,a2/a5za8);)A、258B、741C、852D、369知识点:一维数组的定义和一维数组元素的引用147.执行下面的程序段后,变量k中的值为Aointk=3,s2;s0= k;k=sl*10;A、不定值 B、32C、30D、
31、10知识点:一维数组的定义和一维数组元素的引用170 .以下能正确计算定义且赋初值的语句是BoA、intnl = n2=10;B、charc=32;C、fioatf=f+l.l;D, doublex=12.3E2.5知识点:赋值语句171 .以下合法的赋值语句是BoA、x=y=100B, d-;C、x+y;D、c=int(a+b);172 .下列语句中符合C语言语法的赋值语句是DoA、a =7+b+c=a+7;B, a =7+b+=a+7;C、a =7+b,b+,a+7D、a =7+bAc=a+7;173 .请选出合法的C语言赋值语句BoA、a = b=58B、i+;C、a =58,b=58D、 k=int(a+b);174 .下面程序的输出是Comain()intx=10,y=3;printf(%dn,y=x/y);)A、OB、IC、3D、不确定的值知识点:数据输出175 .已知字母A的ASCH码为十进制的65,下面程序的输出是Aomain()charchi,ch2;chl=,A,+,5-3;ch2=,A+6-3;printf(%d,%cn,chl,ch2);A、67,DB、B,CC、C,DD、不确定的值知识点:数据输出176 .下列程序的运行结果是Bo#include main()inta