C语言练习题2014-1.doc_第1页
C语言练习题2014-1.doc_第2页
C语言练习题2014-1.doc_第3页
C语言练习题2014-1.doc_第4页
C语言练习题2014-1.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一一、 选择题1. 以下不是C语言的特点的是( )。A语言简洁紧凑 B能够编制出功能复杂的程序CC语言可以直接对硬件操作DC语言移植性好2.下列字符序列中,不可用作C语言标识符的是( )。Aabc123 Bno.1 C_123_D_ok 3.正确的C语言标识符是 ( )。A_buy_2B2_buy C?_buyDbuy?4.下列符号中,不属于转义字符的是( )。 A B0xAA CtD05.不属于C语言关键字的是( )。 AintBbreakCwhile Dcharacter6.是C语言提供的合法关键字的是( )。 AFloatBSignedCinteger Dchar7.一个C程序是由( )。A一个主程序和若干子程序组成B一个或多个函数组成C若干过程组成D若干子程序组成8. C语言程序的基本单位是( )。 A程序行B语句C函数 D字符9.以下选项中,合法的实型常数是( )。A5E2.0 BE-3 C2E0 D1.3E10已知大写字母A的ASCII码值是65, 小写字母a的ASCII码是97,则用八进制表示的字符常量101是( )。 A字符A B字符a C字符c D非法的常量11以下选项中,正确的字符常量是( )。 A”F” B CW D12312以下选项中可作为C语言合法整数的是 A10110B B0386 C0Xffa Dx2a214已知各变量的类型说明如下: int m=8,n, a, b; unsigned long w=10; double x=3.14, y=0.12;则以下符合C语言语法的表达式是( )。 Aa+=a-=(b=2)*(a=8)B n=n*3=18Cx%3Dy=float (m)15已知字母A的ASCII码为十进制数65,且S为字符型,则执行语句S=A+6-3;后,S中的值为( )。 ADB68 C不确定的值DC16在C语言中,要求运算数必须是整型的运算符是( )。 A/B+C*= D%17若有说明语句:char s=72;则变量s( )。A包含一个字符B包含两个字符C包含三个字符D说明不合法,s的值不确定18若有定义:int m=7; float x=2.5, y=4.7; 则表达式x+m%3*(int)(x+y)%2/4的值是( )。 A2.500000B2.750000 C3.500000D0.00000019在C语言中,char型数据在内存中的存储形式是( )。 A补码 B反码 C原码 DASCII码20表达式13/3*sqrt(16.0)/8的数据类型是( )。 Aint Bfloat Cdouble D不确定21设以下变量均为int类型,则值不等于7的表达式是( )。A(m=n=6, m+n, m+1)B(m=n=6, m+n, n+1)C(m=6, m+1, n=6, m+n)D(m=6, m+1, n=m, n+1)22假设所有变量均为整型,则表达式(x=2, y=5, y+, x+y)的值是( )。A7B8 C6 D223putchar函数可以向终端输出一个( )。A整型变量表达式 B字符串C实型变量 D字符。第二一、选择题1与数学式子对应的C语言表达式是 。A)3*xn/(2*x-1)B)3*x*n/(2*x-1)C)3*pow(x,n)*(1/(2*x-1)D)3*pow(n,x)/(2*x-1) 2若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为 。A)1.4 B)1 C)2.0 D)23设x、y、t均为int型变量,则执行语句:x=y=3;t=+x|+y;后,y的值为 。A)不定值 B)4 C)3 D)14以下程序的输出结果是 。# include main() int i=010,j=10; printf(%d,%dn,+i,j-);A)11,10 B)9,10 C)010,9 D)10,95若float a,b,c;要通过语句scanf(%f %f %f ,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是 。A)102233 B)10.0,22.0,33.0 C)10.0 22.0 33.0 D)10 22 336请选出合法的C语言赋值语句 。A)a=b=58 B)i+; C)a=58,b=58 D)k=int(a+b);7x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 。A)INPUT x、y、z; B)scanf(%d%d%d,&x,&y,&z);C)scanf(%d%d%d,x,y,z); D)read(%d%d%d,&x,&y,&z);8设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是 。A)3 B)0 C)9 D)-129设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=ab)&(n=cd)后n的值为 。A)1 B)2 C)3 D)410若变量c为char类型,能正确判断出c为小写字母的表达式是 。A)a=c=a)|(c= z)C)(a=c) D)(c= a)&(c= z)11设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是 。A)6.000000 B)7 C)8 D)7.50000012执行下面的程序段int x=35;char z=A;int b;b=(x&15)&(za);后,b的值为 。A)0 B)1 C)2 D)313已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1&y+z/2的值是 。A)6 B)0 C)2 D)114假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(wx)?w:x;m=(my)?m:y;m=(mz)?m:z;则该程序运行后,m的值是 。A)4 B)1 C)2 D)2二、填空题1有以下程序段:int m=0,n=0;char c=a;scanf(%d%c%d,&m,&c,&n);printf(%d,%c,%dn, m,c, n);若从键盘上输入:10A10,则输出结果是 。2下列程序的输出结果是什么?# include main() int a=2,c=5; printf(a=%d,b=%dn,a,c);3以下程序的输出结果是什么?main() char c=z; printf(%c,c-25);4若有以下程序段(n所赋的是八进制数)int m=32767,n=032767;printf(%d,%on, m, n);执行后输出结果是什么?5有以下程序main() char a,b,c,d; a=;b=xbc; c=0xab;d=A; printf(%c %c %c %cn,a,b,c,d);编译时出现错误,分析出错误的语句。 6写出下面程序的输出结果。#includestdio.hmain() char a=2,b=a; int c; c=a+b; a=c; printf(%c %c %d n,a,b,c);7下面程序的输出结果是 。main() int a=1,b=2; a=a+b;b=a-b;a=a-b; printf(%d,%dn,a,b);8以下程序的输出结果是 。main() int a=0; a+=(a=8); printf(%dn,a);9以下程序输出的结果是 。main() int a=5,b=4,c=3,d; d=(abc); printf(%dn,d);10以下程序运行后的输出结果是 。main() int p=30; printf(%dn,(p/30?p/10:p%3);11分析以下程序的输出结果。#include#includemain() int a=1,b=4,c=2; float x=10.5,y=4.0,z; z=(a+b)/c+sqrt(double)y)*1.2/c+x; pritnf(%fn,z);12分析以下程序的输出结果。main() int a=4,b=5,c=0,d; d=!a&!b|!c; printf(%dn,d);13分析以下程序的输出结果。main() int a=5,b=4,c=6,d; printf(%dn,d=ab?(ac?a:c):(b);三、按要求写结果1、计算下面表达式的值。设a=1,b=2,c=3。(1)a = a!=b?b:c (2)ab?b+1:c+1(3)(a=4) ? a-:b-2、写出满足下面条件的关系或逻辑表达式。(1)a在区间(3,10)内。(2)x是3的倍数。(3)x和y的和大于100且x大于45。(4)a等于c或b不等于0(5)a是小写字母3、计算下面逻辑表达式的值。设a=0,b=1,c=2,d=4。(1)a=b (2)c-b=a (3)c!=d-b(4)ba & cb(5)a & d-c(6)!a & bc(7)(ba) | cd(10)(a|b) & cd第三一、选择题1下列运算符中优先级最高的是 。 A) B) + C) & D)!=2以下关于运算符优先级的描述中,正确的是 。 A)!(逻辑非)算术运算关系运算&(逻辑与)|(逻辑或)赋值运算B)&(逻辑与)算术运算关系运算赋值运算C)关系运算算术运算&(逻辑与)|(逻辑或)赋值运算D)赋值运算算术运算关系运算&(逻辑与)|(逻辑或)3逻辑运算符的运算对象的数据类型 。 A)只能是0或1 B)只能是.T.或.F.C)只能是整型或字符型 D)任何类型的数据4能正确表示x的取值范围在0,100和-10,-5内的表达式是 。 A)(x=-5)&(x=100)B)(x=-10)&(x=0)&(x=-10)&(x=0)&(x=100)D)(x=-5)&(x=100)5以下程序的运行结果是 。main( ) int c,x,y; x=1; y=1; c=0; c=x+|y+; printf(“n%d%d%dn”,x,y,c); A)110 B)211 C)011 D)0016以下程序的运行结果是 。main( ) int c,x,y; x=0; y=0; c=0; c=x+&y+; printf(“n%d%d%dn”,x,y,c); A)100 B)211 C)011 D)0017判断字符型变量ch为大写字母的表达式是 。A)A=ch=A)&(ch=A)&(ch=A)AND(ch=Z)8判断字符型变量ch为小写字母的表达式是 。A)a=ch=a)&(ch=a)|(ch=a)&(ch0) printf(”%f”,x); x=x+1; printf(”%f”,x); else printf(”%f”,-x); else printf(”%f”,-x);C)if(x0); D)if(x0) x=x+1; printf(”%f”,x); x=x+1; printf(”%f”,x) else printf(”%f”,-x); else printf(”%f”,-x);10分析以下程序:main( ) int x=5,a=0,b=0; if(x=a+b) printf(“* *n”); else printf(“# #n”);以上程序 。A)有语法错,不能通过编译 B)通过编译,但不能连接C)输出* * D)输出# #11两次运行下面的程序,如果从键盘上分别输入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和412写出下面程序的执行结果 。main( )int x,y=1; if(y!=0) x=5; printf(“%dt”,x); if(y= =0) x=3;else x=5;printf(“%dtn”,x);A)1 3 B)1 5 C)5 3 D)5 513写出下面程序的执行结果 。main()int x=1,y=1,z=0;if(z0) x=3;else x=5;printf(%dt,x);if(z=y0) x=3;else if(y= =0 ) x=5;else x=7;printf(%dt,x);printf(%dt,z);A)1 7 0 B)3 7 0 C)5 5 0 D)1 5 114假定所有变量均已正确说明,下列程序段运行后x的值是 。a=b=c=0;x=35;if(!a) x=-1;else if(b);if(c) x=3;else x=4;A)34 B)4 C)35 D)316若有以下函数关系x0 y=xx=0 y=x+1下面程序段能正确表示以上关系的是 。A)y=2*x; B)y=2*x;if(x!=0) if(x0)y=x; if(x= =0) y=x+1;else y=x+1; else y=x;C)if(x=0) (D)y=x+1;if(x0) y=x; if(x=0)else y=x+1; if(x0) y=2*x;else y=2*x; else y=x;17若有以下变量定义:float x; int a,b;则正确的switch语句是 。 A)switch(x) case 1.0:printf(*n);case 2.0:printf(* *n); B)switch(x) case 1,2:printf(*n);case 3:printf(* *n);C)switch(a+b) case 1:printf(*n);case 2*a:printf(* *n);D)switch(a+b) case 1:printf(*n);case 1+2:printf(* *n);18. 以下关于运算符优先顺序的描述正确的是 。A)关系运算符算术运算符赋值运算符逻辑运算符B)逻辑运算符关系运算符算术运算符赋值运算符C)赋值运算符逻辑运算符关系运算符算术运算符D)算术运算符关系运算符赋值运算符=10或a=10 or a=10 | a=10 & a=10 | | a y & x != y ) ;B)if ( x = = y ) x + = y ;C)if ( x != y ) scanf ( “%d”, &x) else scanf ( “%d”, &y);D)if ( x y ) x+; y+;21. 当 a = 1, b = 3 , c = 5, d = 4 时, 执行完下面程序段后 x 的值为 。if ( a b ) if ( c d ) x = 1 ;else if ( a c )if ( b b)printf(“%f”,a); B)if(ab)printf(“%f”,a);else printf(“%f”,b);C)if(ab)printf(“%f”,a) D)if(ab)printf(“%f”,b);else printf(“%f”,b); else printf(“%f”,a);23. 能表示整数x符合下面两个条件的语句是 。(1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除.A)(x%4=0&x%100!=0)|x%400=0 B)(x%4=0|x%100!=0)&x%400=0C)(x%4=0&x%400!=0)|x%100=0 D)(x%100=0|x%4!=0)&x%400=024. 设有如下定义:char ch=z,则执行下面语句后变量ch是值为: 。 ch=(A=ch&chy|xz) z=x; x=y; y=z;A)x=50, y=80, z=80 B)x=50, y=30, z=30C)x=30, y=50, z=80 D)x=80, y=30, z=5027. C语言中,要求运算对象必须是整型的运算符是: 。 A) B)+ C)% D)!=28. 已知 int x=30,y=50,z=80;以下语句执行后变量x、y、z的值分别为: 。if (xy|xz) z=x; x=y; y=z; A)x=50, y=80, z=80 B)x=50, y=30, z=30C)x=30, y=50, z=80 D)x=80, y=30, z=5029. 以下程序的输出结果是 。 main( ) int x=2,y=-1,z=2; if (xy) if(y0) z=0; else z+=1; printf(“%dn”,z); A)3 B)2 C)1 D)030. 设a、b和c是int型变量,且a=2,b=4,c=6,则下面表达式中值为0的是: 。A)a+ b B)a=b C)a|b+c&b-c D)!( (ab) &!c | 1 )31. 在C的if语句中,可用作判断的表达式是: 。A)关系表达式 B)逻辑表达式C)算术表达式 D)任意表达式32. 下面能正确表示变量a在区间0,5或(6,10)内的表达式为: 。A)0=a | a=5 |6 a | a10 B)0=a&a=5 | 6a&a10C)(0=a|a=5)&(6a|a10)D)0=a&a=5&6a&a 0 )printf(“ %f ”, x )else printf(“%f”, - x );B)if ( x 0 ) x = x + y ; printf (“%f ”, x ) ; else printf ( “%f ”, - x ) ;C)if ( x 0 ) x = x + y ; printf (“%f ”, x ) ; ;else printf ( “%f ”, - x ) ;D)if ( x 0 ) x = x + y ; printf (“%f ”, x ) else printf ( “%f ”, - x ) ;35为了表示关系x=y=z,应使用C语言表达式 。 A)(x=y)&(y=z) B)(x=y)AND(y=z) C)(x=y=z) D)(x=y)&(y=z)36若欲表示在if后a不等于0的关系,则能够正确表示这一关系的表达式为 。A)a0 B)!a C)a=0 D)a38下面程序的输出结果是 。main()int x=40,y=4,z=4; x=y= =z; printf(“%d”,x); x=x= =(y-z); printf(“%d”,x); A)4 0B)4 1C)1 1D)1 039.若x=3,y=z=4,则下列表达式的值分别为 。(1)(z=y=x)?1:0(2)z=y& y=xA)0 1 B)1 1 C)0 0 D)1 040.若x=3,y=z=4,则下列表达式的值分别为 。(1)(z=y=x)?1:0(2)y+=z,x*=yA)0 24 B)1 8 C)0 8 D)1 1241在以下一组运算符中,优先级最高的运算符是 。A)= B)= C)% D)&42.以下程序的输出结果是 。main()int a=-1,b=4,k;k=(+a=0)&!(b-=0);printf(%d %d %d,k,a,b);A)1 0 4 B)0 0 4 C)1 0 3 D)0 0 343.若已定义int a=25,b=14,c=19;以下三项运算符(?:)所构成的语句的执行结果是 。a+=25&b-=2&c+?printf(*a=%d,b=%d,c=%dn,a,b,c):printf(#a=%d,b=%d,c=%dn,a,b,c)A)(*a=25,b=14,c=19) B)(*a=26,b=13,c=19)C)(#a=25,b=14,c=19) D)(#a=26,b=13,c=19)二、填空题4以下程序的功能是计算一元二次方程ax2+bx+c=0的根,补足程序中空缺的语句。#include main( )float a,b,c,_abs,_derta,_doublea,part1,part2;printf(enter a,b,c:);scanf(%f%f%f,&a,&b,&c);if( (1) ) if( (2) ) printf(no answer due to input errorn);else printf(the single root is %fn,-c/b);else_derta=b*b-4*a*c; _doublea=2*a; part1=-b/(2*a); _abs=abs(_derta); part2=sqrt(_abs)/_doublea;if( (3) )printf(complex root nreal part=%f image part=%fn,part1,part2);else printf(real rootsn root1=%f root2=%fn,part1+part2,part1-part2);5设有程序片段如下:switch(class)case A:printf(GREAT!n);case B:printf(GOOD!n);case C:printf(OK! n);case D:printf(NO!n);default:printf(ERROR!n);若class的值为C,则输出结果是 。6以下程序段的运行结果是 。int x=1,y=0;switch(x)case 1: switch(y) case 0:printf(x=1 y=0n);break; case 1:printf(y=1n);break; case 2:printf(x=2n);8. 输入3个实数 a, b, c要求按从大到小的顺序输出三数。main( ) float a,b,c,t; scanf(“%f,%f,%f”,&a,&b,&c); if (ab)t=a; (1) b=t;if((2)) t=a; a=c; c=t; if(b=a&chb ) c = 1 ;else if ( a = b ) c = 0 ; else c = -1 ;printf ( “%dn”, c ) ;11. 以下程序的运行结果是:_。main( ) int x;x=5;if (+x5) printf(“x=%d”,x);else printf(“x=%d”,x-); 15以下程序的运行结果是:_。main()int a,b,c;a=b=c=1;a+=b;b+=c;c+=a;printf(%dn,ab?a:b);printf(%dn,ac?a-;c+);(a=b=c)?printf(AA);printf(CC);printf(n a=%d,b=%d,c=%dn,a,b,c);17以下程序的运行结果是:_。main()int x=1,y=1,z=1;y=y+z;x=x+y;printf(%d,xy?y:x);printf(%d,x=y&yx);第四一、选择题1while循环语句中,while后一对圆括号中表达式的值决定了循环体是否进行,因此,进入while循环后,一定有能使此表达式的值变为 的操作,否则,循环将会无限制地进行下去。A)0 B)1 C)成立 D)22在do-while循环中,循环由do开始,用while结束;必须注意的是:在while表达式后面的 不能丢,它表示do-while语句的结束。A)0 B)1 C); D),3for语句中的表达式可以部分或全部省略,但两个 不可省略。但当三个表达式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。A)0 B)1 C); D),4程序段如下int k=-20;while(k=0) k=k+1;则以下说法中正确的是 。A)while循环执行20次 B)循环是无限循环 C)循环体语句一次也不执行 D)循环体语句执行一次5程序段如下int k=1;while(!k=0) k=k+1;printf(%dn,k);说法正确的是 。A)while循环执行2次 B)循环是无限循环C)循环体语句一次也不执行 D)循环体语句执行一次6以下for循环是 。for(a=0,b=0;(b!=123)&(a=4);a+)A)无限循环 B)循环次数不定 C)执行4次 D)执行5次7在下列程序中,while循环的循环次数是 。main( ) int i=0; while(i10) if(i1) continue; if(i= =5) break; i+; .A)1 B)10 C)6 D)死循环、不能确定次数8程序段如下int k=0; while(k+=2) printf(%dn,k);则执行结果是 。A)1 B)2 C)0 D)无结果 2 3 1 3 4 29程序段如下int k=0;while(k+=2); printf(last=%dn,k);则执行结果是last= 。A)2 B)3 C)4 D)无结果10执行下面的程序后,a的值为 。main()int a,b;for(a=1,b=1;a=20)break;if(b%3=1) b+=3; continue; b-=5;A)7 B)8 C)9 D)1011以下程序的输出结果 。main()int x=3;doprintf(%3d,x-=2);while(-x);A)1 B)30 3 C)1 -2 D)死循环12定义如下变量:int n=10;则下列循环的输出结果是 。while(n7)n-;printf(%dn,n);A)10 B)9 C)10 D)9 9 8 9 8 8 7 8 7 7 613以下程序的输出结果 。main()int n=0;while(n+=1) printf(%dt,n);printf(%dn,n);A)1 2 3 B)0 1 2 C)1 1 2 D)1 2 214以下程序的输出结果是 。main()int i;for(i=1;i=5;i+)if(i%2)printf(#);else continue;printf(*);printf($n);A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$15以下程序的输出结果是 。main()int a=0,i;for(i=1;i5;i+)switch(i)case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;printf(%dn,a);A)31 B)13 C)10 D)2016以下程序的输出结果是 。#include main()int i=0,a=0;while(i20)for(;) if(i%10)= =0) break;else i-;i+=11; a+=i;printf(%dn,a);A)21 B)32 C)33 D)1117当输入为quert?时,下面程序的执行结果是 。#includemain()char c;c=getchar();while(c=getchar()!=?) putchar(+c);A)Quert B)vfsu C)quert? D)rvfsu? 18当输入为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论