C语言复习题-2014

2019-08-03 12:00

C 语言复习题(2014)

一、选择题

请把答案填写在下面的横线上,否则不能得分。 1.

B

2.

D

3.

C

4.

D

5.

A

6.

B

7.

A

8.

D

9.

C

10. D 20. C 30. A 40. C 50. C 60. C

11. C 21. A 31. C 41. B 51. A 61. D

12. B 22. D 32. A 42. D 52. B 62. C

13. D 23. B 33. B 43. C 53. B 63. C

14. B 24. C 34. A 44. C 54. A

15. D 25. C 35. C 45. D 55. C

16. C 26. B 36. D 46. D 56. A

17. D 27. B 37. B 47. D 57. B

18. D 28. A 38. D 48. C 58. A

19. A 29. D 39. A 49. D 59. B

1. 下列关于 C 程序的说法错误的是(

A)一个程序必须有一个 main 函数 C)可以使用“/*

)。

B)函数首部后面必须有分号 D)每个语句的末尾必须有分号

*/”来注释一段代码

)。

2. 下列关于 C 程序的说法错误的是(

A)stdio.h 是输入输出头文件

B)一个 C 语句必须以分号结束 D)#define 命令不是预处理命令 )。 C)$123 C)123.4

D)abc )。 D)123.41

C)VC6.0 中可以使用“//”来注释一行 3. 下列选项中,不能作为 C 语言标识符的是(

A)_total A)12.3

B)p405 B)12.34

4. 若有“float x=123.41; printf(\”,则执行后的输出结果为(

4

5. 下列选项中,不能正确表示分式 的 C 语言表达式是(

3

A)4/3 A)1

B)4/3.0 B)2

)。

C)1.0*4/3

6. 若有定义“int x,y;”,则表达式“x=1,y=x+3/2”的值为(

C)2.0

7. 下列关于 C 程序的说法错误的是(

C)每条语句必须以分号结束 8. 以下关于标识符的说法错误的是(

C)首字符必须是字母或下划线 9. 表达式 7%4+7/2 的值是(

A)4

8,则正确的输入是( A)5 8↙

)。

C)6

B)4.5

)。 B)5,8↙

)。 )。

A)标识符由字母、数字和下划线组成

)。

D)4/(float)3

)。

D)2.5

A)C 语言程序的基本组成单位是语句 B)C 语言程序中一行可以写多条语句 D)一个语句可以写在多行上 B)标识符不能与系统的关键字同名 D)不区分大小写,s 和 S 是同一个变量

D)6.5

10. 已知变量 a 和 b 是 int 型,若有语句“scanf(\”,使 a 的值是 5,b 的值是

C)a=5 b=8↙

D)a=5,b=8↙

11. 若有定义“int a; float b;”,执行“scanf(\”语句时,从键盘输入: 1234 567.8↙,则 a 和 b 的值分别是(

A)1234 和 567.800000 C)123 和 4.000000

B)123 和 567.800000 D)234 和 567.800000

)。

12. 执行“printf (\” 语句后,正确的输出结果是(

第 1 页 共 20 页

)。

D)0.003%

A)0.3 B)0.333333% C)0.3% 13. 若要定义符号常量 PI 代表 3.14,正确的预处理命令是(

A)#define PI 3.14; C)define PI 3.14

14. 以下变量定义及初始化语句中正确的是( A)double a=0.5;b=1.5; C)int a=b=0;

B)#define PI=3.14

)。 15. 以下关于算法的描述中不正确的是(

A)算法中每一个步骤的含义都应该是确定的

B)算法中每一个步骤都应该能有效执行 C)正确的算法应在有限步骤内结束 D)正确的算法都必须有输入和输出

16. 当一个关系表达式成立时,该表达式的值为(

A)-1

B)0

)。

17. 关于 if 语句的说法正确的是(

)。 C)1

D)不确定的非 0 值

D)#define PI 3.14 )。

B)char a=97,b='b'; D)float a=1,b=&a;

A)双分支语句中有可能两个分支都不执行 B)if 多分支语句中不能没有最后的 else C)if 语句中可以使用 continue 语句

D)else 总是与前面最近的、没有与其它 else 配对的 if 配对 18. 要判断 x 是否满足表达式“-1≤x≤1”,正确的 C 语言表达式是(

A)-1<=x<=1 A)0

A)scanf(\A)int a,*p=&a; A)只能是 0 或者 1 C)只能是整型或字符型数据 A)10 A)值 A)a,pt

B)11 B)名 B)&a,*pt B)-1≤x≤1 B)-1

B)scanf(\B)int a,*p=*a;

C)x>=-1||x<=1 C)10

)。

D)x>=-1&&x<=1

)。

D)9 )。

19. 若有程序段“int x=10; while(x!=0) x=x-1;”,执行完该程序段后 x 的值是( 20. 若有定义“float x,*p=&x;”,能正确输入一个值给 x 的语句是( 21. 以下选项中,对变量的定义和初始化正确的是( 22. 逻辑运算符两侧运算对象的数据类型为(

)。

B)只能是 0 或非 0 正数 D)可以是任何类型的数据

)。

C)1 C)地址 C)&a,pt

)。

C)scanf(\)scanf(\C)int a,p=&a;

D)int a,*p=a;

23. 在 c 语言中,执行完语句“for (i=1;i<=10;i++);”后,i 的值是(

D)不确定

)。 D)一个标志 ) D)*pt,&pt

)。

24. 定义了指向某个变量的指针,其含义是指针变量里存放的是该变量的( 25. 若有语句“int *pt, a=4; pt=&a;”,则下面均代表地址的一组选项是(

26. 若有语句“float *p,m=3.14;”,想要建立如下图所示的存储结构,则正确的赋值语句是(

p

A)p=m; 赋值语句是(

)。

3.14 m

B)p=&m;

C)*p=m;

D)*p=&m;

27. 有语句“int a=3, b=5, *p, *q; p=&a; q=&b;”,若要实现下图中所示的存储结构,则可以使用的

第 2 页 共 20 页

p 3 a 5 b q

A)*p=*q; B)p=q; C)p=*q; D)*p=q;

28. 以下程序段中有个语句是错误的,则下列说法正确的是(

)。

int *p, i; char *q, ch; p=&i; q=&ch; *p=4; p=q;

A)p 和 q 的类型不一致,不能执行语句 p=q B)*p 中应该存放地址值,因此不能执行*p=4

C)q 虽然指向了具体的存储单元,但是该单元中没有具体的值,所以不能执行 p=q D)q 没有指向具体的存储单元,所以不能执行 p=q 29. 若输入字符串:abcde<回车>,则以下 while 循环体将执行(

)次。

while((ch=getchar( ))=='e')

printf(\A)5

B)4

C)6

D)0

30. 若 i,j 已定义为 int 类型,则以下循环嵌套程序段中循环体一共要执行的次数是(

for (i=5;i>0;i--)

for (j=0;j<4;j++) { ... } A)20

B)25

C)24

D)30

31. 关于函数的说法不正确的是(

)。

A)C 语言用函数实现模块的功能 B)可根据需要自己来编写函数 C)可以在一个函数内定义另一个函数 D)一个函数可以没有参数

32. C 程序中,若对函数类型未加显式说明,则函数类型默认为(

)。

A)int B)void C)double D)int *

33. 在函数内部定义的局部变量,若不对其存储类型进行说明,则默认为( )。 A)static B)auto C)extern

D)以上均不对

34. 若函数 fun 被调用 3 次,则最后一次的输出结果为(

)。

void fun( ) {

int a=1; a+=2;

printf(\} A)a=3 B)a=5

C)a=7

D)a=9

35. 若函数 fun 被调用 3 次,则最后一次的输出结果为(

)。

void fun( ) {

static int a=1; a+=2;

第 3 页 共 20 页

)。

printf(\} A)a=3

B)a=5

C)a=7

D)a=9 36. 如果在一个函数中的复合语句中定义了一个变量,则该变量(A)在该函数中有效

)。

C)在本程序范围内均有效

B)为非法变量

D)只在该复合语句中有效

37. C 语言规定,函数返回值的类型是由( )。

A)调用该函数时系统临时决定

B)在定义该函数时所指定的类型决定 C)return 语句中的表达式类型决定

D)调用该函数时主调函数类型决定

38. putchar 函数可以向终端输出一个(

)。

A)整型变量表达式值 B)实型变量值

C)字符串

D)字符或字符型变量值

39. 执行以下程序段的输出结果是(

)。

void fun(int x, int y) { x=10; y=20; }

void main(

)

{

int a=1, b=2; fun(a, b);

printf(\} A)1,2 B)10,20

C)10,2 D)1,20

40. 执行函数调用“fun('5')”得到的返回值为(

)。

int fun(char ch)

{ return(ch>='0'&&ch<='9'); } A)-1

B)0 C)1

D)2

41. 关于局部变量的说法正确的是(

)。

A)有效范围是从定义开始到程序结束的所有函数 B)有效范围是从定义开始到函数结束 C)形参不是局部变量,而是全局变量 D)复合语句中不能定义局部变量 42. 关于变量属性的说法错误的是(

)。

A)动态变量是在函数开始执行时分配内存单元,函数执行完毕后立即释放 B)静态变量是在函数的执行过程中始终占用同一内存单元,程序执行结束时才释放 C)全局变量都是静态变量,只有局部变量才有动态变量 D)动态变量若不赋初值,系统会自动赋值为 0

43. 若有变量定义“int x=5,*p=&x;”,则执行函数调用“ fun(p);”时,传递给 fun 函数的是(A)指针变量 p 的地址 C)变量 x 的地址

B)指针变量*p 的值

D)变量 x 的值 44. 以下数组的定义形式正确的是(

)。

A)int k=5,a[k]; B)int a[ ];

C)char c[]={'a'};

D)char a(10);

45. 以下一维数组的定义及初始化中,错误的是(

)。

A)int a[3]={0}; B)int a[3]={1,1,1}; C)static int a[3];

D)int n=3,a[n]={0};

46. 若有定义“int a[ ][3]={0,1,2,3,4,5,6,7};”,则元素 a[1][2]的值为(

)。

第 4 页 共 20 页

)。

A)1 B)2 C)4 D)5

)。 47. 若有说明语句“int a[2][4]={{1},{2,3}};”,则数组元素 a[1][1]的值为(

A)0 A)s1=s2; A)s>t A)a[4]

char s[ ]=\for (ptr=s; *ptr!='g'; ptr++)

printf(\A)Pro

int a[10]={6,7,8,9,10};

A)将 5 个初值依次赋给 a[1]至 a[5] B)将 5 个初值依次赋给 a[0]至 a[4] C)将 5 个初值依次赋给 a[6]至 a[10]

D)因为数组长度与初值的个数不相同,所以此语句不正确 53. 以下给字符数组 str 定义和赋值正确的是(

A)char str[10]; str={\

C)char str[10]; strcpy(str, \A)gets

B)getchar

)。

)。

B)char str[ ]={\D)char str[10]={\

)函数。

D)printf

C)scanf

B)Prog

)。

C)Proram

D)程序有错误

52. 对以下说明语句的正确理解是(

B)1

B)strcmp(s1,s2); B)strcmp(s,t)<0 B)a[5]

)。

C)2

C)strcpy(s1,s2);

)。

D)strcmp(s,t)>0

)。

D)a[7]

C)strcmp(s,t)==0 C)a[6]

D)3

)。

D)strcpy(s2,s1);

48. 若有定义“char s1[20],s2[ ]=\”,为使 s1 的值与 s2 相同,下列选项中正确的是( 49. 为了比较字符串 s 是否大于 t,条件表达式应该写成(

50. 若有语句“int a[10],*p=&a[2];”,则执行语句“p=p+4;”后,p 指向的数组元素是( 51. 执行以下程序段的输出结果是(

54. 当接受用户输入的含有空格的字符串时,应使用( 55. 执行以下程序段的输出结果是(

int a[ ]={1,8,2,8,3,8,4,8,5,8}; printf(\A)6,6

56. 以下说法正确的是(

A)p[i]等价于*(p+i) C)p[i]等价于 p+i A)(*s)[2] char s[ ]=\char *p;

for (p=s;p

)。

printf(\B)Prog

C)gorP

B)*(s+2)

)。

B)8,8 )。

C)6,8

D)8,6

B)&p[i]等价于*(p+i)

D)p[i]等价于*p+i

)。 D)*s+2

C)*s[2]

57. 设有定义“double a[10], *s=a”,以下能够代表数组元素 a[2]的是( 58. 执行下面程序段的输出结果是(

D)ProgProPrP

59. 若有定义“struct Student{int no; char name[20]; int score;}stu,*p=&stu;”,关于结构体的使用不

A)scanf(\C)p->score=98;

60. 已知如下定义,则下面叙述不正确的是(

B)printf(\D)strcpy((*p).name,\)。

第 5 页 共 20 页


C语言复习题-2014.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《音乐之声》自主学案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: