1. C++的流库预定义了4个流,它们是cin、cout、clog和__cerr_.
2. 每个对象都是所属类的一个_实例
3. 在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由ip所指向,应使用语
句int *ip=new int[10];
4. 函数模板中紧随template之后尖括号内的类型参数都要冠以保留字__class_.
5. 表达式cout<<end1 还可表示为__’\n’_.
6. 在C++中,访问一个指针所指向的对象的成员所用的指向运算符是->.
7. 假如一个类的名称为MyClass,使用这个类的一个对象初始化该类的另一个对象时,可以调
用复制或拷贝构造函数来完成此功能.
8. 对赋值运算符进行重载时,应声明为类成员函数.
9. 如果要把A类成员函数f〔〕且返回值为void声明为类B的友元函数,则应在类B的定义中加
入的语句___.
答案:friend void A::f<>;
[解析]成员函数作为另一个类的友元函数,格式为:friend 返回类型类名::函数<形参>.
10. 控制格式输入输出的操作中,函数___是用来设置填充字符.要求给出函数名和参数类型
答案:setfill<char>
[解析]格式控制方法的使用,如setw,setfill等等.
11. C++语言支持的两种多态性分别是编译时的多态性和___的多态性.
答案:运行时
[解析]多态性包括静态的〔编译时〕多态性和动态的〔运行时〕多态性.
12.
13. 定义类动态对象数组时,元素只能靠自动调用该类的___来进行初始化.
答案:无参构造函数
[解析]使用new 创建动态对象数组,不能有参数,所以只能调用无参的构造函数,初始化对象
15. 一个抽象类的派生类可以实例化的必要条件是实现了所有的___.
答案:纯虚函数的定义
[解析]抽象类只因有纯虚函数,所以不能被实例化,所以派生类要实例化必须对纯虚函数进行
定义.
17. 在用C++进行程序设计时,最好用___代替malloc.
答案:new
[解析]new与delete是C++语言特有的运算符,用于动态分配和释放内存.new用于为各种数据
类型分配内存,并把分配到的内存首地址赋给相应的指针.new的功能类似于malloc〔〕函数.
使用new的格式为:
<指针变量>new<数据类型>;
其中,<数据类型>可以是基本数据类型,也可以是由基本类型派生出来的类型;<指针变量>取得
分配到的内存首地址.new有3种使用形式.
〔1〕给单个对象申请分配内存
int *ip;ip=new int;//ip指向1个未初始化的int型对象
〔2〕给单个对象申请分配内存的同时初始化该对象
int *ip;ip=new int<68>;//ip指向1个表示为68的int型对象
〔3〕同时给多个对象申请分配内存
int *ip;ip=new int[5];//ip指向5个未初始化的int型对象的首地址
for<int i=0;i<5;i++>ip[i]=5*i+1;//给ip指向的5个对象赋值
用new申请分配内存时,不一定能申请成功.若申请失败,则返回NULL,即空指针.因此,在程
序中可以通过判断new的返回值是否为0来获知系统中是否有足够的空间供用户使用.
20. 基类的公有成员在派生类中的访问权限由___决定.
答案:访问控制方式或继承方式
21. 不同对象可以调用相同名称的函数,但执行完全不同行为的现象称为___.
答案:多态性
[解析]多态性的概念.虚函数是实现多态的基础,运行过程中的多态需要同时满足3个条件
:<1>类之间应满足子类型关系.<2>必须要有声明的虚函数.<3>调用虚函数操作的是指向对象
的指针或者对象引用;或者是由成员函数调用虚函数〔如果是在构造函数或析构函数中调用虚函
数,则采用静态联编〕.
22. this指针始终指向调用成员函数的___.
答案:数组定义时初始化对象
this指针是隐藏的指针,它指向调用函数的对象.
23. 类模板用来表达具有___的模板类对象集.
答案:相同处理方法
[解析]模板特点是不同的数据具有相同的处理方法的抽象.
24. C++程序的源文件扩展名为___.
答案:cpp
[解析]源程序*.cpp,目标文件为*.obj,可执行程序*.exe.
25. 在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是___的头文件.
答案:自定义
[解析]#include装入文件有两种方式<>和"〞,一是系统的,一是自定义文件.
26. 语句序列
ifstream infile;
infile.open<"data.dat〞>;
的功能可用一个语句实现,这个语句是___.
答案:ifstream infile<"data.dat〞>;
[解析]void ifstream::open<const char *fname,int mode=ios::in,int
access=filebuf::openprot>;
ifstream::ifstream<const char *fname,int mode=ios::in,int access=filebuf::openprot>;
其中,第一个参数是用来传递文件名的;第二个参数mode的值决定文件将如何被打开;第三个参
数access的值决定文件的访问方式,一般取缺省值filebuf::openprot,表示是普通文件.
mode的取值如下:<1>ios::in:打开一个文件进行读操作,而且该文件必须已经存在
;<2>ios::nocreate:不建立新的文件.当文件不存在时,导致open<>失败
;<3>ios::noreplace:不修改原来已经存在的文件.若文件已经存在,导致open<>失败
;<4>ios::binary:文件以二进制方式打开,缺省时为文本文件.
27. 如果要把类B的成员函数void fun<>说明为类A的友元函数,则应在类A中加入语句___.
答案:friend void B::fun<>;
[解析]声明成员函数作为另外一个类的友元函数时,使用类作用域运算符::.
28. 单目运算符作为类成员函数重载时,形参个数为___个.
答案:0
[解析]单目运算符使用成员函数重载可以不用形参,双目运算符使用一个参数.
29. 执行下列程序
double a=3.1415926,b=3.14;
cout<<setprecision<5><<a<<", "<<setprecision<5><<b<<endl;
程序的输出结果是___.
答案:3.1416,3.14
[解析]题目设置精度即有效数字都是5,a四舍五入是3.1416,b是3.14.
30. 重载的运算符保持其原有的___、优先级和结合性不变.
答案:操作数
[解析]运算符重载时要遵循以下规则:
<1>除了类属关系运算符".〞、成员指针运算符".*〞、作用域运算符"::〞、sizeof运算符
和三目运算符"?:〞以外,C++中的所有运算符都可以重载.
<2>重载运算符限制在C++语言中已有的运算符X围内的允许重载的运算符之中,不能创建新的
运算符.
<3>重载之后的运算符不能改变运算符的优先级和结合性,也不能改变运算符操作数的个数与
语法结构.
31. 编译时的多态性通过___函数实现.
答案:重载
[解析]编译多态性,实现的方法主要通过函数的重载或运算符的重载.
32. 假设类X的对象x是类Y的成员对象,则"Y Obj〞语句执行时,先调用类___的构造函数.
答案:X
[解析]派生类中的构造函数的执行顺序,先基类后派生类.
33. 下列程序段的输出结果是___.
cout.setf<ios::showpos>;
cout<<509.3<<endl;
答案:+509.3
[解析]输入、输出格式ios::showpos用于输出数据的符号位.
34. C++中ostream的直接基类___.
答案:ios
[解析]istream和ostream的直接基类是ios.
35. C++中有两种继承:单继承和___.
答案:多重继承
[解析]单继承和多重继承,多重继承即有多个基类.
36. 若函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的___语句.
答案:声明
[解析]函数使用有两部分:声明和定义.定义在前,可以无声明;但函数定义在后,调用在前
的话,需要先声明函数的原型.
37. 将指向对象的引用作为函数的形参,形参是对象的引用,实参是 ___.
答案:对象名
[解析]实参与形参类型要一致,形参是对象的引用,实参应该是对象名.
38. 控制格式输入输出的操作中,函数___是设置域宽的.要求给出函数名和参数类型〕.
答案: setw<int>
[解析]setw<int n>:用来设置n输出宽度.
39. 派生类的成员一般分为两部分,一部分是___,另一部分是自己定义的新成员.
答案:从基类继承的成员
[解析]派生类成员一个来自继承基类成员,一个来自本身增加的成员.
40. 执行下列代码
int i=230;
cout <<"i="<<hex <<i<<endl;
程序的输出结果为___.
答案: i=e6
[解析]流类库中使用格式符,输出十六进制数据.
41. 使用new为int数组动态分配10个存储空间是___.
答案: new int[10];
[解析]new delete动态开辟空间和删除空间.new int[10],注意不要写成new
int〔10〕,使用小括号只能开辟一个空间,使用10来初始化该值.
42. 面向对象的四个基本特性是多态性、继承性、和封装性___.
答案:抽象
[解析]考察面向对象的四个特征.程序由一组抽象的对象组成,一组对象的共同特征抽象出类
的概念,类是对象的抽象,对象是类的实例.封装即将数据和操作紧密结合提供访问的接口,外
部通过接口实现访问数据,提供安全性.继承继承解决了类的扩展性.多态性不同对象调用相同
的函数名,但调用不同的函数,实现不同的功能,解决了接口统一的问题.
43. 定义虚函数所用的关键字是___.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论