计算机二级C++考试真题及解析

更新时间:2023-11-04 09:10:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一套

1、下面叙述正确的是______。

A、算法的执行效率与数据的存储结构无关

B、算法的空间复杂度是指算法程序中指令(或语句)的条数 C、算法的有穷性是指算法必须能在执行有限个步骤之后终止 D、以上三种描述都不对

算法的设计可以避开具体的计算机程序设计语言,但算法的实现必须借助程序设计语言中提供的数据类型及其算法。数据结构和算法是计算机科学的两个重要支柱。它们是一个不可分割的整体。算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度。算法的有穷性是指一个算法必须在执行有限的步骤以后结束。 本题答案为C。

2、数据库系统的核心是______。 A、数据模型

B、数据库管理系统 C、软件工具 D、数据库

数据库管理系统DBMS是数据库系统的核心。DBMS是负责数据库的建立、使用和维护的软件。DBMS建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过DBMS。另外,DBMS还承担着数据库的安全保护工作,按照DBA所规定的要求,保证数据库的完整性和安全性。 本题答案为B。

3、在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。 A、可行性分析 B、需求分析 C、详细设计 D、程序编码

软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。其中需求分析阶段常用的工具是数据流图和数据字典。 本题答案为B。

4、在软件开发中,下面任务不属于设计阶段的是______。 A、数据结构设计 B、给出系统模块结构 C、定义模块算法

D、定义需求并建立系统模型

软件设计一般分为总体设计和详细设计两个阶段,总体设计的任务是确定软件的总体结构,子系统和模块的划分,并确定模块间的接口和评价模块划分质量,以及进行数据分析。详细设计的任务是确定每一模块实现的定义,包括数据结构、算法和接口。 本题答案为D。

5、下列叙述中正确的是______。

A、数据库是一个独立的系统,不需要操作系统的支持 B、数据库设计是指设计数据库管理系统

C、数据库技术的根本目标是要解决数据共享的问题

D、数据库系统中,数据的物理结构必须与逻辑结构一致

数据库是存储在计算机存储设备中的、结构化的相关数据的集合。数据库中的数据不只是面向某一项特定的应用,而是面向多种应用,可以被多个用户、多个应用程序共享,不具有独立的系统。设计数据库的目的实质上是设计出满足实际应用需求的实际关系模型。数据库技术的主要目的是有效地管理和存取大量的数据资源,包括:提高数据的共享性,使多个用户能够同时访问数据库中的数据;减小数据的冗余,以提高数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。 本题答案为C。

6、下面描述中,符合结构化程序设计风格的是______。

A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B、模块只有一个入口,可以有多个出口 C、注重提高程序的执行效率 D、不使用goto语句

基于对结构化程序设计原则、方法以及结构化程序基本构成结构的掌握和了解,在结构化程序设计的具体实施中,要注意把握如下要素: 1、使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑; 2、选用的控制结构只准许有一个入口和一个出口; 3、程序语句组成容易识别的块,每块只有一个入口和一个出口; 4、复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现; 5、语言中所没有的控制结构,应该采用前后一致的方法来模拟; 6、严格控制GOTO语句的使用。

其意思是指:(1)用一个非结构化的程序设计语言去实现一个结构化的构造; (2)若不使用GOTO语句会使功能模糊;(3)在某种可以改善而不是损害程序可读性的情况下。 本题答案为A。

7、下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。 A、内模式 B、外模式 C、概念模式 D、逻辑模式

数据库管理系统的三级模式结构由外模式、模式和内模式组成。 外模式,或子模式,或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。 模式,或逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。外模式是模式的一部分。 内模式,或存储模式,或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方式的描述。 本题答案为A。

8、下面概念中,不属于面向对象方法的是______。 A、对象 B、继承 C、类

D、过程调用

面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。面向对象方法从对象出发,发展出对象,类,消息,继承等概念。 本题答案为D。

9、在一棵二叉树上第5层的结点数最多是______。

A、8 B、16 C、32 D、15

根据二叉树的性质:二叉树第i(i≥1)层上至多有2i-1 个结点。得到第5层的结点数最多是16。 本题答案为B。

10、以下数据结构中不属于线性数据结构的是______。

A、队列 B、线性表 C、二叉树 D、栈

线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式。栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。所以栈又称后进先出表(Last In First Out);队列可看作是插入在一端进行,删除在另一端进行的线性表,允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,只能删除队头元素,队列的最后一个元素一定是最新入队的元素。因此队列又称先进先出表(First In First Out)。 本题答案为C。

11、下列程序的输出结果是______。 #include using namespace std; int main() {

char a[]=\char *ptr=a; while(*ptr) {

if(*ptr>='a'&&*ptr<='z') cout<

return 0; }

A、HELLO,WORLD B、Hello,World C、hELLO,wORLD D、hello,world

此程序段的功能是将字符串中的小写字母转换为大写字母并将其输出。 本题答案为A。

12、关于动态存储分配,下列说法正确的是______。

A、new和delete是C++语言中专门用于动态内存分配和释放的函数 B、动态分配的内存空间也可以被初始化

C、当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间

D、当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new

new和deleted在C++中用来申请与释放内存的运算,不是函数,故选项A错。动态内存分配时是可以对其进行初始化的,如对类的初始化。在C++中,没有垃圾回收装置,系统本身不会自动回收内存,选项C也错。由于采用了new操作分配内存,在内存分配失败时,产生一个NULL指针,不会导致系统的崩溃,因此建议使用new操作,故选项D错。 本题答案为B。

13、执行语句序列 int n; cin>>n; switch(n) {

case 1:

case 2:cout<<'1'; case 3:

case 4:cout<<'2';break; default:cout<<'3'; }

时,若键盘输入1,则屏幕显示______。

A、1 B、2 C、3 D、12

switch语句又称为开关语句,它也是一种选择语句。switch语句的功能是根据给定表达式的不同取值来决定从多个语句序列中的哪一个开始执行。

break语句又称为跳出语句。break语句只能用在switch语句和循环语句中。在switch语句中,break用来使执行流程跳出switch语句,而继续执行switch后面的语句。在循环语句中,break用来使执行流程无条件地跳出本层循环。 本题答案为D。

14、有以下类定义 class Point {

public:

Point(int x=0,int y=0){_x=x;_y=y;}

void Move(int xOff,int yOff) {_x+=xOff;_y+=yOff;} void Print() const

{cout<<'('<<_x<<','<<_y<<')'<

下列语句中会发生编译错误的是______。

A、Point pt;pt.Print();

B、const Point pt;pt.Print() C、Point pt;pt.Move(1,2);

D、const Point pt;pt.Move(1,2);

本题主要考查了const关键字的使用。可以在类型或类名前加上const来声明一个在运行时不可改变的对象或变量。如果声明了一个常量对象,则其内部成员均不可改变,在编译时会检查其对应类的成员变量是否为左值,如果是,则会出现错误。对于B而言,由于在对象pt中的print方法中没有发现存在左值成员变量,故在编译时不会出错。 本题答案为D。

15、有以下类定义 class MyClass {

private: int id;

char gender; char *phone; public:

MyClass():id(0),gender('# '),phone(NULL){}

MyClass(int no,char ge='# ',char *ph=NULL) {id=no;gender=ge;phone=ph;} };

下列类对象定义语句中错误的是______。

A、MyClass myObj;

B、MyClass myObj(11,\C、MyClass myObj(12,'m'); D、MyClass myObj(12); 对于A,由于在创建MyClass的实例myObj时,没有参数,所以其调用了第一个构造函数。对于B,由于有两个参数,故其调用了第二个构造函数,第二个构造函数有两个缺省参数,在调用时,实参会按从左到右的顺序依次传给形参,所以第二个参数”13301111155”会传递给形参ge,而在原型中ge为字符型,实参为指向字符的指针,故在编译时会出现错误。C与D都能够正确的实现参数的传递。 本题答案为B。

16、下列函数原型声明中错误的是______。

本文来源:https://www.bwwdw.com/article/o6w2.html

Top