《算法设计与分析( 一)》在线平时作业2-00001
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 100 分)
1.下列关于基类和派生类的叙述中,正确的是( )。
A.派生类不能访问基类的保护成员
B.作为虚基类的类不能被实例化
C.派生类应当向基类的构造函数传递参数
D.虚函数必须在派生类中重新实现
2.在对函数进行原型声明时,下列语法成分中,不需要的是( )。
A.函数返回类型
B.函数参数列表
C.函数名
D.函数体
3.若PAT是一个类,则程序运行时,语句“PAT(*ad)[3];”调用PAT的构造函数的次数是( ).
A.0
B.1
C.2
D.3
4.对于一个类定义,下列叙述中错误的是( )
A.如果没有定义拷贝构造函数,编译器会生成一个拷贝构造函数
B.如果没有定义默认的构造函数,编译器将一定生成一个默认的构造函数
C.如果没有定义构造函数,编译器将生成一个默认的构造函数和一个拷贝构造函数
D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何一个构造函数
5.友元的作用是( )
A.提高程序的运行效率
B.加强类的封装性
C.实现数据的隐藏性
D.增加成员函数的种类
6.贪婪算法通常以( )的方式进行求解子问题的。
A.自顶向上
B.从中间二分
C.自顶向下
D.无序
7.下列函数原型声明中,错误的是( )。
A.int function(int m, int n);
B.int function(int ,int );
C.int function(int m=3, int n);
D.int function(int &m, int n);
8.下面不是分支定界法搜索方式的是( )。
A.广度优先
B.最小耗费优先
C.最大效益优先
D.深度优先
9.假定A是一个类,那么执行语句“A a,b(3),*p;”调用了( )次构造函数。
A.2
B.3
C.4
D.5
10.定义派生类时,若不使用关键字显示地规定采用何种继承方式,则默认方式为( )。
A.私有
B.非私有
C.保护
D.公有
11.考虑函数原型void test(int a,int b=7,char z=‘*’),下面的函数调用中,属于不合法调用的是( )。
A.test(5);
B.test(5,8);
C.test(6,’#’)
D.test(0,0,’*’);
12.当派生类继承一个基类时,默认的继承方式为( )。
A.不确定
B.private
C.protected
D.public
13.下列重载函数的描述中,( )是错误的。
A.重载函数中不允许使用默认参数
B.重载函数中编译是根据参数表进行选择的
C.不要使用重载函数来描述毫不相干的函数
D.构造函数重载将会给初始化带来多种方式
14.以下对基类和派生类关系的描述错误的是( )。
A.派生类是基类的具体化
B.派生类是基类的子集
C.派生类是基类定义的延续
D.派生类是基类的组合
15.贪婪算法通常以( )的方式进行求解子问题的。
A.自顶向上
B.从中间二分
C.自顶向下
D.无序
16.下列关于C++函数的说明中,正确的是( ) 。
A.内联函数就是定义在另一个函数体内部的函数
B.函数体的最后一条语句必须是return语句
C.C++要求在调用一个函数之前,必须先声明其类型
D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式
17.C++程序中的语句是以( )符号结束。
A.;
B.,
C..
D.?
18.下面对继承关系描述中,正确的是( )。
A.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的
B.在公有继承中,基类中私有成员对派生类的对象是不可见的
C.在私有继承中,基类只有公有成员对派生类对象是可见的
D.在私有继承中,基类中的保护成员对派生类的对象是可见的
19.下列关于函数的描述中,错误的是( ).
A.函数可以没有返回值
B.函数可以没有参数
C.函数可以是一个类的成员
D.函数不能被定义成模板
20.下列选项中属于面向对象设计方法主要特征的是( )。
A.继承
B.自顶向下
C.模块化
D.逐步求精