全国计算机等级测验考试二级c++题库6共17套Word文档下载推荐.docx
- 文档编号:18878644
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:47
- 大小:35.68KB
全国计算机等级测验考试二级c++题库6共17套Word文档下载推荐.docx
《全国计算机等级测验考试二级c++题库6共17套Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《全国计算机等级测验考试二级c++题库6共17套Word文档下载推荐.docx(47页珍藏版)》请在冰豆网上搜索。
③
充足注意测试中的群集现象。
④程序员应防止检查自己的程序。
⑤穷举测试不行能。
⑥妥当保存测试计划、
测试用例、犯错统计和最后剖析报告,为保护供给方便。
所以选项D正确。
在对程序进行了成功的测试以后将进入程序调试(往常称Debug,即排错)。
所以选项C正确。
程序调试的任务是诊疗和更正程序中的错误。
程序调试的基本步骤:
①错误定位。
②改正设计和代码,
以清除错误。
③进行回归测试,防备引进新的错误。
所以选项B是正确的。
故此题答案为A。
4、以下排序方法中,最坏状况下比较次数最少的是______。
A、冒泡排序
B、简单项选择择排序
C、直接插入排序
D、堆排序
(1)冒泡排序法:
是一种最简单的互换类排序法,它是经过相邻数据元素的互换逐渐将线性表变为有
序。
假定线性表的长度为n,则在最坏状况下,冒泡排序需要经过n/2遍的以前去后的扫描和n/2遍的从后往
前的扫描,需要比较的次数为n(n-1)/2次。
(2)简单插入排序法:
在简单插入排序法中,每一次比较后最多移掉一个逆序,所以,这类排序方法
的效率与冒泡排序法相同。
在最坏状况下,简单插入排序需要n(n-1)/2次比较。
(3)简单项选择择排序法:
对于长度为n的序列,选择排序需要扫描n-1遍,每一遍扫描均从剩下的子表中选出最小的元素,而后将该最小的元素与子表中的第一个元素进行互换。
简单项选择择排序法在最坏状况下需
要比较n(n-1)/2次。
(4)堆排序法:
堆排序的方法为:
①第一将一个无序序列建成堆。
②而后将堆顶元素(序列中的最大项)与堆中最后一个元素互换(最大项应当在序列的最后)。
在最坏状况下,堆排序需要比较的次数为
。
假定线性表的长度为16,那么冒泡排序、直接插入排序、简单项选择择排序都需要比较120次,而堆排序需要比较64次。
5、耦合性和内聚性是对模块独立性胸怀的两个标准。
以下表达中正确的选项是______。
A、提升耦合性降低内聚性有益于提升模块的独立性
B、降低耦合性提升内聚性有益于提升模块的独立性
C、耦合性是指一个模块内部各个元素间相互联合的密切程度
D、内聚性是指模块间相互连结的密切程度
内聚性:
内聚性是一个模块内部各个元素间相互联合的密切程度的胸怀。
耦合性:
耦合性是模块间互
相连结的密切程度的胸怀。
所以选项C、D是错误的。
在程序结构中,各模块的内聚性越强,则耦合性越弱。
一般较优异的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提升模块内的内聚性,
有益于提升模块的独立性。
所以选项A是错误的,应当降低耦性合提升内聚性,所以选项B是正确的。
故此题答案为B。
6、有两个关系R,S以下:
RS
由关系R经过运算获取关系S,则所使用的运算为______。
A、选择
B、投影
C、插入
D、连结
特意的关系运算包含:
选择、投影和连结。
1、选择:
从关系中找出知足给定条件的元组的操作称为选
择。
选择是从行的角度进行的运算,即从水平方向抽取记录。
2、投影:
从关系模式中指定若干个属性构成
新的关系。
投影是从列的角度进行的运算,相当于对关系进行垂直分解。
3、连结:
连结是关系的横向联合。
连结运算将两个关系模式拼接成一个更宽的关系模式,生成的新关系中包含知足连结条件的元组。
连结过
程是经过连结条件来控制的,连结条件中将出现两个表中的公共属性名,或许拥有相同语义、可比的属性。
选择和投影运算的操作对象不过一个表。
相当于对一个二维表进行切割。
连结运算需要两个表作为操作对象。
由图可知关系R经过运算获取关系S,关系S与关系R对比,记录的条数没有发生变化,属性的个数发生
了变化。
所以所使用的运算应当是投影。
选项C插入运算会增添记录的条数。
7、数据库应用系统中的中心问题是______。
A、数据库设计
B、数据库系统设计
C、数据库保护
D、数据库管理员培训
数据库应用系统是数据库系统再加上应用软件及应用界面这三者所构成,详细包含:
数据库、数据库
管理系统、数据库管理员、硬件平台、软件平台、应用软件、应用界面。
在数据库应用系统中的一个中心
问题就是设计一个能知足用户要求,性能优异的数据库,这就是数据库设计。
所以选项A是正确的。
8、支持子程序调用的数据结构是______。
A、栈
B、树
C、行列
D、二叉树
子程序调用是一种层次关系,子程序调用功能模块,调用功能模块的个数也不确立,能够是一个,也
能够是多个。
选项A、C中元素之间是一种前后件关系,前后元素之间没有层次之分,每个结点有一个前件
也只有一个后件。
二叉树是一种很实用的非线性结构,二叉树不一样于树形结构。
二叉树拥有以下两个特色:
①非空二叉树只有一个根结点;
②每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
选
项D规定每个结点只好有两个后件。
在子程序调用中,调用的功能模块能够是多个,能够调用超出两个功能模块。
所以选项A、C、D均不正确。
9、某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是______。
A、10
B、8
C、6
D、4
在任意一棵二叉树中,度为0的结点(即叶子结点)老是比度为2的结点多一个。
此题中度为2的结点数为5,故叶子结点数为5+1=6个。
10、软件按功能能够分为:
应用软件、系统软件和支撑软件(或工具软件)。
下边属于应用软件的是______。
A、编译程序
B、操作系统
C、教务管理系统
D、汇编程序
软件按功能能够分为:
应用软件、系统软件、支撑软件(或工具软件)。
应用软件是为解决特定领域
的应用而开发的软件。
比如,事务办理软件、工程与科学计算软件,及时办理软件,嵌入式软件,人工智
能软件等应用性质不一样的软件。
所以选项C教务管理系统属于应用软件。
系统软件是计算机管理自己资源,
提升计算机使用效率并为计算机用户供给各样服务的软件。
如操作系统,编译程序,汇编程序,网络软件,
数据库管理系统等。
所以选项A、B、D都属于系统软件。
11、有以下程序:
#include<
iostream>
usingnamespacestd;
classONE{
intc;
public:
ONE():
c(0){cout<
<
1;
}
ONE(intn):
c(n){cout<
2;
};
classTWO{
ONEone1;
ONEone2;
TWO(intm):
one2(m){cout<
3;
intmain(){
TWOt(4);
return0;
运转时的输出结果是______。
A、3
B、23
C、123
D、213
此题主要考察了成员对象。
当一个类的成员是此外一个类的对象时,该对象就称为成员对象。
成立一个类的对象时,要调用它的
结构函数。
假如这个类有成员对象,要第一履行所有的成员对象的结构函数,当所有成员对象的初始化都
达成以后,再履行目前类的结构函数体。
当类中有多个成员对象时,要依据定义成员对象的次序成立各个
子对象,即成员对象结构函数的履行次序仅与成员对象在类中申明的次序相关,而与成员初始化列表中给出的成员对象的次序没关。
假如在结构函数的成员初始化列表中没有给出对成员对象的初始化,则表示使用成员对象的缺省结构函数。
假如所有的成员对象都是调用缺省结构函数成立的,那么该类的结构函数的
成员初始化列表能够省略。
类TWO的数据成员是类ONE的对象one1和one2,main()函数中第一创立类TWO的对象t并供给初始值4,先履行成员对象one1的结构函数体,输出1;
再履行成员对象one2的结构函数体,输出2,最后履行类TWO的结构函数体,输出3。
所以此题程序运转时的输出结果是123。
12、假定以下语句都是程序运转后初次履行的输出语句,此中输出结果与此外三条语句不一样的语句是
______。
A、cout<
setfill('
*'
)<
123<
setw(9)<
321;
B、cout<
setw(6)<
left<
right<
C、cout<
D、cout<
此题主要考察了输出格式控制。
操控符setw为紧随后来的输出项指定输出宽度
,在一个域输出完后,域宽度恢复成它的默认值
0,输出
项默认对齐方式为右对齐,操控符
setfill
的作用是设置填补字符。
所以选项
A、选项B和选项D的输出结果
都为123******321,而选项C的输出结果为123***321。
13、
则与++a等效的运算符函数调用形式为
已知表达式++a中的"
++"
是作为成员函数重载的运算符,
A、a.operator++
(1)
B、operator++(a)
C、operator++(a,1)
D、a.operator++()
此题主要考察了运算符重载。
C++把重载的运算符视为特别的函数,称为运算符函数,函数名就是在运算符前加上保存字
operator。
一般而言,假如a是类X的对象,在类X中重载前置单目运算符
@,则以下两种函数调用方法是等价的:
第一种是经过运算符构成表达式的形式进行调用,
即@a;
第二种是像一般函数那样用函数名进行调用:
当把@作为成员函数重载时,调用形式为a.operator@();
当把@作为非成员函数重载时,调用形式为operator@(a)
此题是把前置单目运算符++重载为成员函数,
所以与表达式++a等效的表示为a.operator++()
14、已知有数组定义
chara[3][4];
以下表达式中错误的选项是______。
A、a[2]="
WIN"
B、strcpy(a[2],"
)
C、a[2][3]='
W'
D、a[0][1]=a[0][1]
此题主要考察了数组。
假如把二维数组a[3][4]看作3行4列矩阵,a[2]是第三行数据的首地点,是一个常量,不可以对其赋值。
此题答案为A。
15、运算符重载时不需要保持的性质是______。
A、操作数个数
B、操作数种类
C、优先级
D、联合性
重载的运算符应尽可能保持其原有的基本语义,重载的运算符应当表现为原运算符的功能在新的数据
种类上的延长。
重载的运算符应尽可能保持其原有的特征,运算符的操作数个数、优先级和联合性是三个
最基本的特征。
所以运算符重载时不需要保持的性质是操作数种类。
16、当使用
ifstream
流类定义一个流对象并翻开一个磁盘文件时,文件的默认翻开方式为
A、ios_base:
:
in
B、ios_base:
│ios_base:
out
C、ios_base:
D、ios_base:
in&
ios_base:
此题主要考察了文件输入流。
当使用ifstream流类定义一个流对象并翻开一个磁盘文件时,文件的默认翻开方式为ios_base:
in。
17、有以下类定义和变量定义:
classParents{
intpublicData;
private:
intprivateData;
classChildA:
publicParents{/*
类体略*/};
classChildB:
privateParents{/*
ChildAa;
ChildBb;
以下语句中正确的选项是
______
a.publicData<
endl;
a.privateData<
b.publicData<
b.privateData<
此题主要考察了派生类对基类成员的接见。
基类中公有成员在派生类中的接见控制属性将跟着继承方式而改变:
派生类从基类公有继承时,基类
的公有成员在派生类中仍旧是公有成员;
派生类从基类私有继承时,基类的公有成员在派生类中改变为私
有成员。
经过类的对象只好接见类的公有成员,应选项A是正确的。
18、有以下程序段:
inti=4;
intj=1;
intmain(){
inti=8,j=i;
cout<
i<
j<
A、44
B、41
C、88
D、81
此题主要考察了变量的作用域与可见性。
在C++中,作用域可见性的规则之一是:
假如在两个或多个拥有包含关系的作用域中声了然同名表记符,
则外层表记符在内层不行见。
此题中,在main()函数以前申明的变量i和j拥有文件作用域。
它的有效范围
是整个源代码文件。
在main()函数中又声了然同名变量i和j并赋初值均为8,其作用域为函数块,有效范围
为整个函数体。
因为拥有块作用域的变量隐蔽了拥有文件作用域的同名变量,所以main()函数中第二条输
出语句中的变量i和j指的是在main()函数中申明的变量i和j,故程序运转时的输出结果是88。
19、已知类MyClass申明以下:
classMyClass{
intn;
MyClass(intk):
n(k){}
intgetValue()const{returnn;
在以下数组定义中正确的选项是______。
A、MyClassx1[2];
B、MyClassx2[2]={newMyClass
(1),newMyClass
(2)};
C、MyClass*x3[2];
D、MyClass*x4[2]={MyClass
(1),MyClass
(2)};
此题主要考察了对象数组、指针数组和new运算符。
new运算符返回指向指定种类的一个指针。
对象数组是指数组元素为对象的数组,该数组中的每一个元
素都是同一个类的对象。
定义对象数组时,系统将自动调用结构函数创立每一个对象元素,因为类MyClass
中定义了一个有一个整型参数的结构函数,编译器将不再为其生成缺省结构函数,所以定义对象数组时必
须分别调用有参结构函数为每一个数组元素指定初始值。
所以选项A错误,没有初始化对象数组;
选项B中,
用指向对象的指针初始化对象数组,种类不般配,所以选项B错误;
指针数组是由指针构成的数组,即数组
中的每一个元素都是指向同一种类对象的指针。
选项C定义了指向MyClass类对象的指针数组x3,该定义语
句正确;
选项D中,只好用指向MyClass类对象的指针或用已有的MyClass类对象的地点来初始化指针数组x4
的每一个元素,不可以用对象进行初始化,所以选项D错误。
20、有以下程序:
cstring>
classXCF{
inta;
XCF(intaa=0):
a(aa){cout<
"
1"
;
XCF(XCF&
x){a=x.a;
cout<
2"
~XCF(){cout<
a;
intGeta(){returna;
XCFd1(5),d2(d1);
XCF*pd=newXCF(8);
pd->
Geta();
deletepd;
A、1215588
B、1218855
C、12185
D、128512
此题主要考察了结构函数、拷贝结构函数和析构函数。
结构函数在对象被创立的时候由系统自动调用,析构函数在对象的生计期马上结束的时辰被系统自动
调用,拷贝结构函数发生在用一个已知的对象初始化一个正在创立的同类对象的时候。
在
main()
函数中,
语句XCFd1(5),d2(d1);
先后创立了两个对象
d1和d2。
在创立对象
d1时,系统自动调用了结构函数,
d1数据
成员a的值为5,输出字符1;
在创立对象d2时是用已创立的对象d1初始化,系统自动调用拷贝结构函数,对象d2数据成员a的值为5,输出字符2;
而后履行语句XCF*pd=newXCF(8);
系统再次调用结构函数经过new
运算符动向创立了一个XCF类的对象,该对象的数据成员a的值为8,输出字符1,并将首地点赋给XCF类的指
针pd。
成员函数
Geta()
的功能是获取数据成员
a,所以履行语句
输出8。
接着履行语句
系统自动调用析构函数,输出指针
pd所指向对象的数据成员
a,即输出8,当main()
函数结束时,
系统先自动调用析构函数删除对象
d2,输出对象
d2的数据成员
a的值5,而后再次调用析构函数删除对象
d1,
输出对象d1的数据成员a的值5。
所以程序输出结果为1218855。
21、已知函数fun的原型为
intfun(int,int,int);
以下重载函数原型中错误的选项是______。
A、charfun(int,int);
B、doublefun(int,int,double);
C、intfun(int,clar*);
D、floatfun(int,int,int);
此题主要考察了函数重载。
函数重载同意用同一个函数名定义多个函数。
被重载的函数一定要有不一样的形参列表(即参数个数不
同或参数种类不一样),不可以够依据函数返回值种类来重载函数。
22、以下对于函数模板的描绘中,错误的选项是______。
A、从模板实参表和从模板函数实参表获取信息矛盾时,以模板实参的信息为准
B、对于惯例参数所对应的模板实参,任何状况下都不可以省略
C、虚构种类参数没有出此刻模板函数的形参表中时,不可以省略模板实参
D、模板参数表不可以为空
此题主要考察了函数模版。
在调用一个模板函数时,编译系统需要足够的信息来鉴别每个虚构种类参数所对应的实质种类,能够
从两个不一样的渠道获取这样的信息:
从模板实参表(用<
和>
括起来的参数表)或从模板函数实参表(用(和)
括起来的参数表),模板实参的信息优先于函数实参的信息,所以选项A正确。
假如从后者获取的信息已经
能够判断此中部分或所有虚构种类参数所对应的实质参数,并且它们又正好是参数表中最后的若干参数,
则模板实参表中的那几个参数能够省略。
假如模板实参表中的实参都被省略了,则空表<
>
也能够不要,因
此选项D错误。
反之,对于某个模板实参,假如从模板函数的实参表中没法获取相同的信息,就不可以省略;
或许固然能够获取相同的信息,但在它后边还有其余不可以省略的实参,则其自己仍是不可以省略。
下边列举
几种模板实参不可以省略的状况。
①从模板函数实参表获取的信息有矛盾。
②需要获取特定种类的返回值,
而不论参数的种类怎样。
③虚构种类参数没有出此刻模板函数的形参表中,所以选项C正确。
④函数模板含
有惯例形参,所以选项B正确。
23、有以下程序:
classPair{
intm;
Pair(inti,intj):
m(i),n(j){}
booloperator>
(Pairp)const;
//须在类体外给出定义
Pairp1(3,4),p2(4,3),p3(4,5);
(p1>
p2)<
(p2>
p1)<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机 等级 测验 考试 二级 c+ 题库 17