面向对象程序设计-试卷(2012上)A_第1页
面向对象程序设计-试卷(2012上)A_第2页
面向对象程序设计-试卷(2012上)A_第3页
面向对象程序设计-试卷(2012上)A_第4页
面向对象程序设计-试卷(2012上)A_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

面向对象程序设计-试卷(2012上)A姓名:学号:姓名:学号:系别:计算机系年级专业:……………………密………………封………线……线………_____________________…2011--2012学年第二学期《面向对象程序设计》试卷开课单位:计算机学院,考试形式:闭、开卷,允许带入场题序一二三四五六总分得分评卷人一.单项选择题(15小题,每小题2分,共30分,请将正确答案填写在以下对应的答题表格中)题号12345678910答案题号1112131415答案1.下列关于C++函数的叙述中,正确的是____________。A.每个函数至少要具有一个参数B.每个函数都必须返回一个值C.函数在被调用之前必须先声明D.函数不能自己调用自己2、下列关于类和对象的叙述中,错误的是___________。A.一个类只能有一个对象B.对象是类的具体实例C.类是对某一类对象的抽象D.类和对象的关系是一种数据类型与变量的关系3、对于语句cout<<x<<endl;错误的是描述是___________。A.“cout”是一个输出流对象B.“endl”的作用是输出回车换行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.25、下列关于C++标识符的命名不合法的是___________。A.iPad B.name_LI C.A&BD._a168面向对象程序设计-试卷(2012上)A全文共7页,当前为第1页。6、下面四个选项中,___________是用来声明虚函数的。面向对象程序设计-试卷(2012上)A全文共7页,当前为第1页。 A.virtual B.public C.include D.usingnamespace7、以下___________成员函数表示纯虚函数。 A.virtualintvf(int);B.voidvf(int)=0; C.virtualvoidvf()=0;D.virtualvoidvf(int){}8.以下不属于对象基本特点的是__________。A.耦合性 . B.多态性 . C.继承性 D.封装性9.关于静态数据成员的描述中正确的是__________。A.类的静态数据成员不是类的所有对象共享的数据B.类的静态数据成员不能被类的成员函数调用C.类的静态数据成员不能被类的构造函数调用D.类的静态数据成员必须进行初始化10.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是__________。A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念11.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初实化并执行其他内部管理操作的函数是__________。A.友元函数 B.虚函数 . C.构造函数 D.析构函数12.下列说法正确的是__________。A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字inline定义13.关于抽象类下面说法正确的是__________。A.抽象类就是其中有函数定义但没有实现的类B.抽象类是可以被实例化的C.派生类不能成为抽象类D.抽象类的子类必须实现父类中的纯虚函数14.一个函数功能不太复杂但要求被频繁调用,应选用__________。A.内联函数 B.重载函数 C.递归函数 D.嵌套函数15.类的析构函数是在什么时候调用的?__________。A.类创建时 B.创建对象时 C.删除对象时 D.不自动调用二.填空题(每空2分,共20分)1、表达式“101%4”的值是__________2.表达式“2<3&&6<9”的布尔值是3.数组b[2][4][10]的元素共有__________个。4、在用class定义一个类时,数据成员和成员函数的默认访问权限是__________。5、含有__________的类称为抽象类。6.函数重载时要求同名函数的参数纯虚函__________或__________不同,否则无法确定是调用哪个函数。7.在C++语言的面向对象程序设计框架中,__________是程序的基本组成单元。8.在C语言的结构化程序设计中,__________是程序的基本组成单元。9.派生类的成员一般分为两部分,一部分是从__________,另一部分是自己定义的新成员面向对象程序设计-试卷(2012上)A全文共7页,当前为第2页。面向对象程序设计-试卷(2012上)A全文共7页,当前为第2页。三.判断题(5小题,每小题2分,共10分)1.字符串"sdfgh"的长度是5。()2.在c++中,运算符重载以后,其优先级和结合性可能改变。()3.类中所提供的成员函数可以直接访问类内全部私有成员。()4.私有继承中,基类中所有成员对派生类的对象都是不可见的。()5.构造函数和析构函数都不能被继承。()四.程序填空(每题6分,共18分)根据程序的功能描述,将程序下划线空白处内容补充完整(每空白3分)1.输入一个整数n,求出它的所有因子。#include<iostream>usingnamespacestd;intmain(){ intn; cout<<"Enterapositiveinteger:"; cin>>n; cout<<"Number"<<n<<"Factors"; for(____________________) if(____________________) cout<<k<<"";cout<<endl;return0;}2.寻找并输出11~999之间的数m,它满足m、m2和m3均为回文数。#include<iostream>usingnamespacestd;boolsymm(unsignedn){//判断n是否为回文数unsignedi=n; unsignedm=0; while(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; cout<<"m*m*m=" <<m*m*m<<endl;面向对象程序设计-试卷(2012上)A全文共7页,当前为第3页。 }面向对象程序设计-试卷(2012上)A全文共7页,当前为第3页。 return0;}3.使用I/O流以文本方式建立一个文件test.txt,写入字符“已成功写入文件!”,然后再用I/O流以文本方式打开该文件,并在此文件后面添加字符“已成功添加字符!”,然后读出整个文件的内容显示出来#include<fstream>usingnamespacestd;intmain(){ ofstreamfile("test.txt"); file<<"已成功写入文件!"; file.close(); ____________________; filel<<"已成功添加字符!"; filel.close(); chara; ____________________; while(file2.get(a)) cout<<a; file2.close(); return0;}五、程序执行(每题5分,共10分)阅读下面的程序,并分别写出程序执行的完整输出结果。1.程序1#include<iostream>usingnamespacestd; classBase1{public: virtualvoiddisplay()const; };voidBase1::display()const{ cout<<"Base1::display()"<<endl;}classBase2:publicBase1{public: voiddisplay()const; };voidBase2::display()const{ cout<<"Base2::display()"<<endl;}面向对象程序设计-试卷(2012上)A全文共7页,当前为第4页。面向对象程序设计-试卷(2012上)A全文共7页,当前为第4页。classDerived:publicBase2{public: voiddisplay()const; };voidDerived::display()const{ cout<<"Derived::display()"<<endl;}voidfun(Base1*ptr){ ptr->display(); }intmain(){ //主函数 Base1base1; //定义Base1类对象 Base2base2; //定义Base2类对象 Derivedderived; //定义Derived类对象 fun(&base1); fun(&base2); fun(&derived); return0;}输出结果:2.程序2#include<iostream>#include<cmath>usingnamespacestd;classPoint{ public: voidinitPoint(floatx=0,floaty=0){this->x=x;this->y=y;} voidmove(floatoffX,floatoffY){x+=offX;y+=offY;} floatgetX()const{returnx;} floatgetY()const{returny;}private: floatx,y;};面向对象程序设计-试卷(2012上)A全文共7页,当前为第5页。classRectangle:publicPoint{ 面向对象程序设计-试卷(2012上)A全文共7页,当前为第5页。public: voidinitRectangle(floatx,floaty,floatw,floath){ initPoint(x,y);//调用基类公有成员函数 this->w=w; this->h=h; } floatgetH()const{returnh;} floatgetW()const{returnw;}private: // floatw,h;};intmain(){ Rectanglerect; rect.initRectangle(2,3,20,10); rect.move(3,2); cout<<"Thedataofrect(x,y,w,h):"<<endl; cout<<rect.getX()<<"," <<rect.getY()<<"," <<rect.getW()<<"," <<rect.getH()<<endl; return0;}输出结果:六、程序设计(12分)编写程序计算“圆形、长方形”两种图形的面积,要求(1)编写一个抽象基类shape;(2)在shape基础上派生出类rectangle和circle,二者都有计算对象面积和周长的函数getarea和getperim;(3)编写主函数并测试。面向对象程序设计-试卷(2012上)A全文共7页,当前为第6页。

东莞理工学院(本科)

温馨提示

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

评论

0/150

提交评论