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