《华中科技大学C语言期末考试题库试题及答案汇总.doc》由会员分享,可在线阅读,更多相关《华中科技大学C语言期末考试题库试题及答案汇总.doc(180页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、华中科技大学C语言期末考试题库试题及答案汇总1设int a=12,则执行完语句a+=a=aa后,a的值是_D_.A、552 B、264 C、144 D、264知识点:算术表达式2以下变量x、y、z均为double类型且已正确赋值,不能正确表示数字式子x/(yz)的C语言表达式是_A_.A、x/yz B、x*(1/(yz)) C、x/y1/z D、x/y/z知识点:算术表达式3若有定义:int a=8,b=5,c;,执行语句c=a/b+0。4;后,c的值是_B_.A、1。4 B、1 C、2。0 D、2知识点:算术表达式4有如下程序main()int a; char c=10;float f=10
2、0.0; double x;a=f/=c=(x=6.5);printf(”d d 3.1f%3.1fn”,a,c,f,x);程序运行后输出结果是_B_。A、1 65 1 6.5 B、1 65 1。5 6。5 C、1 65 1。0 6。5 D、2 65 1.5 6。5知识点:赋值表达式5若变量a、i已正确定义,且i已正确赋值,合法的语句是_B_。A、a=1 B、+i; C、a=a+=5; D、a=int(i);知识点:赋值表达式6若变量已正确定义并赋值,下面符合C语言语法的表达式是_B_.A、a:=b+1 B、a=b=c+2 C、int 18。5%3 D、a=a+7=c+b知识点:赋值表达式7设
3、变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是_C_。A、x=x100+0。5/100。0 B、x=(x100+0.5)/100。0C、x=(int)(x*100+0。5)/100。0?? D、x=(x/100+0。5)100。0知识点:赋值表达式8在一个C程序中_B_。A、main函数必须出现在所有函数之前 B、main函数可以在任何地方出现C、main函数必须出现在所有函数之后 D、main函数必须出现在固定位置知识点:简单C语言程序的构成和格式9以下说法中正确的是_D_。A、define和printf都是C语句 B、#define是C语
4、句,而printf不是C、printf是C语句,但define不是 D、define和printf都不是C语句知识点:简单C语言程序的构成和格式10若k是int型变量,且有下面的程序片段k=-3if(k=0) printf(”#)else printf(&);上面程序片段的输出结果是_D_。A、# B、& C、#& D、有语法错误,无输出结果知识点:简单C语言程序的构成和格式11以下4个选项中,不能看作一条语句的是_D_。A、; B、a=0,b=0,c=0; C、if(a0); D、if(b=0) m=1;n=2;???知识点:简单C语言程序的构成和格式12有以下程序main()int a=0
5、,b=0;a=10; /* 给a赋值 /b=20; /* 给b赋值 /printf(”a+b=%dn”,a+b);程序运行后的输出结果是_B_。A、a+b=10 B、a+b=30 C、30 D、出错知识点:简单C语言程序的构成和格式13以下选项中,不能作为合法常量的是_B_。A、1。234e04 B、1。234e0.4 C、1。234e+4 D、1.234e0知识点:实型数据14以下符合C语言语法的实型常量是_C_。A、1。2E0。5 B、3.14159E C、。5E-3 D、E15知识点:实型数据15表达式3.6-5/2+1。2+5%2的值是_D_。A、4.3 B、4。8 C、3。3 D、3
6、.8知识点:算术表达式16下列定义变量的语句中错误的是_D_。A、int _int B、double int _C、char For D、float US$ 知识点:常量、变量和标识符17以下不合法的用户标识符是_C_。A、j2_KEY B、Double C、4d D、_8_知识点:常量、变量和标识符18以下4组用户定义标识符中,全部合法的一组是_A_.A、_main enclude sin B、If -max turboC、txt REAL 3COM D、int k_2 _001 ??知识点:常量、变量和标识符19以下定义语句中正确的是_C_.A、char a=A b=B; B、float
7、a=b=10.0;(正解a=10.0 b=10。0)C、int a=10,b=a; D、float a,b=a;?知识点:常量、变量和标识符20以下不能定义为用户标识符的是_D_。A、scanf B、Void C、_3com_ D、int知识点:常量、变量和标识符21以下有4组用户标识符,其中合法的一组是_C_。A、For -sub Case B、4d DO Size C、f2_G3 IF abc D、WORD Void define知识点:常量、变量和标识符22C语言中最简单的数据类型包括_B_。A、整型、实型、逻辑型 B、整型、实型、字符型C、整型、字符型、逻辑型 D、整型、实型、逻辑型、
8、字符型知识点:常量、变量和标识符23下列选项中,合法的C语言关键字是_D_.A、VAR B、cher C、integer D、default知识点:常量、变量和标识符24以下不能定义为用户标识符的是_D_。A、Main B、_0 C、_int D、sizeof知识点:常量、变量和标识符25下列叙述中正确的是_D_。A、C语言中既有逻辑类型也有集合类型 B、C语言中没有逻辑类型但有集合类型C、C语言中有逻辑类型但没有集合类型 D、C语言中既没有逻辑类型也没有集合类型知识点:常量、变量和标识符26当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是_C_。A、c=b=a; B、(a=c)
9、(b=c); C、(a=c)&(b=c); D、a=c=b;知识点:赋值表达式27以下选项中非法的表达式是_D_.A、0=x100 B、i=j=0 C、(char)(65+3) D、x+1=x+1知识点:赋值表达式28以下程序的输出结果是_B_。include stdio。h7main()int a,b,d=241;a=d/1009;b=(1)&(1);printf(”%d,%dn”,a,b);???A、6,1 B、2,1 C、6,0 D、2,0知识点:赋值表达式29以下循环体的执行次数是_C_。main()int i,j;for (i=0,j=1; i=j+1;i+=2,j-)printf(
10、d n”,i);A、3 B、2 C、1 D、0答案:C知识点:赋值表达式30有以下定义语句double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是_C_。A、a=a+b=b+ B、w%(int)a+b) C、(c+w)(int)a D、w=a=b;知识点:赋值表达式31设int a=12,则执行完语句a+=a=aa后,a的值是_D_.A、552 B、264 C、144 D、-264知识点:算术表达式32以下变量x、y、z均为double类型且已正确赋值,不能正确表示数字式子x/(y*z)的C语言表达式是_A_。A、x/yz B、x*(1/(y*z))
11、C、x/y*1/z D、x/y/z知识点:算术表达式33若有定义:int a=8,b=5,c;,执行语句c=a/b+0。4;后,c的值是_B_。A、1。4 B、1 C、2.0 D、2知识点:算术表达式34设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式 1/2(a+b)h) 计算结果不相符的是_B_。A、(a+b)h/2 B、(1/2)*(a+b)h C、(a+b)*h1/2 D、h/2(a+b)知识点:算术表达式35假定x和y为double型,表达式x=2,y=x+3/2的值是_D_。A、3。500000 B、3 C、2。000000 D、3。000000知识点:算术
12、表达式36若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是_C_。A、1 B、2 C、2。000000 D、2。500000知识点:算术表达式37若有以下程序段int c1=1,c2=2,c3;c3=1.0/c2c1;则执行后,c3中的值是_A_。A、0 B、0。5 C、1 D、2知识点:算术表达式38设有int x=11;则表达式(x+ 1/3)的值是_A_。?A、3 B、4 C、11 D、12知识点:算术表达式39下列程序的输出结果是_C_。main()double d=3。2; int x,y;x=1。2;y=(x+3.8)/5。0;printf(”d n”,d*y
13、);A、3 B、3.2 C、0 D、3.07知识点:算术表达式40请读程序片段:int i=65536;printf(”dn,i);上面程序片段的输出结果是_B_.A、65536 B、0 C、有语法错误,无输出结果 D、-1知识点:整型数据41若有以下定义和语句:int u=010,v=0x10,w=10;printf(”d,%d,%dn”,u,v,w);则输出结果是: _A_。A、8,16,10 B、10,10,10 C、8,8,10 D、8,10,10知识点:整型数据42在C语言中,不正确的int类型的常数是_A_。A、32768 B、0 C、037 D、0xAF知识点:整型数据43以下程
14、序的输出结果是_D_.main( )int k=17;printf(”d,o,%x n”,k,k,k);A、17,021,0x11 B、17,17,17 C、17,0x11,021 D、17,21,11知识点:整型数据44下面程序的输出是_C_.main()unsigned a=32768;printf(”a=dn,a);A、a=32768 B、a=32767C、a=32768 D、a=1知识点:整型数据45在C语言中,合法的长整型常数是_A_。A、0L B、4962710 C、324562& D、216D知识点:整型数据46C语言中运算对象必须是整型的运算符是_A_。A、= B、/ C、=
15、D、 5)printf(”%d,x);elseprintf(dn”,x); A、7和5 B、6和3 C、7和 D、6和4知识点:自加、自减运算符和逗号运算符60若t为double类型,表达式t=1,t+5,t+的值是_D_.A、1 B、6.0 C、2。0 D、1。0知识点:自加、自减运算符和逗号运算符61以下程序的输出结果是_A_.#includestdio。hmain()int i=10,j=10;printf(d,dn”,+i,j);A、11,10 B、9,10 C、010,9 D、10,9知识点:自加、自减运算符和逗号运算符62有以下程序main()int y=10;while(y-);
16、printf(”y=%dn,y);程序执行后的输出结果是_B_.A、y=0 B、y=1 C、y=1 D、while构成无限循环知识点:自加、自减运算符和逗号运算符63以下叙述中正确的是_B_.A、全局变量的作用域一定比局部变量的作用域范围大B、静态(static)类别变量的生存期贯穿于整个程序的运行期间C、函数的形参都属于全局变量D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值知识点:局部变量及其作用域和生存期64下面程序的输出是_C_。fun3(int x)static int a=3;a+=x;return(a);main()int k=2, m=1, n;n=fu
17、n3(k);n=fun3(m);printf(”dn,n);A、3 B、4 C、6 D、9知识点:局部变量及其作用域和生存期65以下叙述中正确的是_A_。A、局部变量说明为static 存储类,其生存期将得到延长B、全局变量说明为static 存储类,其作用域将被扩大C、任何存储类的变量在未赋初值时,其值都是不确定的D、形参可以使用的存储类说明符与局部变量完全相同知识点:局部变量及其作用域和生存期66有以下程序int fun(int x,int n)static int sum=0,i;for(i=0;in;i+) sum+=xi;return sum;main()int a=1,2,3,4,
18、5,b=6,7,8,9,,s=0;s=fun(a,5)+fun(b,4);printf(”%dn”,s);程序执行后的输出结果是_C_.A、45 B、50 C、60 D、55知识点:局部变量及其作用域和生存期67以下程序执行后sum的值是_C_.main()int i,sum;for(i=1;i6;i+) sum+=i;printf(”dn,sum);A、15 B、14 C、不确定 D、0知识点:局部变量及其作用域和生存期68以下程序的输出结果是_A_.main()int k=4,m=1,p;p=func(k,m); printf(”%d,,p);p=func(k,m); printf(”%d
19、n”,p);func(int a,int b)static int m=0,i=2;i+=m+1; m=i+a+b;return(m);A、8,17 B、8,16 C、8,20 D、8,8知识点:局部变量及其作用域和生存期70有以下程序fun(int x, int y)static int m=0,i=2;i+=m+1;m=i+x+y;return m;main()int j=1,m=1,k;k=fun(j,m); printf(”d,,k);k=fun(j,m); printf(dn”,k);执行后的输出结果是_B_.A、5,5 B、5,11 C、11,11 D、11,5知识点:局部变量及其
20、作用域和生存期71以下程序的输出结果是_B_.int a,b;void fun()a=100;b=200;main()int a=5,b=7;fun();printf(”%d%dn”,a,b);A、100200 B、57 C、200100 D、75知识点:全局变量及其作用域和生存期72有如下程序int func(int a,int b) return(a+b); main()int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(”%dn”,r);该程序的输出结果是_D_.A、12 B、13 C、14 D、15知识点:调用函数和被调用函数之间的数据传递73有以
21、下程序void f(int v,int w)int t;t=v;v=w;w=t;main()int x=1,y=3,z=2;if(xy) f(x,y);else if(yz) f(y,z);else f(x,z);printf(”d,d,dn,x,y,z);执行后输出结果是_C_.A、1,2,3 B、3,1,2 C、1,3,2 D、2,3,1知识点:调用函数和被调用函数之间的数据传递74有以下程序void f(int x,int y)int t;if(x2) return(fib(n-1)+fib(n-2);else return(2);main() printf(”ldn,fib(3));
22、该程序的输出结果是_B_。A、2 B、4 C、6 D、8知识点:函数的调用83设函数fun的定义形式为void fun(char ch,float x) 则以下对函数fun的调用语句中,正确的是_D_。A、fun(”abc,3。0); B、t=fun(D,16。5); C、fun (65,2.8); D、fun(32,32);知识点:函数的调用84有以下程序char fun(char x,char y)if(xy) return x;return y;main()int a=9,b=8,c=7;printf(”cn”,fun(fun(a,b),fun(b,c))); 程序的执行结果是_D_。A
23、、函数调用出错 B、8 C、9 D、7知识点:函数的调用85若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是_D_。A、函数调用可以作为独立的语句存在 B、函数调用可以作为一个函数的实参C、函数调用可以出现在表达式中 D、函数调用可以作为一个函数的形参知识点:函数的调用86有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是_A_.A、3 B、4 C、5 D、有语法错知识点:函数的调用92以下函数值的类型是_A_.fun(float x)float y;y=3x4;return y;A、int B、不确定 C、void
24、 D、float知识点:函数的定义和返回值93在C语言中,形参的缺省存储类是_A_。A、auto B、register C、static D、extern知识点:函数的定义和返回值94有以下程序int f(int a) return a%2; main()int s8=1,3,5,2,4,6,i,d=0;for(i=0;f(si);i+) d+=si;printf(dn”,d);程序运行后的输出结果是_A_。A、9 B、11 C、19 D、21知识点:函数的定义和返回值95在C语言中,函数的隐含存储类别是_C_。A、auto B、static C、extern D、无存储类别知识点:函数的定义
25、和返回值97若程序中定义了以下函数double myadd(double a,double b) return (a+b); 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是_A_。A、double myadd(double a,b); B、double myadd(double,double);C、double myadd(double b,double a); D、double myadd(double x,double y);知识点:函数的定义和返回值98若有以下程序#include stdio.hvoid f(int n)main()void f(int
26、 n);f(5);void f(int n); printf(”dn”,n); 则以下叙述不正确的是_C_.A、若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB、若在主函数前对函数f进行说明,则在主函数和其它函数中都可以正确调用函数fC、对于以上程序,编译时系统会出提示出错信息:提示对f函数重复说明D、函数f无返回值,所以可用void将其类型定义为无值型知识点:函数的说明99下列叙述中正确的是_D_。A、C语言编译时不检查语法 B、C语言的子程序有过程和函数两种C、C语言的函数可以嵌套定义 D、C语言所有函数都是外部函数知识点:库函数101以下不能正确定义二维数组的选项是_D_
27、.A、int a22=1,2; B、int a2=1,2,3,4;C、int a22=1,2,3; D、int a2=1,2,3,4;知识点:二维数组的定义和二维数组元素的引用102以下能正确定义二维数组的是_B_。A、int a3; B、int a3=2*3; C、int a3=; D、int a23=1,2,3,4;知识点:二维数组的定义和二维数组元素的引用103以下程序的输出结果是_A_。main()int a33=1,2,3,4,5,6,i,j,s=0;for (i=1;i3;i+)for(j=0;j=i;j+) s+=aij;printf(”%dn”,s);A、18 B、19 C、2
28、0 D、21知识点:二维数组的定义和二维数组元素的引用104以下程序的输出结果是_C_。main() int i,x33=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+)printf(”%d,”,xi2i);A、1,5,9 B、1,4,7 C、3,5,7 D、3。6。9知识点:二维数组的定义和二维数组元素的引用知识点:二维数组的定义和二维数组元素的引用106以下数组定义中错误的是_B_。A、int x3=0; B、int x23=1,2,3,4,5,6;C、int x3=1,2,3,4,5,6; D、int x23=1,2,3,4,5,6;知识点:二维数组的定义和二维数组元素的
29、引用107以下数组定义中不正确的是_D_。A、int a23; B、int b3=0,1,2,3;C、int c100100=0; D、int d3=1,2,1,2,3,1,2,3,4;知识点:二维数组的定义和二维数组元素的引用108有以下程序main()int m3=1,4,7,2,5,8,3,6,9;int i,j,k=2;for(i=0;i3;i+) printf(”d ”,mki); 执行后输出结果是_C_。A、4 5 6 B、2 58 C、3 6 9 D、7 8 9知识点:二维数组的定义和二维数组元素的引用109以下能正确定义数组并正确赋初值的语句是_D_.A、int N=5,bNN
30、; B、int a12=1,3;C、int c2=1,2,3,4; D、int d32=1,2,34;知识点:二维数组的定义和二维数组元素的引用111以下程序的输出结果是_A_。main()int a44=1,3,5,2,4,6,3,5,7;printf(”d%d%ddn,a03,a12,a21,a30);A、0650 B、1470 C、5430 D、输出值不定知识点:二维数组的定义和二维数组元素的引用112定义如下变量和数组:int i;int x33=1,2,3,4,5,6,7,8,9;则下面语句的输出结果是_C_.for(i=0;i3;i+) printf(”%d ”,xi2-i);A、
31、1 5 9 B、1 47 C、3 5 7 D、3 6 9知识点:二维数组的定义和二维数组元素的引用113有以下程序main()int x32=0,i;for(i=0;i3;i+) scanf(d”,xi);printf(”%3d3d%3dn”,x00,x01,x10);若运行时输入:2 4 6回车,则输出结果为_B_。A、 2 0 0 B、 2 0 4 C、 2 4 0 D、 2 4 6知识点:二维数组的定义和二维数组元素的引用130当调用函数时,实参是一个数组名,则向函数传送的是_B_。A、数组的长度 B、数组的首地址 C、数组每一个元素的地址 D、数组每个元素中的值知识点:函数之间对一维数组和数组元素的引用132有以下程序void sum(int a) a0=a-1+a1; main() int a10=1,2,3,4,5,6,7,8,9,10;sum (&a2);printf(”dn”,a2);程序运行后输出结果是_A_.A、6 B、7 C、5 D、8知识点:函数之间对一维数组和数组元素的引用138有以下程序main() char s=”abcde”;s+=2;printf(”%dn”,s0);执行后的结果是_D_。A、输出字符a的ASCII码 B、输出字符c的ASCII码 C、输出字符c D、程序出错知识点:函数之间对一维数组和数组元素的引用139请读程