《C语言复习题(共70页).doc》由会员分享,可在线阅读,更多相关《C语言复习题(共70页).doc(70页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上单选 复习题专心-专注-专业1下列定义变量的语句中错误的是_。A、int _int B、double int_C、char For D、float US$答案:D知识点:常量、变量和标识符2以下不合法的用户标识符是_。A、j2_KEY B、DoubleC、4d D、_8_答案:C知识点:常量、变量和标识符3以下4组用户定义标识符中,全部合法的一组是_。A、_main enclude sinB、If -max turboC、txt REAL 3COMD、int k_2 _001答案:A知识点:常量、变量和标识符4以下定义语句中正确的是_。A、char a=A b=B;B
2、、float a=b=10.0;C、int a=10,*b=&a;D、float *a,b=&a;答案:C知识点:常量、变量和标识符5以下不能定义为用户标识符的是_。A、scanf B、VoidC、_3com_ D、int答案:D知识点:常量、变量和标识符6以下有4组用户标识符,其中合法的一组是_。A、For -sub CaseB、4d DO SizeC、f2_G3 IF abcD、WORD Void define答案:C知识点:常量、变量和标识符7C语言中最简单的数据类型包括_。A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型答案:B知识点:
3、常量、变量和标识符8下列选项中,合法的C语言关键字是_。A、VAR B、cher C、integer D、default答案:D知识点:常量、变量和标识符9以下不能定义为用户标识符的是_。A、Main B、_0 C、_int D、sizeof答案:D知识点:常量、变量和标识符10下列叙述中正确的是_。A、C语言中既有逻辑类型也有集合类型B、C语言中没有逻辑类型但有集合类型C、C语言中有逻辑类型但没有集合类型D、C语言中既没有逻辑类型也没有集合类型答案:D知识点:常量、变量和标识符11当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是_。A、c=b=a; B、(a=c)(b=c);C
4、、(a=c)&(b=c); D、a=c=b;答案:C知识点:赋值表达式12以下选项中非法的表达式是_。A、0=x100 B、i=j=0 C、(char)(65+3) D、x+1=x+1答案:D知识点:赋值表达式13以下程序的输出结果是_。#include main() int a,b,d=241; a=d/100%9; b=(-1)&(-1); 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=1; i=j+1;i+=2,j-) printf(%d n
5、,i);A、3 B、2 C、1 D、0答案:C知识点:赋值表达式15有以下定义语句double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是_。A、a=a+b=b+B、w%(int)a+b)C、(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、1 65 1 6.5B、1 65 1.5 6.5C、1
6、 65 1.0 6.5D、2 65 1.5 6.5答案:B知识点:赋值表达式17若变量a、i已正确定义,且i已正确赋值,合法的语句是_。A、a=1 B、+i; C、a=a+=5; D、a=int(i);答案:B知识点:赋值表达式18若变量已正确定义并赋值,下面符合C语言语法的表达式是_。A、a:=b+1 B、a=b=c+2C、int 18.5%3 D、a=a+7=c+b答案:B知识点:赋值表达式19下列程序执行后输出的结果是_。int d=1;fun (int p) int d=5; d+=p+; printf(%d,d);main() int a=3; fun(a); d+=a+; prin
7、tf(%dn,d);A、84 B、96 C、94 D、85答案:A知识点:赋值表达式20设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是_。A、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知识点:赋值表达式21以下四个程序中,完全正确的是_。A、#include main(); /*programming*/ printf(Programming!n);B、#include main() /*/programm
8、ing/*/ printf(programming!n);C、#include main() /*/*programming*/*/ Printf(programming!n);D、#include main() /*programming*/ Printf(programming!n);答案:B知识点:简单C语言程序的构成和格式22在一个C程序中_。A、main函数必须出现在所有函数之前B、main函数可以在任何地方出现C、main函数必须出现在所有函数之后D、main函数必须出现在固定位置答案:B知识点:简单C语言程序的构成和格式23以下说法中正确的是_。A、#define和printf都
9、是C语句B、#define是C语句,而printf不是C、printf是C语句,但#define不是D、#define和printf都不是C语句答案:D知识点:简单C语言程序的构成和格式24若k是int型变量,且有下面的程序片段k=-3if(k0); D、if(b=0) m=1;n=2;答案:D知识点:简单C语言程序的构成和格式26有以下程序main() int a=0,b=0; a=10; /* 给a赋值 */ b=20; /* 给b赋值 */printf(a+b=%dn,a+b); 程序运行后的输出结果是_。A、a+b=10 B、a+b=30 C、30 D、出错答案:B知识点:简单C语言程
10、序的构成和格式27以下选项中,不能作为合法常量的是_。A、1.234e04 B、1.234e0.4C、1.234e+4 D、1.234e0答案:B知识点:实型数据28以下符合C语言语法的实型常量是_。A、1.2E0.5 B、3.14159E C、.5E-3 D、E15答案:C知识点:实型数据29有如下程序运行后,输出结果是_。main() float x=2.0,y; if(x0.0) y=0.0; else if(x10.0)y=1.0/x; else y=1.0; printf(%fn,y);A、0. B、0.C、0. D、1.答案:C知识点:实型数据30表达式3.6-5/2+1.2+5%
11、2的值是_。A、4.3 B、4.8 C、3.3 D、3.8答案:D知识点:算术表达式31设int a=12,则执行完语句a+=a-=a*a后,a的值是_。A、552 B、264 C、144 D、-264答案:D知识点:算术表达式32以下变量x、y、z均为double类型且已正确赋值,不能正确表示数字式子x/(y*z)的C语言表达式是_。A、x/y*z B、x*(1/(y*z)C、x/y*1/z D、x/y/z答案:A知识点:算术表达式33若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值是_。A、1.4 B、1 C、2.0 D、2答案:B知识点:算术表达式34设有定
12、义:float a=2,b=4,h=3;,以下C语言表达式与代数式 1/2(a+b)h) 计算结果不相符的是_。A、(a+b)*h/2 B、(1/2)*(a+b)*hC、(a+b)*h*1/2 D、h/2*(a+b)答案:B知识点:算术表达式35假定x和y为double型,表达式x=2,y=x+3/2的值是_。A、3. B、3 C、2. D、3.答案:D知识点:算术表达式36若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是_。A、1 B、2 C、2. D、2.答案:C知识点:算术表达式37若有以下程序段int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,
13、c3中的值是_。A、0 B、0.5 C、1 D、2答案:A知识点:算术表达式38设有int x=11;则表达式(x+ * 1/3)的值是_。A、3 B、4 C、11 D、12答案:A知识点:算术表达式39下列程序的输出结果是_。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答案:C知识点:算术表达式40请读程序片段:int i=65536;printf(%dn,i);上面程序片段的输出结果是_。A、65536 B、0C、有语法错误,无输出结果 D、-1答案:B知识点
14、:整型数据41若有以下定义和语句:int u=010,v=0x10,w=10;printf(%d,%d,%dn,u,v,w);则输出结果是: _。A、8,16,10 B、10,10,10C、8,8,10 D、8,10,10答案:A知识点:整型数据42在C语言中,不正确的int类型的常数是_。A、32768 B、0 C、037 D、0xAF答案:A知识点:整型数据43以下程序的输出结果是_。main( ) int k=17; printf(%d,%o,%x n,k,k,k);A、17,021,0x11 B、17,17,17C、17,0x11,021 D、17,21,11答案:D知识点:整型数据4
15、4下面程序的输出是_。main() unsigned a=32768; printf(a=%dn,a);A、a=32768 B、a=32767C、a=-32768 D、a=-1答案:C知识点:整型数据45在C语言中,合法的长整型常数是_。A、0L B、C、& D、216D答案:A知识点:整型数据46C语言中运算对象必须是整型的运算符是_。A、%= B、/ C、= D、5) printf(%dn,x); else printf(%dn,x-);则输出是_。A、7 B、6 C、5 D、4答案:B知识点:自加、自减运算符和逗号运算符50有以下程序main () char a1=M, a2=m; pr
16、intf(%cn, (a1,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知识点:自加、自减运算符和逗号运算符52有以下程序main() char s=159,*p; p=s; printf(%c,*p+); printf(%c,*p+);程序运行后的输出结果是_。A、15 B、16 C、12 D、59答案:A知识
17、点:自加、自减运算符和逗号运算符53设有如下程序段int x=2002,y=2003;printf(%dn,(x,y);则以下叙述中正确的是_。A、输出语句中格式说明符的个数少于输出项的个数,不能正确输出B、运行时产生错误信息C、输出值为2002D、输出值为2003答案:D知识点:自加、自减运算符和逗号运算符54有以下程序main() int x,y,z; x=y=1; z=x+,y+,+y; printf(%d,%d,%dn,x,y,z);程序运行后的输出结果是_。A、2,3,3 B、2,3,2 C、2,3,1 D、2,2,1答案:C知识点:自加、自减运算符和逗号运算符55设有以下定义int
18、 a=0; double b=1.25;char c=A;#define d 2则下面语句中错误的是_。A、a+; B、b+; C、c+; D、d+;答案:D知识点:自加、自减运算符和逗号运算符56以下程序的输出结果是_。main() int x=10,y=10; printf(%d %dn,x-,-y);A、10 10 B、9 9 C、9 10 D、10 9答案:D知识点:自加、自减运算符和逗号运算符57若x和y都是int型变量,x=100、y=200,且有下面的程序片段printf(%d,(x,y);上面程序片段的输出结果是_。A、200 B、100 C、100 200D、输则格式符不够,
19、 输出不确定的值答案:A知识点:自加、自减运算符和逗号运算符58设有如下定义:int x=10,y=3,z;则语句printf(%dn,z=(x%y,x/y);的输出结果是_。A、1 B、0 C、4 D、3答案:D知识点:自加、自减运算符和逗号运算符59两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是_。main( ) int x; scanf(%d,&x); if(x+ 5) printf(%d,x); else printf(%dn,x-);A、7和5 B、6和3 C、7和4 D、6和4答案:A知识点:自加、自减运算符和逗号运算符60若t为double类型,表达式t=1,t+5
20、,t+的值是_。A、1 B、6.0 C、2.0 D、1.0答案:D知识点:自加、自减运算符和逗号运算符61以下程序的输出结果是_。#includemain() int i=10,j=10; printf(%d,%dn,+i,j-);A、11,10 B、9,10 C、010,9 D、10,9答案:A知识点:自加、自减运算符和逗号运算符62有以下程序main() int y=10; while(y-); printf(y=%dn,y);程序执行后的输出结果是_。A、y=0 B、y=-1 C、y=1 D、while构成无限循环答案:B知识点:自加、自减运算符和逗号运算符63以下叙述中正确的是_。A、
21、全局变量的作用域一定比局部变量的作用域范围大B、静态(static)类别变量的生存期贯穿于整个程序的运行期间C、函数的形参都属于全局变量D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值答案:B知识点:局部变量及其作用域和生存期64下面程序的输出是_。fun3(int x) static int a=3; a+=x; return(a);main() int k=2, m=1, n; n=fun3(k); n=fun3(m); printf(%dn,n);A、3 B、4 C、6 D、9答案:C知识点:局部变量及其作用域和生存期65以下叙述中正确的是_。A、局部变量说明为s
22、tatic 存储类,其生存期将得到延长B、全局变量说明为static 存储类,其作用域将被扩大C、任何存储类的变量在未赋初值时,其值都是不确定的D、形参可以使用的存储类说明符与局部变量完全相同答案:A知识点:局部变量及其作用域和生存期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,5,b=6,7,8,9,s=0; s=fun(a,5)+fun(b,4); printf(%dn,s);程序执行后的输出结果是_。A、45 B、50 C、60
23、 D、55答案:C知识点:局部变量及其作用域和生存期67以下程序执行后sum的值是_。main() int i,sum; for(i=1;i6;i+) sum+=i; printf(%dn,sum);A、15 B、14 C、不确定 D、0答案:C知识点:局部变量及其作用域和生存期68以下程序的输出结果是_。main() int k=4,m=1,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+1; m=i+a+b; return(m);A、8,1
24、7 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(i=0;iy) 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有以下程序v
25、oid f(int x,int y) int t; if(xy) t=x; x=y; y=t;main() int a=4,b=3,c=5; 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知识点:调用函数和被调用函数之间的数据传递75有以下程序int fun1(double a) return a*=a; int fun2(double x,double y) double a=0,b=0; a=fun1(x); b=fun1(y); return (int)(
26、a+b);main() double w; w=fun2(1.1,2.0);程序执行后变量w中的值是_。A、5.21 B、5 C、5.0 D、0.0答案:C知识点:调用函数和被调用函数之间的数据传递76请选出以下程序的输出结果_。#include sub(int *s,int y) static int t=3; y=st; t-; main() int a=1,2,3,4,i, x=0; for(i=0;i2) return(fib(n-1)+fib(n-2); else return(2);main() printf(%ldn,fib(3); 该程序的输出结果是_。A、2 B、4 C、6
27、D、8答案:B知识点:函数的调用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答案:
28、D知识点:函数的调用85若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是_。A、函数调用可以作为独立的语句存在B、函数调用可以作为一个函数的实参C、函数调用可以出现在表达式中D、函数调用可以作为一个函数的形参答案:D知识点:函数的调用86有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是_。A、3 B、4 C、5 D、有语法错答案:A知识点:函数的调用87有以下函数char *fun(char *p) return p; 该函数返回值是_。A、无确切的值B、形参p中存放的地址值C、一个临时存储单元的地址D、形参p自身
29、的地址值答案:B知识点:函数的定义和返回值88已定义如下函数fun (int *p) return *p; 该函数的返回值是_。A、不确定的值B、形参p中存放的值C、形参p所指存储单元中的值D、形参p的地址值答案:C知识点:函数的定义和返回值89若有以下函数首部int fun(double x10,int *n)则下面针对此函数的函数声明语句中正确的是_。A、int fun(double x,int *n);B、int fun(double ,int);C、int fun(double *x,int n);D、int fun(double *,int *);答案:D知识点:函数的定义和返回值90在说明语句:int *f();中,标识符f代表的是_。A、一个用于指向整型数据的指针变量B、一个用于指向一维数组的行指针C、一个用于指向函数的指针变量D、一个返回值为指针型的函数名答案:D知识点:函数的定义和返回值91程序中对fun函数有如下说明void *fun();此说明的含义是_。A、fun 函数无返回值B、fun 函数的返回值可以是任意数据类型C、fun 函数