自考04737C++程序设计试题及答案含评分标准.docx
《自考04737C++程序设计试题及答案含评分标准.docx》由会员分享,可在线阅读,更多相关《自考04737C++程序设计试题及答案含评分标准.docx(12页珍藏版)》请在冰豆网上搜索。
自考04737C++程序设计试题及答案含评分标准
2018年10月高等教育自学考试全国统一命题考试
C++程序设计试卷
(课程代码04737)
本试卷共l0页,满分l00分,考试时间l50分钟。
考生答题注意事项:
1.本卷所有试题必须在答题卡上作答。
答在试卷上无效,试卷空白处和背面均可作草稿纸。
2.第一部分为选择题。
必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。
3.第二部分为非选择题。
必须注明大、小题号,使用0.5毫米黑色字迹签字笔作答。
4.合理安排答题空间,超出答题区域无效。
第一部分选择题
一、单项选择题:
本大题共20小题,每小题l分,共20分。
在每小题列出的备选项审只有
一项是最符合题目要求的,请将其选出。
2.设X和y均为bool量,则x&&y曲为真的条件是
A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假
3.拷贝构造函数应该是
A.不带参数的构造函数B.带有一个参数的构造函数
C.带有两个参数的构造函数D.缺省构造函数
4.以下说法中正确的是
A.C++程序总是从第一个定义的函数开始执行
B.C++程序总是从main函数开始执行
C.C++中函数必须有返回值
D.C++中函数名必须唯一
5.下列虚基类的声明中,正确的是
A.classvirtualB:
publicAB.classB:
virtualpublicA
C.classB:
publicAvirtualD.virtualclassB:
publicA
6.下列哪个类型函数不适合声明为内联函数
A.函数体语句较多B.函数体语句较少
C.函数执行时间较短D.函数被频繁调用
7.以下类模板定义正确的为
A.templateB.template
C.templateD.template
8.C++中要实现动态联编,调用虚函数时必须使用
A.基类指针B.类名C.派生类指针D.对象名
9.下列对静态成员的描述中,不正确的是·
A.静态成员不属于对象,是类的共享成员
B.静态数据成员要在类外定义和初始化
C.调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针
D.非静态成员函数也可以操作静态数据成员
10.下列对派生类的描述中,错误的是
A.一个派生类可以作为另一个派生类的基类
B.派生类至少有一个基类
C.派生类的成员除了它自己的成员外,还包含了它的基类的成员
D.派生类中继承的基类成员的访问权限到派生类保持不变
11.下列函数原型声明语句中,错误的是
A.intf(void);B.voidf(hat);C.intf(a);D.voidf(doublea);
12.如果有洒t型变量a,则定义指向变量a的指针P正确的写法是
A.intP=&aB.int*P=&aC.int&p=*aD.int*P=a
13.假定指针变量P定义为“int冰P=flewint(100);”,要释放P所指向盼动态内存,应使用语句
A.deletep;B.delete*p;C.delete&p;D.delete[]p;
14.假定A为一个类,则执行“Aa[3],b(3);”语句时调用该类构造函数的次数为
A.3B.4C.5D.9
15.C++中定义标准输入输出的痒为
A.stdioB.mathC。
iostream;D.stdlib
16.允许用户为类定义一种模式,使碍类中的某些数据成员及某些成员函数的返函值能
取任意类型,这是l个
A.类模板B.模板类C.函数模板D.模板函数
17.下列关于运算符重载的叙述中,正确的是
A.通过运算符重载,可以定义新的运算符
B.有的运算符只能作为成员函数重载
C.若重载运算符+,则相应的运算符函数名是+
D.重载一个二元运算符时,必须声明两个形参
18.当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式
为
A.ios:
:
out|ios:
:
binaryB.ios:
:
in|ios:
:
binary
C.ios:
:
outD.ios:
:
in
19.有关函数模板和模板函数说法错误的是
A.函数模板只是对函数的描述,编译器不为其产生任何执行代码,所以它不是一个
实实在在的函数
B.模板函数是实实在在的函数,它由编译系统在遇到具体函数调用时所生成,并调
用执行
C.函数模板需要实例化为模板函数后才能执行
D.当函数模板和一般函数同名时,系统先去匹配函数模板,将其实例化后进行调用
20.对类的构造函数和析构函数描述正确的是”
A.构造函数可以重载,析构函数不能重载
B.构造函数不能重载,析构函数可以重载
C.构造函数可以重载,析构函数也可以重载
D.构造函数不能重载,析构函数也不能重载
第二部分非选择题
二、填空题:
本大题共20空,每空l分。
共20分。
21.将int类型指针p转换为char类型指针,则强制转换语句为____________。
22.当一个成员函数被调用时,该成员函数的____________指向调用它的对象。
23.在____________继承的情况下,基类数据成员在派生类中的访问权限保持不变。
24.Windows环境下,由C++源程序文件编译而成的目标文件的扩展名是____________。
25.具有至少一个纯虚函数的类是____________。
26.C++中字符串是通过字符数组来表示的,每一个字符串都有一个结尾字符
____________.
27.C++中定义重载函数时,应至少使重载函数的参数个数或____________不同。
28.假定x=15,则表达式X<=10720:
30的值为____________。
29.不同对象可以调用相同名称的函数,但执行完全不同行为的现象称为____________。
30.假设类F的对象f是类A的成员对象,则“Aa”语句执行时,先调用类____________的构造函数。
31.设"inta=3,b=4,C=5;",表达式“(a+b)>c&&b==c”的值是____________。
32.描述命题“A小于8或小于C”的表达式为____________。
33.C++中字符串"a+b=12\n\t"的长度为____________。
34.C++类中构造函数的个数最多是无限个,析构函数的个数最多是____________个。
35.C++的静态数据成员需要在____________进行初始化,可以被该类的所有对象共享。
36.C++中一般的程序都要有两条语句,包含头文件“#include”语句和使用
命名空间“____________”语句。
37.用new申请某一个类的动态对象数组时,在该类中必须能够匹配到没有形参的或缺
省参数的____________,否则应用程序会产生一个编译错误。
38.C++中解决命名冲突的机制是____________。
39.拷贝构造函数使____________作为参数初始化创建中的对象。
40.假如一个类的名称为F,使用这个类的一个对象初始化该类的另一个对象时,可以调
用____________构造函数来完成此功能。
三、改错题:
本大题共5小题,每小题4分,共20分。
以下程序中各有一处错误,请抄写有错误的语句并改正。
六、程序设计题:
本大题共l小题。
每小题l0分,共l0分。
53.设计一个圆类circle和一个桌子类table。
circle类包含私有数据成员radius和求圆面积的成员函数9etarea();table类包含私有数据成员height和返回高度的成员函数getheight()。
roundtable类继承所有上述类的数据成员和成员函数,添加了私有数据成员color和相应的成员函数。
其中,main函数已给出。
请完成程序的其他部分。