C语言复习题及答案.doc_第1页
C语言复习题及答案.doc_第2页
C语言复习题及答案.doc_第3页
C语言复习题及答案.doc_第4页
C语言复习题及答案.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

一.单项选择题1下列选项中,不是转义字符集中的符号是( C )。A B C 074 D 02. 下列给出的符号串中,不属于C语言保留字的是( B )。A switch B cherC case D else3. 下列给出的符号串中,不能作为C语言标识符的是( C )。A a_2 B _2aC a.3 D a_34. 下列属于C语言字符常量的是 ( C )。A abc B “n”C a D a05. 字符串”ABC”再内存占用的字节数为( B )。A 3 B 4C 6 D 86. 设有宏定义“define R 2+3”,则R*R的宏替换结果正确的是( B )。A (2+3)*(2+3) B 2+3*2+3C 5*5 D 5.0*5.07. 设整形变量I的值为3,则表达式i-i的值为( A )。A 0 B 1C 2 D 38. 表达式“10!9”的值为( D )。A true B 非零值C 0 D 19. 设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值为( D )。A 3 B 0C 9 D -1210. 下列选项中,正确的赋值表达式为( C )。A a=7+b+c=a+7 B a=7+b+=a+7C a=(7+b,b+,a+7) D a=7+b,c=a+711. 若有以下定义语句:char a;float c; double d; 则表达式a*b+d-c值的类型为( D )。 A float B int C char D double12. 用十进制数表示表达式“12|012”的运算结果是( A )。 A 1 B 0 C 14 D 1213. 下列一组运算符中,优先级别最高的运算符是( C )。 A = B = C % D &14. 设定“ char a=3,b=6,c;”,计算表达式c=(ab)2后c的二进制值是( D )。 A 00011100 B 00000111 C 00000001 D 0001010015. 设x,y,z,t 均为int类型,则执行下列语句串后,变量t的值为(C )。 X=y=z=0; If(x=y) t=z; Else t=!z; A 不定值 B 2 C 1 D 016. 设整形变量m1值为3,m2值为2,m3值为1,执行下列语句后,整形变量m4值为( D )。 Switch(m1=m2=m3+1) case1:m4=1;break; case2:m4=3;break; case3:m4=2;break; default:m4=4; A 1 B 2 C 3 D 417. 设有数据定义语句“int a200;”,下列数组元素引用中下标不越界的是( A )。 A a-1 B a0 C a201 D a20018. 若有以下数据定义语句,则数值为4的表达式是( A )。 int a12=1,2,3,4,5,6,7,8,9,10,11,12; A ag-c B a4 C ad-c D ad-c19. 语句”printf(“%dn”,strlen(“atsn0121”);”的输出结果是( C )。 A 11 B 10 C 9 D 820. char x=“abcdefg”; char y=a,b,c,d,e,f,g;则正确的叙述为( C )。A 数组x和数组y等价 B 数组x和数组y的长度相同C 数组x的长度大于数组y的长度D 数组x的长度小于数组y的长度21.下列不正确的转义字符是(C )A. B. C. 086 D. 022.下列运算符中,优先级最高的是(A )A. B.+ C. D.&23.下列标识符中,不是C语言保留字的是(C )A. char B. while C. min D. default24.下列数据中,不是C语言常量的是( C)A. n B. a C. e-2 D. 01225.若定义了int a;char b;float c;,则表达式a*b-c的类型是( D)A. float B. int C. char D. double26.若定义了int a,x,y;,则下列语句中不正确的是( D)A. x=3,y=5; B. +x; C. x=y+=x*30; D. a=y+x=30;27设有如下的变量定义:int i = 8 , k , a , b ; unsigned long w = 5 ; double x = 1.42 , y=5.2;则以下符合C语言语法的表达式是 A Aa+=a=(b=4)*(a=3) Bx%(3) Ca=a*3=2 Dy=float( i )28经 int a=7; float x=2.5,y=4.7; 说明后,表达式x+a%3*(int)(x+y)%2/4的值是A A2.500000 B2.750000 C3.500000 D0.00000029设有单精度量f,其值为13.8,执行语句 n = ( int ) f % 3 ; 后,整型变量的值是 A A1 B4 C4.333333 D4.630. 设int c=5 , a ; a=2+(c+=c+, c+8 , +c ) ; 则 a = B A15 B14 C13 D1631已知字母A的十进制ASCII代码值为65,下面程序段的输出是 A Char ch1,ch2; ch1=A+53; ch2=A+63; printf(“%d,%cn”,ch1,ch2);A67,D BB,C C不确定的值 DC32设a , b , c为整型数,且a=2,b=3,c=4,则执行完以下语句a*=16+(b+)(+c)后,a的值是 A A28 B30 C32 D2633. 以下语句: int a = 110 , b = 017; printf ( “ %x , %d n ” , a+ , +b ) ; 输出结果是 A A6e , 15 B6e , 16 C6f , 15 D6f , 1634. 以下程序段 int x=10 , y=10 ; printf ( “ %d %dn ” , x , y ) ;的输出结果是 D A10 10 B9 9 C0 10 D10 935int x=13, y=5 ; printf(“%dn”,x%=y/=2); 运行结果为 B A0 B1 C2 D336已有如下定义和输入语句,若要求a1, a2 , c1 , c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是 AC int a1 , a2 ; char c1 , c2 ;scanf( “ %d %c %d %c ” , &a1 , &c1 , &a2 , &c2 ) ; /* 表示回车*/ A10A 20B B10 A 20 B C10A20B D10A20 B 37.若定义了int b3=1 ,2,3,4,5,6,7;,则b数组第一维的长度是(B )A. 2 B. 3C. 4 D.无确定值38.若定义了x=100;,则表达式x+100?x+20:x+10的值是(A )A.110 B.111C.120 D.12139.执行printf(dn,strlen(t066xeen);语句的输出结果是(A )A.7 B.12C.13 D.输出项不合法,无正常输出40.若定义了int m,n=0,*p1=&m;,则下列与m=n;等价的正确语句是( D)A. m=*p1; B. *p1=&*n; C. *&p1=&*n; D. *p1=*&n;41.可以用作C程序标识符的一组是(A)A.printB.iamoodb one-halfaBc 3paiC.PxqD.Cpp line# pow His.age while42.以下叙述正确的是(C)A.宏名必须用大写的英文字母表示B.宏定义不仅是符号替换,也可以赋值C.宏替换是在程序编译时完成的,不占用程序运行时间D.引用带参数的宏时,实际参数与宏定义中的形式参数类型应一致43.设char a=70;则变量a中(A)A.包含1个字符B.包含2个字符C.包含3个字符D.是非法表示44.设long i=65539;,执行语句printf(%d,i);后的输出结果是(B)A.-3B.3C.65539D.数据不确定45.设float c,f;,将数学表达式C=(F-32)能正确表示成C语言赋值表达式的是(A)A.c=5*(f-32)/9B.c=5/9(f-32)C.c=5/9*(f-32)D.c=5/(9*(f-32)46.设int i=10;,表达式30-i=i=0&y=0);D.if(x= =0)a=5;b=10;48.在函数调用时,以下说法正确的是(B)A.函数调用后必须带回返回值B.实际参数和形式参数可以同名C.函数间的数据传递不可以使用全局变量D.主调函数和被调函数总是在同一个文件里49.设int x=7;,执行语句x=x s.aD.p.s.a58.设enum color red,yellow=2,blue,white,blackr=white;,执行printf(%d,r);后的输出结果是(D)A.0B.1C.3D.459.以下说法中错误的是(C)A.共用型数据中所有成员的首地址都是同一个B.可以用已定义的共用型来定义数组或指针变量的类型C.共用型数据中的成员可以是结构型,但不可以是共用型D.用typedef定义新类型取代原有类型后,原类型仍可有效使用60.设#define L(x) 2*3.14*x则L(x)是(D)A.函数名B.函数调用C.无参的宏名D.带参的宏名61字符串”xyzd”再内存占用的字节数为( C )。A 3 B 4C 5 D 862设有宏定义“define R 5+8”,则R*R的宏替换结果正确的是( B )。A (5+8)*(5+8) B 5+8*5+8C 13*13 D 13.0*13.063下列选项中,不是转义字符集中的符号是( C )。A “ B nC 24 D b64表达式“10=9”的值为( C )。A true B 非零值C 0 D 165下列选项中,正确的赋值表达式为( C )。A a=7+b+c=a+7 B a=7+b+=a+7C a=(7+b,b+,a+7) D a=7+b,c=a+766设整形变量I的值为3,则表达式ii的值为( A )。A 6 B 7C 8 D 967下列给出的符号串中,不属于C语言保留字的是( B )。A if B CharC struct D enum68. 下列给出的符号串中,不能作为C语言标识符的是( C )。A b2 B _2bC b.3 D b_369. 下列属于C语言字符常量的是 ( C )。A ab B “q”C a D a070. 若有以下定义语句:char a;float c; double d; 则表达式a*b+d-c值的类型为( D )。 A float B int C char D double71. 下列一组运算符中,优先级别最高的运算符是( C )。 A = B = C / D |72. 设x,y,z,t 均为int类型,则执行下列语句串后,变量t的值为( C )。 X=y=z=1; If(x=y) t=z; Else t=!z; A 不定值 B 2 C 1 D 073. 语句”printf(“%dn”,strlen(“sn0121”);”的输出结果是( D )。 A 7 B 10 C 9 D 874. 若有以下数据定义语句,则数值为2的表达式是( A )。 int a12=1,2,3,4,5,6,7,8,9,10,11,12; A ag-c B a2 C ad-c D ad-c75. 设有数据定义语句“int a6;”,下列数组元素引用中下标不越界的是( B )。 A a-1 B a0 C a7 D a676. 设整形变量m1值为4,m2值为5,m3值为7,执行下列语句后,整形变量m4值为( D )。 Switch(m1=m2=m3+1) case1:m4=1;break; case2:m4=3;break; case3:m4=2;break; default:m4=4; A 1 B 2 C 3 D 477. 用十进制数表示表达式“4|04”的运算结果是( A )。 A 1 B 0 C 14 D 1278. char x=“abc”; char y=a,b,c ;则正确的叙述为( C )。A 数组x和数组y等价 B 数组x和数组y的长度相同C 数组x的长度大于数组y的长度D 数组x的长度小于数组y的长度79. 设a为5,执行下列语句后,b的值不为2的是( C )。 A b=a/2 B b=6-(-a) C b=a%2 D b=a3?2:280. 在C语言中,结果不等于4的表达式是( A )。 A sizeof(double) B sizeof(long) C sizeof(float) D sizeof(unsigned long)二、填空题1.一个C程序一般由若干个函数构成,其中至少应包含一个_main_ 函数。2.在Turbo C中,一个int型变量所能表示的数的范围是_-3276832767_ 。3.表达式103+1的值是_160_ 。4.若定义了int a10,*p;,将数组元素a8的地址赋给指针变量p的赋值语句是_p=a+8_ 。5.若定义了int a=1;,则执行printf(dn,(a=a+4,a+5),a+6);语句的输出结果是_11_ 。6.在C语言中,整型常量的书写形式包括:八进制、十进制和_十六_ 进制。7.在C语言中,一个双精度数-5.88在二进制文件里占用的字节数是 _8_。8.C语言标识符的第一个字符必须为下划线或者_字母_ 。9.在C语言中,当定义一个函数的类型为void时,说明执行该函数后_没返回值_ 。10.下面程序段的运行结果是_2 0_。for (a = 1,i = 1;1 = i 1;i+)a+;printf (“%2d”,a);printf (%2d”,i);11.设int a10;则数组a的首元素是_a0_。12.设int a=0,b=0,c;,则执行c=(a-=b-5),(a=b,b=3);后变量c的值是_5_。13.设int a=0,b=0,c=2,d=4;,则执行(c=a= =b)|(d=b= =a);后变量d的值是_4_。14.设int a =1,2,3,4,5,6,7,8,*s=a; 则*(s+1)的值是_2_。15.设char s =apple;,则数组s的长度是_6_。16.被调用函数执行结束时,此函数中定义的_static_类型的变量不被释放。17.表达式的运算对象可以是常量、函数调用和_变量_。18.设int x;,则将x强制转换为双精度类型应写成_(double)x_。19.语句if(!k)a=3;中!k与_k= =0_等价。20.函数调用时,若形参是一个指针变量,而对应的实参是一个数组名,则函数参数的传递方式是_地址_传递。21. 设a=3,b=5,c=a,则 abc的值为( 1 )。22. 能表达“20x30且x20&x30 & x79 )。23 语句”if (e1) if (e2) else s2;”的基本功能是(e1为真,e2为假时执行s2 )。24. 设有语句“int a34=1,2,3;”,则a21的值为( 0 )。25. C语言标识符是由( 字母 ),( 数字 )和( 下划线 )构成的。26 对于系统函数strcmp()在( 第一个字符串小于第二个字符串 )时,返回值为小于零的数。27 执行语句“int b5=0,a3=1,2,3,4,5,6;”后,b3=( 0 ), A02=( 3 )。28 设定“ char a=3,b=6,c;”,计算表达式c=(ab)2后c的二进制值是( 10100 )。29 设有语句int a=4;则执行了语句a+=a-=a*a;后,变量a的值为( -24 )。30若在程序中用到gets()函数,应在程序开头写( #include )。31执行语句“int b5=0,a3=1,2,3,4,5,6;”后,b4=( 0 ), A12=( 6 )。32Int x,y; x=1;y=2;则表达式1.0+x/y的值为( 1.0 )。33设a=3,b=2,c=a,则 abc的值为( 0 )。34能表达“20x30或x20 & x30|x-100 )。35语句”if (e1) if (e2) s2”的基本功能是(e1 和e2都为真时执行s2 )。36设有语句“int a34=1,2,3;”,则a11的值为( 0 )。37若在程序中用到puts()函数,应在程序开头写( #include )。38对于系统函数strcmp()在(第一个字符串大于第二个字符串 )时,返回值为大于零的数。39转移字符是由( )符号开始的。40C语言标识符是由( 字母 )或( 下划线 )开头的。三、程序分析题(1.main( ) int a33=1,4,17,3,6,19,2,5,18,i,s=0; for (i=0;i3;i+) s=s+ai2-i; printf(s=dn,s); S=252.main( ) int i;for(i=0;i5;i+)switch(i2) case 0:printf(1);break; case 1:printf(0); 101013.main( ) int x=20,y=40,*p; p=&x;printf(d,,*p); *p=x+10; p=&y;printf(dn,*p); *p=y+20; printf(d,dn,x,y);20,4030,604main()charstr=1234567;inti;for(i=0;i7;i+=3)printf(%sn,str+i );1234567456775. #include stdio.hmain()charc;while(c=getchar()!=n)switch (c)case 0: case 1:putchar(c); case 2:putchar(c);break; case 3:putchar(c); default:putchar(c+1);break;printf(n);输main( ) int a33=1,2,3;int b33=1,2,3;printf(%5d,a10+b01);printf(%5dn,a01+b10); 4 07.int a=10; struct data int a, b; s; main ( ) int c; s.a=20;s.b=30; c=f (s.a+s.b); printf(%d,%d,%dn, s.a, s.b, c); f (int b) printf (%d,%dn,a, b);return (a+b); 10,5020,30,608.#include fun ( ) int y=1; static int z=4; z +; + y; return (y*z); main ( ) int i; for (i=1; i3; i+) printf (%5dn,fun ( ); 10 129.main ( ) char *p,s =6543210; for (p=s; *p!=0;) printf (%sn,p); p +;if (*p!=0) p +;else break; 654321043210210010.main( ) long f( );printf(%5ldn,f(5); long f(int b) if(b= =1| |b=2)return 1;else return f(b-1)+f(b-2); 511Void main() char c1=A,c2=101,c3=x41; Printf(“A=%d,%c=0101,%c=0x41n”,c1,c2,c3); A=65,A=0101,A=0x4112.void main() int x=100,a=10,b=20,ok1=5,ok2=0; If(ab) if(b!=15) if(!ok1) x=1; Else if(ok2) x=10; Else x=-1; Printf(“%dn”,x); -113.void main() char a=*, *, *, *, *; Int I,j,k; For(i=0;i5;i+) printf(“n”); For(j=0;jI;j+) printf(“%c”,); For(k=0;k5;k+) printf(“%c”,ak); * * * * *14. void main() char ch,s100=”abcdef”; Int I,j; For(i=1;i=0;j-) sj+1=sj; S0=ch; Printf(“%sn”,s);efabcd15. void main() int n; For(n=1;n100;n+) If(n%10=1)&(n%3=0) Printf(%dn”,n);21518116. void main() int x=50,a=10,b=30,ok1=2,ok2=0; If(ab) if(b!=15) if(!ok1) x=1; Else if(ok2) x=10; Else x=-1; Printf(“%dn”,x); -117. Void main() char c1=C,c2=103,c3=x23; Printf(“A=%d,%c=0101,%c=0x41n”,c1,c2,c3); A=67,C=0101,#=0x4118void main() char ch,s100=”xyzabc”; Int I,j; For(i=1;i=0;j-) sj+1=sj; S0=ch; Printf(“%sn”,s);abxyzc19void main() char a=, , , ; Int I,j,k; For(i=0;i4;i+) printf(“n”); For(j=0;jI;j+) printf(“%c”,); For(k=0;k4;k+) printf(“%c”,ak); # # # #20void main() int n; For(n=1;n50;n+) If(n%10=1)&(n%3=0) Printf(%dn”,n);21四、程序填充题1下列程序是按照以下公式计算并输出值,请填写程序中缺少得语句。 /4=1-1/3+1/5-1/7+1/n 精度要求|1/n|10-4 #include Void main() double pi=1.0,t1=3.0,t2=3.0,t3=-1.0; While(fabs(t1)=1e-4) t1=t3/t2; Pi+=t1; T2+=2; T3=-t3; Printf(“%f”n”,4*pi); 2下面程序得功能是输入一个字符串,逆序排列输出。 #include #include void main() Char ch,s1100,s2100; Int I,j,n; Gets(s1); n=strlen(s1); For(i=0,j=n-1;i=a&si=z ) Si-=32; Else if(A=si)&(si=Z) Si+=32; Printf(“%s”,s);4. 下面程序得功能是输入一个字符串,逆序排列输出。 #include #include void main() Char ch,s1100,s2100; Int I,j,n; Gets(s1); n=strlen(s1); For( i=0 ,j=n-1;in;i+,j-) S2j=s1i; Puts(s2);5下列程序是按照以下公式计算并输出值,请填写程序中缺少得语句。 /4=1-1/3+1/5-1/7+1/n 精度要求|1/n|10-4#include Void main() float pi=1.0,t1=3.0,t2=3.0,t3=-1.0; While(fabs(t1)=1e-4) t1=t3/t2; Pi+=t1; T2+=2; T3=-t3 Printf(“%f”,4*pi ); 6.下列程序的功能是输入一个字符串,将其中的所有大写字母转换成小写字母,小写字母换成大写字母后输出。Void main() char s81; Int i=0; Gets(s); While(si

温馨提示

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

评论

0/150

提交评论