《C语言练习题及答案(共74页).doc》由会员分享,可在线阅读,更多相关《C语言练习题及答案(共74页).doc(74页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上C语言练习题第一章 C语言概述1、所有C函数的结构都包括的三部分是( C )A语句、花括号和函数体B函数名、语句和函数体C函数名、形式参数和函数体D形式参数、语句和函数体2、C语言中主函数的个数是( B )A2个 B1个 C任意个 D10个3、下面可能不影响程序正常运行的是( C ) A语法错误 B逻辑错误 C警告提示 D算法错误4、一个C程序的执行是从( A )A. 本程序的main()函数开始,到main()函数结束.B. 本程序文件的第一个函数开始,到本程序文件第一个函数结束.C. 本程序文件的第一个函数开始,到本程序main函数结束.D. 本程序的main()
2、函数开始,到本程序文件的最后一个函数结束.5、C程序由( C )组成。A子程序 B主程序和子程序 C函数 D过程6、下列关于C语言注释的叙述中错误的是( D )。A以“/*”开头并以“*/”结尾的字符串为C语言的注释内容。B注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义。C程序编译时,不对注释作任何处理。 D程序编译时,需要对注释进行处理。7、C语言源程序经过编译后,生成文件的后缀是_C_。A、.cB、.exe C、.objD、.cc 8、以下说法中正确的是_C_。A、C语言程序总是从第一个函数开始执行B、在C语言程序中,要调用函数必须在main()函数中定义C、C语言程序总是从
3、main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分9、以下叙述中正确的是_A_。 A:C程序中注释部分可以出现在程序中任意合适的地方 B:花括号和只能作为函数体的定界符 C:构成C程序的基本单位是函数,所有函数名都可以由用户命名 D:分号是C语句之间的分隔符,不是语句的一部分第二章 变量与表达式第一节 简单表达式1.算术运算符及其表达式1、C语言中运算对象必须是整型的运算符是_A_。A、% B、* C、 D、 /2.下面运算符优先级最高的是 (C )A.= B.= C.% D.&3、下面程序 main() int x=10,y=3; printf(%dn,y=x/
4、y); 的输出是_C_。 A:0 B:1 C:3 D:不确定的值 4、执行下面程序段后,c3中的值是_A_int c1=1 , c2=2 , c3;c3=c1/c2; A:0 B:1/2 C:0.5 D:12.C语言表达式书写规则1、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z)的C语言表达式是_A_。 A:x/y*z B:x*(1/(y*z) C:x/y*1/z D:x/y/z2、设有定义: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
5、 C:(a+b)*h*1/2 D:h/2*(a+b)第二节 变量1.变量1、下列关于C语言的关键字的叙述中错误的是( C )A关键字是C语言规定的具有特定意义的字符串,通常也称保留字。B用户定义的标识符不应与关键字相同。CANSI C标准规定的关键字有64个。 DANSI C标准规定的关键字有32个。2、下面关于C语言用户标识符的描述,正确的是( D ) A. 不区分大小写 B. 用户标识符不能描述常量 C. 类型名也是用户标识符 D. 用户标识符可以作为变量名 3、以下( D )是正确的变量名。 A. a.bee B. -p11 C. int D. p_114、下面属于C语言标识符的是( D
6、 )A 2ab B. f C. ?b D. _a125、下列保留字中用于构成循环结构的是( B )A. if B. while C. switch D. default6、以下定义语句中正确的是( C )。A. char a=Ab=B; B. float a=b=10.0;C. int a=10,*b=&a; D. float *a,b=&a; 7、下面标识符中,不合法的用户标识符为 ( D ) A) Pad B) a_10 C) _12ab D) int8、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符_C_。A、必须为下划线 B、可以是字母、数字和下划线中任一种字符 C
7、、必须为字母或下划线 D、必须为字母9、请选出可用作C语言用户标识符的一组标识符_B_。 void a3_b3 For 2a define _123 _abc DO WORD IF case sizeof A: B: C: D:9、以下选项中合法的用户标识符是_B_。 A:long B:_2Test C:3Dmax D:A.dat10、以下不能定义为用户标识符的是_D_。 A:scanf B:Void C:_3com_ D:int11、在C语言中,如果下面的变量都是int类型,则输出结果是_A_sum=pad=5;pad=sum+,pad+,+pad;printf(%dn,pad); A:7
8、B:6 b C:5 D:42.常量和符号常量1、以下( B )是错误的整型常量。 A. -0xcdf B. 018 C. 0xe D. 0112、下列符号中用来表示C语言中的回车换行的是( B ) A. ” B. n C. b D. 3、以下( C )是正确的字符常量。 A. c B. C. W D. 32a 4、下面不正确的字符串常量是 ( A ) A) abc B) 1212 C) 0 D) 6、以下列出C语言常量中,错误的是_B_。 A:OxFF B:1.2e0.5 C:2L D:727、以下选项中,非法的字符常量是_C_。 A:t B:17 C:n D:xaa第三节 数据类型1.整型数
9、据1、以下选项中不属于C语言的类型的是_D_。 A:signed short int B:unsigned char C:singed long D:long short2、以下选项中可作为C语言合法整数的是_C_。 A:10110B B:0386 C:0Xffa D:x2a22.实型数据1、以下选项中属于C语言的数据类型是_C_。 A:复数型 B:逻辑型 C:双精度型 D:集合型 2、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是_C_。 A:1 B:2 C:2.0 D:2.53、设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位
10、四舍五入的是_C_。 A:x=x*100+0.5/100.0; B:x=(x*100+0.5)/100.0 C:x=(int)(x*100+0.5)/100.0; D:x=(x/100+0.5)/100.0;4、以下符合C语言语法的实型常量是_C_。 A:1.2E0.5 B:3.14159E C:.5E-3 D:E153.字符型数据1、判断char型变量ch是否为大写字母的正确表达式是_C_。A、A=ch=Z B、A=ch and ch=ZC、A=ch & ch=ZD、A=ch | ch=0&ch=9B)0=ch=0|ch=0&ch=94、设有说明语句: char a = 72; 则变量a _
11、A_。 A:包含1个字符 B:包含2个字符 C:包含3个字符 D:说明不合法5、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量101是_A_。 A:字符A B:字符a C:字符e D:非法的常量6、若有以下定义和语句:char c1=b,c2=e;printf(%d,%cn,c2-c1,c2-a+A);则输出结果是_B_ A:2,M B:3,E C:2,e D:输出结果不确定7、已知字符A的ASCII码为十进制的65,下面程序的输出是_A_main()char ch1,ch2;ch1=A+5-3;ch2=A+6-3;printf(%d,%cn,ch
12、1,ch2); A:67,D B:B,C C:C,D D:不确定的值8、若变量c为char类型,能正确判断出c为小写字母的表达式是D A:a=c= a)|(c= z) C:(a=c) D:(c= a)&(c0;7、以下选项中非法的表达式是_D_。 A:0=x100 B:i=j=0 C:(char)(65+3) D:x+1=x+18、若以下选项中的变量已正确定义,则正确的赋值语句是_C_。 A:x1=26.8%3; B:1+2=x2; C:x3=0x12; D:x4=1+2=3;第五节 复杂表达式1.自增、自减运算符1、设x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是printf
13、(“%d,%dn”,x-,-y);( D ) A)10,3 B)9,3 C)9,2 D)10,22、设i为整型变量,且值为100,则语句i;执行后i的值是_B_。A、100B、101 C、102 D、语句错3. 以下程序的输出结果是 ( B ) 。# include main() int i=010 , j = 10; printf(%d,%dn,+ +i , j - -); A) 11,10 B) 9,10 C) 010,9 D) 10,94.下列程序的运行结果是(A ) # define A 5 # define B A+1 main( ) int a; a=B; printf(%dna-
14、); A.6B.5 C.4 D.出错5、以下程序的输出结果是_A_。 #include main() int i=10,j=10; printf(%d,%dn,+i,j-); A:11,10 B:9,10 C:010,9 D:10,9 6、有如下程序main() int y=3,x=3,z=1; printf(%d %dn,(+x,y+),z+2);运行该程序的输出结果是_D_。 A:3 4 B:4 2 C:4 3 D:3 37、设x,y均为int型变量,且x=10,y=3,则以下数据的输出结果是 D printf(%d,%dn,x-,-y)。 A:10,3 B:9,3 C:9,2 D:10,
15、28、下列关于单目运算符+、-的叙述中正确的是_D_。 A:它们的运算对象可以是任何变量和常量 B:它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C:它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D:它们的运算对象可以是char型变量、int型变量和float型变量9.main() int m=3,n=4,x; x=-m+; x=x+8/+n; printf(%dn,x);程序运行后的输出结果是_D_。 A:3 B:5 C:-1 D:-210、有以下程序main() char a=a,b; printf(%c,+a); print
16、f(%cn,b=a+);程序运行后的输出结果是_A_。 A:b,b B:b,c C:a,b D:a,c11、若有以下定义和语句:int a=5a+;此处表达式a+的值是_B_ A:7 B:6 C:5 D:42.关系运算符与关系表达式1、设有int x,y; 以下语句判断x和y是否相等,正确的说法是该语句( B )if (x=y) printf( x is equal to y.); A. 语法错B. 不能判断x和y是否相等C. 编译出错D. 能判断x和y是否相等2、表达式:10!=9的值是_D_。 A:true B:非零值 C:0 D:13.逻辑运算符与逻辑表达式1、能表示条件0x 100的表
17、达式是 ( D ) A) 0= x =0, x=0& xb) & (n=cd) 后n的值为 ( C ) A) 0 B) 1 C) 2 D) 33、能正确表示a和b同时为正或同时为负的逻辑表达式是_D_。A、(a=0b=0)&(a0b=0&b=0)&(a0&b0)&(a+b04、设有定义int a = 1,b = 2, c = 3;则下面的值为1的表达式是_A_。A、a&7 B、ab&!cC、a&!b D、b= c 5、设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式是_D_。 A:a&b B:a=b C:a|+c&b-c D:!(ab)&(n=cd)后n
18、的值为_B_。 A:1 B:2 C:3 D:4 7、有如下程序段int a=14,b=15,x;char c=A;x=(a & b) & (ca)|(m=ab); printf(%d,%dn,k,m);程序运行后的输出结果是_C_。 A:0,0 B:0,1 C:1,0 D:1,111、有以下程序main() int i=1, j=1, k=2;if ( (j+ | k+) & i+) printf(%d,%d,%dn, i, j, k);执行后输出结果是 C A:1,1,2 B:2,2,1 C:2,2,2 D:2,2,312、以下程序的输出结果是 A main() int a=4,b=5,c=
19、0,d; d=!a&!b|!c; printf(%dn,d); A:1 B:0 C:非0的数 D:-14. 逗号运算符1、若x,i,j,k都是int型变量,则执行下面表达式后x的值为_C_ x=(i=11,j=22,k=33) A、 11 B、22C、33 D、662、若x和y都是int型变量,x=100、y=200,且有下面的程序片段 printf(%d,(x,y) );上面程序片段的输出结果是_A_。 A:200 B:100 C:100 200 D:输入格式符不够,输出不确定的值3、若执行以下程序段,其输出结果是_B_int a=0 , b=0 , c=0;c=(a-=a-5) , (a=
20、b,b+3) ;printf(%d , %d , %dn , a,b,c); A:3,0,-10 B:0,0,5 C:-10,3,-10 D:3,0,3第六节 基本输入输出语句2.格式化输入与输出函数1、若有说明语句:int a,b,c,*d=&c;,则能从键盘读入三个整数分别赋给变量a、b、c的语句是( A ) A. scanf(%d%d%d,&a,&b,d); B. scanf(%d%d%d,&a,&b,&d); C. scanf(%d%d%d,a,b,d); D. scanf(%d%d%d,a,b,*d);2、调用scanf(“%d,%d”,&a,&b);时,正确的键盘输入是 ( A )
21、 A) 10,20 B) a=10,b=20 C) 10:20 D) 10 203、下面的程序段 int i = 6;printf (“*%-4d*n”, i);的输出是_B_。 A、* 6* B、*6 * C、*0006* D、出错4. 已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是 ( D ) 。# include main() char c1=A, c2=Y; printf(%d,%dn,c1,c2); A) 因输出格式不合法,输出错误信息 B)65,90 C)A,Y D)65,895、以下程序的输出结果是_D_。main() int k=17; printf(%d,
22、%o,%xn,k,k,k); A:17,021,0x11 B:17,17,17 C:17,0x11,021 D:17,21,116、若变量已正确说明为float类型,要通过语句scanf(%f %f %f,&a,&b,&c);给 a赋予10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:_B_。 A:102233 B:10.0,22.0,33.0 C:10.022.0 33.0 D:10 22337、X、Y、Z被定义为int型变量,若从键盘给X、Y、Z输入数据,正确的输入语句是_B_。 A:INPUT X,Y,Z; B:scanf(%d%d%d,&X,&Y,&Z); C:scanf(
23、%d%d%d,X,Y,Z); D:read(%d%d%d,&X,&Y,&Z); 8、已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是_C_。 A:scanf(%2d%2d%2d,&i,&j,&k); B:scanf(%d %d %d,&i,&j,&k); C:scanf(%d,%d,%d,&i,&j,&k); D:scanf(i=%d,j=%d,k=%d,&i,&j,&k);9、设有定义:long x=-L;,则以下能够正确输出变量x值的语句是_B_。 A:printf(x=%dn,x); B:printf(x=%ldn,
24、x); C:printf(x=%8dLn,x); D:printf(x=%LDn,x);10、有以下程序段 int m=0,n=0; char c=a; scanf(%d%c%d,&m,&c,&n); printf(%d,%c,%dn,m,c,n);若从键盘上输入:10A10,则输出结果是_A_。 A:10,A,10 B:10,a,10 C:10,a,0 D:10,A,011、有以下程序main() int x=102,y=012; printf(%2d,%2dn,x,y);执行后输出结果是_C_。 A:10,01 B:02,12 C:102,10 D:02,1012、有以下程序main()
25、char a,b,c,d; scanf(%c,%c,%d,%d,&a,&b,&c,&d); printf(c,%c,%c,%cn,a,b,c,d); 若运行时从键盘上输入:6,5,65,66。则输出结果是_A_。 A:6,5,A,B B:6,5,65,66 C:6,5,6,5 D:6,5,6,613、有以下程序main() unsigned int a; int b=-1; a=b; printf(%u,a);程序运行后的输出结果是_B_。 A:-1 B:65535 C:32767 D:-3276814、下面程序的输出是_D_main()int k=11;printf(k=%d,k=%o,k=
26、%xn,k,k,k); A:k=11,k=12,k=13 B:k=11,k=13,k=13 C:k=11,k=013,k=oXb D:k=11,k=13,k=b15、若有定义:int x,y; char a,b,c; 并有以下输入数据(此处代表换行):1 2 A B C则能给x赋整数1,给y赋数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是_C_ A:scanf(x=%d y=%d,&x,&y); a=getchar(); c=getchar(); B:scanf(%d%d,&x,&y); a=getchar(); b=getchar(); c=getchar(); C:scanf
27、(%d%d%c%c%c,&x,&y,&a,&b,&c); D:scanf(%d%d%c%c%c%c%c%c,&x,&y,&a,&a,&b,&b,&c,&c);16、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf(i=%d,f=%f,&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为 B A:100765.12 B:i=100,f=765.12 C:100765.12 D:x=100,y=765.12 第七节 顺序结构程序设计1、C语言中用于结构化程序设计的三种基本结构是_A_。 A:顺序结构、选择结构、循环结构 B:if、switch、
28、break C:for、while、do-while D:if、for、continue第三章 控制语句第一节if语句1.ifelse语句的三种形式1、以下if语句错误的是( A )A. if (xy); D. if (x=5) scanf (%d,&x); else x+;2. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 Amain( )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和43、若执行下面的程序时从键盘上输入3和4, main() int a,b,s; scanf(%d %d,&a,&b); s=a; if(ab)s=b; s=s*s; printf(%dn,s); 则输出是_B_。 A:14 B:16 C:18 D:20 4、有如下程序main() float x=2.0,y; if(x0.0) y=0.0; else if(x10.0)y=1.0/x; el