综合测试-计科9班

姓名
    ____________
学号
    ____________
班级
    ____________
一、选择题,每题5分,共70分
1. 下列说法中正确的是( )
A. 类定义中只能说明函数成员的函数头,不能定义函数体
B. 类中的函数成员可以在类体中定义,也可以在类体之外定义
C. 类中的函数成员在类体之外定义时必须要与类声明在同一文件中
D. 在类体之外定义的函数成员不能操作该类的私有数据成员
2.  在下面的类定义中,错误的语句是(  )  。

class B{  

public:    B(int f){}           //①    

               ~B( ){};           //②  

private:   int a=4;        //③ 

 public:   B( ){}            //④}; 

A. ①
B. ②
C. ③
D. ④
3. 静态成员函数没有(   )。 
A. 返回值
B. this 指针
C. 指针参数
D. 返回类型
4. 下面叙述不正确的是(  )。 
A. 为了充分利用现有类派生类一般使用公有派生
B. 对基类成员的访问必须是无二义性的
C. 赋值兼容规则也适用于多重继承的场合
D. 基类的公有成员在派生类中仍然是公有的
5. 若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的(    )。 
A. 私有成员
B. 保护成员
C. 公有成员
D. 保护成员或私有成员
6. 继承具有(   ),即当基类本身也是某一个类的派生类时,底层的派生类会自动继承间接基类的成员。 
A. 规律性
B. 传递性
C. 重复性
D. 多样性
7. 下列关于纯虚函数和抽象类的描述,( )是错误的。 
A. 纯虚函数是一种特殊的虚函数,它没有具体的定义
B. 抽象类是指具有纯虚函数的类
C. 若一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类
D. 抽象类只能作为基类使用,其纯虚函数的定义由派生类给出
8. 下列输出字符方式,错误的是( ) 。
A. coutput(A);
B. coutA:
C. cout.put(A):
D. char C=A:coutC;
9. 以下程序执行的结果是( )

cout.fill('#');

cout.width(10);

cout<<setiosflags(ios::left)<<123.456; 

A. 123.456####
B. 123,4560000
C. ####123.456
D. 123.456
10. 使用ifstream定义一个文件流,并将一个打开的文件与之连接,文件默认的打开方式为( ) 
A. ios::in
B. ios::out
C. ios::trunc
D. ios::binary
11.C++流类库中不包括下列哪种操作?(  ) 
A. 文件I/O
B. 标准I/O
C. 系统函数scanf/printf
D. 字符串I/O
12.下列关于流类库的描述中,错误的是(   )。 
A. 流类库是一个以类ios为基类的类族
B. 流类库的作用主要是为C++语言提供输入/输出功能
C. 流类库是C++语言的附属组成部分
D. 流类库中总共定义了3个类
13. 下列哪种方法不能实现换行显示?(  ) 
A. cout  ‘\n’;
B. coutendl;
C. cout  “\n”
D. cout  ‘n’;
14.下列关于异常的描述中,错误的是(    )。 
A. 每个catch子句通常只负责捕捉并处理一种类型的异常
B. 异常表达式结果的值被用于描述异常的详细信息
C. 异常表达式结果的数据类型被用于区分不同类型的异常
D. catch( ... )形式的子句捕捉不到任何一种类型的异常
二、判断题,每题2分,共10分
15. delete会调用每一个成员的析构函数,而delete[] 只会调用一次析构函数。
A. 正确
B. 错误
16. 类的static成员:类的全局变量,被类的所有对象共享,包括派生类的对象,能在构造函数内初始化,也可以用const修饰static数据成员在类内初始化 (2.00分)
A. 正确
B. 错误
17. 构造函数的名字与类名相同,可以重载,可以写成虚函数。 
A. 正确
B. 错误
18. 在派生类中不能直接访问基类的私有成员,否则破坏了基类的封装性。 
A. 正确
B. 错误
19. C++提供的单继承机制允许一个派生类继承多个基类。  
A. 正确
B. 错误
三、填空题,共20分
20.有如下程序,请问其输出是____,____,____。(每空2分)

class Base { //基类

public: Base() { cout << "1"<<"," ; } 

 ~Base() { }

};

class Derived : public Base { //派生类

public: Derived() { Base(); cout << "3"; } ~Derived() { }

};

int main()

{ Derived od; return 0;} 

第一个结果    ____________
第二个结果    ____________
第三个结果    ____________
21.请从下面选择(每空2分)
  •  当私有派生时,基类的公有成员成为派生类的
    1
  • 保护成员成为派生类的
    2
  • 私有成员成为派生类的
    3
  • A.A.私有成员
  • B.B.公有成员
  • C.C.保护成员
  • D.D.不可访问成员
22.下面的类定义中有一处错误,给出修改意见。(每空4分

#include <iostream>

using namespace std;

class Base{

public:virtual void fun()=0;

} ;

class Test:public Base{

public:virtual void fun(){cout<<"Test.fun="<<endl;}

} ;

void main(){

Base a;

Test *p;

p=&a;

}

    

错误代码:    ____________
改正后:    ____________

28题 | 被引用0次

使用此模板创建