A) 系统可以提供默认的构造函数 B) 构造函数可以有参数,所以可以有返回值 C) 构造函数可以重载 D) 构造函数可以设置默认参数 6. 下面对析构函数的正确描述是( )
A) 系统不能提供默认的析构函数 B) 析构函数必须由用户定义
C) 析构函数没有参数 D) 析构函数可以设置默认参数 7. 对静态成员的不正确描述是( )
A) 静态成员不属于对象,是类的共享成员 B) 静态数据成员要在类外定义和初始化 C) 调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针 D) 非静态成员函数也可以操作静态数据成员
8. 下面选项中,不是类的成员函数为( )
A) 构造函数 B) 析构函数 C)友元函数 D) 缺省参数的构造函数方言 9. 下面对友元的错误描述是( )
A) 关键字friend用于声明友元 B) 一个类的成员函数可以是另一个类的友元
C) 友元函数访问对象的成员不受访问特性影响 D) 友元函数通过this指针访问对象成员
10. 在C++中,类与类之间的继承关系具有( )
A) 自反性 B) 对称性 C) 传递性 D) 反对称性 11. 下列关于类的继承描述中,( )是错误的
A) 派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数 B) 派生类也是基类,但基类不一定具有派生类的全部属性和方法 C) 继承描述类的层次关系,派生类可以具有与基类相同的属性和方法
D) 一个基类可以有多个派生类,一个派生类可以有多个基类
12. 当一个派生类仅有继承一个基类时,基类中的所有公有成员成为派生类的( )
A) public成员 B) private成员 C) protected成员 D) 友元
13. 当一个派生类私有继承一个基类时,基类中的所有仅有成员和保护成员成为派生类的( ) A) public成员 B) private成员 C) protected成员 D) 友元 14. 不论派生类以何种方法继承基类,都不能使用基类的( )
A) public成员 B) private成员 C) protected成员 D) public成员和protected成员
15. 下面描述中,错误的是( )(两个答案)
A) 在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问
B) 在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问 C) 在基类定义的public和protected成员在保护继承的派生类中不可见 D) 在派生类中不可见的成员要变成可访问的,需要进行访问声明
16. 在C++中,不能被派生类继承的函数是( )(两个答案)
A) 成员函数 B) 构造函数 C) 析构函数 D) 静态成员函数 17. 在创建派生类对象时,构造函数的执行顺序是( ) A) 对象成员构造函数、基类构造函数、派生类本身的构造函数 B) 派生类本身的构造函数、基类构造函数、对象成员构造函数 C) 基类构造函数、派生类本身的构造函数、对象成员构造函数 D) 基类构造函数、对象成员构造函数、派生类本身的构造函数 18. 当不同的类具有相同的间接基类时,有特点( )(两个答案) A) 各派生类对象将按继承路线产生自己的基类版本
B) 派生类对象无法产生自己的基类版本
C) 为了建立惟一的间接基类版本,在基类定义前加virtual即可 D) 为了建立惟一的间接基类版本,应该声明虚继承
19. 在C++中,要实现动态联编,必须使用( )调用虚函数
A) 类名 B) 派生类指针 C) 对象名 D) 基类指针 20. 下列函数中,可以作为虚函数的是( )(两个答案)
A) 普通函数 B) 构造函数 C)成员函数 D) 析构函数
21. 在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值( )
A) 不同 B) 相同 C) 相容 D) 部分相同 22. 下面函数原型声明中,( )声明了fun为虚函数
A) void fun()=0; B) virtual void fun()=0; C) virtual void fun(); D) virtual void fun(){}; 23. 若一个类中含有纯虚函数,则该类称为( )
A) 基类 B) 纯基类 C) 派生类 D) 抽象类 24. 假设A为抽象类,下列声明( )是正确的
A) A fun(int); B) A *p; C) int fun(A); D) A Obj; 25. 下面描述中,正确的是( )(两个答案)
A) 虚函数是没有实现的函数 B) 纯虚函数的实现在派生类中 C) 抽象类是没有纯虚函数的类 D) 抽象类指针可以指向不同的派生类 26. 关于函数模板,描述错误的是( )
A) 函数模板必须由程序员实例化为可执行的函数模板 B) 函数模板的实例化由编译器实现
C) 一个类定义中,只要有一个函数模板,则这个类是类模板
D) 类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化 27. 下列的模板说明中,正确提( )(两个答案) A) template
C) template
D) template
{ c=a+b; }
下列选项正确的是( )(两个答案)
A) float x,y; float z; Max(x,y,z); B) int x,y,z; Max(x,y,z); C) int x,y; float z; Max(x,y,z); D) float x; int y, z; Max(x,y,z); 29. 关于类模板,描述错误的是( ) A) 一个普通基类不能派生类模板
B) 类模板从普通类派生,也可以从类模板派生
C) 根据建立对象时的实际数据类型,编译器把类模板实例化为模板类 D) 函数的类模板参数须通过构造函数实例化 30. 建立类模板对象的实例化过程为( ) A) 基类à派生类 B) 构造函数à对象 C) 模板类à对象 D) 模板类à模板函数 31. 在C++中,容器是一种( )
A) 标准类 B) 标准对象 C) 标准函数 D) 标准类模板 32. 下列类中( )(两个答案)不是输入/输出流类iostream的派生类 A) fstream B) ofstream C) strstream D)ostrstream 33. 在下列选项中( )(三个答案)是ostream类的对象
A) cin B) cerr C) clog D) cout 34. read函数的功能是从输入流中读取( )
A) 一个字符 B) 当前字符 C) 一行字符 D) 指定若干个字符 35. 下列选项中,用于清除基数格式位置以十六制输出的语句是( ) A) cout<
36. 下列格式控制符,在iostream.h中定义的是( )(两个答案),在iomanip.h中定义的是( )(两个答案)
A) endl B) setfill C) setw D) oct
37. 下列串流类,在strstream.h中定义的是( )(两个答案),在sstream.h中定义的是( ) A) istringstream B) istrstream C) ostringstream D) ostrstream 38. 包含类fstream定义的头文件是( )
A) fstream.h B) ofstream.h C) ifstream.h D) iostream.h 39. 要求打开文件 d:\\file.dat,可写入数据,正确的语句是( ) A) ifstream infile(“d:\\file.dat”, ios::in); B) ifstream infile(“d:\\\\file.dat”, ios::in); C) ofstream infile(“d:\\file.dat”, ios::out);
D) fstream infile(“d:\\\\file.dat”, ios::in| ios::out);
40. 假定已定义浮点型变量data,以二进制方式把data的值写入输出文件流对象outfile中去,正确的语句是( )
A) outfile.write((float *) &data, sizeof(float)); B) outfile.write((float *) &data, data); C) outfile.write((char *) &data, sizeof(float)); D) outfile.write((char *) &data, data); 参考答案
1-10 CCA(BC)B CCCDC
11-20 AABB(BC) (BC)D(AD)D(CD) 21-30 BBDB(BD) A(AD)(AD)DC 31-40 D(BD)(BCD)DB (ADBC)(BDAC)ADC