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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(C++语言程序设计期末考试综合练习.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++语言程序设计期末考试综合练习.docx

1、C+语言程序设计期末考试综合练习2018春网院C+语言程序设计期末考试综合练习一一 选择题 1. 编写C+程序一般需经过的几个步骤依次是_. A. 编辑、调试、编译、连接 B. 编译、编辑、连接、运行 C. 编译、调试、编辑、连接 D. 编辑、编译、连接、运行 2在C+语言中,char型数据在内存中的存储形式是_。 A. 反码 B.补码 C. ASCII码 D.原码3.设有定义 int a;float f;double i; 则10+a+i*f值的数据类型是_。 A.int B. double C. float D.不确定4.设char ch; 以下正确的赋值语句是_。 A)ch=583; B

2、) ch=$; C)ch=08; D) ch=xfa;5 在int a5=0,1,3,5;中,数组元素a1的值是_。 A)1 B)0 C)3 D)56.下列表示引用的语句中,_是正确的。 已知:int m=10; A)int &x=m; B)int &y=10; C)int &x D)float &t=&m;7. 决定C+语言中函数的返回值类型的是() A. return语句中的表达式类型 B. 调用该函数时系统随机产生的类型 C. 调用该函数时的主调用函数类型 D. 在定义该函数时所指定的数据类型8.设int m=1,n=2, 则+m=n的结果是_。 A)0 B)1 C)2 D)39. 假定

3、一个类的构造函数为A(int aa,int bb)a=aa+;b=a*+bb;,则执行A x(4,5);语句 后,x.a和x.b的值分别为_. A. 4和5 B. 4和20 C. 4和24 D. 20和510.已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。如果要给m赋值为5,_是正确的。A.A1.p=5B.A1-p=5C.A1.*p=5D.*A1.p=511.在int b3=1,3,2,4,5,6,0;中,数组元素a22的值是_。 A)0 B)5 C)6 D)212.指针可以用来表示数组元素,下列表示中_是错误的。 已知:int a37; A)*(a+1)5 B)*(*a+3)

4、 C)*(*(a+1) D)*(&a00+2)13. 所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体 也就是() A. 类 B. 对象 C. 函数体 D. 数据块14.在int a=3,*p=&A中,*p的值是_。 A)变量a的地址值 B)无意义 C) 变量p的地址值 D)315.已知f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用_是正确的。 A.p=flB.P=A:flC.P=A:fl()D.p=f1()16.假定MyClass为一个类,则执行MyClass a,b(2),*p; 语句时,自动调用该类构造函数_4_次。A)2 B)3

5、C)4 D)517.在C+中,数据封装要解决的问题是_。 A)数据的规范化 B)便于数据转换 C)避免数据丢失 D)防止不同模块之间数据的非法访问18.一个类的友元函数或友元类能够通过成员操作符访问该类的_。 A)私有成员 B)保护成员 C)公用成员 D)所有成员19.已知一个类A,_是指向类A成员函数的指针。假设类有三个公有成员:voidf1(int),void f2(int)和int a。A.A *pB.int A:*pc=&A:aC.void A:*paD.A *pp 20.运算符-*的功能是_。 A用来表示指向对象指针对指向类成员指针的操作 B用来表示对象对指向类成员指针的操作 C用来

6、表示指向对象指针对类成员的操作D用来表示对象类成员的操作21._不是面向对象系统所包含的要素。 A)重载 B)对象 C)类 D)继承22.假定MyClass为一个类,则该类的拷贝初始化构造函数的声明语句为_ 。 A)MyClass&(MyClass x); B)MyClass(MyClass x) C)MyClass(MyClass& x); D)MyClass(MyClass *x)23.已知:类A中一个成员函数说明如下:void Set(A & a); 其中,A & a的含义是_。 A指向类A的指针为a B将a的地址值赋给变量Set Ca是类A的对象引用,用来作函数Set()的形参 D变量

7、A与a按位相与作为函数Set()的参数24.下面对静态数据成员的描述中,正确的是_。 A)静态数据成员是类的所有对象共享的数据 B)类的每个对象都有自己的静态数据成员 C)类的不同对象有不同的静态数据成员值 D)静态数据成员不能通过类的对象调用 25.下列关于对象数组的描述中,_是错误的。 A. 对象数组的下标是从0开始的 B对象数组的数组名是一个常量指针 C对象数组的每个元素是同一个类的对象 D对象数组只能赋初值,而不能在定义后赋值 26.对类的构造函数和析构函数描述正确的是_ 。 A)构造函数可以重载,析构函数不能重载 B)构造函数不能重载,析构函数可以重载 C)构造函数可以重载,析构函数

8、也可以重载 D)构造函数不能重载,析构函数也不能重载27.类的析构函数的作用是_。A)一般成员函数 B)类的初始化 C)对象的初始化 D)删除对象28.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问 权限定义为_。 A)public B)protected C)private D)static29.类MyClass的定义如下:class MyClasspublic: MyClass() value = 0; SetVariable(int i) value = i; private: int value; 则对下列语句序列正确的描述是_。 MyClass *p,my

9、; p=&my; A)语句p=&my;是把对象my赋值给指针变量p B)语句MyClass *p,my;会调用两次类MyClass的构造函数 C)对语句 *p.SetVariable(5)的调用是正确的D)语句p-SetVariable(5)与语句my.SetVariable(5)等价30.对于拷贝构造函数,正确的描述是_。 A)在C+语言中,如果不自定义类的拷贝构造函数,则每个类都有默认的拷贝构造函数 B)必须为每个类定义拷贝构造函数 C)如果要使用拷贝构造函数,则必须在类中先定义 D)当定义了类的构造函数时,如果要使用拷贝构造函数,则必须定义拷贝构造函数31.类MyClass的定义如下:c

10、lass MyClasspublic: MyClass( ) MyClass(int i) value = new int(i); int* value; 若要对 value赋值, 则下面语句正确的是:A) MyClass my; my.value = 1000;B) MyClass my; *my.value = 1000;C) MyClass my; my.*value = 1000;D) MyClass my(lO);32.下面对于友元函数描述正确的是_。 A)友元函数的实现必须在类的内部定义 B)友元函数是类的成员函数 C)友元函数破坏了类的封装性和隐藏性 D)友元函数不能访问类的私有

11、成员33.对于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句应该是_。class MyClasspublic: MyClass(int x) n = x; void SetNum(int nl) n =nl; private: int n;int f( ) MyClass *ptr = new MyClass(45); _A) MyClass(50) B) SetNum(50) C) ptr-SetNum(50) D) ptr-n = 5034.下面是类MyClass的定义,对定义中语句描述正确的是_。class MyClasspublic: void MyClas

12、s(int a) X = a; / int f(int a, int b) / X=a; Y=b; int f(int a, int b, int c = O) / X=a; Y=b; Z=c; static void g() X=10; /private: int X, Y, Z;A语句是类MyClass的构造函数定义B语句和语句实现类成员函数的重载C语句实现对类成员变量X的更新操作D语句和都不正确, 和有二义。35.对于拷贝构造函数和赋值操作的关系,正确的描述是_。 A)拷贝构造函数和赋值操作是完全一样的操作 B)进行赋值操作时,会调用类的拷贝构造函数 C)当调用拷贝构造函数时,类的对象正

13、在被建立并被初始化 D)拷贝构造函数和赋值操作不能在同一个类中被同时定义36.对下列语句正确的描述是 。 const int *x; / int *const x; / A)语句的含义是指针变量x不能更改 B)语句的含义是指针变量x所指向的值不能更改 C)语句的含义是指针变量x不能更改 D)语句和是相同含义的不同定义方式37.有如下定义语句:int a=1,2,3,4,5;,则对语句int *p=a;正确的描述是_。 A)语句int *p=a;定义不正确 B)语句int *p=a;初始化变量p,使其指向数组对象a的第一个元素 C)语句int *p=a;是把a0的值赋给变量p D)语句int *

14、p=a;是把a1的值赋给变量p38.关于new运算符的错误的描述是_。 A)使用运算符new创建对象数组时必须定义初始值 B)使用运算符new创建对象时,会调用类的构造函数 C)运算符new可以用来动态创建对象和对象数组 D)使用new运算符创建的对象可以使用运算符delete删除39. 关于this指针使用说法正确的是() A. 保证每个对象拥有自己的数据成员,但共享处理这些数据的代码 B. 保证基类私有成员在子类中可以被访问。 C. 保证基类保护成员在子类中可以被访问。 D. 保证基类公有成员在子类中可以被访问。二 写出下列程序的运行结果写出下列程序的运行结果1. #include cla

15、ss Tdatepublic: Tdate(int m=11,int d=8,int y=2016) month=m; day=d; year=y; cout month / day / year endl; protected: int month; int day; int year;void main() Tdate aday; Tdate bday(8); Tdate cday(12,7); Tdate dday(7,23,2017);2#include class Sample public: Sample() for (int i=0;i8;i+) cout #; cout end

16、l; Sample (char c) for (int i=0;i12;i+) cout c; cout endl; Sample(int n, char c) for (int i=0;i=n; i+) cout c; cout endl; ;void main() Sample cl,c2(6,B),c3(8,);3#include class Widget public: Widget() -count; Widget() +count; int numWidgets() return count; private: static int count; /静态数据成员;int Widge

17、t:count = 0; /初始化在类体外进行void main() Widget w, x; cout Now there are w.numWidgets() widgets.n; Widget w, x, y, z; cout Now there are w.numWidgets() widgets.n; /退出复合语句时四个对象被destroyed cout Now there are w.numWidgets() widgets.n; Widget y; cout Now there are w.numWidgets() widgets.n;4#include class test

18、int x; public: test(int i=0):x(i) virtual void fun1() cout test:xxendl;class ft:public test int y; public: void fun1()cout ft:y=yendl; ft(int i=0):test(i),y(i);void main() ft ft1(5); void (test:*p)(); p=test:fun1; (ft1.*p)();5#include #include class Point public: /用初始化表列编写构造函数x-x_,y-y_,z-z_。 Point(f

19、loat x=0, float y=0, float z=0): x_(x), y_(y), z_(z) Point(const Point& p) : x_(p.x_), y_(p.y_), z_(p.z_) /形参point为常引用,它所引用的对象不能被更新, /即传给它的实参不能被更新 。 void negate() x_ *= -1; y_ *= -1; z_ *= -1; double norm() return sqrt(x_*x_ + y_*y_ + z_*z_); void print() cout ( x_ , y_ , z_ ); /赋值运算符“=”重载成员函数声明,定义在

20、类的外部 Point& operator=(const Point& point); /关系运算符“=”重载成员函数定义 bool Point:operator=(const Point& point) const /常成员函数,只有它才有资格操作常量和常对象 return x_ = point.x_ & y_ = point.y_ & z_ = point.z_; /关系运算符“!=”重载成员函数定义 bool Point:operator!=(const Point& point) const return x_ != point.x_ | y_ != point.y_ | z_ != p

21、oint.z_; /friend Point operator+(const Point& p1, const Point& p2); Point operator+(const Point& p) return Point(x_+p.x_,y_+p.y_,z_+p.z_); /运算符“-”重载友元函数声明,定义在类的外部 friend Point operator-(const Point& p1, const Point& p2); /算符“”重载友元函数声明,定义在类的外部 friend ostream& operator(ostream& ostr, const Point& poin

22、t); private: float x_, y_, z_;/Point operator+(const Point& p1, const Point& p2)/ return Point(p1.x_+p2.x_,p1.y_+p2.y_,p1.z_+p2.z_);/Point operator-(const Point& p1, const Point& p2) return Point(p1.x_-p2.x_,p1.y_-p2.y_,p1.z_-p2.z_);ostream& operator(ostream& ostr, const Point& point) return ostr (

23、point.x_ , point.y_ , point.z_ );/赋值运算符“=”重载成员函数定义Point& Point:operator=(const Point& point) x_ = point.x_; y_ = point.y_; z_ = point.z_; return *this;void main() Point p(1,-3,4),q(5,2,8),r1,r2; r1=p+q; coutr1r1.norm()endl; r2=p-q+r1; cout r2r2.norm()endl; if(r1=r2)cout r1=r2endl; else cout r1!=r2en

24、dl; 6#include class Point int x,y; public: Point(int x1,int y1) x=x1;y=y1; virtual int area() const return 0; ;class Rect:public Point int l,w; public: Rect(int x1,int y1,int l1,int w1):Point(x1,y1) l=l1;w=w1; virtual int area() const return l*w; ;void fun(Point &p) cout p.area() endl;void main() Re

25、ct rec1(2,5,12,7),rec2(3,9,10,13); Point *base=&rec2; fun (rec1); fun(*base);三、 填空题1程序实现大写字母转换成小写字母。#include void main() char a; _; cina; if(_) a=a+i; coutaendl;2下面的类中定义了一个关于星期的枚举类型,请完成下面的程序。 class MyClasspublic: enum Week Sun,Mon,Tue,Wed,Thur,Fri,Sat ; Week week; void fun(MyClass &my) _= _; /将对象my的

26、week赋值为所定义的枚举类型 /值为3的枚举量 3 #include class Test public:_;Test (int i=0)x=i+x;int Getnum()return Test:x+7;_;void main()Test test;couttest.Getnum()endl;4下面的类定义了拷贝构造函数,请完成该类的定义和实现。class MyClasspublic:MyClass(int xx = 0, int yy = 0) X = xx; Y = yy;_; /拷贝构造函数private: int X, Y;myClass:_ /拷贝构造函数的实现X=_;_; 5 完成下面的类定义。class MyClasspublic: MyClass( ) x = 0; _ int GetNum(_ my);private: int x;int GetNum(_ my) retu

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1