最新全国计算机等级考试二级c++题库3共17套Word文档格式.docx
《最新全国计算机等级考试二级c++题库3共17套Word文档格式.docx》由会员分享,可在线阅读,更多相关《最新全国计算机等级考试二级c++题库3共17套Word文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
![最新全国计算机等级考试二级c++题库3共17套Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/24/1ebba578-c090-4e7a-9d87-c3ea680f1b2b/1ebba578-c090-4e7a-9d87-c3ea680f1b2b1.gif)
属性名2>
…,<
属性名n>
)。
3、下列叙述中,不符合良好程序设计风格要求的是______。
A、程序的效率第一,清晰第二
B、程序的可读性好
C、程序中要有必要的注释
D、输入数据前要有提示信息
要形成良好的程序设计风格,主要应注重和考虑下述一些因素:
符号名的命名应具有一定的实际含义,以便于对程序功能的理解;
正确的注释能够帮助读者理解程序;
程序编写应优先考虑清晰性,除非对效率有特殊要求,程序编写要做到清晰第一,效率第二。
故本题答案为A。
4、一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为______。
A、219
B、221
C、229
D、231
二叉树的性质3:
在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
本题中度为2的结点数为70-1=69,该二叉树中的总结点数为70+80+69=219。
5、冒泡排序在最坏情况下的比较次数是______。
A、n(n+1)/2
B、
C、n(n-1)/2
D、n/2
冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序。
假设线性表的长度为n,则在最坏的情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。
6、软件调试的目的是______。
A、发现错误
B、改正错误
C、改善软件的性能
D、验证软件的正确性
软件调试的目的是诊断和改正程序中的错误,改正以后还需要再测试。
故本题答案为B。
7、下列叙述中正确的是______。
A、数据库系统是一个独立的系统,不需要操作系统的支持
B、数据库技术的根本目标是要解决数据的共享问题
C、数据库管理系统就是数据库系统
D、以上三种说法都不对
为了解决多用户、多应用共享数据的需求,使数据为尽可能多的应用服务,数据管理的最新技术--数据库技术应运而生。
数据库系统由如下几部分组成:
数据库、数据库管理系统、数据库管理员、系统平台(硬件平台和软件平台),所以选项A、C是错误的。
8、下列叙述中正确的是______。
A、数据的逻辑结构与存储结构必定是一一对应的
B、由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
C、程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构
数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构。
一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等。
而采用不同的存储结构,其数据处理的效率是不同的。
因此,在进行数据处理时,选择合适的存储结构是很重要的,所以选项A是错误的。
根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:
线性结构和非线性结构,所以选项B是错误的。
数组既可以处理线性结构也可以处理非线性结构,所以选项C是错误的。
故本题答案为D。
9、软件是指______。
A、程序
B、程序和文档
C、算法加数据结构
D、程序、数据与相关文档的完整集合
计算机软件是计算机系统中与硬件相互依存的另一部分,是程序、数据及相关文档的完整集合。
10、下列叙述中正确的是______。
A、程序执行的效率与数据的存储结构密切相关
B、程序执行的效率只取决于程序的控制结构
C、程序执行的效率只取决于所处理的数据量
所谓提高程序执行的效率,主要包括两个方面:
一是提高数据处理的速度,二是尽量节省在数据处理过程中所占用的计算机存储空间。
11、如果派生类以protected方式继承基类,则原基类的protected成员和public成员在派生类中的访问属性分别是______。
A、public和public
B、public和protected
C、protected和public
D、protected和protected
本题考查的是派生类。
派生类中的成员不能访问基类中的私有成员,可以访问基类中的公有成员和保护成员。
此时派生类对基类中各成员的访问能力与继承方式无关,但继承方式将影响基类成员在派生类中的访问控制属性。
12、以下关于类模板的模板参数的叙述中,错误的是______。
A、模板参数可以作为数据成员的类型
B、模板参数可以作为成员函数的返回类型
C、模板参数可以作为成员函数的参数类型
D、模板参数不能作为成员函数的局部变量的类型
本题考查模板的作用。
模板的作用:
模板它提供的是一个框架,待你提供真正的参数后,它便有了一个实例。
类模板定义不同类型的成员:
成员函数、静态数据成员和嵌套的类型。
模板参数也可以作为成员函数的局部变量的类型。
13、语句int*p=&
k;
定义了指针p,与这个语句等效的语句序列是______。
A、int*p;
p=&
B、int*p;
p=k;
C、int*p;
*p=&
D、int*p;
*p=k;
本题考查的是指针。
一个指针是一个特定类型数据的存储地址,比如一个变量的地址。
在使用任何指针变量之前必须先给它赋一个所指合法具体对象的地址值。
语句int*p=&
定义了一个指向变量k地址的int类型的指针p,此定义方法是在定义过程中同时赋初始值。
选项A中int*p;
是先定义了一个指针p,然后将变量k的地址赋给指针p,与题目中的语句int*p=&
等效。
14、有如下程序:
#include<
iostream>
usingnamespacestd;
classMyClass{
public:
MyClass(intx):
val(x){}
voidPrint()const{cout<
"
const:
val="
val<
'
\t'
;
}
voidprint(){cout<
private:
intval;
};
intmain(){
constMyClassobj1(10);
MyClassobj2(20);
obj1.Print();
obj2.Print();
return0;
程序的输出结果是______。
A、val=10const:
val=20
B、const:
val=10const:
C、const:
val=10val=20
D、val=10val=20
本题考查的是构造函数调用顺序。
首先定义了MyClass的const对象obj1,并初始构造函数参数为x=10。
构造函数通过:
val(x)将x的值给val。
定义MyClass的对象obj2,并初始构造函数参数为x=20。
调用Obj1对象中的Print()函数,输出obj1对象成员变量val的当前值,即输出const:
val=10。
调用Obj2对象中的Print()函数,输出obj2对象成员变量val的当前值,即输出const:
val=20。
15、有如下程序:
classBase{
voidoutput(){cout<
1;
virtualvoidPrint(){cout<
B'
classDerived:
publicBase{
voidoutput(){cout<
2;
voidPrint(){cout<
D'
Base*ptr=newDerived;
ptr->
output();
Print();
deleteptr;
A、1B
B、1D
C、2B
D、2D
本题考查的是虚函数。
}表示这方法是虚函数,虚函数的意思是如果子类有继承这虚函数,则子类的对象在执行此方法时调用子类的此方法。
否则会调用基类的此方法。
在此程序中Derived是子类,Base是基类,Base*ptr=newDerived;
创建一个子类的对象给基类的指针对象。
因为指针ptr是基类的对象。
所以在执行output()方法时会调用基类的output()方法,也就是Base类的output()方法。
不会调用Derived类的output()方法,因为output()不是虚函数。
输出1。
因为Print();
在基类Base中申明是虚函数,所以在子类中如果有继承此方法就会调用子类的这方法。
所以这个调用的是Derived类的Print();
方法。
输出D。
16、必须用一对大括号括起来的程序段是______。
A、switch语句中的case标号语句
B、if语句的分支
C、循环语句的循环体
D、函数的函数体
本题考查的是函数的函数体。
由一对花括号括起来的<
函数体>
是语句的序列,它定义了函数应执行的具体操作。
if语句的分支和循环语句的循环体通常使用花括号{}括起来;
switch语句中的case标号语句后加的是冒号"
:
。
17、下列关于运算符重载的描述中,正确的是______。
A、运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符
B、一元运算符只能作为成员函数重载
C、二元运算符重载为非成员函数时,参数表中有一个参数
D、C++中可以重载所有的运算符
本题主要考查了运算符重载。
一元运算符还可以作为全局函数重载,所以选项B错误。
二元运算符重载为非成员函数时,参数表中有两个参数,所以选项C错误。
有些运算符不能被重载,如域运算符(:
),条件运算符(?
)等,具体哪些运算符不能被重载与编译器有关,所以选项D错误。
18、C++中的模板包括______。
A、对象模板和函数模板
B、对象模板和类模板
C、函数模板和类模板
D、变量模板和对象模板
本题考查的是C++中的模板,包括函