试卷详情
-
二级C++笔试-275
-
[填空题]栈中允许进行插入和删除的一端叫做______。
-
[单项选择]在下列程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD。
#include<iostream>
using namespace std;
class A
public:A( )cout<<’A’;
;
class B: ______
public:B( )cout<<’B’;
;
class C:virtual public A
public:C( )cout<<’C’;
;
class D:public B,public C
public:D( )cout<<’D’;
;
void main( )D obj;
A. public A
B. private A
C. protected A
D. virtual public A
-
[单项选择]下列有关类成员的叙述中,正确的是( )。
A. 友元函数是类的成员函数
B. 类成员的默认访问权限是私有的
C. 类成员函数必须声明为公有的
D. 类的静态数据成员不能是常成员
-
[单项选择]对关系S和R进行集合运算,结果中既包含S中的所有元组也包含R中的所有元组,这样的集合运算称为( )。
A. 并运算
B. 交运算
C. 差运算
D. 积运算
-
[单项选择]用来派生新类的类称为( )。
A. 新生类
B. 派生类
C. 基类
D. 子类
-
[单项选择]已知类Myst有一个只需要一个double型参数的构造函数,且将运算符“-”重载为友元函数。要使语句序列( )。
Myst x(3.2),y(5.5),z(0.0);
z=8.9-y;
y=x-6.3;
能够正常运行,运算符函数operator-应该在类中声明为( )。
A. friend Myst operator-(Myst&,Myst&);
B. friend Myst operator-(Myst,Myst);
C. friend Myst operator-(Myst,Myst&);
D. friend Myst operator-(Myst&,Myst);
-
[填空题]下列程序的输出结果为:
Objectid=O
Obiectid=1
请将程序补充完整。
#include<iostream>
using namespace std;
class Point
public:
Point(int xx=0,int yy=0)X=xx;Y=yy;countP++;
~Point( )countP--;
int GetX( )return X;
int GetY( )return Y;
static void GetC( )cout<<"Object id="<<countP<<endl;
private:
int X,Y;
static int countP;
;
______//静态数据成员的初始化
int main( )
Point::GetC( );
Point A(4,5);
A.GetC( );
return 0;
-
[填空题]下列程序输出结果为:
#include<iostream>
using namespace std;
class TestClass1
public:
TestClass1( )
TestClass1(int i)
x1=i;
void dispa( )
cout<<"x1="<<x1<<",";
private:
int x1;
;
class TestClass2:public TestClass1
public:
TestClass2( )
TestClass2(int i):TestClass1(i+10)
x2=i;
void dispb( )
dispa( );
cout<<"x2="<<x2<<endl;
private:
int x2;
;
int main( )
TestClass2 b(2);
b.dispb( );
return 0;
-
[填空题]多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但运算符[]只能作为类的______函数重载。
-
[单项选择]必须用一对大括号括起来的程序段是( )。
A. switch语句中的case标号语句
B. if语句的分支
C. 循环语句的循环体
D. 函数的函数体
-
[单项选择]使用白盒测试法时,确定测试数据应该根据( )和指定的覆盖标准。
A. 程序的内部逻辑
B. 程序的复杂结构
C. 使用说明书
D. 程序的功能
-
[单项选择]如果派生类以protected方式继承基类,则原基类的protected成员和public成员在派生类中的访问属性分别是( )。
A. public和public
B. public和protected
C. protected和public
D. protected和protected
-
[填空题]创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用缺省构造函数。下列程序涉及对象数组的创建和单个对象的创建,其输出结果是______。
#include<iostream>
using namespace std;
class Foo
public:
Foo(int x)cout<<’A’;
Foo( )
;
int main( )
Foo f[3],g(3);
return 0;
-
[单项选择]下列是关于派生类声明的开始部分,其中正确的是( )。
A. class virtual B:public A
B. virtual class B:public A
C. class B:public A virtual
D. class B:virtual publicA
-
[单项选择]若类A和类B的定义如下:
#include<malloc.h>
class A
int i,j;
public:
int geti( )
return i;
;
class B:public A
int k;
public:
void make( )
k=i*j;
;
则上述定义中非法的表达式是( )。
A. k=i*j;
B. int k;
C. return i;
D. void make();
-
[单项选择]下列有关继承和派生的叙述中,正确的是( )。
A. 如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员
B. 派生类的成员函数可以访问基类的所有成员
C. 基类对象可以赋值给派生类对象
D. 如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类
-
[单项选择]类MyClass的定义如下:
class MyClass
public:
MyClass( )value=0;
SetVariable(int i)value=i;
private:
int value;
;
则对下列语句序列正确的描述是( )。
MyClass*P, my; p=&my;
A. 语句p=&my; 是把对象my赋值给指针变量P
B. 语句MyClass*p, my; 会调用两次类MyClass的构造函数
C. 对语句*P. SetVariable(5)的调用是正确的
D. 语句p->SetVariable(5)与语句my.SetVariable(5)等价
-
[单项选择]静态数据成员是为( )的数据。
A. 私有
B. 保护
C. 所有对象共享
D. 类成员
-
[单项选择]使用ifstream流类定义流对象并打开磁盘文件时,文件的隐含打开方式为( )。
A. ios::in
B. ios::out
C. ios::inlios::out
D. 没有默认
-
[单项选择]下列选项中不属于软件生命周期开发阶段任务的是( )。
A. 软件测试
B. 概要设计
C. 软件维护
D. 详细设计
-
[填空题]已知一个函数模板定义为:
template<typename T1, typename T2>
T1 FUN(T2 n)return n*5.0;
若要求以int型数据7为函数实参调用该模板函数,并返回一个double型数据,则该调用应表示为______。
-
[单项选择]数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
A. DB包括DBS和DBMS
B. DBMS包括DB和DBS
C. DBS包括DB和DBMS
D. 没有任何关系
-
[单项选择]按照“先进后出”原则组织数据的数据结构是( )。
A. 队列
B. 栈
C. 双向链表
D. 二叉树
-
[单项选择]下列关于构造函数和析构函数的描述,错误的是( )。
A. 析构函数中调用虚函数采用静态联编
B. 对虚析构函数的调用可以采用动态联编
C. 当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数
D. 构造函数可以声明为虚函数
-
[填空题]下面是复数类complex的定义,其中重载的运算符“+”的功能是返回一个新的复数对象,其实部等于两个操作对象实部之和,虚部等于两个操作对象虚部之和;请补充完整。
class complex
double real; //实
double imag; //虚部
public:
complex( double r, double i):real(r),imag(i)
complex operator + (complex a)
return complex(______);
;
-
[填空题]执行下列语句后,变量sum的值是______。
int sum=0;
for(int i=1;i<=3;i++)
for(int j=1;j<=i;j++)
sum++;
-
[单项选择]下列关于C++函数的说明中,正确的是( )。
A. 内联函数就是定义在另一个函数体内部的函数
B. 函数体的最后一条语句必须是return语句
C. 标准C++要求在调用一个函数之前,必须先声明其原型
D. 编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式
-
[填空题]在算法的4个特性中,算法必须能在执行有限个步骤之后终止指的是算法的______特性。
-
[单项选择]算法的时间复杂度是指( )。
A. 执行算法程序所需要的时间
B. 算法程序的长度
C. 算法执行过程中所需要的基本运算次数
D. 算法程序中的指令条数
-
[单项选择]下列选项中不属于软件工程3个要素的是( )。
A. 工具
B. 过程
C. 方法
D. 环境
-
[单项选择]下列符号中,正确的C++标识符是( )。
A. enum
B. 2b
C. foo-9
D. _32
-
[单项选择]对建立良好的程序设计风格,下列描述中正确的是( )。
A. 程序应该简单、清晰、可读性好
B. 符号名的命名只需要符合语法
C. 充分考虑程序的执行效率
D. 程序的注释可有可无
-
[填空题]按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于______。
-
[单项选择]运算符重载是对已有的运算符赋予多重含义,因此( )。
A. 可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义
B. 可以改变一个已有运算符的优先级和操作数个数
C. 只能重载C++中已经有的运算符,不能定义新运算符
D. C++中已经有的所有运算符都可以重载
-
[填空题]在面向对象程序设计中,从外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构以及实现操作的算法,这称为对象的______。
-
[单项选择]若有如下程序:
#include<iostream>
using namespace std;
class TestClass
public:
void who( ) cout<<"TestClass"<<endl;
;
class TestClass1:public TestClass
public:
void who( )cout<<"TestClass1"<<endl;
;
int main( )
TestClass *p;
TcstClass1 obj1;
p=&obj1;
p->who( );
return 0;
则该程序运行后的输出结果是( )。
A. TestClass1
B. TestClass
C. 0
D. 无输出
-
[填空题]假定用户没有给一个名为MyClass的类定义析构函数,则系统为其定义的默认析构函数首部形式为______。
-
[填空题]对基类数据成员的初始化必须派生类的构造函数中的______处执行。
-
[单项选择]下列程序的输出结果为( )。
#include<iostream.h>
class TestClass
public:
TestClass ( )val++;
static int val;
;
int TestClass::val=0;
void main( )
TestClass cs1;
cout<<cs1.val<<"";
TestClass cs2;
TestClass cs3,cs4;
cout<<cs2.val<<endl;
A. 03
B. 13
C. 14
D. 24
-
[单项选择]下列描述中,不是线性表顺序存储结构特征的是( )。
A. 不便于插入和删除
B. 需要连续的存储空间
C. 可随机访问
D. 需另外开辟空间来保存元素之间的关系
-
[填空题]软件工程研究的内容主要包括______技术和软件工程管理。
-
[填空题]有如下类声明:
class MyClass
int i;
private:int j;
protected:int k;
public:int m,n;
;
其中,私有成员的数量为______。
-
[单项选择]有如下程序:
#include<iostream>
using namespace std;
class Part
public:
Part(int x=0):val(x) cout<<val;
~Part( )cout<<val;
private:
int val;
;
class Whole
public:
Whole(int x ,int y, int z=0):p2(x),p1(y),val(z)cout<<val;
~Whole( )cout<<val;
private:
Part p1,p2;
int val;
;
int main( )
Whole obj(1,2,3);
return 0;
程序的输出结果是( )。
A. 123321
B. 213312
C. 213
D. 123123
-
[单项选择]有如下函数模板声明:
template<typename T>
T Max(T a,T b)return(a>=b)a:b;
下列对函数模板Max( )的调用中错误的是( )。
A. Max(3.5,4.5)
B. Max(3.5,4)
C. Max<double>(3.5,4.5)
D. Max<double>(3.5,4)