C语言习题集含答案

上传人:xian****hua 文档编号:153362038 上传时间:2022-09-18 格式:DOC 页数:36 大小:89KB
收藏 版权申诉 举报 下载
C语言习题集含答案_第1页
第1页 / 共36页
C语言习题集含答案_第2页
第2页 / 共36页
C语言习题集含答案_第3页
第3页 / 共36页
资源描述:

《C语言习题集含答案》由会员分享,可在线阅读,更多相关《C语言习题集含答案(36页珍藏版)》请在装配图网上搜索。

1、一、单选题:(1) 在C语言提供的合法的关键字是( ) A)swicth B) cher C)Case D)default (2)在C语言中,合法的字符常量是( )A)084 B) x43 C)ab D) 0(3)若有定义和语句: char s10: s=abcd; printf(%sn,s); 则结果是(以下u代表空格)( ) A)输出abcd B)输出a C)输出abcduuuuu D)编译不通过 (4) 若有定义和语句: int *pp, *p, a=10, b=20; pp=&p; p=&a; p=&b; printf(%d,%dn,*p,*pp); 则输出结果是:( ) A)10,

2、20 B)10,10 C)20,10 D)20,20 (5)若有以下定义和语句: int u=010, v=0x10,w=10; printf(%d,%d,%dn, u, v, w); 则输出结果是( ) A) 8,16,10 B) 10,10,10 C)8, 8,10 D) 8,10,10 (6) 若有以下定义和语句 char c1= b, c2=e; printf(%d,%cn, c2-c1,c2-a+A); 则输出结果是( ) A)2,M B)3,E C)2,E ? D)输出项与对应的格式控制不一致,输出结果不确定(7) 若有以下定义: char s20=programming,*ps=

3、s; 则不能代表字符o的表达式是( ) A) ps+2 B) s2 C) ps2 D) ps+=2,*ps(8) 若i, j已定义为int类型,则以下程序段中内循环体的总的执行次数是( ) for (i=5; i; i-) for(j=0; j4; j+) . A) 20 B) 25 C) 24 D) 30(9)若有以下定义和语句: char *s1=12345,*s2=1234; printf(%dn,strlen(strcpy(s1,s2);则输出结果是( )A) 4 B) 5 C) 9 D) 10(10)若有以下定义和语句: int a10=1,2,3,4,5,6,7,8,9,10,*p

4、=a; 则不能表示a数组元素的表达式是( ) A) *p B) a10 C)*a D) ap-a (11)下面程序的输出是( ) main( ) char *s=121; int k=0, a=0, b=0; do k+; if(k%2=0) a=a+sk-0;continue; b=b+sk-0; a=a+sk-0; while (sk+1); printf(k=%d a=%d b=%dn,k,a,b); A) k=3 a=2 b=3 B) k=3 a=3 b=2 C) k=2 a=3 b=2 D) k=2 a=2 b=3 (12) 下面程序的输出是( ) main( ) unsigned

5、a=32768; printf(a=%dn, a); 运行结果: -32768 A)a=-32768 B)a=32767 C)a=-32767 D)a=-1 (13) 若有以下定义: float x; int a,b; 则正确的switch 语句是( ) A)switch(x) B) switch(x) case1.0: printf(*n); case1, 2: printf(*n); case2.0: printf(*n); case3: printf(*n); C) switch (a+b) D) switch (a+b); case 1: printf(n); case 1: prin

6、tf(*n); case 1+2: printf(*n); case 2: printf(*n); (14) 以下程序输出的结果是( ) main( ) char w 10=ABCD,EFGH,IJKL,MNOP, k; for (k=1;k=10 or a=0|a=10 &a=10 | a=0 (23) 有如下程序 main( ) int x=1, a=0, b=0; switch(x) case 0: b+; case 1: a+; case 2: a+; b+; printf(“a=%d,b=%dn”,a,b); 该程序的输出结果是( ) A) a=2,b=1 B) a=1,b=1 C)

7、 a=1,b=0 D) a=2,b=2 (24) 有如下程序 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.000000 B) 0.250000 C) 0.500000 D) 1.000000 (26) 有如下程序 main( ) int i, sum; for(i=1;i6) n-; printf(“%d”,n); 该程序段的输出结果是( ) A) 987 B) 876 C) 8765 D) 9876 (29) 设有说

8、明语句:char a=72;则变量a( ) A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法 (30) 有如下函数调用语句 func(rec1,rec2+rec3,(rec4,rec5); 该函数调用语句中,含有的实参个数是( ) A) 3 B) 4 C) 5 D) 有语法错 (31) 有如下程序 int func(int a,int b) return(a+b); main( ) int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(“%dn”,r); 该程序的输出的结果是( ) A) 12 B) 13 C) 14 D) 1

9、5 (32) 有如下程序段 int *p, a=10,b=1; p=&a; a=*p+b; 执行该程序段后,a的值为( ) A) 12 B) 11 C) 10 D) 编译出错 (33) 对于基类型相同的两个指针变量之间,不能进行的运算是( ) A) 2) return(fib(n-1)+fib(n-2); else return(2); main( ) printf(“%dn”, fib(3); 该程序的输出结果是( ) A) 2 B) 4 C) 6 D) 8 (35) 在C语言中,函数的隐含存储类别是( ) A) auto B) static C) extern D) 无存储类别 (36)

10、有如下程序 #define N 2 #define M N+1 #define NUM 2*M+1 main( ) int i; for(i=1;i=NUM;i+) printf(“%dn”,i); 该程序中的for循环执行的次数是( ) A) 5 B) 6 C) 7 D) 8 (37) 有以下函数 char fun(char *p) return p; 该函数的返回值是( ) A) 无确切的值 B) 形参p中存放的地址值 B) 一个临时存储单元的地址 D) 形参p自身的地址值 (38) 有如下程序段 int a=14,b=15,x; char c=A; x=(a&b)&(cB); 执行该程序

11、段后,x的值为( ) A) true B) false C) 0 D) 1 (39) 有如下说明 int a10=1,2,3,4,5,6,7,8,9,10, *p=a; 则数值为9的表达式是( ) A) *p+9 B) *(p+8) C) *p+=9 D) p+8 (40) 若有以下的定义:int t32;能正确表示t数组元素地址的表达式是( ) A) &t32 B) t3 C) t1 D) t2 (41) 有如下程序 main( ) char ch25=“6937”, ”8254”, *p2; int i,j,s=0; for(i=0;i2;i+) pi=chi; for(i=0;i0; j

12、+=2) s=10*s+pij-0; printf(“%dn”,s); 该程序的输出结果是( ) A) 69825 B) 63825 C) 6385 D) 693825 (42)若有以下的定义: int a =1,2,3,4,5,6,7,88,9,10, *p=a; 则值为3的表式是( ) A) p+=2, *(p+) B) p+=2,*+p C) p+=3, *p+ D) p+=2,+*p(43)假定所有变量均已正确说明,下列程序段运行后x的值是( ) a=b=c=0; x=35; if (!a) x-; else if(b) ; if(c) x=3; else x=4; A)34 B)4

13、C)35 D)3(44)在以下一组运算符中,优先级最高的运算符是( ) A)= B)= C)% D)&(45)若有以下定义和语句: int w23, (*pw)3; pw=w; 则对w数组元素非法引用是( ) A)*(w0+2) =*w02 B)*(pw+1)2 C)pw00 =*w00 D)*(pw1+2) =*w12(46)若有以下程序片段: char str =abn012; printf(%dn, strlen(str); 上面程序片段的输出结果是( ) A)3 B)4 C)6 D)12(47)函数调用strcat(strcpy(str1,str2),str3)的功能是( ) A)将串

14、str1复制到串str2中后再连接到串str3之后 B)将串str1连接到串str2之后再复制到串str3之后 C)将串str2复制到串str1中后再将串str3连接到串str1之后 D)将串str2连接到串str1之后再将串str1复制到串str3中(48)以下对C语言函数的有关描述中,正确的是( )A) 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B) C函数既可以嵌套定义又可以递归调用 解释: C函数可以递归调用,但不允许嵌套定义C) 函数必须有返回值,否则不能使用函数 D) C程序中有调用关系的所有函数必须放在同一个源程序文件中(49) 以下叙述中不正确的是(

15、 ) A)在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值. B) 在C中,调用函数时,实在参数和对应形参在类型上只需赋值兼容. C) 在C中, 外部变量的隐含类别是自动存储类别. D)在C中, 函数形参可以说明为register变量.(50) 以下程序的输出结果是( )#define sub1(char a, char b) char c; c=a;a=b;b=c; #define sub2(char *a, char b) char c; c=*a;*a=b;b=c; #define sub3(char *a, char *b) char c; c=*a;*a=*b;*b=c;m

16、ain( ) char a,b; a=A;b=B;sub3(&a,&b);putchar(a); putchar(b); a=A;b=B;sub2(&a,b);putchar(a); putchar(b); a=A;b=B;sub1(a,b);putchar(a);putchar(b); A) BABBAB B) ABBBBA C) BABABA D) BAABBA(51) 错误的转义字符是 ( )A) 091 B) C) 0 D) (52) 设int a,b,c;执行表达式a=b=1,a+,b+1,c=a+b-后,a, b和c的值分别是 ( ) A) 2, 1, 2 B) 2, 0, 3 C

17、) 2, 2, 3 D) 2, 1, 3(53) 在C语言中,错误的常数是 ( ) A) 1E+0.0 B) 5 C) 0xaf D) 0L ( 54) 设int k; 则语句for(k=0; k=1; k+);和语句for(k=0; k=1;k+);执行的次数分别是 ( )A) 无限和0 B) 0和无限 C) 都是无限 D) 都是0(55)某文件中定义的静态全局变量(或称静态外部变量)其作用域是( )A) 只限某个函数 B) 本文件 C) 跨文件 D)不限制作用域二、程序填空题:(10) 函数pi的功能是根据以下近似公式求值: (*)/6=1+1/(2*2)+1/(3*3)+1/(n*n)

18、现在请你在下面的函数中填空,完成求的功能。 #include “math.h” double pi(long n) double s=0.0; long i; for(i=1;iwp) p+; for(i=*n;ip;i-) wi= wi-1; wp=x; + *n; (15) fun1函数的调用语句为: fun1(&a, &b, &c); 它将三个整数按由大到小的顺序调整后依次放入a,b,c三个变量中,a中放最大数。请填空. void fun2 (int *x,int *y) int t; t=*x; *x=*y; *y=t; void fun1 (int *pa, int *pb, int

19、 *pc) if (*pc*pb) fun2( pc, pb ); if (*pa*pc) fun2( pa, pc ); if (*pac & b+ca & a+cb) if( a=b | a=c | b=c ) printf(DY); if( a=b & b=c ) printf(DB); a2=a*a; b2=b*b; c2=c*c; if( a2+b2=c2 | a2+c2=b2 | b2+c2=a2 ) printf(ZJ); printf(n); else printf(NOn); 17.输出下列图形。1 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 3 4 5

20、6 7 8 9 4 5 6 7 8 9 5 6 7 8 9 6 7 8 97 8 98 99main( ) int i, j;for(i=1; i=9 ; i+) for( j=i ; j=2; j-) switch( j ) case 0: printf(%4s,ABC); case 1: printf(%4s,DEF); case 2: printf(%4s,GHI); break; case 3: printf(%4s,JKL); default: printf(%4s,MNO); printf(n); 程序运行结果:MNOJKLMNOGHI19. main( ) static int

21、j,a6=1,2; for(j=3; j6; j+) aj=aj/2+aj%3-aj-2; for(j=0; j6; j+) printf(%5d,aj); printf(n); 程序运行结果:12012-120. int a=10;int f(int a) int b=0; static int c=3; a+; +c; +b; return a+b+c; main( ) int i; for(i=0;i2;i+)print(%5d,f(a); printf(n);程序运行结果:161721. #define N 2#define M N+1#define NUM 2*M+1int fib(

22、int n) return ntype PROC.c main(int argc,char *argv )while(-argc0)printf(%s,argvargc);printf(n);写出执行下列命令后的输出结果C:PROG 2008 OLYMPIC BEIJING 程序运行结果: BEIJINGOLYMPIC20082004年4月二级C语言笔试试题及参考解答 一、选择题:1、1MB等于( ) A) 1000字节 B) 1024字节C) 1000*1000字节 D) 1024*1024字节2、与十六进制数200等值的十进制数为( ) A) 256 B) 512 C) 1024 D) 2

23、0483、所谓裸机是指( ) A) 单片机 B) 单板机 C) 不装备任何软件的计算机 D) 只装备操作系统的计算机 4、能将高级语言编写的源程序转换为目标程序的是( )A) 链接程序 B) 解释程序 C) 编译程序 D) 编辑程序5、在64位计算机中,一个字长所占字节数为( )A) 64 B) 8 C) 4 D) 1 6、在Windows环境下,当一个应用程序窗口被最小化后,该应用程序( )A) 继续在后台运行 B) 继续在前台运行C) 终止运行D) 暂停运行 7、在Windows环境下,能实现窗口移动的操作是( )A)用鼠标拖动窗口中的任何部位 B)用鼠标拖动窗口的边框C)用鼠标拖动窗口的

24、控制按钮 D)用鼠标拖动窗口的标题栏8、在Windows环境下,PrintScreen键的作用是( )A)打印当前窗口的内容 B)打印屏幕内容C)复制屏幕到剪贴板 D)复制当前窗口到剪贴板9、Internet的通信协议是( )A)TCP/IP B)BBS C)WWW D)FTP 10、下列叙述中正确的是( )A)计算机病毒只感染可执行文件 B)计算机病毒只感染文本文件C)计算机病毒只能通过软件复制的方式进行传播D)计算机病毒可以通过网络或读写磁盘方式进行传播11、一个算法应该具有确定性等5个特性,下面对另外4个特性的描述中错误的是( ) A)有零个或多个输入 B)有零个或多个输出 C) 有穷性

25、 D)可行性 12、以下叙述中正确的是( )A)C语言的源程序不必通过编译就可以直接运行B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令C)C源程序经编译形成的二进制代码可以直接运行D)C语言中的函数不可以单独进行编译13、以下符合C语言语法的实型常量是( ) A)1.2E0.5 B)3.14.159E C).5E-3 D)E15 14、以下4组用户定义标识符中,全部合法的一组是()A) _main B) If C) txt D) int enclude -max REAL k_2 sin turbo 3COM _001 15、若以下选项中的变量已正确定义,则正确的赋值语句是()A

26、)x1=26.8%3 B)1+2=x2 C)x3=0x12 D)x4=1+2=3; 16、设有以下定义 int a=0; double b=1.25; char c=A; #define d 2 则下面语句中错误的是( ) A)a+; B)b+ C)c+; D)d+;17、设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是( )A)(a+b)*h/2 B)(1/2)*(a+b)*h C)(a+b)*h*1/2 D)h/2*(a+b) 18、有以下程序 main( ) int x=102,y=012; printf(%2d,%2dn,x,y); 执行后输出

27、结果是() A)10,01 B) 002,12 C)102,10 D)02,1019、以下4个选项中,不能看作一条语句的是() A) ; B)a=0,b=0,c=0; C)if(a0); D)if(b=0)m=1;n=2; 20、设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是( ) A)scanf(%d,pa); B)scanf(%d,a); C)scanf(%d,&pa); D)scanf(%d,*pa); 21、以下程序段中与语句k=ab?(bc?1:0):0;功能等价的是()A) if (ab)&(bc) k=1; else k=0; B) if (a

28、b)|(bc) k=1;else k=0; C) if (ab) k=1; else if(bc) k=1; else k=0; 22、有以下程序main( ) char k; int i; for(i=1;i3;i+) scanf(%c,&k); switch(k) case 0: printf(anothern); case 1: printf(numbern); 程序运行时,从键盘输入:01,程序执行后的输出结果是( )A) another B) another C) another D) number number number number number another number

29、 23、有以下程序main( ) int x=0,y=5,z=3; while(z-0&+x5) y=y-1; printf(%d,%d,%dn,x,y,z); 程序执行后的输出结果是( )A)3,2,0 B)3,2,-1 C)4,3,-1 D)5,-2,-5 24、有以下程序 main( ) int i,s=0; for(i=1;i10;i+=2) s+=i+1; printf(%dn,s); 程序执行后的输出结果是() A)自然数19的累加和 B)自然数110的累加和 C)自然数19中的奇数之和 D)自然数110中的偶数之25、有以下程序 main( ) int i,n=0; for(i=

30、2;i5;i+) do if(i%3) continue; n+; while(!i); n+; printf(n=%dn,n); 程序执行后的输出结果是() A)n=5 B)n=2 C)n=3 D) n=4 26、若程序中定义了以下函数 double myadd(double a, double b) return (a+b); 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是( ) A) double myadd(double a,b);B)double myadd(double,double); C)double myadd(double b,double

31、 a);D)double myadd(double x,doubley); 27、有以下程序 char fun(char x , char y) if(xy) 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 30、有以下程序段 int a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,b; b=p5; b中的值是( ) A)5 B)6 C)8 D)9 31、有以下程序 main( ) char a=abcdefg

32、,b10=abcdefg; printf(%d %dn, sizeof(a), sizeof(b); 执行后输出结果是( ) A)7 7 B)8 8 C)8 10 D)10 10 32、有以下程序 void swap1(int c ) int t; t=c0;c0=c1;c1=t; void swap2(int c0, int c1) int t; t=c0;c0=c1;c1=t; main( ) inta2=3,5,b2=3,5; swap1(a);swap2(b0,b1); printf(%d%d%d%dn,a0,a1,b0,b1); 其输出结果是( ) A)5353B)5335C)353

33、5D)3553 33、有以下程序 voidsum(int*a) a0=a1; main() intaa10=1,2,3,4,5,6,7,8,9,10,i; for(i=2;i=0;i-)sum(&aai); printf(%dn,aa0); 执行后的输出结果是( ) A)4 B)3C)2D)1 34、有以下程序 intf(intb4) inti,j,s=0; for(j=0;j2)i=3-j; s+=bij; returns; main() inta44=1,2,3,4,0,2,4,5,3,6,9,12,3,2,1,0; printf(%dn,f(a); 执行后的输出结果是( ) A)12B)

34、11C)18D)16 35、有以下定义 #include chara10,*b=a; 不能给数组a输入字符串的语句是( ) A)gets(a)B)gets(a0)C)gets(&a0);D)gets(b); 36、有以下程序 main() char*p10=abc,aabdfg,dcdbe,abbd,cd; printf(%dn,strlen(p4); 执行后输出结果是( ) A)2B)3C)4D)5 37、有以下程序 inta=2; intf(int*a) return(*a)+; main() ints=0; inta=5; s+=f(&a); s+=f(&a); printf(%dn,s

35、); 执行后输出结果是 ( ) A)10 B)9C)7D)8 38、有以下程序 #definef(x)x*x main() inti; i=f(4+4)/f(2+2); printf(%dn,i); 执行后输出结果是( ) A)28B)22C)16D)4 39、设有以下语句 typedefstructS intg;charh;T; 则下面叙述中正确的是() A)可用S定义结构体变量B)可以用T定义结构体变量 C)S是struct类型的变量D)T是structS类型的变量 40、有以下程序 strucSTU charname10; intnum; ; voidf1(structSTUc) str

36、uctSTUb=LiSiGuo,2042; c=b; voidf2(structSTU*c) structSTUb=SunDan,2044; *c=b; main() structSTUa=YangSan,2041,b=WangYin,2043; f1(a);f2(&b); printf(%d%dn,a.num,b.num); 执行后的输出结果是( ) A)20412044B)20412043C)20422044D)20422043 41、有以下程序 main( )unsignedchara,b; a=4|3; b=4&3; printf(%d%dn, a, b); 执行后输出结果是( ) A

37、)70B)07C)11D)430 42、下面程序的功能是输出以下形式的金字塔图案是: * * * * main( ) inti,j; for(i=1;i=4;i+) for(j=1;j=4-i;j+)printf(); for(j=1;j=_;j+)printf(*); printf(n); 在下划线处应填入的是() A)iB)2*i-1C)2*i+1D)i+2 43、有以下程序 voidsort(inta ,intn) inti,j,t; for(i=0;in-1;i+=2) for(j=i+2;jn;j+=2) if(aiaj)t=ai;ai=aj;aj=t; main( ) intaa1

38、0=1,2,3,4,5,6,7,8,9,10,i; sort(aa,10); for(i=0;i10;i+)printf(%d,aai); printf(n); 其输出结果是() A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1, C)9,2,7,4,5,6,3,8,1,10,D)1,10,3,8,5,6,7,4,9,2, 44、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是( ) A)chars10=abcdefg;B)chart=abcdefg,*s=t; C)chars10;s=abcdefg;D)chars10;strcpy(s,a

39、bcdefg); 45、有以下程序 #include main(intargc,char*argv) inti,len=0; for(i=1;iargc;i+=2)len+=strlen(argvi); printf(5dn,len); 经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行 exabcdefgh3k44 执行后输出结果是( ) A)14B)12C)8D)6 46、有以下程序 voidf(inta,inti,intj) intt; if(ij) t=ai;ai=aj;aj=t; f(a,i+1,j-1); main() inti,aa5=1,2,3,4,5; f(aa,0,4); for(i=0;i5;i+)printf(%d,aai);printf(n); 执行后输出结果是() A)5,4,3,2,1, B)5,2,3,4,1,

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!