c语言复习试题_第1页
c语言复习试题_第2页
c语言复习试题_第3页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言期末复习试卷、单项选择题:1. 在计算机上可以直接运行的程序是C 。A. C语言源程序B.汇编语言程序C.机器语言程序D.高级语言程序2. 以下叙述正确的是C 。A. #define是C语句,但printf不是 B. printf是C语句,但#define不是C. #define和printf都不是C语句D. #define和printf都是C语句3. C语言基本的数据类型包括C oA.整型、实型、逻辑型B.整型、实型、字符串型C.实型、字符型、枚举类型 D.整型、实型、指针类型4. 下列数据类型中不属于构造类型的是C oA.数组型B.结构型C.枚举型D.共用型5. 设int类型的数据长

2、度为2个字节,贝IJ unsigned int类型数据的取值范围是C A. 0 至 255 B. -256 至 255 C. 0 至 65535 D. -32768 至 327676. 合法的常量是C 。A. 2e3.5 B. -e-3 C. - .5 e-3 D. 'xfg'7. 合法的字符常量是C oD. ”0”A. '084' B. 'ab' C. ,x4a,8. 以下C组中的标识符都是合法的C语言用户标识符。A 3abB. classC. printfD b3io.算术表达式描述? C_10为C语言表达式,不正确的INTastgradec

3、harlunsigned9下列运算符的优先级按从高到低的顺序是.cA ? +&&!= B. !=? + && C.Jo+ ? != &&D. +!=&&A. a/b/c B. a/(b*c) C. a/b*c D. (a/b)/c 11.若有定义:int x=4 ;则表达式x +二 x *二 x+1的值为C A. 5B. 20C. 40D.无答案12.已知a=10, b=20 ,WJ表达式!a < b的值是C A.真B.假 C. D.1 013. 在while ( !x )中,! x与下面条件C等价。A. x !=1B. x

4、= 1C. x = =0D. x !=014. 若有定义: int i,j,k, *p ; float a, b; C 是不合法的赋值语句。A. +i; B. k = p = = &j ; C. a = a+b=l;D. k= (i = j =0 );15. 若有定义: int i, j, k, *p; float a, b; C 是正确的表达式。A. a%3 B. y=float (i) C. b=(float)i*(a=3) D. p = i16. 若有定义 :float a=3. 0, b=4. 0, c 二 5. 0;则表达式 l/2*(a+b+c) 的值为 C 。A. 6.0

5、B. 6C. 0.0D.无答案17. 数学关系式xWyWz可用C语言表达式C表示。A. x<=y<=z B. x<=y AND y<=z C. x<=y && y<=z D. (x<=y)&(y<=z)18. 若有定义和语句: int sp; s=p=5; p=s+,+p, p+2, p+; 则 p 的值是 C 。A. 9B. 8C. 7D. 619. 若有定义:int a, b;则表达式 a=4, b=3, a+b+2, a+, a+b+2 的值为C。A. 12B. 11C. 10D.无答案20. 若有定义和语句:cha

6、r a=3, b=6, c; c =aAb?2;则c的二进制值是C 。A. 00011000 B. 00011100 C. 00011011 D. 0001010021. 若有定义和语句: int a=10, b=5, x; char c='A' x=a&b&& cv'a' 则 x 值是 C 。A.真 B.假 C. 0 D. 122. 若有定义和语句: int a=4; floatx=7.5, y=4.8; 则表达式: a+(int) (int) (x)+y)? (int) (x-y) 的值为 C A. 1B. 2C. 3D. 423.

7、printf C%d, %d, %dn J, 010, 0x10, 10);输出结果是 C 。A. 10, 10, 10 B. 16, & 10C. 8, 16, 10 D. 无答案24. 下面程序段输出结果是 C Kint k=17;printf( ,%d, %o, %xn ”k, , k, k);A. 17,17,17 B. 17,021,0x11 C. 17,21,11 D. 17,0x11,02125. 下面程序段输出结果是 C odouble d;float f; long 1; int i;i 二 f 二二 d=20/3. 0;printf ("% ( i, %l

8、d, %f, %fn", i, 1, f, d);A. 6,6,6. 000000, 6. 000000 B. 6,6,6. 666667, 6. 666667 C. 6,6,6. 000000, 6. 666667 D. 6,6,6. 666667, 6. 000000#x=%d x);y 二(x+3. 8)/5. 0 ;26. 下面程序段的输岀结果是double d=3. 2; int x, y ; x=l. 2;A. 3B. 3.22 if(x>y面不正确的if语句7. if( x >y ); printf ( % d", x);elseprin tf(&

9、#39;%d", y);28.与下述程序段不等价的是Cifx=l; else y=2;(a<=b )if( a>b )printf (elseprintf(C Lprintf (,s%dn”)d*y);C. 0 D. 3.07、(假设x,y已有确切的x=y ) x+=yD. if( x<y) x+ ; y+; n”,y);31.若有定义:float w; int a, b;则合法的A. switch( w)case 1.0:printf (" *n");A. x=l; printfif( ie<=b y=2; ( "#x=%dn&

10、quot;,case 2. 0:printf *n");switch 语句是C 。case 1 printf (” *n");if( a>b ) y二 2; printf(“ *y=%d n ”, y ) ; else case 2 prinf x=*;npri ntfC. if( a<=b) x 二 1; printf (“ #(=% x);else y=2; printf(“ *yi=%d/ );D. if( a<=b ) x=l; else y=2;if( a<=b ) printf("#x=%dn", x);else pr

11、intf29.若有定义和语句,则x的值是Cint a=8, b 二 7, c=6, x=l;if(a>6 )if ( b>7 )if( c>8 ) x 二 2; else x=3 ;A. 3 B. 2 C. 1 D. 0B. switch( a+b )switch 语句中的各个case 条件不A.字符常B.值大于等于零的整型常量C.般表达D.值小于零的整型常量case 1 :printf (w n”); default :case 2: printf (n") ;* default :printf( n” ;)case l+2:printf( ” printf (

12、n");n )n );32. 若有定义和语句:int i=10; switch (i)case 9:i+=l;case 10:i+=l;case 11 :i+=l; break ;case 12:i+=l;default :i+=l;则i的值是C oA. 14B. 13C. 12D. 无答案33. 下面程序的输出结果是C ovoid main()int x=l, y=0, a=0, b=0 ;switch( x)case 1 : switch( y )case 0 a+; break ; case 1: b+; break ;case 2 : a+; b+; break;case 3

13、 : a+; b+;printf( "a=%d, b=%dnAA, a , b );1A a=l, b b=0 .b=lC a=2,D. 0=2 , b=234. 以下叙述正确的是CA. do-while构成的循环不能用其它语句构成的循环来代替B. do-while语句构成的循环只能用break语句退出C. 在do-while中,当while后表达式的值为零时结束循环D. 在do-while语句中,当while后的表达式的值为非零时结束循环35. 下面程序的输出结果是C oint i, a, b, c, d, e;for( i=l; i<=5; i+ )a=b=c=d=e=0;

14、switch( i)ca1a=l;se2b=2; cotinuse,e;ca3c=3;seca4d=4; break;seca5e=5;se :printf (”n" , a, b, c, d, e ); A. 1,0,0,0,0B. 1,2,0,0,0C. 0,0,3,4,0D.无答案0,2,0,0,00,2,0,0,00,0,0,4,00,0,3,0,00,0,3,4,00,0,0,0,50,0,0,4,00,0,0,4,00,0,0,0,50,0,0,0,536. 卜 ?面程疗;的输出结果是C void main()int x=10, y=10, i;for( i=0; x &

15、gt;8; y= +i) piintf(%3d%3c" ”,x, y );A. 10192B. 9876C. 101091D. 1099037. 若有定义:int i,k;则 for 循环语句:for( i=0, k=-1; k=l; i+, k+);是C 。A.循环零次B.循环1次C.循环无穷多次D.循环结束条件不合法38. 若有定义和语句:int i;for (i=l; i<=3; i+); printf ( % d"则输出结果是C A. 123B. 3C. 4D.无答案void main()int i, j;for( i 二 0, j 二 1; i二 j+1;

16、i+ 二 2, j ) printf ( <<%dns, i) ;A. 3 B. 2 C? 1 D. 040.若有定义:int k;下面不会出现死循环的程序段是CA. k=3379;B. k=100;C. k=0;D. for (;);while( k%2= = k+%2)while( 1 )do +k; while (k>0);k+; k = k%100+l ; if (k>100) break; 41. 若有 : int x=3;doprintf("%3d'',x_ =2);)while (! (一-x);则输出结果是C A. uolB.

17、uu3uo0C. uolo-2D. 死循环42. 下面程序的输出结果是 C K void main()int i;for( i=l; i<=5; i+ )if( i%2 ) printf ( ” * ” );else continue;print") ;printf CW 5 ); 一、 42 题A. *#*#$B. #*#*#*$C.D.*#*#*#*#*$43. 下面程序的输出结果是 C ovoid main()int k, j, x=0;for( k=l; k<=2; k+ )x+;for(j=k;j<=5;j 卄)if(j%3= = 0) break;X+

18、;X+;1printf ( ” n”x, );A. 13B. 3C. 7D.无答案44. 对数组a的正确定义为C oint n, an;scanf( "%d", &n );A. int a(10); B. int n=10, an; C. #define SIZE 10D.int aSIZE;45. 若有定义和语句: double r=99, *p=&r; *p=r; 则正确的叙述是 C 。A. 以上两处的 *p 含义相同,都是给指针变量 p 赋值B. 在“double r=99, *p=&r;中的”*p=&r; ”是把r的地址赋给p所指的存

19、储单元C. 语句” *p=r; ”取变量r的值放回r中D. 语句” *p=r;"把变量I?的值赋给指针变量 p46. 下面程序的输出结果是 C。void main()int a=100, *p;p 二*p+=50;printf ( ” n”,a+*p); A. 150 B. 250 C. 300D. 10047. 下面程序的输出结果是 C Kvoid main ()int j, x 3 3 =9,8,7,6,5,4,3,2,1, *p=&x 11;for(j=0;j<4;j+=2)printf ( ”d”,p j ;) A. 52B. 51C. 53D. 9748. 下

20、面程序的输出结果是 C。void main()int a5 = 2, 4, 6, 8,10, *p, *k;P 二 a;k 二 &p;printf (”%d, ”, *(p+);printf ( ” n” ,*k); A. 4,4 B. 2,2C. 2,4D. 无答案49. 若有定义: int a34, (*p) 4=a; 要引用班 23用 C 。A. * (p+11) B. * (p+2+3) C. *(*(p+2)+3) D. *(*(p+2+3)50. 若有定义和语句: int t23,*p3,k;for( k=0; k<2; k+ )pk=&tkO;贝I*(*(

21、p+l)+2)表示的数组元素是C LA. t20B. t22 C. tl 2 D. t2l 51. 以下程序的运行结果 C:void main()int a 3 = 1, 2, 3, 4, 5, 6, 7, 8, *p=aO, *pa3 = aO, al, a2 ,*pp 二 pa;printf ( 9, *(a0+2) ; printf ( ,5%d, ”,*(*(a+l)+2);printf (” %d, " , *(pal+4) ; printf (” %d, " ,p4);printf ( AA%dnAA ,pp2 0); A. 1, 5, 5, 2, 4 B. 2

22、, 4, 6, 4, 5 C. 3, 0, 7, 5, 6 D. 4, 6, 8, 6, 052. 字符串”102q”的长度是C。A. 9 B. 15C. 7 D. 1653. ” b在内存中以C个字节存放。A. 1 B. 3C. 2 D. 无答案54. 若有定义:char s 10 = % d0 a 101”;贝U strlen ( s )的值为C 。A. 10 B. 9C. 2 D. 无答案55. 若执行下面程序时输入penobook/则结果是C 。ttincludestring. h>void main()char al20;scanf ("%s", al);

23、printf ("%dt", strlen ( al ); puts( al ); A. 4 pen B. 8 pen book C. 3 pen D. 20 pen56. 若有定义: char c7= "fuzhou" , *s=c;int i; 则下面中错误的是 C。A. printf( % ”n”, s ); B. for( i=0; i<=5; i+ )C. printf( % ”n”, *s ); D. for (i=0; i<=5; i+)printf( %” n” , ci );printf ( %” n” , si );57.

24、 下程序的输出结果是 C。void main()static char *sl 二"1,2, 3, 4, 5, 6 , *s2 二"abcdefint i;*sl=*s2;printf( AA%snAA, si); A. abcdef B. abcdef4,5,6 C. a,2,3,4,5,6D. 1, 2, 3, 4, 5, 658. 若有定义:char *s二” student ;贝! J正确的叙述是C 。A. s+2 与 s : 2 等价 B. *s+2 与 s : 2 等价 C. *(s+2)与 s : 2 等价 D. s+2 与 *$ : 2 等价59. 若有定义

25、:char si =”studenf; s2 8 , *s3 , *s4 二” student"则错误的是。A. strcpy (si, "hello 1"); B. strcpy (s2, AAhello2AA); C. strcpy (s3, AAhello3AA); D. strcpy (s4, AAhello4AA);60. 下面程序输出结果为 C。#include <string.h>void main ()char *pl , *p2 , str 50 二”123456789” ;pl 二” ab”;p2=AAuvwxyAA;strcpy

26、( str+1 , strcat ( pl , p2 );printf ( s“n “, str); A. 1 abuvwxy9B. abuvwxy89C. 1 abuvwxyD. uvwxy678961. 一个C程序总是从C开始执行程序。A.第一行B.第一个函数 C.主函数D.最后一个函数62. void 作为函数的参数时,表示C。A.该函数无返回值 B.实参可为任意值 C.函数无参数D.该函数可返回任意值63. C语言中函数返回值的类型是由C决定的。A. return语句屮的衣达式类梨 B.调用函数时临时指定C.定义函数吋所指定的函数类型D.对被调用函数声明吋指定64. 下列调用函数的说法

27、屮不正确的是 CA.主调函数和被调函数可以不在同一文件中B.实际参数和形式参数可以同名C.若用值传递方式,则形式参数不予分配内存D.函数问传递数据可使用全局变量A.数组中全部元素的值B.数组的第一个元素的值C .数组的首地址D.数组元素的个数66. 下面程序的输出结果是 C void subl ( int * x, int y, int z ) *x 二 y z;void sub2 ( int x, int y, int z )x 二 y乙void main ()int a=0, b=0;subl ( &a, 10, 3 ); sub2 ( b, 10, 3 );printf ( &q

28、uot;%d, %dn" , a, b) A. 7,7 B. 0,7C. 7,0 D. 0,067. 下面程序运行后的输出结果是C:void sort( int *a, int n )int i, j, t;for(i=0; i<nl; i+)for(j=i+l; j<n; j+)if (ai<ajl)68. 下面程序的输出结果是 C 。ttinclude <stdio. h>int ss( char *s )B.10,9,8,7,6,char *p=s;while( *p ) p+;return( p-s );t 二 ai ; ai>aj ; a

29、j=t; A. 1,2,3,4,5,6,7,&9,10,void main( )/* 一、67 题*/int aa10 = l, 2, 3, 4, 5, 6, 7, 8, 9,10, I;sort( &aa3, 5) ;for (i=0 ; i<10; i+)print(”d, ” , aa;i)void main()C. D.char *a=1,”2,a3bc,&d;e7”,6,1,2,10,9,&7int i;i 二 ss( a );printf ( AA%dnAA , i );A. 7 B. 6 C. 5 D. 869. 下面程序的输出结果是 C t

30、tinclude stdio. h> void main()intint a=9, b=5;x 二 a+b;x, yvoidD. 14,15A. 14, 4 B. 35, 15 C. 35, 4 void main()int i;for( i=l; i<4; i+ ) +x;f();printf (” n”,x) ; 15 C. 13, 14, 15, 4 D. 无 答 案int y, a=25, b=10; x二 a+b; y=ab; y=a-b;return; f() ; printf ('%d, %dn", x, y);70. 下面程序的输出结果是 C 。i

31、nt x=l;void f()static int i=2;int x=10;x+=+i;printf ( ?,%d, ”x,);A. 13, 17, 22, 4 B. 13, 14, 15, 71*. int (*f)(); 的含义是 CA.函数f()返回一个指向int型数据的指针B.函数f()为int型C. f为指向函数的指针变量,该函数返回?个血型值D.函数f()为int型指针72. 若有定义和声明 :int a10,(*p)(),max(); float b; 则正确的是 C A. p=&b;B. a=a+5;C. p=max; D. p=a;73. C语言中的函数C oA.

32、嵌套定义和嵌套调用均可B. 可以嵌套定义但不可以嵌套调用C. 嵌套调用和递归调用均可D. 可以嵌套调用但不可以递归调用74. 下面程序输出结果为Cvoid fl(int i);void f2( int i);char s="hello, frien d!" voidmai nvoid fl ( int i ) /* 、74 题 */ printf ( "%c", s i );if( i<4 ) i+=l; f2( i ) ; void f2( int i )printf ( "%c" , s i );if( i<2 ) i

33、+f2(i) ; 3;A. hello B. he C. heo D.无答案75. 若程序中含有定义:struct abc int x; int y; struct abc贝 qsi, s2;A.能编译、链接、 B.能编译、链接,但不C.编译时出D.能编译、但链接76. 若有定义:struct st char name20; int age; char sex; a30, *p=a;贝! J C 是错误的语句。A. scanf( % s", ); B. scanf( "%d",&p0.age); C. scanf ( % d", &(*p.age); D. scanf ( % c",&p->sex);77. C语言中,对于存储类型为C的变量,只有在使用它们时才占用内存单元。A. static

温馨提示

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

评论

0/150

提交评论