C语言习题集(共36页).doc
《C语言习题集(共36页).doc》由会员分享,可在线阅读,更多相关《C语言习题集(共36页).doc(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); 则输出结
2、果是:( ) A)10, 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=pro
3、gramming,*ps=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,
4、6,7,8,9,10,*p=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
5、( ) unsigned 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);
6、 case 1: printf(*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
7、B) a=1,b=1 C) 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. B) 0. C) 0. D) 1. (26) 有如下程序 main( ) int i, sum; for(i=1;i6) n-; printf(“%d”,n); 该程序段的输出结果是( ) A) 987 B) 876 C) 8765 D) 9876 (29) 设有说明语句:char a=
8、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) 15 (32) 有如下程
9、序段 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) 有如下程序 #defi
10、ne 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); 执行该程序段后,x的值为( )
11、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+=2) s=10*s
12、+pij-0; printf(“%dn”,s); 该程序的输出结果是( ) A) 69825 B) 63825 C) 6385 D) (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 C)35 D)3(44)在以下一组运
13、算符中,优先级最高的运算符是( ) 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)将串str1复制到串str2中后再连接到
14、串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) 以下叙述中不正确的是( ) A)在C中,函数中的自动变量可
15、以赋初值,每调用一次,赋一次初值. 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;main( ) char a,b; a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题集 36
限制150内