《大学C语言期末考试题库试题及参考答案.docx》由会员分享,可在线阅读,更多相关《大学C语言期末考试题库试题及参考答案.docx(180页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 .下列定义变量的语句中错误的是_D oA, int _int B, double int _C, char For D、float US$知识点:常量、变量和标识符2 .以下不合法的用户标识符是_C oA、j2_KEY B、Double C、4d D、_8_知识点:常量、变量和标识符3 .以下4组用户定义标识符中,全部合法的一组是_A。A、_main enclude sin B, If -max turboC、txt REAL 3COM D、int k_2_001?知识点:常量、变量和标识符4 .以下定义语句中正确的是_C oA、char a =A b=B; B、float a=b=10.
2、0;(IEM a =10.0 b=10.0)C int a =10,*b=&a; D、float *a,b=&a;?知识点:常量、变量和标识符5 .以下不能定义为用户标识符的是_D。A、scanf B、Void C,_3com_ D, int知识点:常量、变量和标识符6 .以下有4组用户标识符,其中合法的一组是一C。A、For -sub Case B、4d DO Size C、f2_G3 IF a be D、WORD Void define知识点:常量、变量和标识符7 . C语言中最简单的数据类型包括_B。A、整型、实型、逻辑型 B、整型、实型、字符型C、整型、字符型、逻辑型 D、整型、实型、
3、逻辑型、字符型知识点:常量、变量和标识符8 .下列选项中,合法的C语言关键字是_D。A、VARB、cher C、integer D、default知识点:常量、变量和标识符9 .以下不能定义为用户标识符的是_D.A、Main B,_0 C、_int D、sizeof知识点:常量、变量和标识符10 .下列叙述中正确的是一D.A、C语言中既有逻辑类型也有集合类型B、C语言中没有逻辑类型但有集合类型C、C语言中有逻辑类型但没有集合类型D、C语言中既没有逻辑类型也没有集合类型知识点:常量、变量和标识符11 .当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是 C_oA, c=b=a; B、
4、(a=c) II (b=c); C、(a=c)&(b=c); D、a=c=b;知识点:赋值表达式12 .以下选项中非法的表达式是DoA、0=x100 B、i=j=0 C,(char)(65+3) D、x+l=x+l知识点:赋值表达式13 .以下程序的输出结果是B。#include 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知识点:赋值表达式14 .以下循环体的执行次数是C。main()int i,j;for (i=0,j=l; i=j+l;i+=2,j)printf
5、(%d n,i);A、3 B、2 C、1 D、0答案:C知识点:赋值表达式15 .有以下定义语句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;知识点:赋值表达式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);程序运行后输出结果是B。A、16516.5 B,1651.56.5
6、C、1651.06.5 D、2651.56.5知识点:赋值表达式17 .若变量a、i已正确定义,且i已正确赋值,合法的语句是B。A、a= lB、+i; C、a=a+=5; D、a=int(i);知识点:赋值表达式18 .若变量已正确定义并赋值,下面符合C语言语法的表达式是_B oA、a:=b+l B、a=b=c+2 C、int 18.5%3 D、a=a+7=c+b知识点:赋值表达式20.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是_C。A、x=x*100+0.5/100.0 B、x=(x*100+0.5)/100.0C、x=(int)(x
7、*100+0.5)/100.0? D、x=(x/100+0.5)*100.0知识点:赋值表达式22 .在一个C程序中BoA、main函数必须出现在所有函数之前B、main函数可以在任何地方出现C、main函数必须出现在所有函数之后D、main函数必须出现在固定位置知识点:简单C语言程序的构成和格式23 .以下说法中正确的是_D。A、#define和printf都是C语句 B、#define是C语句,而printf不是C、printf是C语句,但#define不是D、#define和printf都不是C语句知识点:简单C语言程序的构成和格式24 .若k是int型变量,且有下面的程序片段k=-3i
8、f(k0); D、if(b=O) m=l;n=2;?知识点:简单C语言程序的构成和格式26 .有以下程序main()int a=O,b=O;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语言程序的构成和格式27 .以下选项中,不能作为合法常量的是_B。A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0知识点:实型数据28 .以下符合C语言语法的实型常量是一C。A、1.2E0,5 B、3.14159E C、.5E-
9、3 D、E15知识点:实型数据30 .表达式3.6-5/2+1.2+5%2的值是_D。A、4.3 B、4.8 C、3.3 D、3.8知识点:算术表达式31 .设int a=12,则执行完语句a+=a-=a*a后,a的值是_D。A、552 B、264 C、144 D、-264知识点:算术表达式32 .以下变量x、y、z均为double类型且已正确赋值,不能正确表示数字式子x/(y*z)的C语言表达式是一A。A、x/y*z B、x*(l/(y*z) C、x/y*l/z D、x/y/z知识点:算术表达式33 .若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值是一B。A、
10、1.4 B、1 C、2.0 D、2知识点:算术表达式34 .设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式l/2(a+b)h)计算结果不相符的是一B。A、(a+b)*h/2 B、(l/2)*(a+b)*h C、(a+b)*h*l/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知识点:算术表达式36 .若已定义x和y为double类型,则表达式x=l,y=x+3/2的值是一C。A、1 B、2 C、2.000000 D、2.50
11、0000知识点:算术表达式37 .若有以下程序段int cl = l,c2=2,c3;c3=1.0/c2*cl;则执行后,c3中的值是_A_。A,0 B、0,5 C、1 D,2知识点:算术表达式38 .设有int x=ll;则表达式(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);A、3 B、3.2 C、0 D、3.07知识点:算术表达式40 .请读程序片段:int i=65536;printf(%d
12、n,i);上面程序片段的输出结果是B。A、65536 B、0 C、有语法错误,无输出结果D、-1知识点:整型数据41 .若有以下定义和语句:int u=010,v=0xl0,w=10;printf(%d,%d,%dn,u,v,w);则输出结果是:_A oA、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、OxAF知识点:整型数据43 .以下程序的输出结果是一口。main()int k=17;printf(%d,%o,%x n,k,k,k);A、17,021,0x
13、11 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=-l知识点:整型数据45 .在C语言中,合法的长整型常数是一AoA、0L B、4962710 C、324562& D、216D知识点:整型数据46 . C语言中运算对象必须是整型的运算符是_A.A、%= B、/ C、= D、 signed short int B unsigned long int C, unsigned in
14、t D、long short知识点:整型数据48 .有以下程序main()(int m=0256,n=256;printf(%o %on,m,n);程序运行后的输出结果是COA、02560400 B、0256256 C、256400 D、400400知识点:整型数据49 .若执下面程序时从键盘上输入5,main()5) printf(%dn,x);else printf(%dn,x-);则输出是_B oA,7 B、6 C、5 D、4知识点:自加、自减运算符和逗号运算符50 .有以下程序main ()char al=M, a2=m;printf(%cn,(al,a2);以下叙述中正确的是_B。A
15、、程序输出大写字母MB、程序输出小写字母mC、格式说明符不足,编译出错D、程序运行时产生出错信息知识点:自加、自减运算符和逗号运算符51 .以下程序的输出结果是_B o main()int a;printf(%dn,(a=3*5,a*4,a+5);)A、65 B、20 C、15 D、10知识点:自加、自减运算符和逗号运算符53 .设有如下程序段int x=2002,y=2003;printf(,%dn,(x,y);则以下叙述中正确的是_D oA、输出语句中格式说明符的个数少于输出项的个数,不能正确输出B、运行时产生错误信息C、输出值为2002D,输出值为2003知识点:自加、自减运算符和逗号运
16、算符54 .有以下程序main()int x,y,z;x=y=l;z=x+,y+,+y;printf(,%d,%d,%dn,xzyzz);程序运行后的输出结果是C。A、2,3,3 B、2,3,2 C、2,3,1 D、2,2,155 .设有以下定义int a=0;double b=1.25;char c=A;#define d 2则下面语句中错误的是_D。A、a+;B、b+; C、C+; D、d+;知识点:自加、自减运算符和逗号运算符56 .以下程序的输出结果是一D。main()5)printf(%d,x);elseprintf(%dn,x-);A、7和5B、6和3C、7和 D、6和4知识点:自
17、加、自减运算符和逗号运算符60 .若t为double类型,表达式t=l,t+5,t+的值是D。A、1 B、6.0 C、2.0 D、1.0知识点:自加、自减运算符和逗号运算符61 .以下程序的输出结果是_A。#includemain()(int i=10,j=10;printf(%d,%dn,+i,j-);)A、11,10 B、9,10 C、010,9 D、10,962 .有以下程序main()int y=10;while(y);printf(y=%dn,y);程序执行后的输出结果是_B_.A、y=0 B, y=-l C、y=l D、while 构成无限循环知识点:自加、自减运算符和逗号运算符6
18、3 .以下叙述中正确的是_B oA、全局变量的作用域一定比局部变量的作用域范围大B、静态(static)类别变量的生存期贯穿于整个程序的运行期间C、函数的形参都属于全局变量D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值知识点:局部变量及其作用域和生存期64 .下面程序的输出是C-。fun3(int x)static int a=3;a+=x;return (a);main() int k=2, m = l, n;n=fur)3(k);n=fun3(m);printf(%dn,n);A、3 B、4 C、6 D、9知识点:局部变量及其作用域和生存期65 .以下叙述中正确的
19、是A。A、局部变量说明为static存储类,其生存期将得到延长B、全局变量说明为static存储类,其作用域将被扩大C、任何存储类的变量在未赋初值时,其值都是不确定的D、形参可以使用的存储类说明符与局部变量完全相同知识点:局部变量及其作用域和生存期66 .有以下程序int fun(int 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);)程序执行后的输出结果是C。A、45 B、50
20、C、60 D、55知识点:局部变量及其作用域和生存期67 .以下程序执行后sum的值是C一.main()int izsum;for(i = l;iv6;i+) sum+=i;printf(%dn,sum);A、15 B、14 C、不确定 D、0知识点:局部变量及其作用域和生存期68 .以下程序的输出结果是A.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
21、B、8,16 C、8,20 D、8,870 .有以下程序fun(int x, int y)static int m=0,i=2;i+=m+l;m=i+x+y;return m;main()y) 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)(intt;if(x执行后输出结果是。A、3,4,5 B、5,3,4 C、5,4,3 D、4,3,5知
22、识点:调用函数和被调用函数之间的数据传递75 .有以下程序int funl(double a) return a*=a; int fun2(double x,double y)2) return(fib(n-l)+fib(n-2);else return(2);main() printf(%ldn,fib(3);该程序的输出结果是BoA、2 B、4 C、6 D、8知识点:函数的调用83 .设函数fun的定义形式为void fun(char ch,float x)则以下对函数fun的调用语句中,正确的是_。.Afun(abc,3.0); B, t=fun(D,16.5); C.fun (65,2
23、.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);)程序的执行结果是DoA、函数调用出错B、8 C、9 D、7知识点:函数的调用85 .若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是一D.A、函数调用可以作为独立的语句存在B、函数调用可以作为一个函数的实参C、函数调用可以出现在表达式中 D、函数调用可以作为一个函数的形参知识点:函数的调用86 .有如下
24、函数调用语句f u nc( rec 1, rec2+rec3,(rec4, rec5);该函数调用语句中,含有的实参个数是_A oA、3 B,4 C、5 D、有语法错知识点:函数的调用92 .以下函数值的类型是A.fun (float x)(float y;y=3*x-4;return y;)A、int B、不确定 C、void D、float知识点:函数的定义和返回值93 .在C语言中,形参的缺省存储类是_A_。A、auto B、register C、static D、extern知识点:函数的定义和返回值94 .有以下程序int f(int a)95 return a%2;main()in
25、ts8=l,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、无存储类别知识点:函数的定义和返回值97 .若程序中定义了以下函数double myadd(double a,double b) return (a+b);并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是_A。A、double myadd(double a,b)
26、; B、double myadd(double,double);C、double myadd(double b,double a); D、double myadd(double x,double y);知识点:函数的定义和返回值98 .若有以卜程序#include void f(int n)main()(void f(int n);f(5);void f(int n); printf(%dn,n);则以下叙述不正确的是C-A、若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB、若在主函数前对函数f进行说明,则在主函数和其它函数中都可以正确调用函数fC、对于以上程序,编译时系统会出
27、提示出错信息:提示对f函数重复说明D、函数f无返回值,所以可用void将其类型定义为无值型知识点:函数的说明99 .下列叙述中正确的是DoA、C语言编译时不检查语法B、C语言的子程序有过程和函数两种C、C语言的函数可以嵌套定义D、C语言所有函数都是外部函数知识点:库函数101 .以下不能正确定义二维数组的选项是_口.A. inta22=l,2;B、int a2=l,2z3,4;C, inta22=l,2,3;D、int a2=l,2,3,4;知识点:二维数组的定义和二维数组元素的引用102 .以下能正确定义二维数组的是BoA, lnta3; B、inta3=2*3; C int a3=; D,
28、 Int a 3=1,2,3,4;103 .以下程序的输出结果是A 。main()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知识点:二维数组的定义和二维数组元素的引用104 .以下程序的输出结果是_C。main()( 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知识点:二维数组的定义和二维数组元素的引用知
29、识点:二维数组的定义和二维数组元素的引用106 .以下数组定义中错误的是一B。A. intx3=0; B、int x23= intx3=l,2,3,4,5,6);D. int x23=1,2,3,4,5,6;知识点:二维数组的定义和二维数组元素的引用107 .以下数组定义中不正确的是D。A, inta23; B, int b3=0,l,2,3;C, intc100100=0; D、int d3=l,2,l,2,3,l,2,3,4);知识点:二维数组的定义和二维数组元素的引用108 .有以下程序main()intm3=l,4,A2,5,8,3,6,9;int i,j,k=2;for(i=0;i3
30、;i+) printf(%d ,mki);)执行后输出结果是C。A、456 B、258 C、369 D、789知识点:二维数组的定义和二维数组元素的引用109 .以下能正确定义数组并正确赋初值的语句是DoA、int N=5,bNN; B, int al2=lz3;C. intc2=l,2,3,4; D, int d32=l,2,34);知识点:二维数组的定义和二维数组元素的引用111 .以下程序的输出结果是A。main()inta44=l,3,5),2A6,3,5,7;printf(%d%d%d%dn,a03,al2,a2l,a30);)A、0650 B、1470 C、5430 D、输出值不定
31、知识点:二维数组的定义和二维数组元素的引用112 .定义如下变量和数组:int i;int x33=1,2,3,4,5,6,7,8,9;则下面语句的输出结果是_C ofor(i=0;i3;i+) printf(%d ,xi2-i);A、159 B、147 C、357 D、369知识点:二维数组的定义和二维数组元素的引用113 .有以下程序main()(int x32=0,i;for(i=0;i执行后的结果是DoA、输出字符a的ASCH码B、输出字符c的ASCH码C、输出字符c D、程序出错知识点:函数之间对一维数组和数组元素的引用139 .请读程序:#include f(int b,int n
32、) 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);上面程序的输出结果是BA,720 B、120 C,24 D、6知识点:一维数组的定义和一维数组元素的引用140 .若要求定义具有10个int形元素的一维数组a,则以下的定义语句中错误的是D_oA、#define N 10 int aN; B、#define n 5 int a2*n;C, int a5+5; D, int n=10,an;知识点:一维数组的定义和一维数组元素的引用141,合法的数组
33、定义是_D oAs int a=string; B, int a5=0,l/2,3,4,5);C char s=string; D、char a=0,l,2,3,4,5;知识点:一维数组的定义和一维数组元素的引用144 .以下能正确定义-维数组的选项是一B。A, int a5=0,l,2,3,4,5; B、char a=0,l,2,3,4,5;C、char a=A,B,C; D、int a5=0123;知识点:一维数组的定义和一维数组元素的引用145 .有如下程序main() intn5=0,0,0,i,k=2;for(i=0;i=0;i-) ai=10-i;printf(%d%d%d,a2,
34、a5,a8);A、258 B、741 C、852 D、369知识点:维数组的定义和一维数组元素的引用147,执行下面的程序段后,变量k中的值为一A。int k=3,s2;sO=k; k=sl*10;A,不定值 B、32 C,30 D、10知识点:一维数组的定义和一维数组元素的引用170 .以下能正确计算定义且赋初值的语句是一B。A, int nl=n2=10;B、char c=32;C、fioat f=f+l.l;D, double x=12.3E2,5知识点:赋值语句171 .以下合法的赋值语句是一B。A、x=y=100 B、d; C、x+y; D、c=int(a+b);172 .卜列语句中
35、符合C语言语法的赋值语句是一D。A、 a=7+b+c=a+7; B、 a=7+b+=a+7;C、a=7+b,b+,a+7 D、a=7+b,c=a+7;173 .请选出合法的C语言赋值语句B。A、a=b=58 B、i+; C、a=58,b=58 D、k=int(a+b);174 .下面程序的输出是C。main() int x=10,y=3;printf(%dn,y=x/y);A、0 B、1 C、3 D、不确定的值知识点:数据输出175 .已知字母A的ASCH码为十进制的65,下面程序的输出是A。main()char chl,ch2;chl=A+5-,3;ch2=A+,6-,3;printf(%d,%cn,chl