新视野教育全国计算机等级考试复习资料 二级C语言_第1页
新视野教育全国计算机等级考试复习资料 二级C语言_第2页
新视野教育全国计算机等级考试复习资料 二级C语言_第3页
新视野教育全国计算机等级考试复习资料 二级C语言_第4页
新视野教育全国计算机等级考试复习资料 二级C语言_第5页
已阅读5页,还剩154页未读 继续免费阅读

下载本文档

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

文档简介

新视野教育全国计算机等级考试复习资料

二级C语言

第一部分公共基础知识单项选择题(10分)

1)、程序流程图中带有箭头的线段表示的是

(A)数据流

(B)调用关系

(C)控制流

(D)图元关系

标准答案:C

2)、下列关于栈的叙述正确的是

(A)只能在栈底插入数据

(B)栈按〃先进后出〃组织数据

(C)不能删除数据

(D)栈按〃先进先出〃组织数据

标准答案:B

3)、算法的有穷性是指

(A)算法只能被有限的用户使用

(B)算法程序的长度是有限的

(C)算法程序所处理的数据量是有限的

(D)算法程序的运行时同是有限的

标准答案:D

4)、设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程

C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为

(A)课号,成绩

(B)学号,姓名,成绩

(C)学号,成绩

(D)学号,课号

标准答案:D

5)、结构化程序设计的基本原则不包括

(A)自顶向下

(B)多态性

(C)逐步求精

(D)模块化

标准答案:B

6)、在软件开发中,需求分析阶段产生的主要文档是

(A)软件需求规格说明书

(B)集成测试计划

(C)概要设计说明书

(D)可行性分析报告

标准答案:A

7)、对长度为n的线性表排序,在最坏情况下,比较次数不是n(n—1)/2的排序方法是

(A)堆排序

(B)快速排序

(C)冒泡排序

(D)直接插入排序

标准答案:A

8)、软件设计中模块划分应遵循的准则是

(A)高内聚低耦合

(B)低内聚高耦合

(C)高内聚高耦合

(D)低内聚低耦合

标准答案:A

9)、

有三个关系R、S和T如下:

RST

BCDBCD

a0kl二a0kl

b1nl

ZJM

EJZJEJ

由关系R和S通过运售得到关系T,则所使用的运算为

(A)自然连接

(B)笛卡尔积

(C)交

(D)并

标准答案:C

10)、在数据库设计中,将E-R图转换成关系数据模型的过程属于

(A)逻辑设计阶段

(B)概念设计阶段

(C)物理设计阶段

(D)需求分析阶段

标准答案:A

11)、在软件开发中,需求分析阶段可以使用的工具是

(A)N-S图

(B)PAD图

(C)程序流程图

(D)DFD图

标准答案:D

12)、一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然

后再依次出栈,则元素出栈的顺序是

(A)ABCDE12345

(B)54321EDCBA

(C)12345ABCDE

(D)EDCBA54321

标准答案:D

13)、下列叙述中正确的是

(A)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

(B)链式存储结构比顺序存储结构节省存储空间

(C)顺序存储结构能存储有序表,链式存储结构不能存储有序表

(D)顺序存储结构的存储•定是连续的,链式存储结构的存储空间不•定是连续的

标准答案:D

14)、数据流图中带有箭头的线段表示的是

(A)事件驱动

(B)数据流

(C)模块调用

(D)控制流

标准答案:B

15)、下列叙述中正确的是

(A)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况

(B)循环队列中元素的个数是由队头指针和队尾指针共同决定

(C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况

(D)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构

标准答案:B

16)、在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是

(A)。(力1吨2力)

(B)0(标)

(C)0(n)

(D)0(%力)

标准答案:D

17)、在面向对象方法中,不属于“对象”基本特点的是

(A)多态性

(B)一致性

(C)标识唯一性

(D)分类性

标准答案:B

18)、

有三个关系R、S和T如下:

ST

BBcABC

113m13

□ZJ2ZJtoJ

由关系R和S通过运售得到关系T,则所使用的运算为

(A)并

(B)自然连接

(C)交

(D)笛卡尔积

标准答案:B

19)、一间宿舍可住多个学生,则实体宿舍和学生之间的联系是

(A)一对多

(B)多对多

(C)多对一

(D)一对一

标准答案:A

20)、下列叙述中正确的是

(A)队列是“先进后出”的线性表

(B)栈是“先进先出”的线性表

(C)循环队列是非线性结构

(D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构

标准答案:D

21)、支持子程序调用的数据结构是

(A)队列

(B)二叉树

(C)树

(D)栈

标准答案:D

22)、在数据管理技术发展的三个阶段中,数据共享最好的是

(A)人工管理阶段

(B)三个阶段相同

(C)数据库系统阶段

(D)文件系统阶段

标准答案:C

23)、数据库应用系统中的核心问题是

(A)数据库设计

(B)数据库系统设计

(C)数据库管理员培训

(D)数据库维护

标准答案:A

24)、下列排序方法中,最坏情况下比较次数最少的是

(A)冒泡排序

(B)堆排序

(C)宜接插入排序

(D)简单选择排序

标准答案:B

25)、软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于

应用软件的是

(A)编译程序

(B)汇编程序

(C)操作系统

(D)教务管理系统

标准答案:D

26)、下面叙述中错误的是

(A)程序调试通常也称为Debug

(B)软件测试应严格执行测试计划,排除测试的随意性

(C)对被调试的程序进行“错误定位”是程序调试的必要步骤

(D)软件测试的目的是发现错误并改正错误

标准答案:D

27)、耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是

(A)降低耦合性提高内聚性有利于提高模块的独立性

(B)耦合性是指一个模块内部各个元素间彼此结合的紧密程度

(C)内聚性是指模块间互相连接的紧密程度

(D)提高耦合性降低内聚性有利于提高模块的独立性

标准答案:A

28)、某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是

(A)8

(B)4

(C)10

(D)6

标准答案:D

29)、将E-R图转换为关系模式时,实体和联系都可以表示为

(A)属性

(B)关系

(C)域

(D)键

标准答案:B

30)、下列数据结构中,能够按照“先进后出”原则存取数据的是

(A)栈

(B)队列

(C)二叉树

(D)循环队列

标准答案:A

31)、下列数据结构中,属于非线性结构的是

(A)带链栈

(B)带链队列

(C)二叉树

(D)循环队列

标准答案:C

32)、对于循环队列,下列叙述中正确的是

(A)队头指针一定大于队尾指针

(B)队头指针是固定不变的

(C)队头指针可以大于队尾指针,也可以小于队尾指针

(D)队头指针一定小于队尾指针

标准答案:C

33)、

有两个关系R,S如下:

RS

mttjm

r±jPJL±Jm

1cJJLZJL±]DJ

由关系R通过运算得到关系S,则所使用的运算为

(A)连接

(B)选择

(C)投影

(D)插入

标准答案:C

34)、算法的空间复杂度是指

(A)算法在执行过程中所需要的计算机存储空间

(B)算法在执行过程中所需要的临时工作单元数

(C)算法所处理的数据最

(D)算法程序中的语句或指令条数

标准答案:A

35)、在E-R图中,用来表示实体联系的图形是

(A)椭圆形

(B)三角形

(C)菱形

(D)矩形

标准答案:C

36)、

有三个关系R,S和T如下:

(A)交

(B)并

(C)选择

(D)投影

标准答案:B

37)、数据库管理系统是

(A)在操作系统支持下的系统软件

(B)操作系统的一部分

(C)一种编译系统

(D)一种操作系统

标准答案:A

38)、软件设计中划分模块的一个准则是

(A)高内聚低耦合

(B)高内聚高耦合

(C)低内聚高耦合

(D)低内聚低耦合

标准答案:A

39)、下列选项中不属于结构化程序设计原则的是

(A)模块化

(B)逐步求精

(C)自顶向下

(D)可封装

标准答案:D

40)、

软件详细设计产生的图如下:

该图是------

(A)PAD图

(B)程序流程图

(C)E-R图

(D)N-S图

标准答案:B

41)、软件生命周期是指

(A)软件的开发过程

(B)软件产品从提出、实现、使用维护到停止使用退役的过程

(C)软件的运行维护过程

(D)软件从需求分析、设计、实现到测试完成的过程

标准答案:B

42)、下列叙述中正确的是

(A)栈与队列都是非线性结构

(B)栈是一种先进先出的线性表

(C)队列是一种后进先出的线性表

(D)以上三种说法都不对

标准答案:D

43)、面向对象方法中,继承是指

(A)类之间共享属性和操作的机制

(B)各对象之间的共同性质

(C)一个对象具有另一个对象的性质

(D)一组对象所具有的相似性质

标准答案:A

44)、数据库设计中反映用户对数据要求的模式是

(A)外模式

(B)内模式

(C)设计模式

(D)概念模式

标准答案:A

45)、层次型、网状型和关系型数据库划分原则是

(A)联系的复杂程度

(B)记录长度

(C)数据之间的联系方式

(D)文件的大小

标准答案:C

46)、在软件开发中,需求分析阶段产生的主要文档是

(A)软件需求规格说明书

(B)软件集成测试计划

(C)用户手册

(D)软件详细设计说明书

标准答案:A

47)、

(A)自然连接

(B)并

(C)交

(D)差

标准答案:D

48)、一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作

人员与实体计算机之间的联系是

(A)一对多

(B)多对多

(C)多对一

(D)一对一

标准答案:B

49)、下列叙述中正确的是

(A)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构

(B)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构

(C)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的

标准答案:A

50)、软件测试的目的是

(A)改正程序中的错误

(B)发现并改正程序中的错误

(C)评估软件可靠性

(D)发现程序中的错误

标准答案:D

51)、下面描述中错误的是

(A)系统总体结构图支持软件系统的详细设计

(B)软件设计是将软件需求转换为软件表示的过程

(C)数据结构与数据库设计是软件设计的任务之一

(D)PAD图是软件详细设计的表示工具

标准答案:A

52)、软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应

软件的是

(A)学生成绩管理系统

(B)UNIX操作系统

(C)数据库管理系统

(D)C语言编译程序

标准答案:A

53)、某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假没根

结点

在第1层)

(A)3

(B)4

(C)7

(D)6

标准答案:C

54)、下列关于栈叙述正确的是

(A)栈顶元素最先能被删除

(B)栈顶元素最后才能被删除

(C)栈底元素永远不能被删除

标准答案:A

55)、结构化程序所要求的基本结构不包括

(A)重复(循环)结构

(B)GOTO跳转

(C)顺序结构

(D)选择(分支)结构

标准答案:B

56)、下列叙述中正确的是

(A)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化

(B)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化

(C)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化

标准答案:B

57)、负责数据库中查询操作的数据库语言是

(A)数据控制语言

(B)数据管理语言

(C)数据操纵语言

(D)数据定义语言

标准答案:C

58)、下列叙述中正确的是

(A)只有一个根结点的数据结构不一定是线性结构

(B)有.一个以上根结点的数据结构不一定是非线性结构

(C)双向链表是非线性结构

(D)循环链表是非线性结构

标准答案:A

59)、定义无符号整数类为UInt,下面可以作为类UInt实例化值的是

(A)整数集合{1,2,3,4,5}

(B)0.369

(C)369

(D)-369

标准答案:C

60)、

有三个关系R、S和T如下:

RST

ABC00

a12回

b21LZJ□JEJ□

c31

则由关系R和S得到关系T的操作是

(A)并

(B)自然连接

(C)差

(D)交

标准答案:C

61)、一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的

联系是

(A)1:1联系

(B)m:n联系

(C)m:1联系

(D)1:m联系

标准答案:B

62)、下列叙述中正确的是

(A)设计算法时只需要考虑数据结构的设计

(B)设计算法时只需要考虑结果的可靠性

(C)算法就是程序

(D)以上三种说法都不对

标准答案:D

63)、

某系统总体结构图如下图所示:

该系统总体结构图的深度是

(A)7

(B)2

(C)6

(D)3

标准答案:D

64)、软件生命周期中的活动不包括

(A)软件测试

(B)软件维护

(C)需求分析

(D)市场调研

标准答案:D

65)、数据库系统的三级模式不包括

(A)内模式

(B)数据模式

(C)外模式

(D)概念模式

标准答案:B

66)、下列关于二叉树的叙述中,正确的是

(A)叶子结点总是比度为2的结点多一个

(B)叶子结点总是比度为2的结点少一个

(C)叶子结点数是度为2的结点数的两倍

(D)度为2的结点数是度为1的结点数的两倍

标准答案:A

67)、程序调试的任务是

(A)诊断和改正程序中的错误

(B)验证程序的正确性

(C)发现程序中的错误

(D)设计测试用例

标准答案:A

68)、下列关于数据库设计的叙述中,正确的是

(A)在概念设计阶段建立数据字典

(B)在需求分析阶段建立数据字典

(C)在物理设计阶段建立数据字典

(D)在逻辑设计阶段建立数据字典

标准答案:B

69)、下列关于线性链表的叙述中,正确的是

(A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致

(B)进行插入与删除时,不需要移动表中的元素

(C)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续

标准答案:B

70)、在下列模式中,能够给出数据库物理存储结构与物理存取方法的是

(A)外模式

(B)概念模式

(C)逻辑模式

(D)内模式

标准答案:D

71)、

有三个关系R、S和T如下:

RST

则由关系R和S得到关系T的操作是

(A)交

(B)投影

(C)自然连接

(D)并

标准答案:C

72)、下列选项中属于面向对象设计方法主要特征的是

(A)自顶向下

(B)逐步求精

(C)模块化

(D)继承

标准答案:D

73)、一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为

(A)16

(B)6

(C)4

(D)10

标准答案:A

74)、下列叙述中正确的是

(A)循环队列是队列的一种链式存储结构

(B)循环队列是非线性结构

(C)循环队列是一种逻辑结构

(D)循环队列是队列的一种顺序存储结构

标准答案:D

75)、在黑盒测试方法中,设计测试用例的主要根据是

(A)程序内部逻辑

(B)程序数据结构

(C)程序流程图

(D)程序外部功能

标准答案:D

76)、

有三个关系R、S和T如下:

则由关系R和S得到关系T的操作是

(A)自然连接

(B)并

(C)除

(D)交

标准答案:C

77)、下面描述中,不属于软件危机表现的是

(A)软件质量难以控制

(B)软件开发生产率低

(C)软件成本不断提高

(D)软件过程不规范

标准答案:I)

78)、在软件设计中不使用的工具是

(A)程序流程图

(B)数据流图(DFD图)

(C)系统结构图

(D)PAD图

标准答案:B

79)、在满足实体完整性约束的条件下

(A)一个关系中只能有一个候选关键字

(B)一个关系中可以没有候选关键字

(C)一个关系中应该有一个或多个候选关键字

(D)一个关系中必须有多个候选关键字

标准答案:C

80)、下面不属于需求分析阶段任务的是

(A)需求规格说明书评审

(B)确定软件系统的功能需求

(C)制定软件集成测试计划

(D)确定软件系统的性能需求

标准答窠:C

第二部分二级C语言单项选择题(30分)

1)、以下选项中,能用作数据常量的是

(A)0115

(B)0118

(C)115L

(D)1.5el.5

标准答案:C

2)、下列叙述中错误的是

(A)一个C语言程序只能实现一种算法

(B)一个C函数可以单独作为一个C程序文件存在

(C)C程序可以由一个或多个函数组成

(D)C程序可以由多个程序文件组成

标准答案:A

3)、

若有代数式|(其中。仅代表自然对数的底数,不是变量),则以下能够正确表示

该代数式的C语言表达式是

(A)sqrt(fabs(pow(x,n)+exp(x)))

(B)sqrt(abs(n"x+e-x))

(C)sqrt(fabs(pow(n,x)+pow(x,e)))

(D)sqrt(fabs(pow(n,x)+exp(x)))

标准答案:D

4)、设变量已正确定义并赋值,以下正确的表达式是

(A)int(15.8%5)

(B)x=y+z+5,++y

(C)x=25%5.0

(D)x=y*5=x+z

标准答案:B

5)、以下叙述中错误的是

(A)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

(B)C语言源程序经编译后生成后缀为.obj的目标程序

(C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中

(D)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令交件

标准答案:A

6)、有以下程序

^include<stdio.h>

main()

{ints,t,A=10;doubleB=6;

s=sizeof(A);t=sizeof(B);

printf(〃%d,%d\n",s,t);

)

在VC6平台上编译运行,程序运行后的输出结果是

(A)4,8

(B)10,6

(C)2,4

(D)4,4

标准答案:A

7)、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是

(A)大写字母

(B)下划线

(C)数字字符

(D)连接符

标准答案:I)

8)、以下选项中,合法的一组C语言数值常量是

(A)0x8A10,0003.e5

(B).1774el.5Ocibc

(C)028.5e-3-Oxf

(D)12.0Xa234.5e0

标准答案:D

9)、以下选项中不合法的标识符是

(A)print

(B)FOR

(C)&&a

(D)00

标准答案:C

10)、若有定义:doublea=22;inti=0,k=18则不符合C语言规定的赋值语句是

(A)i=(a+k)<=(i+k);

(B)a=a++,i++;

(C)i=a%ll;

(D)i=!a;

标准答案:C

11)、设有定义:intx=2;,以下表达式中,值不为6的是

(A)x*=(l+x)

(B)x*=x+l

(C)x++,2*x

(D)2*x,x+=2

标准答案:D

12)、有以下程序

^include<stdio.h>

main()

{intx,y,z;

x=y=l;

z=x++,y++,++y;

printf("%d,%d,%d\n*»x,y,z);

)

程序运行后的输出结果是

(A)2,3,3

(B)2,2,1

(C)2,3,2

(D)2,3,1

标准答案:D

13)、以下叙述中错误的是

(A)使用三种基本结构构成的程序只能解决简单问题

(B)C语言是一种结构化程序设计语言

(C)结构化程序由顺序、分支、循环三种基本结构组成

(D)结构化程序设计提倡模块化的设计方法

标准答案:A

14)、以下选项中,能用作用户标识符的是

(A)8_8

(B)unsigned

(C)0

(D)void

标准答案:C

15)、C源程序中不能表示的数制是

(A)二进制

(B)十六进制

(C)十进制

(D)八进制

标准答案:A

16)、以下四个程序中,完全正确的是

(A)ttinclude<stdio.h>

main();

{/*/programming/*/

printf("programming!\n");)

(B)^include<stdio.h>

main()

{/*programming*;

printf(^programming!\n,z);)

(C)ttinclude<stdio.h>

main()

{/*/*programming*/*/

printf(""programming!\n,z);)

(D)include<stdio.h>

mainO

{/*programming*/

printf(""programming!\nw);)

标准答案:B

17)、有以下程序

#include<stdio.h>

main()

{inta=l,b=0;

printf("%d,",b=a+b);

printf(,,%d\n/,,a=2*b);

)

程序运行后的输出结果是

(A)1,0

(B)0,0

(C)1,2

(D)3,2

标准答案:C

18)、有以下程序

#include<stdio.h>

mainO

{chara,b,c,d;

scanf("枇枇“,&&a,&&b);

c=getchar();d=getchar();

printfC%c%c%c%c\n",a,b,c,d);

)

当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是

一个字符)

12<CR>

34<CR>

则输出结果是

(A)12

(B)12

3

(C)12

34

(D)1234

标准答案:B

19)、若有定义语句:intx=10;,则表达式x—=x+x的值为

(A)0

(B)10

(C)-20

(D)-10

标准答案:I)

20)、有以下程序

#include<stdio.h>

mainO

{intx=l,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;bretik;

case1:b++;break;

}

case2:a+丁;b++;break;

case3:a+-;b++;

)

printf(/za=%d,b=%d\n",a,b);

)

程序的运行结果是

(A)a=2,b=2

(B)a=l,b=l

(C)a=l,b=0

(D)a=2,b=l

标准答案:D

21)、以下关于逻辑运算符两侧运算对象的叙述中正确的是

(A)可以是结构体类型的数据

(B)只能是整数0或1

(C)可以是任意合法的表达式

(D)只能是整数0或非0整数

标准答案:C

22)、有以下程序

#include<stdio.h>

main()

{inta=0,b=0,c=0,d=0;

if(a=l)b=l;c=2;

elsed=3;

,,

printf(〃%d,%d,%d,%d\n,a,b,c,d);

)

程序输出

(A)1,1,2,0

(B)0,0,0,3

(C)0,1,2,0

(D)编译有错

标准答案:D

23)、以下程序段中的变量已正确定义

for(i=0;i<4;i++,i++)

for(k=l;k<3;k++);printf(,/*,/);

程序段的输出结果是

(A)水水木木水木**

(B)**

(C)****

(D)*

标准答案:D

24)、有以下程序

^include<stdio.h>

main()

{intx=l,y=0;

if(!x)y++;

elseif(x==0)

if(x)y+=2;

elsey+=3;

printf(*%d\n*,y);

)

程序运行后的输出结果是

(A)0

(B)3

(C)1

(D)2

标准答案:A

25)、有以下程序段

#include<stdio.h>

inti,n;

for(i=0;i<8;i++)

{n=rand()%5;

switch(n)

{case1:

case3:printf(^%d\n”,n);break;

case2:

case4:printf(飞d\n”,n);continue;

case0:exit(0);

)

printf(*%d\n”,n);

)

以下关于程序段执行情况的叙述,正确的是

(A)当产生的随机数n为0时结束程序运行

(B)当产生的随机数n为4时结束循环操作

(C)for循环语句固定执行8次

(D)当产生的随机数n为1和2时不做任何操作

标准答案:A

26)、有以下程序

#include<stdio.h>

main()

{charcl,c2;

cl=A'+'8'「4':

c2='A'+'8'」5';

printf(*%c,%d\n*»cl,c2);

)

己知字母A的ASCII码为65,程序运行后的输出结果是

(A)输出无定值

(B)E,D

(C)D,69

(D)E,68

标准答案:D

27)、若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):

(y++)中的条件表达式(x-y)等价的是

(A)(x-y<0)

(B)(x-y==0)

(C)(x-y>0)

(D)(x-y<0||x-y>0)

标准答案:D

28)、若有定义:floatx=l.5;inta=l,b=3,c=2;则正确的switch语句是

(A)

switch(a+b)

{case1:printf(〃*\n〃);

casec:printf;)

(B)

switch(a+b)

{case1:printf(〃*\n");

case2+1:printf("**\n");}

(C)

switch(x)

{case1.0:printf(〃*\n");

case2.0:printf("**\n");)

(D)

switch((int)x);

{case1:printf(〃*\n〃);

case2:printfC**\n");)

标准答案:B

29)、有以下程序

#include<stdio.h>

main()

{inty=9;

for(;y>0;y-)

if(y%3-0)printf-y);

)

程序的运行结果是

(A)741

(B)963

(C)875421

(D)852

标准答案:D

30)、下列叙述中正确的是

(A)在switch语句中必须使用default

(B)在switch语句中,不一定使用break语句

(C)break语句只能用于switch语句

(D)break语句必须与switch语句中的case配对使用

标准答案:B

31)、有以下程序

#include<stdio.h>

main()

{inti,j,m=l;

for(i=l;i<3;i++)

{for(j=3;j>0;j—)

{if(i*j>3)break;

m*=i*j;

}

)

printf(,,m=%d\n/\m);

}

程序运行后的输出结果是

(A)m=4

(B)m=6

(C)m=5

(D)m=2

标准答案:B

32)、有以下程序

^include<stdio.h>

main()

{intal,a2;charcl,c2;

scanf(,,%d%c%d%c,/,&&cl,&&a2,&&c2);

printf("%d,%c,%d,%c”,al,cl,a2,c2);

)

若想通过键盘输入,使得al的值为12,a2的值为34,cl的值为字符a,c2的值为字

符b,程序输出结果是:12,a,34,b则正确的输入格式是(以下口代表空格,〈CR〉代表

回车)

(A)12a34b<CR>

(B)12ua34ub<CR>

(C)12,a,34,b<CR>

(D)12uau34ub<CR>

标准答案:A

33)、若变量已正确定义,在if(W)printf(线d\n〃,k);中,以下不可替代川的是

(A)a<>b+c

(B)a++

(C)a==b+c

(D)ch=getchar0

标准答案:A

34)、有以下程序段

#include<stdio.h>

inta,b,c;

a=10;b=50;c=30;

if(a>b)a=b,b二c;c二a;

printf(z,a=%db=%dc=%d\n〃,a,b,c);

程序的输出结果是

(A)a=10b=30c=10

(B)a=50b=30c=50

(C)a=10b=50c=30

(D)a=10b=50c=10

标准答案:D

35)、有以下程序

#include<stdio.h>

mainO

{intc=0,k;

for(k=l;k<3;k-+)

switch(k)

{default:c+=k;

case2:c+-;break;

case4:c+=2;break;

)

printfc);

)

程序运行后的输出结果是

(A)5

(B)9

(C)7

(D)3

标准答案:D

36)、设已有定义:floatx;,则以下对指针变量p进行定义且赋初值的语句中正确的

(A)float*p=1024;

(B)floatp=&&x;

(C)int*p=(float)x;

(D)float*p=&&x;

标准答案:D

37)、有以下程序

#include<stdio.h>

intf(intx);

main()

{intn=1,m;

m=f(f(f(n)));printfC%d\n/,,m);

}

intf(intx)

{returnx*2;}

程序运行后的输出结果是

(A)8

(B)2

(C)1

(D)4

标准答案:A

38)、以下数组定义中错误的是

(A)intx[][3]={0};

(B)intx[2][3]={1,2,3,4,5,6};

(C)intx□⑶={{1,2,3},{4,5,6}};

(D)intx[2][3]={{L2),{3,4},{5,6}};

标准答案:D

39)、以下不构成无限循环的语句或语句组是

(A)n=0;

while(1){n++;}

(B)for(n=0,i=l;;i++)n+=i;

(C)n=0;

do{++n;}whi1e(n<=0);

(D)n=10;

while(n);(n-;)

标准答案:C

40)、以下叙述中错误的是

(A)函数可以返回地址值

(B)可以给指针变量赋一个整数作为地址值

(C)当在程序的开头包含头文件sldio.h时、可以给指针变量赋NULL

(D)改变函数形参的值,不会改变对应实参的值

标准答案:B

41)、下列定义数组的语句中,正确的是

(A)#defineN10

intx[N];

(B)intx[0..10];

(C)intN=10;

intx[N];

(D)intx[];

标准答案:A

42)、有以下程序

#include<stdio.h>

^defineN4

voidfun(inta[][N],intb[])

{inti;

for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-l-i];

)

main()

{intx[N][N]={(1,2,3,4},{5,6,7,8},{9}10,11,12},{13,14,15,16}},

y[N],i;

fun(x,y);

for(i=0;i<N;i++)printf(〃%d,〃,y[il);printf(〃\n");

}

程序运行后的输出结果是

(A)-3,~1,1,3,

(B)-3,-3,-3,-3,

(C)-12,-3,0,0,

(D)0,1,2,3,

标准答案:A

43)、有以下程序

^include<stdio.h>

voidfun(inta[],intn)

{inti,t;

for(i=0;i<n/2:i++){t=a[i];a[i]=a[n-l-i];a[n-l-i]=t;}

)

main()

{intk[10]={1,2,3,4,5,6,7,8,9,10},i;

fun(k,5);

for(i=2;i<8;i++)printfC%d,z,k[i]);

printfC\n");

}

程序的运行结果是

(A)876543

(B)321678

(C)345678

(D)1098765

标准答案:B

44)、有以下程序

^include<stdio.h>

intfun(intx,inty)

{if(x!=y)return((x+y)/2);

elsereturn(x);

)

main()

{inta=4,b=5,c=6;

printf("%d\n”,fun(2*a,fun(b,c)));

)

程序运行后的输出结果是

(A)6

(B)8

(C)3

(D)12

标准答案:A

45)、有以下程序

4include<stdio.h>

mainO

{intn,*p=NULL;

*p=&&n;

printf(z,lnputn:");scanf("%d”,&&p);printf(^outputn:");

printf("%d\n”,p);

)

该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的

(A)printf(,,%d\nz,,p);

(B)scanf(飞d”,&&p)

(C)*p=&&n;

(D)intn,*p=NULL;

标准答案:D

46)、有以下程序

#include<stdio.h>

intadd(inta,intb){return(a+b);}

mainO

{intk,(*f)(),a=5,b=10;

f二add;

•••

)

则以下函数调用语句错误的是

(A)k=(*f)(a,b);

(B)k=f(a,b);

(C)k=add(a,b);

(D)k=*f(a,b);

标准答案:D

47)、有以下程序

#include<stdio.h>

main0

{inta[]={2,3,5,4},i;

for(i=0;i<4;i+-)

switch(i%2)

{case0:switch(a[i]%2)

{case0:a[i]++;break;

case1:a[i]一;

}break;

case1:a[i]=O;

)

for(i=0;i<4;i++)printfC*%dprintf(*\n*);

}

程序运行后的输出结果是

(A)2050

(B)0304

(03344

(D)3040

标准答案:D

48)、有以下程序

#include<stdio.h>

main()

{intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=l;

for(i=0;i<3;i++)

for(j=i;j<=i:j++)t+=b[i][b[j][i]];

printfr);

)

程序运行后的输出结果是

(A)3

(B)1

(C)9

(D)4

标准答案:D

49)、若有定义语句:doublea,*p=&&a;以下叙述中错误的是

(A)定义语句中的*号是一个说明符

(B)定义语句中的*号是一个间址运算符

(C)定义语句中,*p二/a把变量a的地址作为初值赋给指针变量p

(D)定义语句中的p只能存放double类型变量的地址

标准答案:B

50)、有以下程序

#include<stdio.h>

intf(intx,inty)

{return((y-x)*x);}

main()

{inta=3,b=4,c=5,d;

d=f(f(a,b),f(a,c));

printf("%d\n”,d;;

)

程序运行后的输出结果是

(A)7

(B)8

(C)10

(D)9

标准答案:D

51)、有以下程序

#include<stdio.h>

main()

{intx[3][2]={O),i;

for(i=0;i<3;i・+)scanf("%d〃,x[i]);

printf(*%3d%3d%3d\n*»x[0][0],x[0][1],x[l'[0]);

)

若运行时输入:246〈回车),则输出结果为

(A)246

(B)240

(0200

(D)204

标准答案:D

52)、设有定义:charp[]={'1','2,'3'},*q=p;,以下不能计算出一个char型数

据所占字节数的表达式是

(A)sizeof(p)

(B)sizeof(*q)

(C)sizeof(p[0])

(D)sizeof(char)

标准答案:A

53)、有以下程序

^include<stdio.h>

voidfun(inta,intb)

{intt;

t=a;a=b;b=t;

)

main()

{intc[10]={l,2,3,4,5,6,7,8,9,0},i;

for(i=0;i<10:i+=2)fun(cLiJ,c[i+lJ);

for(i=0;i<10;i++)printf(级d,",c[i]);

printf(〃\n〃);

}

程序的运行结果是

(A)2,1,4,3,6,5,8,7,D,9,

(B)1,2,3,4,5,6,7,8,9,0,

(C)0,1,2,3,4,5,6,7,8,9,

(D)0,9,8,7,6,5,4,3,2,1,

标准答案:B

54)、设有定义:chars[81];inti=0;,以下不能将一行(不超过80个字符)带

有空格的字符串正确读入的语句或语句组是

(A)scanfs);

(B)do{scanfMs[i]);}while(s[i++]!=,\n);s[i]=>\0J;

(C)gets(s);

(D)while((s[i++]=getchar())!=,\n);s[i]='\0';

标准答案:A

55)、以下定义数组的语句中错误的是

(A)intnum[][4]={1.2,3,4,5,6};

(B)intnum[][3]={{1,2},3,4,5,6};

(C)intnum[2][4]={{1,2},{3,4},{5,6});

(D)intnum[]={1,2,3,4,5,6};

标准答案:C

56)、若有定义语句:doublex,y,*px,*py;执行了px=&&x;py=&&y;之后,正确的输

入语句是

(A)scanf("%lf%lf”,x,y);

(B)scanfx.y);

(C)scanf("%f%f〃&&x,&&y);

(D)scanf("%lf%le”,px,py);

标准答案:D

57)、以下不能将s所指字符串正确复制到t所指存储空间的是

(A)while(*t=*s){t++;s++;}

(B)for(i=0,j=0;t[i+4-]=s[j++];);

(C)for(i=0;t[i]=s[i];i++);

(D)do{*t++=*s++;}while(*s);

标准答案:D

58)、以下语句中存布语法错误的是

(A)charss[][20]={*right?*);

(B)char*ss[]={"right?”};

(C)char*ss[6j;ssLlJ="right?”;

(D)charss[6][20];ss[l]="righl?〃;

标准答案:D

59)、有以下程序

#include<stdio.h>

main()

{chars[]=,,012xy\08s34f4w2z,;

inti,n=0;

for(i=0;s[i]!=0;i++)

if(s[i]>='O'&&&&s[i]<='9')n++;

printf(〃%d\n”,n);

}

程序运行后的输出结果是

(A)8

(B)0

(C)3

(D)7

标准答案:C

60)、有以下程序

^include<stdio.h>

#include<string.h>

main()

{charstr[][20]={,,0ne*World,",''One*Dream!"},*p=str[l];

printf(〃%d,”,strlcn(p));printf("%s\n",p);

)

程序运行后的输出结果是

(A)10,One*World

(B)9,0ne*Dream!

(C)9,One*World

(D)10,One*Dream!

标准答案:D

61)、在C语言中,只有在使用时才占用内存单元的变量,其存储类型是

(A)auto和static

(B)extern和register

(C)auto和register

(D)static和register

标准答案:C

62)、有以下程序

^include<stdio.h>

fun(intx,inty)

{staticintm=0,i=2;

i+=m+1;m=i+x+y;returnm;

)

mainO

{intj=l,m=l,k;

k=fun(j,m);printf(“%d,”,k);

k=fun(j,m);printf("%d\n',k);

)

执行后的输出结果是

(A)11,11

(B)11,5

(C)5,5

(D)5,11

标准答案:D

63)、下列语句组中,正确的是

(A)chars[7];s={"Olympic"};

(B)char*s;s=“Olympic”;

(C)char*s;s={"Olympic"};

(D)chars[7];s="Olympic”;

标准答案:B

64)、在一个C源程序文件中所定义的全局变量,其作用域为

(A)所在函数的全部范围

(B)由具体定义位置和extern说明来决定范围

(C)所在程序的全部范围

(D)所在文件的全部范围

标准答案:B

65)、有以下函数

intfun(char*x,char*y)

{intn=0;

while((*x==*y)&&&&*x!='\0'){x++;y++;n++;}

returnn;

)

函数的功能是

(A)将y所指字符串赋给x所指存储空间

(B)查找x和y所指字符串中是否有‘\0'

(C)统计x和y所指字符串中相同的字符个数

(D)统计x和y所指字符串中最前面连续相同的字符个数

标准答案:D

66)、有以下程序段

#include<stdio.h>

intj;floaty;charnameL50J;

scanf(“为2d%f%s”,&&j,&&y,name);

当执行上述程序段,从键盘上输入555667777abc后,y的值为

(A)7777.0

(B)55566.0

(C)566777.0

(D)566.0

标准答案:D

67)、有以下程序

#include<stdio.h>

voidswap(char*x,char*y)

{chart;

t=*x;*x=*y;*y=t;

}

main()

{char*sl="abc〃,*s2="123〃;

,,,,

swap(si,s2);printf(%s,%s\n,si,s2);

)

程序执行后的输出结果是

(A)lbc,a23

(B)abc,123

(C)321,cba

(D)123,abc

标准答案:A

68)、有以下程序

#include<stdio.h>

intfun()

{staticintx=l;

x*=2;

returnx;

)

main()

{inti,s=l;

for(1=1;i<=3:i++)s*=fun();

printf("%d\n',s);

)

程序运行后的输出结果是

(A)0

(B)30

(C)64

(D)10

标准答案:B

69)、有以下程序

#include<stdio.h>

intf(intn);

main()

{inta=3,s;

s=f(a);s=s+f(a;;printf(〃/d\n〃,s);

)

intf(intn)

{staticinta=l;

n+=a++;

returnn;

}

程序运行后的输出结果是

(A)8

(B)9

(C)10

(D)7

标准答案:B

70)、有以下程序

#include<stdio.h>

typedefstruct{intb,p;}A;

voidf(Ac)/*注意:c是结构变量名*/

{intj;

c.b+=1;c.p+=2;

)

main()

{inti;

Aa={l,2};

f(a);

printfC^d,%d\n*,a.b,a.p);

)

程序运行后的输出结果是

(A)1,2

(B)2,4

(C)2,3

(D)1,4

标准答案:A

71)、有以下程序(注:字符a的ASCH码值为97)

4include<stdio.h>

main()

{char*s={〃abc〃};

do

{printf*s%10);++s;}

whi1e(*s);

}

程序运行后的输出结果是

(A)789

(B)7890

(C)979899

(D)abc

标准答案:A

72)、有以下函数

intfun(char*s)

{char*t=s;

while(*t++);

return(t-s);

)

该函数的功能是

(A)将s所指字符串复制到字符串t中

(B)计算s所指字符串占用内存字节的个数

(C)计算s所指字符串的长度

(D)比较两个字符串的大小

标准答案:B

73)、设有如下函数定义

#include<stdio.h>

intfun(intk;

{if(k<l)return0;

elseif(k==l;return1;

elsereturnfun(k-l)+l;

)

若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是

(A)3

(B)2

(C)4

(D)5

标准答案:A

74)、下面结构体的定义语句中,错误的是

(A)structord(intx;inty;intz;}structorda;

(B)structord{intx;inty;intz;}a;

(C)structord{intx;inty;intz;};structorda;

(D)struct{intx;inty;intz;}a;

标准答案:A

75)、以下叙述中错误的是

(A)用typedcf可以为各种类型起别名,但不能为变量起别名

(B)用lypedef定义新的类型名后,原有类型名仍有效

(C)可以通过typedef增加新的类型

(D)可以用typedef将已存在的类型用一个新的名字来代表

标准答案:C

76)、以下叙述中正确的是

(A)C语言的预处理不能实现宏定义和条件编译的功能

(B)在C语言中,预处理命令行都以〃#〃开头

(C)预处理命令行必须位于C源程序的起始位置

(D)^include〈stdio.h〉必须放在C程序的开头

标准答案:B

77)、有以下程序

#include<stdio.h>

main()

{unsignedchara=8,c;

c=a>>3;

,,,,

printf(%d\n,c);

)

程序运行后的输出结果是

(A)1

(B)0

(C)32

(D)16

标准答案:A

78)、有以下程序

#include<stdio.h>

structS

{inta,b;}data[2]={10,100,20,200);

main()

{structSp=data[l];

printf(,z%d\nz,,++(p.a));

)

程序运行后的输出结果是

(A)10

(B)21

(C)20

(D)11

标准答案:B

79)、有以下程序

#include<stdio.h>

#include<stdlib.h>

intfun(intn)

{int*p;

p=(int*)malloc(sizeof(int));

*p=n;

温馨提示

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

评论

0/150

提交评论