2023年面向对象程序设计试卷_第1页
2023年面向对象程序设计试卷_第2页
2023年面向对象程序设计试卷_第3页
2023年面向对象程序设计试卷_第4页
2023年面向对象程序设计试卷_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

东莞理工学院(本科)试卷(A卷)

2023-2023学年第二学期

《面向对象程序设计》试卷

曲开课单位:计算机学院,考试形式:闭、开卷,允许带入场

一二三

三题序四五六总分

K得分

屎评卷人

单项选择题(15小题,每小题2分,共30分,请将对的答案填写在以下

相应的答题表格中)

题号12345678910

答案

题号1112131415

答案

nr料

1.下列关于C++函数的叙述中,对的的是。

A.每个函数至少要具有一个参数B.每个函数都必须返回一个值

C.函数在被调用之前必须先声明D.函数不能自己调用自己

2、下列关于类和对象的叙述中,错误的是o

一个类只能有一个对象对象是类的具体实例

三A.B.

C.类是对某一类对象的抽象D.类和对象的关系是一种数据类型与变量的

关系

3、对于语句cout«x<vend1;错误的是描述是。

A.“cout”是一个输出流对象B“end1”的作用是输出回车换行

C.“x”是一个变量D.“<<”称作提取运算符

4、有如下类声明,则类MyDERIVED中保护的数据成员和成员函数的个数是.

classMyBASE

{private:intk;

public:voidset(intn){k=n;}

intget()const{returnk;}};

classMyDERIVED:protectedMyBASE

{protected:intj;

public:voidset(intm,intn)(MyBASE::set(m);j=n;}

intget()const{returnMyBASE::get()+j;}};

A.4B.3C.2D.1

5、下列关于C++标记符的命名不合法的是o

A.iPadoB.nameJLIC.A&BD._al68

6、下面四个选项中,是用来声明虚函数的。

A.virtualaB.public«>C.includeoD.usingnamespace

7、以下成员函数表达纯虚函数。

A.virtualintvf(int);B.voidvf(int)=0;

OC.virtualvoidvf()=0;D.virtualvoidvf(int){}

8.以下不属于对象基本特点的是o

A.耦合性.B.多态性继承性“D.封装性

9.关于静态数据成员的描述中对的的是o

A.类的静态数据成员不是类的所有对象共享的数据

B.类的静态数据成员不能被类的成员函数调用

C.类的静态数据成员不能被类的构造函数调用

D.类的静态数据成员必须进行初始化

10.C++语言对C语言做了很多改善,C++语言相对于C语言的最主线的变化是

A.增长了一些新的运算符

B.允许函数重载,并允许设立缺省参数

C.规定函数说明符必须用原型

D.引进了类和对象的概念

11.在类的定义中,用于为对象分派内存空间,对类的数据成员进行初实化并执行其他内

部管理操作的函数是O

A.友元函数B.虚函数.C.构造函数。。D.析构函数

12.下列说法对的的是。

A.内联函数在运营时是将该函数的目的代码插入每个调用该函数的地方

B.内联函数在编译时是将该函数的目的代码插入每个调用该函数的地方

C.类的内联函数必须在类体内定义

D.类的内联函数必须在类体外通过加关键字inline定义

13.关于抽象类下面说法对的的是。

A.抽象类就是其中有函数定义但没有实现的类

B.抽象类是可以被实例化的

C.派生类不能成为抽象类

D.抽象类的子类必须实现父类中的纯虚函数

14.一个函数功能不太复杂但规定被频繁调用,应选用«

A.内联函数B.重载函数。。递归函数。D.嵌套函数

15.类的析构函数是在什么时候调用的?。

A.类创建时出.创建对象时C.删除对象时D.不自动调用

二.填空题(每空2分,共20分)

1、表达式“101%4"的值是。

2.表达式“2<3&&6<9”的布尔值是。

3.数组b[2][4]L10]的元素共有个。

4、在用class定义一个类时,数据成员和成员函数的默认访问权限是o

5、具有的类称为抽象类。

6.函数重载时规定同名函数的参数纯虚函___________或不同,否则无法拟定

是调用哪个函数。

7,在C++语言的面向对象程序设计框架中,是程序的基本组成单元。

8.在C语言的结构化程序设计中是程序的基本组成单元。

9.派生类的成员一般分为两部分,一部分是从,另一部分是自己定义的新成

三.判断题(5小题,每小题2分,共10分)

1.字符串"sdfgh"的长度是5。()

2.在C++中,运算符重载以后,其优先级和结合性也许改变。()

3.类中所提供的成员函数可以直接访问类内所有私有成员。()

4.私有继承中,基类中所有成员对派生类的对象都是不可见的。()

5.构造函数和析构函数都不能被继承。()

四.程序填空(每题6分,共18分)

根据程序的功能描述,将程序下划线空白处内容补充完整(每空白3分)

1.输入一个整数n,求出它的所有因子。

#inc1ude<iostream>

usingnamespacestd;

intmain(){

Antn;

®cout«"Enterapositiveinteger:

ocin»n;

»cout<<"Number"<<n«Factors

for()

if()

。cout<<k«"";

cout«end1;

return0;

)

2.寻找并输出11〜999之间的数m,它满足m、m2和m3均为回文数。

#include<iostream>

usingnamespacestd;

boolsymm(unsignedn){//判断n是否为回文数

unsignedi=n;

unsignedm=0;

awhile(i>0){

returnm==n;

)

intmain(){

for(unsignedm=11;m<1000;m++)

if(symm(m)&&symm(m*m)&&

。symm(m*m*m)){

cout«"m="<<m;

cout«m*m="<<m*m;

coutV<”m*m*m=

«><<m*m*m<vend1;

°}

return0;

)

3.使用I/O流以文本方式建立一个文献test.txt,写入字符“已成功写入文献!”,然后再用

I/O流以文本方式打开该文献,并在此文献后面添加字符“已成功添加字符!”,然后读出

整个文献的内容显示出来

#include<fstream>

usingnamespacestd;

intmain()

(

ofstreamfile("test.txt");

。理e«”已成功写入文献!”;

。file.c1ose();

1el«”已成功添加字符!”;

ofi1el.close();

。chara;

®while(file2.get(a))

cout«a;

sfile2.close();

®return0;

五'程序执行(每题5分洪10分)

阅读下面的程序,并分别写出程序执行的完整输出结果。

1.程序1

#inelude<iostream>

usingnamespacestd;

classBase1{

public:

virtua1voiddisplay()const?

);

voidBasel::display()const{

cout«"Base1::disp1ay()"<<endl;

)

classBase2:publicBasei{

pub1ic:

voiddisp1ay()const;

);

voidBase2::display()const{

cout«HBase2::disp1ay()M«end1;

)

classDerived:pub1icBase2{

public:

ovoiddisp1ay()const;

);

voidDerived::display()const{

ocout<<"Derived::display()"«endl;

)

voidfun(Base1*ptr){

叩tr->display。;。

)

intmain(){//主函数

Base1basei;//定义Basel类对象

Base2base2;。//定义Base2类对象

erivedderived;。//定义Derived类对象

«>fun(&basel);

fun(&base2)?

»fun(&derived);

return0;

)

输出结果:

2.程序2

#include<iostream>

#inc1ude<cmath>

usingnamespacestd;

classPoint卜

pub1ic»

6voidinitPoint(floatx=0,floaty=0){this->x=x;this->y=y;}

ovoidmove(floatoffX,floatoffY){x+=offX;y+=offY;

floatgetX()const{returnx;}

ofloatgetY()const{returny;}

private:。

floatx,y;

);

classRectang1e:publiePoint{。

public:

woidinitRectangle(f1oatx,floaty,floatw,f1oath){

sinitPoint(x,y);//调用基类公有成员函数

his->w=w;

this->h=h;

)

floatgetH()const{returnh;}

floatgetW()const{returnw;}

private://

afloatw,h;

);

intmain(){

oRectanglerect;

rect.initRectangle(2,3,20,10);。

^rect.move(3,2);。

cout«”Thedataofrect(x,y,w,h):°«endl;

ocout«rect.getX()«",”。

<<rect.getY()«

。«rect.getW()«","

<<rect.getH()«endl;

6return0;

)

输出结果:

六、程序设计(12分)

编写程序计算“圆形、长方形”两种图形的面积,规定(1)编写一个抽象基类shape;

(2)在shape基础上派生出类rectangle和cirele,两者都有计算对象面积和周长的

函数getarea和getperim;(3)编写主函数并测试。

+东莞理工学院(本科)试卷(A卷)参考答案

2023-2023学年第二学期

开课单位:计算机学院,科目:面向对

温馨提示

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

评论

0/150

提交评论