《大学C语言期末考试题库试题及答案汇总题集.docx》由会员分享,可在线阅读,更多相关《大学C语言期末考试题库试题及答案汇总题集.docx(217页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1.下列定义变量的语句中错误的是.A、int _int B, double intC char For D, float US$(不能使用$等)答案:D知识点:常量、变量和标识符2.以下不合法的用户标识符是 OA、j2_KEY B、DoubleC,4d D、_8_答案:C(第一个字符必须是字母或下划线)知识点:常量、变量和标识符3.以下4组用户定义标识符中,全部合法的一组是.A、_main enclude sinB、If -max turboC、txt REAL 3C0MD、int k_2_001?答案:A知识点:常量、变量和标识符4.以下定义语句中正确的是。A、char a =A b=B;B
2、、float a = b=10.0;(正解 a =10.0 b=10.0)C, int a =10,*b=&a;D、float *a,b=&a;?答案:C知识点:常量、变量和标识符5.以下不能定义为用户标识符的是。A、scanf B、VoidC、_3com_ Ds int答案:D知识点:常量、变量和标识符6.以下有4组用户标识符,其中合法的一组是A、For -sub CaseB、4d DO SizeC、f2_G3 IF abcD、WORD Void define答案:C知识点:常量、变量和标识符7.C语言中最简单的数据类型包括 oA、整型、实型、逻辑型B,整型、实型、字符型C、整型、字符型、逻
3、辑型D、整型、实型、逻辑型、字符型答案:B知识点:常量、变量和标识符下列选项中,合法的C语言关键字是。A、VAR B、cher C integer D default答案:D知识点:常量、变量和标识符9.以下不能定义为用户标识符的是。A, Main B、_0 C、Jnt D、sizeof答案:D (是关键字)知识点:常量、变量和标识符10.下列叙述中正确的是。A、C语言中既有逻辑类型也有集合类型B、C语言中没有逻辑类型但有集合类型C、C语言中有逻辑类型但没有集合类型D、C语言中既没有逻辑类型也没有集合类型答案:D知识点:常量、变量和标识符11.当c的值不为0时,在下列选项中能正确将c的值赋给变
4、量a、b的是A、c=b=a; B、(a=c) II (b=c);C、(a=c)&(b=c); D, a=c=b;答案:C知识点:赋值表达式12.以下选项中非法的表达式是。A、0= x100 B、i=j =0C、(char)(65+3) D、x+l=x+l答案:D知识点:赋值表达式13.以下程序的输出结果是。#indude main()int a,b,d=241;a=d/100%9;b=(-l)&(-l);printf(%d,%dn,a,b);?A、6,1 B、2,1 C、6,0 D、2,0答案:B知识点:赋值表达式14.以下循环体的执行次数是。main()int i,j;for (i=0,j=
5、l; i(c+w)%(int)aD, w=a=b;答案:C知识点:赋值表达式16.有如下程序main()int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf(%d %d %3.1f%3.1fn,a,c,f,x);程序运行后输出结果是。A、16516.5B,1651.56.5C、1651.06.5D、2651.56.5答案:B知识点:赋值表达式17.若变量a、i已正确定义,且i已正确赋值,合法的语句是 oA、a= l B,+i; C、a=a+=5; D、a=int(i);答案:B知识点:赋值表达式18.若变量已正确定义并赋
6、值,下面符合C语言语法的表达式是.A、a:=b+l B、a=b=c+2C、int 18.5%3 D、a=a+7=c+b答案:B知识点:赋值表达式20.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是0A、x=x*100+0.5/100.0B、x=(x*100+0.5)/100.0C、x=(int)(x*100+0.5)/100.0D、x=(x/100+0.5)*100.0答案:C知识点:赋值表达式22.在一个C程序中。A、main函数必须出现在所有函数之前B、main函数可以在任何地方出现C、main函数必须出现在所有函数之后D、main函数
7、必须出现在固定位置答案:B知识点:简单C语言程序的构成和格式23.以下说法中正确的是。A、#define 和 printf 都是 C 语句B、#define是C语句,而printf不是C、printf是C语句,但#define不是D、#define和printf都不是C语句答案:D知识点:简单C语言程序的构成和格式24. 若k是int型变量,目.有下面的程序片段k=-3if(k0); D、if(b=O) m=l;n=2;?答案:D知识点:简单C语言程序的构成和格式有以下程序main()A、3 B、3.2 C、0 D,3.07答案:C知识点:算术表达式40.请读程序片段:int i=65536;
8、printf(%dn,i);上面程序片段的输出结果是。A、65536 B、0C、有语法错误,无输出结果D、-1答案:B知识点:整型数据41.若有以下定义和语句:int u=010,v=0xl0,w=10;printf(%d,%d,%dn,u,v,w);则输出结果是:。A、8,16,10 B、10,10,10C、8,8,10 D、8,10,10知识点:整型数据42.在C语言中,不正确的int类型的常数是A、32768 B、0 C、037 D、OxAF答案:A知识点:整型数据43.以下程序的输出结果是。main()int k=17;printf(%d,%o,%xA、17,021,0x11 B、17
9、,17,17C,17,0x11,021 D,17,21,11答案:D知识点:整型数据44.下面程序的输出是。main()unsigned a=32768;printf(a=%dn,a);A、 a=32768 B、 a=32767C, a=-32768 D、a=-l答案:c知识点:整型数据45.在C语言中,合法的长整型常数是。A、OLB、4962710C、324562& D、216D答案:A知识点:整型数据46.C语言中运算对象必须是整型的运算符是A、%= B、/ C、= D、=答案:A知识点:整型数据47.以下选项中不属于C语言的类型名称是。A、signed short intB, unsig
10、ned long intC, unsigned intD、long short答案:D知识点:整型数据48.有以下程序main()( int m =0256,n =256;printf(%o %on,m,n);程序运行后的输出结果是.A、02560400 B、0256256C、256400 D、400400答案:C知识点:整型数据49.若执下面程序时从键盘上输入5,main()int x;scanf(%d,&x);if(x+5) printf(%dn,x);else printf(%dn,x);则输出是。A、7 B、6 C、5 D、4答案:B知识点:自加、自减运算符和逗号运算符50.有以下程序
11、main ()char al=M, a2=m;printf(%cn,(al,a2);)以下叙述中正确的是。A、程序输出大写字母MB、程序输出小写字母mC、格式说明符不足,编译出错D、程序运行时产生出错信息答案:B知识点:自加、自减运算符和逗号运算符51.以下程序的输出结果是。main()int a;printf(%dn,(a=3*5,a*4,a+5);)A、65 B、20 C,15 D、10答案:B知识点:自加、自减运算符和逗号运算符53.设有如下程序段int x=2002,y =2003;printf(%dn,(x,y);则以下叙述中正确的是。A、输出语句中格式说明符的个数少于输出项的个数,
12、不能正确输出B、运行时产生错误信息C、输出值为2002D、输出值为2003答案:D知识点:自加、自减运算符和逗号运算符54.有以下程序main()5)printf(%d,x);elseprintf(%dn,x-);A、7和5B、6和3C、7和4D、6和4答案:A知识点:自加、自减运算符和逗号运算符60.若t为double类型,表达式t=l,t+5,t+的值是。A、1 B、6.0 C、2.0 D、1.0答案:D知识点:自加、自减运算符和逗号运算符61.以下程序的输出结果是 o#includemain()(int i=10,j=10;printf(%d,%dn/+i,j-);A、11,10 B,9
13、,10 C、010,9 D,10,9答案:A知识点:自加、自减运算符和逗号运算符62.有以下程序main()(int y=10;while(y);printf(y=%dn,y);)程序执行后的输出结果是.A、y=0 B、y=-l C、y=lD、while构成无限循环答案:B知识点:自加、自减运算符和逗号运算符63.以下叙述中正确的是。A、全局变量的作用域一定比局部变量的作用域范围大B、静态(static)类别变量的生存期贯穿于整个程序的运行期间C、函数的形参都属于全局变量D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值答案:B 知识点:局部变量及其作用域和生存期64.下
14、面程序的输出是。fun3(int x)static int a=3;a+=x;return(a);main()int k=2, m=l, n;n=fun3(k);n=fun3(m);printf(%dn,n);A、3 B、4 C、6 D、9答案:C知识点:局部变量及其作用域和生存期65. 以下叙述中正确的是。A、局部变量说明为static存储类,其牛存期将得到延长B、全局变量说明为static存储类,其作用域符被扩大C、任何存储类的变量在未赋初值时,其值都是不确定的D、形参可以使用的存储类说明符与局部变量完全相同答案:A知识点:局部变量及其作用域和生存期66.有以下程序int fun(int
15、x,int n)static int sum=O,i;for(i=0;in;i+) sum +=xi;return sum;main()inta=l,2,3,4,5,b=6,7,8,9,s=0;s=fun(a,5)+fun(b,4);printf(%dn,s);程序执行后的输出结果是。A、45 B、50 C、60 D、55答案:C知识点:局部变量及其作用域和生存期67.以下程序执行后sum的值是。main()int i,sum;for(i=l;i6;i+) sum +=i;printf(%dn,sum);)A,15 B、14 C、不确定 D、0答案:c知识点:局部变量及其作用域和生存期68.以
16、下程序的输出结果是.main()(int k=4,m=l,p;p=func(k,m); printf(%d,p);p=func(k,m); printf(%dn,p);func(int a,int b)(static int m=0,i=2;i+=m+l; m=i+a+b;return(m);)A、8,17 B、8,16 C、8,20 D、8,8答案:A知识点:局部变量及其作用域和生存期69.设有以下函数:f(int a)(int b=0;static int c=3;b+;C+;return (a+b+c);如果在下面的程序中调用该函数,则输出结果是.main()(int a=2,i;for
17、(i=0;i3;i+) printf(%dn,f(a);D、777C、13B、11)A、789答案:A知识点:局部变量及其作用域和生存期70.有以下程序static int m=0,i=2;i+=m+l;m=i+x+y;return m;main()int j=l,m=l,k;k=fun(j,m); printf(%d,k);k=fun(j,m); printf(%dn,k);执行后的输出结果是。A、5,5 B、5,11 C、11,11 D、11,5答案:B知识点:局部变量及其作用域和生存期71.以下程序的输出结果是。int a,b;void fun()a=100;b=200;)main()y
18、) f(x,y);else if(yz) f(y,z);else f(x,z);printf(%d,%d,%dn,x,y,z);执行后输出结果是。A、1,2,3 B、3,1,2 C,1,3,2 D、2,3,1答案:C知识点:调用函数和被调用函数之间的数据传递74.有以下程序void f(int x,int y)int t;if(xvy)t=x; x=y; y=t;main()f(a,b); f(a,c); f(b,c);printf(%d,%d,%dn,a,b,c);执行后输出结果是。A、 3,4,5B、 5,3,4C、 5,4,3D、 4,3,5答案:D知识点:调用函数和被调用函数之间的数据
19、传递75.有以下程序int funl(double a) return a*=a;int fun2(double x,double y)double a=0,b=0;a=funl(x);b=funl(y);return (int)(a+b);main()double w;w=fun2(l.1,2.0);程序执行后变量w中的值是。A、5.21 B、5 C、5.0 D、0.0答案:c知识点:调用函数和被调用函数之间的数据传递80.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是A、地址传递B、单向值传递C、由实参传给形参D、再由形参传回实参答案:B知识点:函数的调用81.当执行下
20、面的程序时,如果输入ABC,则输出结果是.#include stdio.h#include string.hmain()(char ss10=12345;gets(ss);strcat(ss,6789);printf(%sn,ss);)A、 ABC6789 B、 ABC67C、12345ABC6 D、 ABC456789答案:A知识点:函数的调用有如下程序long fib(int n)if(n2) return(fib(n-l)+fib(n-2);else return(2);main() printf(%ldn,r,fib(3);该程序的输出结果是。A、2 B、4 C、6 D、8答案:B知识
21、点:函数的调用83.设函数fun的定义形式为void fun(char ch,float x)则以下对函数fun的调用语句中,正确的是A、fun(abc,3.0); B、t=fun(D,16.5);C、fun (65,2.8); D, fun(32,32);答案:D知识点:函数的调用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);程序的执行结果是。A、函数调用出错B、8 C、9 D、7答案:D知识点:函数的调用85.
22、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A、函数调用可以作为独立的语句存在B、函数调用可以作为一个函数的实参C、函数调用可以出现在表达式中D、函数调用可以作为一个函数的形参答案:D知识点:函数的调用86.有如下函数调用语句func(recl,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是。A、3 B、4 C、5 D、有语法错答案:A知识点:函数的调用以下函数值的类型是。fun (float x)float y;y=3*x-4;return y;A、int B、不确定 C、void D、float答案:A知识点:函数的定义和返回值93.在C语言
23、中,形参的缺省存储类是 oA、auto B、register C、static D、extern答案:A知识点:函数的定义和返回值94.有以下程序int f(int a) return a%2;main()int s8=l,3,5,2,4,6,i,d=0;for(i=0;f(si);i +) d+=si;printf(%dn,d);程序运行后的输出结果是。A、9 B、11 C、19 D、21答案:A知识点:函数的定义和返回值95.在C语言中,函数的隐含存储类别是,A、auto B、staticC、extern C无存储类别答案:C知识点:函数的定义和返回值97.若程序中定义了以下函数doubl
24、e myadd(double a,double b) return (a+b);并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是 OA, double myadd(double a,b);B、double myadd(double,double);C、double myadd(double b,double a);D、double myadd(double x,double y);答案:A知识点:函数的定义和返回值98.若有以下程序#include void f(int n)main()f;void f(int n); printf(%dn,n);则以下叙述不正
25、确的是。A、若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB、若在主函数前对函数f进行说明,则在主函数和其它函数中都可以正确调用函数fC、对于以上程序,编译时系统会出提示出错信息:提示对f函数重复说明D、函数f无返回值,所以可用void将其类型定义为无值型答案:C知识点:函数的说明99.下列叙述中正确的是。A、C语言编译时不检查语法B、C语言的子程序有过程和函数两种C、C语言的函数可以嵌套定义D、C语言所有函数都是外部函数答案:D知识点:库函数101.以下不能正确定义二维数组的选项是。A. inta22=l,2;B, inta2=l,2,3,4);C、inta22=l,2,3)
26、;D、inta2=l,2,3,4;答案:D 知识点:二维数组的定义和二维数组元素的引用102.以下能正确定义二维数组的是。A、 int a3;B、 int a3=2*3;C inta3=;D, inta23=l,2,3,4);答案:B知识点:二维数组的定义和二维数组元素的引用103.以下程序的输出结果是0main()inta33=l,2,3,4,5,6,i,j,s=0;for (i=l;i3;i+)for(j=0;j=i;j+) s+=aij;printf(%dn,s);A、18 B、19 C、20 D、21答案:A知识点:二维数组的定义和二维数组元素的引用104.以下程序的输出结果是。mai
27、n() int i,x33=l,2,3,4,5,6,7,8,9;for(i=0;i3;i+)printf(%d,xi2-i);A,1,5,9 B、1,4,7 C、3,5,7 D、3.6.9答案:C知识点:二维数组的定义和二维数组元素的引用105.有以下程序main()int i,t3=9z8,7,6,5,4,3,2,l;for(i=0;i3;i+)printf(%d,t2-ii);判序执行后的输出结果是。A、753 B、357 C、369 D、751答案:B知识点:二维数组的定义和二维数组元素的引用106.以下数组定义中错误的是。A、intx3=0;B, int x23=1,2,3,4,5,6
28、;C, intx3=l,2,3,4,5,6;D、int x23= int b3=0,l,2,3;C, int c100100=0;D、int d3=l,2,l,2(3,l,2,3,4);答案:D知识点:二维数组的定义和二维数组元素的引用108.有以下程序main()intm3=l,4,7,2,5,8,3,6,9;int i,j,k=2;for(i=0;i3;i+) printf(%d ,mki);执行后输出结果是。A、456 B、258 C、369 D、789答案:C知识点:二维数组的定义和二维数组元素的引用109.以下能正确定义数组并正确赋初值的语句是A、int N=5,bNN;B、inta
29、l2=l,3;C, intc2=l,2,3,4);D、intd32=l,2,34;答案:D知识点:二维数组的定义和二维数组元素的引用111.以下程序的输出结果是.main()(inta44=l,3,5),2,4,6,3,5,7;printf(%d%d%d%dn,a03,al2,a2l,a30);A、0650 B、1470 C、5430D、输出值不定答案:A知识点:二维数组的定义和二维数组元素的引用112.定义如下变量和数组:int i;intx33=l,2,3,4,5,6,7,8,9;则下面语句的输出结果是for(i=0;i3;i+) printf(%d ,xi2-i);A、159 B、147
30、 C、357 D、369答案:C知识点:二维数组的定义和二维数组元素的引用113.有以下程序main()intx32=0,i;for(i=0;i3;i+) scanf(%d,xi);printf(%3d%3d%3dn,x00,x0l,xl0);)若运行时输入:246回车,则输出结果为.A、200 B、204C、240 D、246答案:B知识点:二维数组的定义和二维数组元素的引用114.以下程序的输出结果是 omain()(char w10=ABCD,EFGH,IJLK,MNOP,k;for(k=l;k3;k+) printf(%sn,wk);D、EFGHIJLKC、EFGJKOB、ABCDEF
31、GIJA、ABCDFGHKL答案:D知识点:二维数组的定义和二维数组元素的引用130.当调用函数时,实参是一个数组名,则向函数传送的是A、数组的长度B、数组的首地址C、数组每一个元素的地址D、数组每个元素中的值答案:B知识点:函数之间对一维数组和数组元素的引用132.有以下程序void sum(int a)aO=a-l+al;main() int a10=l,2,3,4,5,6,7,8,9,10);sum (&a2);printf(%dn,a2);程序运行后输出结果是。A、6 B、7 C、5 D、8答案:A 知识点:函数之间对一维数组和数组元素的引用138.有以下程序main() char s
32、=abcde;s+=2;printf(%dn,sO);执行后的结果是.A、输出字符a的ASCII码B、输出字符C的ASCH码C、输出字符cD、程序出错答案:D知识点:函数之间对一维数组和数组元素的引用139.请读程序:#include f(int b,int n) int i,r;r=l;for(i=0;i=n;i+) r=r*bi;return r;main() int x,a=2,3,4,5,6,7,8,9;x=f(a,3);printf(%dn,x);上面程序的输出结果是。A、720 B,120 C、24 D,6答案:B知识点:维数组的定义和一维数组元素的引用140.若要求定义具有10个int形元素的一维数组a,则以下的定义语句中错误的是A、#define N 10int aN;B, #define n 5int a2*n;C、int a5+5;D、int n=10,an;答案:D知识点:一维数组的定义和一维数组元素的引用141,合法的数组定义是。A、int a=string;B、int a5=0,lz2,3,4,5;C、char s=string;D、char a=0,l,2,3,4,5;答案:D知识点:一维数组的定义和一维数组元素的引用144.以下能正确定义一维数组的选项