点击查看:2015年计算机二级考试C++过关练习题及答案汇总
1[单选题]下列叙述中正确的是( )。
A.算法的效率只与问题的规模有关,而与数据的存储结构无关
B.算法的时间复杂度是指执行算法所需要的计算工作量
C.数据的逻辑结构与存储结构是一一对应的
D.算法的时间复杂度与空间复杂度一定相关
参考答案:B
2[判断题]C++语言比C语言对数据类型要求更加严格了。
参考答案:对
3[单选题]下面选项中不属于面向对象程序设计特征的是( )。
A.继承性 B.多态性 C.类比性 D.封装性
参考答案:C
4[单选题]下列关于数据库设计的叙述中,正确的是( )。
A.在需求分析阶段建立数据字典
B.在概念设计阶段建立数据字典
C.在逻辑设计阶段建立数据字典
D.在物理设计阶段建立数据字典
参考答案:A
参考解析:数据库设计目前一般采用生命周期法,即将整个数据库应用系统的开发分解成日标独立的若干阶段。分别是:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。数据字典是对系统中数据的详尽描述,是各类数据属性的清单。对数据设计来讲,数据字典是进行洋细的数据收集和数据分析所获得的主要结果。
5[单选题]下列叙述中正确的是( )。
A.用E-R图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系
B.用E-R图只能表示实体集之间一对一的联系
C.用E-R图只能表示实体集之间一对多的联系
D.用E-R图表示的概念数据模型只能转换为关系数据模型
参考答案:A
参考解析:用E-R图可以简单明了地描述实体及其相互之间的联系,用E-R图还可以方便地描述多个实体集之间的联系和一个实体集内部实体之间的联系。因此,选项A中的说法是正确的, 而选项B与C中的说法都是错误的。 为了建立用户所要求的数据库.必须把概念结构(用E-R图表示的概念数据模型)转换为某个具体的数据库管理系统所支持的数据模型.这就是逻辑结构设计所要完成的任务。在已给定数据库管理系统的情况下,数据库的逻辑设计可以分两步来进行: ①将概念模型转换成一般的数据模型; ②将一般的数据模型转换为特定的数据库管理系统所支持的数据模型。 由此可知,用E-R图表示的概念数据模型不仅能转换为关系数据模型,还可以转换为其他数据模型,如网状模型和层次模型等。因此,选项D中的说法也是错误的。
6[单选题]下列数据结构中,属于非线性结构的是( )。
A.循环队列B.带链队列C.二叉树D.带链栈
参考答案:C
参考解析:队列是一种允许在一端进行插入,而在另一端进行删除的线性表。栈也是一种特殊的线性表,其插入与删除只能在线性表的一端进行。
7[单选题] c++语言类体系中,不能被派生类继承的有( )。
A.转换函数B.构造函数C.虚函数D.静态成员函数
参考答案:B
参考解析:派生类对象的数据结构是由基类中说明的数据成员和派生类中说明的数据成员共同构成,所以不能继承基类的构造函数,必须重新定义。
8[单选题] 在软件设计中,不属于过程设计工具的是( )。
A.PDL(过程设计语言)B.PAD图C.N-S图D.DVD图
参考答案:D
参考解析:PDL是过程设计语言(ProcedureDesignLanguage)的简写,也称程序描述语言,是硐于描述模块算法设计和处理细节的语言;N-S图是编程过程中常用的一种分析工具,提出了最初分析问题方法;PAD是问题分析圈(ProblemAnalysisDiagram)的简写,它用二维树型结构的图表示程序的控制流,将这种图转换为程序代码比较容易;DFD(数据流图)是描述数据处理过程的工具。
9[单选题] 下面不正确的描述为( )。
A.调用函数时,实参可以是表达式
B.调用函数时,实参与形参可以共用内存单元
C.调用函数时,将为形参分配内存单元
D.调用函数时,实参与形参的类型必须一致
参考答案:B
参考解析:函数调用时用实参替换形参,如果实参为表达式,将为表达武的值创建一个临时对象,然后将该实参替换形参。替换的实质是变量间的复制,当然这种复制需要为形参分配内存。需要注意的是:形参在编泽时不分配内存,在运行时才分配内存。
10[单选题] 有如下程序:
#include
#includediomanip>
usingnamespacestd;
intmain( ){
ints[]={123,234);
cout<
for(inti=0;i<2;i++){cout<
return0;
}
运行时的输出结果是( )。
A.123B.***123
234234C.***123D.***123
***234234***
参考答案:B
参考解析:setw()为填充字符控制,仅对紧接着它的字符起作用,当输出的字符宽度小于setw()预留的字符数时,需用setw()设置的字符给予填充。
11[填空题]C++语言具有面向对象方法中要求的三大特性: ( ) 、 ( ) 和 ( ) 。
参考解析:封装性 、 继承性 和 多态性 。
12[简答题]指出下列数据中哪些可作为C++的合法常数?
(a) 588918 (b) 0129 (c) 0x88a (d) e-5 (e) ″A″
(f) .55 (g) ’\\’ (h) 0XCD (i) 8E7 (j) π
参考解析:(a)、(c)(e)、(f)、(g)、(h)、(i)
13[单选题] 有如下程序:
#include
usingnamespacestd;
classA
{
public:
A(){cout<<"A";}
~A(){cout<<"~A";}
};
classB
{
A*P:
public:
B(){cout<<"B";p=newA;}
~B(){cout<<"~B";deleteP;}
};
intmain()
{
Bobi;
return0;
}
执行这个程序的输出结果是( )。
A.BAA~A~B~AB.ABA~B~A~AC.BAA~B~A~AD.ABA~A~B~A
参考答案:B
参考解析:本题考查的是类的构造函数和析构函数。派生类构造函数的执行顺序:首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用子对象的构造函数,调用顺序按它们在类中说明的顺序;最后是派生类构造函数中的内容。因此本题中,首先调用基类构造函数输出A,然后调用子对象的构造函数输出B,P=newA再调用类A的构造函数输出A。析构函数的调用顺序和构造函数的调用顺序相反。
14[单选题]开发软件时对提高开发人员工作效率至关重要的是
A.操作系统的资源管理功能
B.先进的软件开发工具和环境
C.程序人员的数量
D.计算机的并行处理能力
参考答案:B
15[单选题] 下列关于模板形参的描述中,错误的是( )。
A.模板形参表必须在关键字template之后
B.模板形参表必须用括弧( )括起来
C.可以用class修饰模板形参
D.可以用typename修饰模板形参
参考答案:B
参考解析:主要考查函数模板的定义。声明一个函数模板的格式为“template<<模板形参表声明>><函数声明>”,其中<模板形参>具有typename<参数名>、class<参数名>、<类型修饰><参数名>三种形式,形参用“<>”括起来。
16[单选题]
A.n=0B.n=1C.n=2D.n=3
参考答案:A
参考解析:
17[单选题] 有下列程序:
#include
voidmain( )
{inta=1,b=2,c=3,d=0;
if(a==1&&b++==2)
if(b!=2‖c--!=3)
printf("%d,%d,%d\n",a,b,c);
elseprintf("%d,%d,%d\n",a,b,c);
elseprintf("%d,%d,%d,%d\n",a,b,c);
}
程序运行后的输出结果是( )。
A.1,2,3B.1,3,2C.1,3,3D.3,2,1
参考答案:C
参考解析:在程序中,当执行第一条if语句时,进行逻辑语句的判断,因为变量b的初值为2,所以其值加1后为3,与2不相等,所以if语句中的逻辑表达式的值为假,则程序执行最后一条elseprintf语句。输出变量为a,b,c,当前数值为1,3,3。所以正确答案为选项C。
18[简答题]请使用VC6或使用【答题】菜单打开考生文件夹pr092下的工程pros2。此工程中包含一个程序文件main.cpp,其中有“部门”类Department和“职工”类Staff的定义,还有主函数main的定义。在主函数中定义了两个“职工”对象,他们属于同一部门。程序展示,当该部门改换办公室后,这两个人的办公室也同时得到改变。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:
改换办公室前:
职工号:0789姓名:张三部门:人事处办公室:521
职工号:0513姓名:李四部门:人事处办公室:521
改换办公室后:
职工号:0789姓名:张三部门:人事处办公室:311
职工号:0513姓名:李四部门:人事处办公室:311
注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
#include
using namespace std;
class Department{ //“部门”类
public:
Department(const char*name,const char*office){
strcpy(this一>name,nanle);
//**********found**********
}
const char*getName()const{return name;}//返回部门名称
//**********found**********
const char*getOffice()const{________} //返回办公室房号
void changeOfficeTo(const char*office){ //改换为指定房号的另一个办公室
strcpy(this一>office,office);
}
private:
char name[20];//部门名称
char office[20];//部门所在办公室房号
};
class staff{//“职工”类
public:
//**********found**********
Staff(const char*my—id,const char木my_name,Department&my_dept):——{
strcpy(this一>staff id,my_id);
strcpy(this一>name,my_name);
}
const char*getlD()const{return staff_id;}
const char*getName()consl{return name;}
Department getDepartment()const{return dept;} char staff=id[10];//职工号
char name[20];//姓名
Department&dept;//所在部门
}; void showStaff(Staff&staff){
cout<<”职工号:”<
cout<<”姓名:”<
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |