C++程序设计真题.docx
- 文档编号:15928432
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:18
- 大小:21.61KB
C++程序设计真题.docx
《C++程序设计真题.docx》由会员分享,可在线阅读,更多相关《C++程序设计真题.docx(18页珍藏版)》请在冰点文库上搜索。
C++程序设计真题
C++程序设计真题2016年10月
(总分:
100.00,做题时间:
90分钟)
一、第Ⅰ部分选择题
单项选择题(总题数:
20,分数:
20.00)
1.一个函数的功能不太复杂,但要求被频繁调用,选用最适合的是______
(分数:
1.00)
A.内联函数 √
B.重载函数
C.递归函数
D.嵌套函数
解析:
2.假定有类AB,有相应的构造函数定义,能正确执行"ABa(4),b(5),c[3],*p[2]={&a,&b};"语句,请问执行完此语句后共调用该类析构函数的次数为______
(分数:
1.00)
A.14
B.5 √
C.3
D.1
解析:
3.在下面有关析构函数特征的描述中,正确的是______
(分数:
1.00)
A.一个类中可以定义多个析构函数
B.析构函数名与类名完全相同
C.析构函数不能指定返回类型 √
D.析构函数可以有一个或多个参数
解析:
[解析]在定义析构函数时,不能指定任何返回类型,即使指定void返回类型也不行。
析构函数也不能指定参数,但是可以显式地说明参数为void,即形如A:
:
~A(void)。
4.派生类的对象对它的哪一类基类成员是可以访问的______
(分数:
1.00)
A.公有继承的基类的公有成员 √
B.公有继承的基类的保护成员
C.公有继承的基类的私有成员
D.保护继承的基类的公有成员
解析:
5.如果A是抽象类,则下面正确的是______
(分数:
1.00)
A.A中没有纯虚函数
B.Aa;
C.Aa[3];
D.A*pa; √
解析:
6.下列关于纯虚函数与抽象类的描述中,错误的是______
(分数:
1.00)
A.纯虚函数是一种特殊的函数,它允许没有具体的实现
B.抽象类是指具有纯虚函数的类
C.一个基类的说明中有纯虚函数,该基类的派生类一定不再是抽象类 √
D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出
解析:
7.cout是C++的______
(分数:
1.00)
A.关键字
B.对象 √
C..类
D.运算符
解析:
8.下列哪个函数不是类的成员函数______
(分数:
1.00)
A.构造函数
B.析构函数
C.友元函数 √
D.拷贝构造函数
解析:
[解析]友元函数不是所在类的成员函数,而是该类的外部函数。
9.下列有关重载函数的说法中错误的是______
(分数:
1.00)
A.重载函数必须具有不同的返回值类型 √
B.重载函数名必须相同
C.重载函数参数个数可以不同
D.重载函数必须有不同的形参列表
解析:
10.下面说法正确的是______
(分数:
1.00)
A.生成对象时调用析构函数
B.定义类时必须写出该类的构造函数
C.调用构造函数时必须在主函数中明确写出调用格式
D.析构函数不可以重载 √
解析:
[解析]从函数重载角度分析,一个类只能定义一个析构函数且不能指明参数,以便编译系统自动调用。
11.在编译指令中,宏定义使用指令______
(分数:
1.00)
A.#define √
B.#include
C.#typedef
D.#friend
解析:
[解析]#define指令用以进行宏定义,其一般形式为:
#define宏名替换正文。
其中,“宏名”必须是一个有效的C++标识符,“替换正文”可以为任意字符组成的字符序列。
12.假设声明了以下的函数模板,错误的调用语句是______
template<classT>
Tmax(Tx,Ty){return(x>y)?
x:
y;}
并定义了inti;charc;
(分数:
1.00)
A.max(i,i)
B.max(c,c)
C.max((int)c,i)
D.max(i,c) √
解析:
[解析]D项错误是因为max(i,c)中两参数的类型不一致。
13.若有说明:
intn=2,*p=&n,*q=p;,则以下非法的赋值语句是______
(分数:
1.00)
A.n=*q
B.p=n √
C.p=q
D.*q=*p
解析:
14.进行文件操作时需要包含头文件______
(分数:
1.00)
A.iostream
B.fstream √
C.stdio
D.stdlib
解析:
[解析]要打开一个输入文件流,需要定义一个ifstream类型的对象;要打开一个输出文件流,需要定义一个ofstream类型的对象;如果要打开输入输出文件流,则要定义一个fstream类型的对象。
这3种类型都定义在头文件<fstream>里。
15.类模板template<classT>classX{...};,其中友元函数f对特定类型T(如int),使函数f(X<int>&)成为X<int>模板类的友元,则其说明应为______
(分数:
1.00)
A.friendvoidf();
B.friendvoidf(X<T>&); √
C.friendvoidA:
:
f();
D.friendvoidC(T);
解析:
16.动态编联所支持的多态性称为运行时的多态性,支持的函数是______
(分数:
1.00)
A.构造函数
B.友元函数
C.继承
D.虚函数 √
解析:
[解析]关键字virtual指示C++编译器对调用虚函数进行动态联编。
这种多态性是程序运行到需要的语句处才动态确定的,所以称为运行时的多态性。
17.用运算符delete删除一个动态对象时______
(分数:
1.00)
A.首先为该动态对象调用构造函数,再释放其占用的内存
B.首先释放该动态对象占用的内存,再为其调用构造函数
C.首先为该动态对象调用析构函数,再释放其占用的内存 √
D.首先释放该动态对象占用的内存,再为其调用析构函数
解析:
[解析]运算符delete与析构函数一起工作。
当使用运算符delete删除一个动态对象时,它首先为这个动态对象调用析构函数,然后再释放这个动态对象占用的内存,这和使用new建立动态对象的过程正好相反。
18.下列字符常量的写法中,错误的是______
(分数:
1.00)
A."/t"
B."b" √
C."*"
D."a"
解析:
19.C++类体系中,不能被派生类继承的有______
(分数:
1.00)
A.静态数据成员
B.构造函数 √
C.虚函数
D.静态成员函数
解析:
[解析]构造函数(包括析构函数)是不被派生类继承的,所以一个派生类只能调用它的直接基类的构造函数。
当定义派生类的一个对象时,首先调用基类的构造函数,对基类成员进行初始化,然后执行派生类的构造函数,如果某个基类仍是一个派生类,则这个过程递归进行。
当该对象消失时,析构函数的执行顺序和执行构造函数时的顺序正好相反。
20.下列对派生类的描述中,错误的是______
(分数:
1.00)
A.派生类至少应有一个基类
B.派生类的成员除了自己定义的成员外,还包含了它的基类成员
C.基类中成员访问权限继承到派生类中都保持不变 √
D.一个派生类可以作为另一个派生类的基类
解析:
二、第Ⅱ部分非选择题
填空题(总题数:
20,分数:
20.00)
21.C++注释方式“//”的有效范围从“//”至1结束。
(分数:
1.00)
解析:
本行
22.C++程序有且只能有一个名为1的主函数。
(分数:
1.00)
解析:
main
23.语句“1;”用来向屏幕输出显示信息“Hello!
”。
(分数:
1.00)
解析:
cout<<"Hello!
"
24.所谓“1”就是将一个新标识符和一块已经存在的存储区域相关联。
(分数:
1.00)
解析:
引用
25.动态分配内存使用关键字1,释放内存使用关键字delete。
(分数:
1.00)
解析:
new
26.表达式“20/3*sqrt(4.0)/5”值的数据类型是1。
(分数:
1.00)
解析:
double
27.面向对象的程序设计方法是以1代表求解问题的中心环节。
(分数:
1.00)
解析:
对象
28.对象的1只能由这个对象的操作来存取。
(分数:
1.00)
解析:
属性
29.使用关键字inline说明的函数称为1函数。
(分数:
1.00)
解析:
内联
30.类对象一般都包括数据成员和1。
(分数:
1.00)
解析:
成员函数
31.将对象作为函数参数,是将实参对象的值传递给1。
(分数:
1.00)
解析:
形参对象
32.C++函数的返回值类型可以是除1和函数以外的任何类型。
(分数:
1.00)
解析:
数组
33.函数重载可使一个函数名具有多种功能,称这种特性为1。
(分数:
1.00)
解析:
多态性
34.1是类的实例。
(分数:
1.00)
解析:
对象
35.关键字private、public和1以后的成员分别叫做私有成员、公有成员和保护成员。
(分数:
1.00)
解析:
protected
36.使用关键字const修饰的数据成员称为1数据成员。
(分数:
1.00)
解析:
常
37.对MyFirst类定义析构函数是1。
(分数:
1.00)
解析:
~MyFirst(){}
38.insert(iteratorit,constT&)是向it所指向量位置前1一个对象。
(分数:
1.00)
解析:
插入
39.说明纯虚函数的一般形式为“class类名{1函数类型函数名(参数列表)=0;};”。
(分数:
1.00)
解析:
virtual
40.运算符重载需要使用关键字“1”。
(分数:
1.00)
解析:
operator
三、改错题(总题数:
5,分数:
20.00)
41.#include<iostream>
usingnamespacestd;
template<T>
Tmax(Tx,Ty)
{
if(x>=y)returnx;
elsereturny;
}
voidmain1
{
cout< cout< } (分数: 4.00) 解析: T改为typenameT或classT 42.#include<iostream> usingnamespacestd; classTest{ public: staticintx; }; intx=70; voidmain1 { cout : x; } (分数: 4.00) 解析: intx=70;改为intTest: : x=70 43.#include<iostream.h> voidswap(int&a,int&b) { a=a+b; b=a-b; a=a-b; } voidmain1 { inta=5,b=3; cout<<"a="< swap(&a,&b);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)