点击查看:2015年计算机二级考试C++过关练习题及答案汇总
1[单选题]下列链表中,其逻辑结构属于非线性结构的是( )。
A.二叉链表B.循环链表C.双向链表D.带链的栈
参考答案:A
2[单选题]在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。
A.
B.
C.
D.
参考答案:C
参考解析:
3[填空题]找出矩阵A3×4中第一个最大元素以及它的行号和列号(从0开始计算)。
#define M 3
#define N 4
#include
using namespace std;
int main()
{int i,j,row,colum,max;
int a[M][N];
for(i=0;i
for(j=0;j
cin>>a[i][j];
max=__1__; row=0,colum=0;
for (i=0;i
for(j=0;j
if (__2__)
{ max=a[i][j];
row=i;
colum=j;
}
cout<<”\nmax=”<
return 0;
}
参考解析:
1:a[0][0] 2:maxmax
4[单选题] 下列对于软件测试的描述正确的是( )。
A.软件测试的目的是证明程序是否正确
B.软件测试的目的是使程序运行结果正确
C.软件测试的目的是尽可能地多发现程序中的错误
D.软件测试的目的是使程序符合结构化原则
参考答案:C
参考解析:软件测试是为了尽可能多地发现程序中 的错误,尤其是发现至今尚未发现的错误。
5[单选题]
参考答案:A
6[单选题]下面关于C++的特点中描述不正确的是( )。
A.C++是C语言的超集,大多数C程序在不用修改的情况下就可以在C++的集成环境中运行或调试
B.C++是面向对象的程序设计语言
C.C++中没有结构化编程的语句
D.C++的执行效率很高参考答案:C
参考解析:C++是基于C语言发展起来的一种面向对象的高级语言,具有了面向对象程序设计语言的特征,同时具有结构化编程的思想。
7[单选题]设有以下定义程序:
#include
class A1
{
public:
void show1()
{
cout << "class A1" << endl;
}
};
class A2:public A1
{
public:
void show2()
{
cout<<"class A2"<
}
};
class A3:protected A2
{
public:
void show3()
{
cout<<"class A1"<
}
};
void main()
{
A1 obj1;
A2 obj2;
A3 obj3;
}
则以下不合法的调用语句是( )。
A.obj1.show1();B.obj2.show1();C.obj3.show1();D.obj2.show2();
参考答案:C
参考解析:由于 class A3:protected A2,所以类 A3 的对象 obj3 不能直接访问基类 A1 的成员函数 show1(),所以选项C 是错误的;其他选项均有访问的权限,正确。
8[填空题]软件开发环境是全面支持软件开发全过程的_____集合。
参考解析:软件工具
【解析】软件开发环境或称软件工程环境是全面支持软件开发全过程的软件工具集合。这些软件工具按照一定的方法或模式组合起来,支持软件生命周期内的各个阶段和各项任务的完成。
9[填空题]在关系模型中,一个关系的属性名表称为_______。也就是二维表的表框架,相当于己录型。
参考答案:关系模式
【解析】在关系模型中.一个关系的属性名表称为关系模式。
10[简答题]用vc++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了多个类,其中定义的类并不完整,按照要求完成下列操作,将类的定义补充完整;使其输出如下:
TC2
TC3
TCl
(1)类TC2公共继承于TC1,请在注释1后添加适当的语句。
(2)print函数为虚函数,请在注释2后添加适当的语句。
(3)修改语句,使得p指定对象0bj3,请在注释3后添加适当的语句。
(4)修改语句,利用P调用print函数,完成输出信息,在注释4后添加适当的语句。
注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。
试题程序:
#include
usingnamespacestd;
classTCl
{
public:
voidprint()
{
cout<<"TCl"<
}
};
//********1********
classTC2
{
public:
//********2********
voidprint()
{
cout<<"TC2"<
}
};
classTC3:publicTC2
{
public:
voidprint()
{
cout<<"TC3"<
}
};
intmain()
{
TC20bj2;
TC30bj3;
TC1*P;
obj2.print();
obj3.print();
//********3********
p=obj3;
//********4********
P.print();
return0;
}
参考解析:
(1)将“classTC2”补充完整为“classTC2:publicTCl”。
(2)将“voidprint()”补充完整为“virtualvoidprint()”。
(3)将“p=obj3;”修改为“p=&obj3;”。
(4)将“P.print();”修改为“p->print();”。
【解析】本题中第1处要求“类TC2公共继承于TC1”。从已有的类产生一个新的子类,成为类的派生。声明派生类的一般形式为“class派生类名:[继承方式]基类名”。根据题目中的要求以及派生类的一般形式,在第1处添加语
句“ClaSSTC2:publicTC1”。第2处要求“print函数为虚函数”。在C++中,用virtual声明的函数为虚函数。因此第2处的语句应修改为“virtualvoidprint()”。第3处要求“使得P指定对象obj3”。p为指针变量,obj3为类的对象,将一个指针变量指向另一个变量,只要把被指向的变量的地址赋给指针变量即可。取对象obj3地址的语句为&obj3,所以这里补全语句为“p=&obj3;”。第4处要求“利用P调用print()函数”。C++中用“->”运算符实现成员访问,因此调用print函数,应将第4处的语句修改为“p->print();”。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |