全国2020年10月自考C++程序设计04737真题
自考真题是考生复习备考的一大法宝,需要好好利用,而且年份离的越近,参考价值越高。以下是希赛网自考频道整理的全国2020年10月自考C++程序设计04737真题,考生可参考试卷题型、分值、重点考试内容及答题规范,参考答案现在暂未公布,希赛网将持续更新。
全国2020年10月自考C++程序设计04737真题
一、单项选择题:本大题共20小题,每小题1分,共20分。在每小题列出的备选项中只有一项是最符合题目要求的,请将其选出。
1. 下列选项中,能表现出C++语言的主要特点的是
A.继承于C#语言
B.可以进行面向对象的程序设计
C.不能进行结构化程序设计
D.基于数据流的程序设计
2.“下列关于 C++语言类库提供输入流类和输出流类的描述中,正确的是
A.输入流类ostream
B.输出流类istream
C. cin 是istream类的对象
D. cout 是istream类的对象
3.下列关于封装特点的描述中,错误的是
A.隐藏对象的属性
B.公开实现的细节
C.提供使用的信息
D.公开的信息是与外界交互的接口
4.下列关于访问范围说明符public、private、 protected 的描述中,正确的是
A.每种关键字至少出现1次
B.不加说明符默认为公有的
C.3种关键字出现的先后次序没有限制
D.成员的访问范围由它之后最近的说明符决定
5.有关语句“Student *ss=new Student(2];deletef[ss;"的描述中,正确的是
A. delete[]ss 释放动态对象数组
B. delete[]ss 调用3次析构函数
C. new Student[2]分配8个字节的内存
D. new Student[2]调用一次构造函数
6.“class Demo{ public:void SetValue(){};", 主函数中有语句“const Demo Obj; Obj. SetValue();",正确的说法是
A. Obj 是常量对象
B. SetValue()函 数值为整型
C.constDemoObj;编译时错误
D. Obj.SetValue);编 译时正确
7.设类Test将其他类对象作为成员,则创建类Test的对象时,下列描述正确的是
A.先执行类的构造函数
B.先执行成员对象的构造函数
C.先执行类的析构函数
D.先执行成员对象的析构函数
8.下列关于重载流插入和流提取运算符的描述中,正确的是
A.不可以对流插入运算符进行重载
B.不可以对流提取运算符进行重载
C.重载函数不能是流类库中的成员
D.流是标准类库用户能继承也能修改
9.有定义“Demo & Deo:operato++..return *this;}", 若obj是类Demo的对象,则以下描述错误的是
A.自增运算符“++”可以被重载
B.函数可以区分前置及后置情况
C. ++obj 等价于obj.operator++
D. obj+等价 于obj.operator++()
10.当派生类私有继承基类时,基类中的公有成员和保护成员成为派生类的
A. public 成员
B. private 成员
C. protected 成员
D.友元
11. 下列关于派生类对象的初始化叙述中,正确的是
A.是由基类的构造函数实现的
B.是由派生类的构造函数实现的
C.是由基类和派生类的构造函数实现的
D.是系统自动完成的不需程序设计者干预
12.下面关于基类和派生类的描述中,正确的是
A. 一个类不能被多次说明为某个派生类的直接类,可以不止一次地成为间接基类
B.一个类可以被多次说明为某个派生类的直接类,可以不止一次地成为间接基类
C.一个类不能被多次说明为某个派生类的直接类,但只能成为一次间接基类
D.一个类可以被多次说明为某个派生类的直接类,但只能成为一次间接基类
13. 对于下面类定义,正确的叙述是
class A{
public: virtual void func1(){ }
void func2(){ } };
class B:public A{
public: void funcl( ){cout<<" class B func 1" <<end;}
virtual void func2( ){cout<<" class B func 2”" <<endl;}}; .
A. A:func2( )和B::funcl( )都是虚函数
B. A:func2( )和B::funcl( )都不是虛函数
C. B.:func1() 是虚函数,而A::func2( )不是虚函数
D. B::func1( )不是虚函数,而A::func2( )是虚函数
14.关于纯虚函数和抽象类的描述中,错误的是
A.纯虚函数是一种特殊的虚函数,它没有具体实现
B.抽象类--般作为基类使用,其纯虚函数的实现由派生类给出
C.抽象类中一定具有一个或多个纯虚函数
D.抽象类的派生类中一定不会再有纯虚函数:
15. 下列流类中,可以用于输入/输出的是
A. ios
B. fstream
C. iostream
D. strstream
16. 对ignore()成员函数原型“istream & ignore(int n= l,int delim=EOF);”描述正确的是
A.跳过输出流中的n个字符
B.跳过delim及其之后的所有字符
C.常用于跳过输出中的无效部分
D. cin.ignore()等 效于cin.ignore( l,EOF)
17.在C++中打开一个文件就是将指定的文件与下列哪个选项建立关联
A.流对象
B.流类
C.流函数
D.流结构
18.以下不能正确创建输出文件对象并使其与磁盘文件相关联的语句是
A. ofstream myfile;myfile open(*g:filet"t);
B. ofstream *myfile=new ofstream;mfile->openc*d:ofile.txt");
C. ofstream mfileoenf("d:filetxt");
D. ofstream *myfile=new("d:file.cxt");
19.假设声明了以下函数模板,并定义了“int i;charc;",则错误的调用语句是template <class T>T max(T x,T y) { return (x>y)?x:y;}
A. max(i,i)
B. max(i,c)
C. max(c,c)
D. max((int)c,i)
20.下面对模板的声明正确的是
A. template class<S1, S2>
B. template <class S1,S2>
C. template<class S l;class S2>
D. template<class S 1 ,class S2>
二、填空题:本大题共15小题,每空1分,共15分。
21.通常根据是否可以直接操纵计算机底层硬件,将程序设计语言分为低级语言、中级语言和____。
22.函数调用时参数的传递为“传引用”,是传递对象的____。
23.面向对象的程序设计方法使得程序结构清晰,相互协作容易,更重要的是程序的____性大大提升了。
24. 从逻辑关系上看,典型的C++程序的结构包括类的定义、类中成员函数的实现及____。
25.当程序创建一个对象时,系统自动调用____来初始化该对象。
26.已知类A中的两个成员函数fl ()和f2(),如果在fl ()中不能直接调用f2(),则____是静态函数。
27.重载赋值运算符后,赋值语句的功能是将一个对象中指针成员变量指向的内容复制到另一个对象中指针成员变量指向的地方,这样的拷贝叫“____”。
28.运算符重载相当于定义了一个以____为名称的函数。
29.定义类时,保护成员的访问范围比_____成员的访问范围大。
30.学生集合包含本科生集合,如果一个人是本科生,他/她必然也是一位学生,设计程序时,____集合作为派生类。
31.声明虛函数成员的一般格式为:____“函数返回值类型函数名(形参表);”。
32.定义4个类,类A中定义公有成员函数Print()为虚函数,类A派生了类B和类D,类B派生了类C, 3个派生类均是公有继承也都重写了Print()函数,则有___个派生类中的PrintO是虚函数。
33.要将s=“C++”输出为“@@@C++”这样的格式,应该使用的语句是“cout<<____<<setw(6)<<s;"
34.文件的I/O由ifstream、____和fstream三个类提供。
35.类模板“template<class T>classX{..};”,其中友元函数f对特定类型T(如int),使函数f(X<int>&)成为X<int>模板类的友元,则其说明应为____。
三、程序填空题:本大题共5小题,每小题4分,共20分。请按试题顺序和空格顺序在答题卡(纸)指定位置上填写答案,错填、不填均无分。
五、程序设计题:本大题共2小题,第1小题5分,第2小题10分,共15分。
46.编写一个函数模板,实现将n个数据进行由小到大排序的功能。
47.有一个School类,保护数据成员Number和Name分别表示人的编号和姓名。学生类Student是School的派生类,新增数据成员班号Class_Num和总成绩Total。请用C++代码描述这两个类,并用Student 类的成员函数Display实现学生张小蒙的编号(2020150601)、姓名、班级(四班)和总成绩678的输出(要求编写派生类的构造函数)。