C++程序设计自考题3.docx
- 文档编号:2207135
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:21
- 大小:22.99KB
C++程序设计自考题3.docx
《C++程序设计自考题3.docx》由会员分享,可在线阅读,更多相关《C++程序设计自考题3.docx(21页珍藏版)》请在冰豆网上搜索。
C++程序设计自考题3
C++程序设计自考题-3
(总分:
100.00,做题时间:
90分钟)
一、单项选择题(总题数:
20,分数:
20.00)
1.用于包含C++标准库iostream的预处理指令是()
A.#define<iostream>B.#include<iostream>
C.#define'iostream'D.#include'iostream'
(分数:
1.00)
A.
B. √
C.
D.
解析:
[解析]主要考查的知识点为预处理指令。
[要点透析]在C++程序语句中预处理语句都以位于行首的符号“#”开始。
预处理语句有3种,分别是宏定义、文件包含和条件编译,其中文件包括语句书写时,可以使用引号也可以使用尖括号。
2.设有定义inti;doublej=5;,则10+i+j值的数据类型是()
A.intB.double
C.floatD.不确定
(分数:
1.00)
A.
B. √
C.
D.
解析:
[解析]本题主要考查的知识点为算术表达式的运算类型。
[要点透析]对于算术表达式,当参加运算的两个运算分量中至少有一个是双精度型时,则运算结果为双精度型。
j是double类型,故运算结果是double类型。
3.对classBase,如使用Base*pt=newBase[2];创建对象数组,则删除此数组使用的语句是()
A.deletept[2];B.deletept[];
C.delete[]pt;D.delete[2]pt;
(分数:
1.00)
A.
B.
C. √
D.
解析:
[解析]主要考查的知识点为使用delete释放动态内存空间。
[要点透析]使用delete对动态分配的数组进行释放的语法格式为:
delete[]指针。
4.函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为()
A.1B.2
C.4D.5
(分数:
1.00)
A.
B. √
C.
D.
解析:
[解析]本题主要考查的知识点为表达式的值作为函数参数。
[要点透析](exp1,exp2)、(exp3,exp4,exp5)表示是两个逗号表达式,相当于两个参数,因此实参的个数是2。
5.下列选项中属于C++语句的是()
A.;B.a=17
C.i+5D.cout<<'/n'
(分数:
1.00)
A. √
B.
C.
D.
解析:
[解析]本题主要考查的知识点为C++语句。
[要点透析]C++中,语句以";"结束,A项为空语句,本题选A。
6.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是()
A.友元函数B.虚函数
C.构造函数D.析构函数
(分数:
1.00)
A.
B.
C. √
D.
解析:
[解析]本题主要考查的知识点为类的构造函数的作用。
[要点透析]定义构造函数作用就是初始化对象,而析构函数的作用是释放对象空间。
虚函数用于完成多态性,友元增加访问方便性。
7.C++中是否允许在类结构中定义函数()
A.不允许B.允许
C.仅允许定义构造函数D.只不允许定义构造函数
(分数:
1.00)
A.
B. √
C.
D.
解析:
8.假定AB为一个类,则执行"ABa
(2),b[3],*p[4];"语句时调用该类构造函数的次数为()
A.3B.4
C.5D.9
(分数:
1.00)
A.
B. √
C.
D.
解析:
[解析]本题主要考查的知识点为类对象的创建和构造函数的调用。
[要点透析]a
(2)调用1次带参数的构造函数,b[3]调用3次无参数的构造函数,指针没有给它分配空间,没有调用构造函数,所以共调用构造函数的次数为4。
9.假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行"delete[]px;"语句时调用该类析构函数的次数为()
A.0B.1
C.nD.n+1
(分数:
1.00)
A.
B.
C. √
D.
解析:
[解析]本题主要考查的知识点为析构函数和运算符delete。
[要点透析]当使用运算符delete删除一个动态对象时,它首先为这个动态对象调用析构函数,然后再释放这个动态对象占用的内存。
该类使用new动态创建了n对象,必须使用delete释放产生的对象,每个对象都要释放内存空间,所以调用n次。
10.假定一个类的构造函数为“A(inti,intj)x=i;y=i*j;",则执行“Aa(4,5);"语句后,a.x和a.y的值分别为()
A.4和5B.5和4
C.4和20D.20和5
(分数:
1.00)
A.
B.
C. √
D.
解析:
11.已知f和g是同一类中的两个成员函数,若f的实现代码体内不能调用g,则可能的情况是()
A.f和g都是常成员函数B.f是常成员函数,g不是
C.f不是常成员函数,g是常成员函数D.g和f都不是常成员函数
(分数:
1.00)
A.
B. √
C.
D.
解析:
12.静态成员函数没有()
A.返回值B.this指针
C.指针参数D.返回类型
(分数:
1.00)
A.
B. √
C.
D.
解析:
[解析]本题主要考查的知识点为静态成员函数。
[要点透析]静态成员函数没有this指针,静态成员函数只能通过对象名(或指向对象的指针)访问该对象的非静态成员,故本题选B。
13.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为()
A.constchar*p=“ABCD”;B.char*constp=“ABCD”;
C.charconst*p=“ABCD”;D.constchar*constp=“ABCD”;
(分数:
1.00)
A.
B.
C.
D. √
解析:
[解析]本题主要考查的知识点为const对象。
[要点透析]constchar*p说明禁止通过p修改所指向的数据。
char*consp则说明不能修改指针p的地址。
因此constchar*constp="ABCD";表示既禁止修改指针p本身,又禁止修改p所指向的数据。
14.类A中存在静态数据成员x,设a和b是类A的两个对象,在执行a.x=10之后,b.x的值为()
A.未初始化B.等于a.x
C.等于0D.随机
(分数:
1.00)
A.
B. √
C.
D.
解析:
[解析]主要考查的知识点为静态数据成员。
[要点透析]静态数据成员被类的所有对象所共享,它不属于任何一个对象,其作用域是类范围。
15.当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中()
A.都是虚函数B.可能是虚函数
C.只有被重新说明为virtual时才是虚函数D.都不是虚函数
(分数:
1.00)
A. √
B.
C.
D.
解析:
[解析]本题主要考查的知识点为虚函数。
[要点透析]在基类声明为virtual的函数为虚函数,在派生类中只要有相同的函数(函数名相同、返回值相同、形参类型和个数相同),即使不用virtual说明,也都是虚函数。
16.如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为()
A.a.operator++
(1)B.operator++(a)
C.operator++(a,1)D.a.operator++()
(分数:
1.00)
A.
B.
C.
D. √
解析:
17.对于友元描述正确的是()
A.友元是本类的成员函数B.友元不是本类的成员函数
C.友元不是函数D.友元不能访问本类的私有成员
(分数:
1.00)
A.
B. √
C.
D.
解析:
[解析]主要考查的知识点为友元。
[要点透析]友元不是该类的成员,只是提供了访问该类的一种捷径或方法,A项错误;友元可以是函数,也可以是类,C项错误;友元可以访问该类的所有成员,D项错误。
18.在main函数中可以用p.a的形式访问派生类对象p的基类成员a,其中a是()
A.私有继承的公有成员B.公有继承的私有成员
C.公有继承的保护成员D.公有继承的公有成员
(分数:
1.00)
A.
B.
C.
D. √
解析:
[解析]本题主要考查的知识点为派生类中基类成员的访问权限。
[要点透析]公有成员可以在类外访问,保护成员可以在派生类中访问,但不能在类外访问,在main函数中访问,说明a是公有成员。
只有公有继承时a才能是公有的,所以D项正确。
19.对类A,复制构造函数的原型是()
A.A:
:
A(constA&);B.A:
:
A(constA*);
C.A:
:
A(constA);D.A:
:
A();
(分数:
1.00)
A. √
B.
C.
D.
解析:
[解析]主要考查的知识点为复制构造函数。
[要点透析]对类A而言,复制构造函数的原型为A:
:
A(A&),为了不改变原有对象,更普通的形式是使用const限定,即A:
:
A(constA&)。
20.声明友元使用的关键字为()
A.constB.static
C.classD.friend
(分数:
1.00)
A.
B.
C.
D. √
解析:
二、填空题(总题数:
20,分数:
20.00)
21.假设inta=1,b=2;,则表达式(++a/b)*b--的值为1。
(分数:
1.00)
填空项1:
__________________ (正确答案:
2)
解析:
22.每个对象都是所属类的一个1。
(分数:
1.00)
填空项1:
__________________ (正确答案:
实例)
解析:
23.执行下列程序
doublea=3.1415926,b=3.14;
cout<<setprecision(5)<<a<<","<<setpreeision(5)<<b<<endl;
程序的输出结果是______。
(分数:
1.00)
填空项1:
__________________ (正确答案:
3.1416,3.14)
解析:
24.在程序中执行int*a=newint之后,若a为空指针,则表明1。
(分数:
1.00)
填空项1:
__________________ (正确答案:
内存分配失败)
解析:
25.若要使用string类,需要引入的头文件是1。
(分数:
1.00)
填空项1:
__________________ (正确答案:
string.h)
解析:
26.在C++中,编译指令都是以1(符号)开始。
(分数:
1.00)
填空项1:
__________________ (正确答案:
#)
解析:
27.假定用户为类A定义了一个构造函数"A(inti=0):
x(i)",则与该语句等价的定义构造函数的格式为1。
(分数:
1.00)
填空项1:
__________________ (正确答案:
A(inti=0){x=i;})
解析:
28.为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常为该类定义1。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 考题
![提示](https://static.bdocx.com/images/bang_tan.gif)