《计算机语言c》复习题

上传人:第*** 文档编号:34053682 上传时间:2018-02-20 格式:DOC 页数:35 大小:270KB
返回 下载 相关 举报
《计算机语言c》复习题_第1页
第1页 / 共35页
《计算机语言c》复习题_第2页
第2页 / 共35页
《计算机语言c》复习题_第3页
第3页 / 共35页
《计算机语言c》复习题_第4页
第4页 / 共35页
《计算机语言c》复习题_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《《计算机语言c》复习题》由会员分享,可在线阅读,更多相关《《计算机语言c》复习题(35页珍藏版)》请在金锄头文库上搜索。

1、第 1 页 共 35 页单选题:1. 给出以下定义:char x =abcdefg;char y =a,b,c,d,e,f,g;则正确的叙述为A) 数组 x 和数组 y 等价 B) 数组 x 和数组 y 的长度相同C) 数组 x 的长度大于数组 y 的长度 D) 数组 x 的长度小于数组 y 的长度提示: x 的长度还需要包括末尾的n.2. 设有数组定义: char array chinr,则数组 array 所占的空间为A)4 个字节 B)5 个字节 C)6 个字节 D)7 个字节提示:需要加上末尾的n.3. 合法的数组定义是A) int a=string; B) int a5=0,1,2,

2、3,4,5;C) chars=string; D) char a=0,1,2,3,4,5;提示: A 是字符串,B 后面初始化的长度大于 5,C 不是正确的定义, 没有类型。D 是正确的4. 下列描述中不正确的是A) 字符型数组中可以存放字符串 B) 可以对字符型数组进行整体输入、输出C) 可以对整型数组进行整体输入、输出D) 不能在赋值语句中通过赋值运算符=对字符型数组进行整体赋值提示: 5. 有以下程序,执行后输出结果是main() char s=n123;printf(%d,%dn,strlen(s),sizeof(s);A) 赋初值的字符串有错 B) 6,7 C) 5,6 D) 6,6

3、提示:sizeof(s)还需包括 n,而字符串的长度不包括n6. 若想通过以下输入语句使 a 中存放字符串 1234,b 中存放字符 5,则输入数据的形式应该是 a=1234 b=5 。char a10,b;scanf(“a=%s b=%c”,a,提示: 7. 设有以下语句typedef struct S int g; char h; T;则下面叙述中正确的是()A)可用 S 定义结构体变量 B)可以用 T 定义结构体变量C)S 是 struct 类型的变量 D)T 是 struct S 类型的变量提示:T 跟 struct S 完全等价8. 若有以下说明和定义,以下叙述正确的是_。typed

4、ef int *INTEGERINTEGER p,*q;A) p 是 int 型变量 B) p 是基类型为 int 的指针变量C) q 是基类型为 int 的指针变量 D) 程序中可用 INTEGER 代替 int 类型名第 2 页 共 35 页提示: 上述定义等价于 int * p9. 变量 a 所占内存字节数是A)4 B) 5 C) 6 D) 8union U char st4;int i;long l;srtuct A int c;union U u; a;10. 设有如下定义,若要使 p 指向 data 中的成员 n,正确的赋值语句是struct sk int n;float x; d

5、ata,*p;Ap=Cp=(struct sk *)提示:p 是 struct sk 类型的指针,必须指向 struct sk 类型地址,而 data.n 是整数,其地址只能给整数型指针赋值,如果需要给其他类型赋值,必须使用强制性的类型转换如(struct sk *). 11. 设有以下宏定义:#define N 3#define Y(n) ( (N+1)*n)则执行语句:z=2*(N+Y(5+1);后,z 的值为A) 出错 B) 42 C) 48 D) 54提示:需要注意的是 Y(n) = (N+1)*n), 这里的 n 如果是表达式,则应该直接把表达式替换 n, 而不是表达式的运算结果。所

6、以这里 Y(5+1) = (3+1) *5+1)= 21, 2*(3+21)= 48。这是使用#define 来定义函数跟正常函数定义不一样之处12. 下列不正确的转义字符是:A ) B) C) 074 D) 0提示:字符只能用单引号括起来,对于特殊的字符如,”, 等,需要在前面加上, 如 表示, ”表示”, 表示单引号, 因此字符, ”, 都为正确。13. 在 C 语言提供的合法的关键字是:A) swicth B) cher C) Case D) default提示:default 表示缺省,跟 switch 和 case 联合使用14. 在 C 语言中,合法的字符常量是:A) 084 B)

7、 x43 C) ab D) 0提示:A 错,8 进制数中不能出现 8 或根大的数,B 正确,x 表示 16 进制,C 错, a 或b, 但不能是ab, D 错, 是字符串而非字符。 15. 以下叙述中正确的是_。第 3 页 共 35 页A)构成 C 程序的基本单位是函数 B) 可以在一个函数中定义另一个函数C)main()函数必须放在其它函数之前 D) 所有被调用的函数一定要在调用之前进行16. 已知 i、j、k 为 int 型变量,若从键盘输入:1,2,3,使 i 的值为 1、j 的值为 2、k 的值为3,以下选项中正确的输入语句是_。A) scanf(%2d%2d%2d,C) scanf(

8、%d,%d,%d,17. 下列程序的输出结果是:A)3 B) 3.2 C) 0 D) 3.07main()double d3.2;int x,y;x=1.2;y=(x+3.8 )/5.0;printf(%dn, d*y) ;提示:因 x 是整数,在 x=1.2 执行完后,x=1, y=(1+3.8)/5.0)=0.96, 取整数时 ,直接把小数部分去掉,就变成 0, 所以 y=018. 下列程序执行后的输出结果是(小数点后只写一位)A)6 6 6.0 6.0 B)6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0main() double d; float f;

9、 long l; int i;i=f=l=d=20/3;printf(”dldffn” , i,l,f,d) ;提示:两个整数相除时,其结果得整数,小数部分不计, 所以 20/3=6。 19. 设有说明语句:char a=72;则变量 aA) 包含 1 个字符 B) 包含 2 个字符 C) 包含 3 个字符 D) 说明不合法提示:a=72 (用 8 进制表示一个字符 )= 7*8+2=58. 这里 等价于 a=58. a = 0 等价于 a = 0 (表示值 0), 但是 跟 a=0 (表示字符 0) 不等20. 下列叙述中正确的是:A) C 语言编译时不检查语法 B) C 语言的子程序有过程

10、和函数两种C) C 语言的函数可以嵌套定义 D) C 语言所有函数都是外部函数21. 下列选项中,合法的 C 语言关键字是:A) VAR B) cher C) integer D) default22. 在一个 C 语言程序中A) main 函数必须出现在所有函数之前 B) main 函数可以在任何地方出现C) main 函数必须出现在所有函数之后 D) main 函数必须出现在固定位置23. 以下程序段中与语句 k=ab?(bc?1:0):0;功能等价的是()A)if(ab) B) if(ab)|(bc) k=1 else k=0; else k=0;C)if(ab) k=1;else if

11、(bc) k=1;else k=0; 24. 阅读以下程序:程序运行后,如果从键盘上输人 5,则输出结果是main() int x;第 4 页 共 35 页scanf(%d,if(x-6) n-;printf(%d,n);A) 987 B) 876 C) 8765 D) 987629. 有以下程序段int k=0while(k=1)k+;while 循环执行的次数是A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行 1 次提示:注意 while(k=1) 跟 while (k=1) 的区别,前者先计算 k=1 然后再去比较 k 是否为非零值,因为 k 不等于 0 ,所以它一

12、直执行。 而 while (k=1) 则只有当 k 恒等于 1 是才执行。注第 5 页 共 35 页意,一个是赋值语句 k=1, 另一个是逻辑比较语句 k=1. 30. 当调用函数时,实参是一个数组名,则向函数传送的是A) 数组的长度 B) 数组的首地址C) 数组每一个元素的地址 D) 数组每个元素中的值31. 若有以下定义和语句:char *s1=12345,*s2=1234; printf(%dn,strlen(strcpy(s1,s2);则输出结果是 A) 4 B) 5 C) 9 D) 10提示:在字符串拷贝后,S1 中的内容变化了。32. 若有以下定义和语句: int a10=1,2,

13、3,4,5,6,7,8,9,10,*p=a; 则不能表示 a 数组元素的表达式是A) *p B) a10 C) *a D) ap-a提示:ax, x 的合法取值范围是 0-9,第一个元素为 a0, 第十个元素为 a9.33. 若有以下的定义: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;提示:a2 = 3, 答案 A 正确, p+=2 后,p=&a2, *(p+) 先计算*p, 然后再 p=p+1.34. 设有如下定义, 若有 p=,则对

14、data 中的 a 域的正确引用是struct skint a;float b;data,*p; A) (*p).data.a B) (*p).a C) p-data.a D) p.data.azhe提示:这里 p-a 等价于(*p).a , 等价于 data.a, 因 p=&data35. 以下对枚举类型名的定义中正确的是A) enum a=one,two,three; B) enum a one=9,two=-1,three;C) enum a=one,two,three; D) enum a one,two,three;提示:定义枚举变量时,不能用“=” ,也不能使用字符串作为值。36.

15、 有以下定义,不能给数组 a 输入字符串的语句是#include char a10,*b=a;A) gets(a) B) gets(a0) C) gets(提示:gets(p) ,p 必须是字符串指针, 37. 有以下程序,执行后输出结果是main( ) char *p10=abc,aabdfg,dcdbe,abbd,cd;printf(%dn,strlen(p4); A) 2 B) 3 C) 4 D) 5提示:注意, p4 是 p 的第五个元素, 即“cd” .38. 若有以下调用语句,则不正确的 fun 函数的首部是A) void fun( int m,int x ) B) void fun( int s, int h41)C) void fun( int p, int *s) D) void fun(int n, int a)main( )第 6 页 共 35 页in

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号