2020年8月自考04737C++程序设计试题及答案含解析_第1页
2020年8月自考04737C++程序设计试题及答案含解析_第2页
2020年8月自考04737C++程序设计试题及答案含解析_第3页
2020年8月自考04737C++程序设计试题及答案含解析_第4页
2020年8月自考04737C++程序设计试题及答案含解析_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

++程序设计年月真题

04737C20208

1、【单选题】下列选项中,对C++语言的描述正确的是

编译式的语言

不通用的语言

A:

大小写不敏感

B:

继承于Java语言

C:

答D:案:A

2、【单选题】下列选项中,对函数参数默认值的描述正确的是

声明函数时不能为形参指定默认值

在调用有默认参数值的函数语句中,必须给出对应的实参

A:

指定默认值时可以用任何有定义的表达式

B:

指定默认值时可以是函数内定义的局部变量

C:

答D:案:C

3、【单选题】下列选项中,面向对象的程序设计方法不属于分析待解决问题的是

事物有哪些特点

不同事物种类之间的关系

A:

事物之间的相互作用

B:

将问题分解为多个子问题

C:

答D:案:D

4、【单选题】在定义类成员时,为体现类内成员的隐藏性,需要使用的关键字是

public

friend

A:

protected

B:

private

C:

答D:案:D

5、【单选题】下列选项中,关于析构函数的描述错误的是

不能指定返回类型

函数体中可以有delete语句

A:

不可以重载

B:

C:

返回类型可以是void类型

答D:案:D

6、【单选题】使用语句Perlnfod(1001,65);创建对象时,使用的构造函数的原型是

Perlnfo();

Perlnfo(int);

A:

Perlnfo(int,int);

B:

Perlnfo(int,int,int);

C:

答D:案:C

7、【单选题】如果类A被声明为类B的友元,则下列选项中描述正确的是

类B不一定是类A的友元类

类A的成员即是类B的成员

A:

类B的成员即是类A的成员

B:

类A的成员函数不得访问类B的成员

C:

答D:案:A

8、【单选题】下列选项中,关于运算符重载的描述正确的是

运算符重载可以改变运算符的优先级

运算符重载不能改变运算符操作数的个数

A:

运算符重载可以改变运算符的结合性

B:

运算符重载不能被重载为成员函数

C:

答D:案:B

9、【单选题】如果表达式--p*q中的--和*都是通过友元进行的运算符重载,则采用运算符

重载函数调用的格式,该表达式还可以表示为

operator*(p.operator--(),q)

operator--(p).operator*(q)

A:

operator*(p.operator--(p),q)

B:

operator--(p)."operator(q)

C:

答D:案:A

10、【单选题】派生类的对象可以直接访问的基类成员是

公有继承的公有成员

公有继承的私有成员

A:

公有继承的保护成员

B:

C:

私有继承的公有成员

答D:案:A

11、【单选题】假设已经定义好了类student,现在要定义类derived,它是从student私有

派生的,则定义类derived的正确写法是

classderived:studentprivate{//............}

classderived:studentpublic{//............}

A:

classderived:publicstudent{//............}

B:

classderived:privatestudent{//...........}

C:

答D:案:D

12、【单选题】设有基类B和C,共同派生子类A。类定义为:classA:public

B,publicC{//...........};,则创建类A的对象时,构造函数的调用次序依次是

A、B、C

C、B、A

A:

B、C、A

B:

A、C、B

C:

答D:案:C

13、【单选题】下列选项中,关于虚函数的说明正确的是

从虚基类继承的函数都是虚函数

虚函数不得是静态成员函数

A:

只能通过指针这一唯一形式调用虚函数

B:

抽象类中的成员函数都是虚函数

C:

答D:案:B

14、【单选题】下列选项中,将没有返回值的Printlnfo()函数声明为纯虚函数的正确形式

voidPrintlnfo()=0;

virtualvoidPrintlnfo()=0;

A:

virtualvoidPrintlnfo();

B:

virtualvoidPrintInfo(){};

C:

答D:案:B

15、【单选题】下列选项中,对于语句“cout<<sum<<endl;"中各个组成部分的叙述正

确的是

“cout”是一个输入流对象

“sum”是求出和的常量

A:

“endl"作用是输出一个回车

B:

“<<”是插入运算符

C:

答D:案:C

16、【单选题】getline()函数的功能是从输入流中的当前字符开始读取

一个字节

若干字节

A:

一个字符

B:

一行字符

C:

答D:案:D

17、【单选题】下列选项中,不是C++标准类库中用于文件操作的文件流类是

ifstream

iomanip

A:

ofstream

B:

fstream

C:

答D:案:B

18、【单选题】已知:intans,以二进制方式将ans的值写入输出流文件对象outfile中,

下列选项中正确的语句是

ofstreamoutfile(“result.txt”,ios::out|ios::binary);outfile.write((int*)&ans;,siz

eAo:f(int));

ofstreamoutfile(“result.txt”,ios::out|ios::binary);

outfile.write(char*)&ans;,sizeof(int));

B:

ifstreamoutfile(“result.txt”,ios::out|ios::binary);outfile.write((int*)&ans;,ans)

;C:

ifstreamoutfile(“result.txt”,ios::out|ios::binary);outfile.write((char*)&ans;,an

sD):;

答案:B

19、【单选题】若有如下函数模板定义:template<typenameT>Sum(Ta,Tb,T

sum){sum=a+b;}则下列选项中正确的是

intx,y;charz;Sum(x,y,z);

doublex,y,z;Sum(x,y,z);

A:

intx,y;floatz;Sum(x,y,z);

B:

floatx,doubley,z;Sum(x,y,z);

C:

答D:案:B

20、【单选题】类、类模板之间都允许继承,下列选项中不属于它们之间常见的派生关系是

普通类维承模板类

类模板继承普通类

A:

模板类继承普通类

B:

类模板继承模板类

C:

答D:案:C

21、【问答题】写出以下程序的输出结果#includeusingnamespacestd;classA

{public:A(){cout<<”学习构造函数于";}~A(){cout<<"类和对象进阶”<<

endl;}};classB:A{public:B(inti){cout<<i<<”年”<<endl;}

~B(){cout<<"第3章";}};intmain(){Bobj(2020);return0;}

答案:每答对一处划线内容得1分,每行划线处前后顺序正确得2分。学习构造函数

于2020年第3章类和对象进阶

22、【问答题】写出以下程序的输出结果#include<iostream>#include<

cstring>usingnamespacestd;intmain(){strings1="20200404737";string

s2="c语言程序设计";s2[1]=’+’;s2[2]=s2[1];s2[3]=s2[4]=’.’;

s1=s1.substr(6,5);s1.swap(s2);stringstr=s1.append(s2);cout>>"str="<<

str<<endl;cout>>"字符串共含有">>str.length()>>”个字符”;return0;}

答案:

23、【问答题】写出以下程序的输出结果#include#includeusingnamespacestd;

classCompare{inta,b;intgetmax(){return(a>b?a:b);}public:intc;void

setValue(intdatal,intdata2,intdata3){a=data1;b=data2;c=data3;cout<<a<

<","<<b<<","<<c<<endl;}intGetMax();};intCompare::GetMax()

{intd=getmax();return(d=d>c?d:c);}intmain(){Compareobject1;

object1.setValue(4,20,19);cout<<"这三个数据中最大的是:";cout<<

object1.GetMax()<return0:}

答案:每答对1个数据得1分,文字得2分。4,20,19这三个数据中最大的是:

20

24、【问答题】写出以下程序的输出结果includeusingnamespacestd;class

MyClass{public:MyClass(inti=0){cout<<1<<’’;}MyClass(const

MyClass&x){cout<<2<<’’;}MyClass&operator=(constMyClass&x){cout<<3<

<’’;return*this;}~MyClass(){cout<<4<<’’;}};intmain(){MyClass

obj1(1),obj2(2),obj3(obj1);obj1=obj2;obj1=obj3;return0;}

答案:每答对一处划线内容得1分,每行划线处前后顺序正确得2分。112334

44

25、【问答题】写出以下程序的输出结果#includeusingnamespacestd;classA

{public:A(){cout<<"测量广场”;}virtual~A(){cout<<”是否扩建?"<<

endl;)};classB:publicA{public:intwidth,high;B(){width=40;high=20;

cout<<"初始面积为:"<<width*high<<endl;}~B(){if(width*high<10000)cout<

<"不超过最大面积值,";}};intmain(){A*p=newB();deletep;return0;}

答案:每答对一处划线内容得1分,每行划线处前后顺序正确得1分。测量广场初

始面积为:800不超过最大面积值,是否扩建?

26、【问答题】编写程序以读方式打开当前文件夹下“address'”文本文件,并在屏幕显示

该文件内容。

答案:

27、【问答题】编写完成如下程序中“……”部分,程序定义一个抽象类Shape,由它派生3

个类:Square(正方形)、Trapezoid(梯形)和Triangle(三角形),用虚函数分别计算几种图形

的面积、并求它们的和。要求用基类指针数组,使它每一个元素指向一个派生类对象。

#includeusingnamespacestd;classShape{public:virtualdoublearea()const

=0;};……voidmain(){Shape*p[3];Squarese(5);Trapezoidtd(2,5,4);

Trianglete(5,8);p[O]=&se;p[1]=&td;p[2]=&te;doubleda=0;for(inti=0;i<

3;i++){da+=p[i]->area();}cout<<”总面积是:”<<da<<endl;}

答案:

28、【填空题】C++语言的特点表现在两个方面,首先它是继承了C语言的特征,其次加入

了面向()的特征。

答案:对象/Objective

29、【填空题】constint*b=&a;中,const修饰的是int,说明()是指向常量的指针。

答案:b

30、【填空题】变量的生存期是指变量所占据的()由分配到释放的时期。

答案:内存空间/内存/空间

31、【填空题】若Student类中的一个成员函数score的说明为:voidscore(Student&s;):

则s是Student的对象引用,s用来做()函数的形参。

答案:score()/score

32、【填空题】()表示的是隐藏的对象的指针,静态成员函数没有该指针。

答案:this/*this

33、【填空题】类的普通成员函数是指声明中不含const和()关键字的函数。

答案:static

34、【填空题】C++程序中,重载运算符[]时,不能用友元来重载运算符。只能用()来重

载。

答案:成员函数

35、【填空题】如果运算符重载为全局函数,对于二元运算符需要为该函数传递()个参

数。

答案:2/二/两

36、【填空题】生成派生类对象时,先执行各基类的构造函数,调用顺序为派生类继承时的

()顺序,

答案:基类声明/基类说明/基类的声明/基类的说明

37、【填空题】当基类是一个封闭类,在具有继承关系的类层次体系中,析构函数执行的顺

序是:首先是执行派生类本身的析构函数,然后执行对象成员的析构函数,最后是执行()

答案:基类析构函数/基类的析构函数

38、【填空题】面向对象程序设计语言有封装、()和多态3种机制。

答案:继承

39、【填空题】类Car公有派生出类RunCar,类Car和类RunCar中都定义了虚函数func

(),p是指向类Car对象的指针,则p->func();将调用()类中的函数func().

答案:Car

40、【填空题】头文件()包含操作所有输入输出流所需要的基本信息,因此大多数C++程

序都应该包含这个头文件。

答案:iostream/iostream.h

41、【填空题】C++根据存取方式不同分为顺序存取文件和()文件。

答案:随机存取。

42、【填空题】编译器由类模板生成类的过程称为类模板的()。

答案:实例/实例化/具体化/实现/具体实现

43、【填空题】将下面程序补充完整,使程序输出的结果为:ZhangMeng####201902

最终分数为90.7#include#include#includeusingnamespacestd;intmain()

{doublescore=90.657;intid=201902;stringname="ZhangMeng";cout.width(10);

___________<<endl;cout<<setw(10)<<__________<<id<<endl;cout<<“最

终分数为:“<<setprecision(3)<<score<return0;}

答案:cout<<name,setfill('#')/”####”注:每题答案有2处下划线,每答

对一处得2分。

44、【填空题】将下面程序补充完整,使程序输出的结果为2050。#includeusing

namespacestd;classSum{public:staticintx:Sum(inti=2020){________;}

intGetSum(){returnSum::x+26;}};intSum::x4;intmain(){Sumtest;

__________<<endl;return0;}

答案:x=i+x/x=x+i/x+=i/Sum::x=i+Sum::x/Sum::x=Sum::x+i/

Sum::x+=i,cout<<test.GetSum()/cout<<test.GetSum(2020)注:每题答案有2

处下划线,每答对一处得2分。

45、【填空题】将下面类定义补充完整,类Point是坐标点,Line是两点间的直线,

Distance求出两点间的距离。classLine;classPoint{private:intx,y;

____________________;public:Point(inti=0,intj=0){x=i;y=j:}};class

Line{private:Pointp1,p2;public:Line(Pointxpl,Pointxp2):pl(xp1),

p2(xp2){};doubleDistance();};doubleLine::Distance(){doubledx=p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论