ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:19.63KB ,
资源ID:328889      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-328889.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c++期末模拟试题及答案知识讲解.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

c++期末模拟试题及答案知识讲解.docx

1、c+期末模拟试题及答案知识讲解C+期末模拟试题及答案一、 选择题(每题2分,共40分)1、面向对象程序设计将描述事物的数据与 封装在一起,作为一个相互依存、不可分割的整体来处理。A) 信息B) 数据隐藏C) 对数据的操作D) 数据抽象2、下列语句中,错误的是 。A) int *p=new int(5);B) int *p=new int5;C) int *p=new int 20(0);D) int *p=new int;3、下面有关类和对象的说法中,正确的是 。A) 系统为类和对象分配内存空间B) 类和对象没有区别C) 系统为类分配存储空间,不为对象分配存储空间D) 类与对象的关系和数据类型

2、与变量的关系类似4、下列有关类和对象的说法中,不正确的是 。A) 任何一个对象只能属于一个类B) 对象是类的一个实例C) 类实质上是一种数据类型D) 一个类只能有一个对象5、下列说法中,不正确的是 。A) 要在类的外部直接使用类的私有成员是错误的B) 一个对象数组中的所有数组元素属于同一个类C) 当在类外部定义成员函数时,必须在函数名前加上类名和作用域运算符D) 同一个类的两个对象占用相同的内存空间6、在声明类时,下面的说法正确的是 。A) 数据成员的数据类型可以是registerB) 可以在类的声明中给数据成员赋初值C) 没有用private,public,protected定义的数据成员是

3、公有成员D) 定义时,private,public,protected可以按任意顺序出现7、下列关于构造函数的描述中,正确的是 。A) 构造函数必须带有参数B) 构造函数可以带有返回值C) 构造函数的名字与类名完全相同D) 构造函数必须定义,不能默认8、下列有关析构函数叙述中,不正确的是 。A) 析构函数必须与类名相同,并在其前面加上符号,以便和构造函数名区别B) 析构函数不能带有任何参数,不能有返回值C) 析构函数可以重载D) 对于全局定义的对象,在程序开始时调用构造函数,到程序结束时调用析构函数9、关于成员函数特征的下列叙述中, 是错误的。A) 成员函数一定是内联函数B) 成员函数可以重载

4、C) 成员函数可以设置参数的默认值D) 成员函数可以是静态的10、下列说法中,不正确的是 。A) 利用常对象只能调用类中的常成员函数B) 类的常数据成员和引用成员必须在构造函数的初始化表中进行初始化C) 常成员函数可以对类中的任何数据成员进行更新D) 在程序中既可以定义指针数据成员,也可以定义对象指针11、友元函数的作用是 。A) 提高程序的运行效率B) 加强类的封装性C) 实现数据的隐藏性D) 增加成员函数的种类12、在下列有关静态成员函数的描述中,正确的是 。A) 静态成员函数只能在类外定义B) 在静态成员函数中可以使用this指针C) 在建立对象前,就可以为静态数据成员赋值D) 静态成员

5、函数在类外定义时,要用static前缀13、使用派生类的主要原因是 。A) 提高程序的运行效率B) 加强类的封装性C) 提高代码的可重用性D) 实现数据的隐藏14、下列说法,不正确的是 。A) 函数在重载时其函数名应相同B) 基类中定义了虚函数ab(int,int),若在派生类中重新定义ab(int),则在派生类中ab为重载函数C) C+中所有运算符都可以重载D) 对于基类中定义的运算符重载函数,派生类中不一定可以继承15、下列叙述中,不正确的说法是 。A) 不能直接由抽象类建立对象B) 至少有一个纯虚函数的类称为抽象类C) 抽象类中能包含构造函数D) 抽象类中不能有数据成员16、下列说法中,

6、不正确的是 。A) 在派生过程中构造函数不被继承B) 在派生过程中析构函数不被继承C) 声明为指向基类对象的指针可以指向其公有派生的对象D) 声明为指向公有派生类对象的指针可以指向其基类的对象17、关于虚函数的描述中,正确的是 。A) 虚函数是一个static类的成员函数B) 虚函数是一个非静态成员函数C) 派生类的虚函数与基类的虚函数具有不同的参数个数和类型D) 内联函数、构造函数、静态变量可以声明为虚函数18、模板的使用是为了 。A) 实现多态性B) 提高代码的运行效率C) 加强类的封装性D) 提高代码的可重用性19、下列说法中,不正确的是 。A) 类模板代表一个具体的、实际的类B) 函数

7、模板经实例化生成的具体函数称为模板函数C) 在template语句与函数模板定义语句间不允许有别的语句D) 模板函数类似于重载函数,只是更严格一些20、当包含头文件iostream.h后,一个C+源程序中的cin是 。A) 一个标准语句。B) 预定义的类。C) 预定义的函数。D) 预定义的对象。二、判断题(每题1分,共10分)1、面向对象方法中的抽象,是指对具体问题进行概括,抽出一类对象的公共性质并加以描述的过程。2、多态性是指一段程序能够处理多种类型对象的能力。3、保护类型成员的性质和私有成员的性质相似,差别在于继承过程中对产生的新类影响不同。4、拷贝构造函数是使用一个已经存在的对象,去初始

8、化同类的一个新对象。5、UML中的图形的作用是描述软件中类和对象以及它们的静态关系。6、静态数据成员具有静态生存期。7、条件编译是指程序中的某些内容要在满足一定条件的情况下才参与编译。8、默认的拷贝构造函数完成的是深拷贝。9、当类的继承方式为私有继承时,基类中的公有成员和保护成员都以私有成员身份出现在派生类中,基类的私有成员在派生类中不能直接访问。10、如果基类声明了带有形参表的构造函数时,派生类就应当声明构造函数。三、程序填空题(每题5分,共10分)1、按照程序执行结果,填入合适语句:#includeusing namespace std;class Testprivate:int n;st

9、atic int m;public:int p;static int q;Test(int arg);static void disp1();void disp2();_(1)_(2)_Test:Test(int arg)n=arg;p=arg;void Test:disp1()cout”m=”m”,q=”qendl;void Test:disp2() cout”m=”m”,q=”qendl;cout”n=”n”,p=”pendl;int main()Test obj1(2);cout”p=”obj1.p”,q=”Test:qendl;Test:disp1();obj1.disp2();ret

10、urn 0;程序执行结果:p=2,q=20m=10,q=20m=10,q=20n=2,p=22、按照程序执行结果,填入合适语句:#include#includeusing namespace std;int count(char *str)int i,num=0;for(i=0;stri;i+)_(1)_num+;_(2)_int main()char text100;cout”输入一句英语:”endl;gets(text);cout”这个句子里有”count(text)”个字母。”endl;return 0;程序执行结果:输入一句英语:It is very interesting!这个句子里

11、有19个字母。四、程序阅读题(共20分)1、阅读下面的程序,写出程序运行结果:(5分)#include #include #include #include using namespace std ;int main() vector A(4); vector:iterator pi; pi=A.begin(); *pi+=51; *pi+=61; *pi+=51; *pi+=81; cout*(A.begin()+1)endl; cout*find(A.begin(),A.end(),51)endl; coutcount(A.begin(),A.end(),51)endl; reverse(

12、A.begin(),A.end(); for (pi=A.begin();pi!=A.end();pi+) cout*pi ; coutendl; sort(A.begin(),A.end(); for (pi=A.begin();pi!=A.end();pi+) cout*pi ; coutendl; return 0;2、阅读下面的程序,写出程序运行结果:(5分)#include using namespace std ;class Apublic: virtual void func(int data)coutclass A:dataendl; virtual void func(cha

13、r *str) coutclass A:strendl; void func() coutclass A endl; class B: public Apublic: void func(int data) coutclass B:dataendl; void func(char *str,int i) coutclass B:str iendl; void func() coutclass Bfunc(1); pa-A:func(1); pa-func(haha); b.func(haha,2); pa-func(); return 0;3、阅读下面的程序,写出程序运行结果:(6分)#inc

14、lude #includeusing namespace std;class CreateAndDestroy public: CreateAndDestroy(int value, char str20) data=value; strcpy(memo,str); cout Object memo constructorendl; CreateAndDestroy() coutObject memo destructor endl; private: int data; char memo20;CreateAndDestroy first( 1, first ); void create(

15、void ) CreateAndDestroy fifth( 3, fifth ); int main() create(); CreateAndDestroy fourth( 2, fourth ); return 0;4、阅读下面的程序,写出程序运行结果:(4分)#include using namespace std;class CRangepublic: int index; CRange(int i) index = i; ; class CString char a100; int len;public: CString(char* s) len = strlen(s); strc

16、py(a, s); char& operator(int i) if( i=0 & ilen ) return ai; else throw CRange(i); ; int DisplayHasCatch(CString& s) try int j; for( j=0; j20; j+ ) coutsjendl; /注意运算符被重载了 catch( CRange r ) cerrendl字符串下标:r.index超界!=a&stri=A&stri=Z) (2) return num; 四、 程序阅读题:(每题4-7分,共20分)1、(5分)6151281 51 61 5151 51 61 8

17、12、(5分)class B:1class A:1class A:hahaclass B:haha 2class A3、(6分)Object first constructorObject fifth constructorObject fifth destructorObject fourth constructorObject fourth destructorObject first destructor4、(4分)ABC字符串下标:3超界!五、 编程题(共20分,共2题)1. (12分)/*参考程序中不含日期的合法性校验等细节只提供主要知识点参考细节部分由改卷老师酌情给分main函数/

18、2分/类对象定义使用Date类/4分/类定义、构造函数Person类/6分/类定义、继承、构造函数*/#include #include using namespace std;class Date private: int year; int month; int day; public: Date(int y=1990,int m=1,int d=1)year=y;month=m;day=d; void showdate()coutYEAR=year;MONTH=month;DAY=day;endl;class Person: public Date private: string pid

19、; string sex; string name; string address; Date birthday; public: Person(string p=,string s=,string n=,string a=,int y=1990,int m=1,int d=1):birthday(y,m,d) pid=p; sex=s; name=n; address=a; void showperson() cout身份证:pidendl; cout性别sexendl; cout姓名:nameendl; cout地址:addressendl; cout生日:; showdate(); ;i

20、nt main() Person p1(3326XXXX,男,张3,浙江宁波,1999,02,02); p1.showperson(); return 0;/2. (8分)/*参考程序中不含日期的合法性校验等细节只提供主要知识点参考细节部分由改卷老师酌情给分main函数/2分/类对象定义使用Complex/6分/类定义、构造函数、运算符重载、show函数*/#include #include using namespace std;class Complex private: double real; double imag; public: Complex(double r=0,double

21、 i=0)real=r;imag=i; Complex operator+(Complex c2) Complex cc; cc.real=real+c2.real; cc.imag=imag+c2.imag; return cc; Complex operator-(Complex c2) Complex cc; cc.real=real-c2.real; cc.imag=imag-c2.imag; return cc; void show() cout实部real;虚部imagendl; ;int main() Complex c1,c2(5,6),c3,c4; c3=c1+c2; c4=c1-c2; c3.show(); c4.show(); return 0;

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2