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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

《CC++程序的设计》高起专练习题.docx

1、CC+程序的设计高起专练习题C+程序设计(高起专)练习题一一、单项选择题1.C+是一种( )的程序设计语言。A. 面向对象 B. 即可面向过程,又可面向对象C. 面向过程 D. 面向系统2.在下面有关析构函数特征的描述中,正确的是( )。A. 一个类中可以定义多个析构函数 B. 析构函数名与类名完全相同C. 析构函数不能指定返回类型 D. 析构函数可以有一个或多个参数3.下面对于友元函数描述正确的是( )。A. 友元函数的实现必须在类的部定义 B. 友元函数是类的成员函数C. 友元函数破坏了类的封装性和隐藏性 D. 友元函数不能访问类的私有成员4.下面描述中,表达错误的是( )。 A. 公有继

2、承时基类中的public成员在派生类中仍是public的 B. 公有继承时基类中的private成员在派生类中仍是private的 C. 公有继承时基类中的protected成员在派生类中仍是protected的 D. 保护继承时基类中的public成员在派生类中是private的5.所谓多态性是指( )A. 不同的对象调用不同名称的函数 B. 不同的对象调用相同名称的函数 C. 一个对象调用不同名称的函数 D. 一个对象调用不同名称的对象6.重载赋值操作符时,应声明为( )函数。A. 友元 B. 虚 C. 成员 D. 多态7.下列对模板的声明错误的是( )。A. template B. te

3、mplate C. template D. template 8.下列类中( )不是输入流类istream的派生类。A. ifstream B.istrstream C. iostream D. ofstream9.( )不是构造函数的特征。A. 构造函数的函数名与类名相同 B 构造函数可以重载C. 构造函数可以设置缺省参数 D构造函数必须指定类型说明10.下列语句中错误的是( )。 A. int *p=new int (10); B. int *p=new int10;C. int *p=new int; D. int *p=new int40(0)11. 下列关于虚基类的描述,错误的是(

4、)A. 设置虚基类的目的是为了消除二义性B. 虚基类的构造函数在非虚基类之后调用C. 若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用D. 若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数12.已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中,( )是正确的。A. void print( ) const; B. const void print( );C. void const print( ); D. void print(const);13.在下面有关静态成员函数的描述中,正确的是( )。A. 在静态成员函数中可以使用th

5、is指针 B. 在建立对象前,就可以为静态数据成员赋值C. 静态成员函数在类外定义时,要用static前缀 D. 静态成员函数只能在类外定义14.在下列关键字中,用于说明类中公有成员的是( )。A. public B. private C. protected D. friend15.以下有关继承的叙述正确的是( )。A. 构造函数和析构函数都能被继承B. 派生类是基类的组合C. 派生类对象除了能访问自己的成员以外,不能访问基类中的所有成员D. 基类的公有成员一定能被派生类的对象访问16.下列各种高级语言中,不是面向对象的程序设计语言的是( )。A. C+ B. Java C. VB D. C

6、17.下列说法中正确的是( )。A. 类定义中只能说明函数成员的函数头,不能定义函数体B. 类中的函数成员可以在类体中定义,也可以在类体之外定义C. 类中的函数成员在类体之外定义时必须要与类声明在同一文件中D. 在类体之外定义的函数成员不能操作该类的私有数据成员18.静态数据成员的初始化必须在( )。 A. 类 B. 类外 C. 构造函数 D. 静态成员函数19.使用派生类的主要原因是( )。A. 提高代码的可重用性 B. 提高程序的运行效率C. 加强类的封装性 D. 实现数据的隐藏 20.编译时的多态性通过使用( )实现。 A. 构造函数 B. 虚函数 C. 重载函数 D. 析构函数21.下

7、列关于运算符重载的描述中,正确的是( )。A. 可以改变运算符的目数 B. 可以改变运算符的优先级C. 可以改变运算符的结合性 D. 可以改变运算符的功能22.如有以下模板类定义: Template class sum T a, b;Public:sum (T x, T y); 则在类体外定义构造函数正确的是( )。A. template sum:sum(T x,T y) a=x; b=y; B. template sum:sum(T x,T y) a=x; b=y; C. template sum:sum(T x,T y) a=x; b=y; D. sum:sum(T x,T y) a=x;

8、 b=y; 23.写一个 C+ 文件,要创建一个( )流对象。 A. ifstream B. ofstream C. cin D. cout24.下面有关重载函数的说法中正确的是( )。A. 重载函数必须具有不同的返回值类型; B. 重载函数形参个数必须不同;C. 重载函数必须有不同的形参列表; D. 重载函数名可以不同;25.一个函数功能不太复杂但要求被频繁调用,应选用( )。A. 联函数 B. 重载函数 C. 递归函数 D. 嵌套函数26.关于new运算符的下列描述中,( )是错的。A. 它可以用来动态创建对象和对象数组B. 使用它创建的对象和对象数组可以使用运算符delete删除C. 使

9、用它创建对象时要调用构造函数D. 使用它创建对象数组时必须指定初始值27.可以用p.a的形式访问派生类对象p的基类成员a,其中a是( )。A. 私有继承的公有成员 B. 公有继承的私有成员C. 公有继承的保护成员 D. 公有继承的公有成员28.若有定义“int x=17;”,则语句“coutoctx;”的输出结果是( )。A. 11 B. 0x11 C. 21 D. 02129.已知f1和f2是同一类的两个成员函数,但f1不能直接调用f2,这说明( )。A. f1和f2都是静态函数 B. f1是静态函数,f2不是静态函数C. f1不是静态函数,f2是静态函数 D. f1和f2都不是静态函数30

10、.假设Sample是个类,则语句“Sample a2,*p3;”调用构造函数的次数为( )。A. 0 B. 2 C. 3 D. 531.C+利用( )实现面向对象程序设计的封装性。A. 构造数据类型类 B. 构造数据类型枚举C. 类的派生机制 D. 函数重载与运算符重载32.在声明类时,下面的说确的是( )。A. 可以在类的声明中给数据成员赋初值B. 数据成员的数据类型可以是registerC. private、public、protected可以按任意顺序出现D. 没有用private、public、protected定义的数据成员是公有成员33.假设已经有定义const char* con

11、st name=chen; 下面的语句中正确的是( )。A. name3= a; B. name=lin;C. name=new char5; D. cout37.下面函数模板定义中不正确的是( )Atemplate Btemplate T F(T x) return T+x; T F(T x) return x+x; Ctemplate Dtemplate T F(T x) return x*x; T F(T x) return x1; 二、判断题1.静态的成员函数没有隐含的this指针 ,所以它们只能访问静态的数据成员。( )2.通过类对象可以访问类中所有的成员。( )3.构造函数是可以被

12、派生类继承的。( )4.构造函数和析构函数都可以是虚函数。( )5.只有类中全部函数都为纯虚函数时,该类才被称为抽象类。( )6.对于同一个运算符来说,重载的运算符的优先级比未重载的运算符的优先级高。( )7.一个类的友元一定是另一个类的成员函数。( )8.C+中,对象保存在存中,栈存是自动分配和释放的,而堆存需要用户自己申请和释放。( ) 9.C+不允许定义有默认参数的函数。( )10.构造函数和析构函数都不能重载。( )11.构造函数和析构函数都不可以由程序员调用,只能由系统自动调用。( )12.凡是用inline说明的函数一定是联函数。( )13.友元函数是独立于当前类的外部函数。( )

13、14.静态成员函数与在一般的成员函数一样,都隐含有一个this指针。( )15.C+编译器不能够区分重载的无参函数和缺省参数的函数。( )16.指针和引用都是变量,都占有单独的存空间。( )17.一个类可以定义多个构造函数和多个析构函数。( )18.构造函数是不能说明它的返回值类型的,但可以说明为void类型。( )三、简答题1.什么是封装性?请举例说明。2.什么是函数重载和运算符重载?为什么要使用重载?3.拷贝构造函数在哪几种情况下被调用?4.什么是类?什么是对象?对象与类的关系是什么?5.什么是面向对象程序设计?6.什么是继承性?请举例说明。7.结构struct和类class有什么异同?8

14、.在定义拷贝构造函数时,为什么通常还要定义一个重载的赋值运算符?9.什么是消息?消息具有什么性质?10.若程序员没有定义拷贝构造函数,则编译器自动生成一个缺省的拷贝构造函数,它可能会产生什么问题?四、程序分析题1. 指出下面程序中的1处错误,并说明原因。#include class Point int X,Y; public: Point( )X=0;Y=0; Point(int x=0,int y=0)X=x;Y=y; void display( )coutX,Yendl; ;void main() Point p; p.display();答:2. 指出下面程序中的1处错误,并说明原因。#

15、includeclass CTestpublic: CTest() x=20; private: int x; friend void friend_f(CTest fri);void friend_f(CTest fri) fri.x=55; void main() CTest c1,c2; c1.friend_f(c2);答:3. 写出下面程序的运行结果。#includeclass Test private:int num;public:Test(int n=0)num=n;num+;Test( )cout”Destructor is active,number=”numendl;void

16、 main( )Test x2;cout”Exiting main”endl;答: 4. 写出下面程序的运行结果。#includeclass Testprivate: static int val; int a;public: static int func(); static void sfunc(Test &r);int Test:val=20;int Test:func() val-; return val; void Test:sfunc(Test &r) r.a=25; coutResult3=r.a; void main() coutResultl=Test:func()endl;

17、 Test a; coutResult2=a.func()endl; Test:sfunc(a);答:5指出下列程序中的1处错误,并说明为什么。#includeclass Student char name10; int age; float aver; void printStu();void main() Student p1,p2,p3; p1.age =30; /答:6指出下列程序中的2处错误,并说明为什么。#include class Testpublic: Test(int y=10)data=y; int getData() const return +data; static

18、int getCount() coutData is dataendl; return count; private: int data; static int count;答:7写出下列程序的运行结果。#include iostream.h class test private:int num; float fl; public:test( ); int getint( )return num; float getfloat( )return fl; test( ); ; test:test( ) cout Initalizing default endl; num=0;fl=0.0; te

19、st:test( )cout Destructor is active endl; void main( ) test array2; cout array1.getint( ) array1.getfloat( ) endl; 答:8写出下面程序的运行结果#includeclass Aint a;public:A(int aa=0)a=aa;couta=aendl;class B int b;public:B(int bb=0)b=bb;coutb=bendl;class C:public BA a;public:C( )cout”C default constructor”endl;C(i

20、nt i,int j):a(i),B(j)cout”C constructor”endl; ;void main( )C c1,c2(5,6);答:9. 写出下面程序的输出结果。#include class Aprivate:static int n;int X;public:A(int x=0) X=x; n+; A() n- ; static int GetNum() return n; void print();void A:print() cout n= n , X= Xprint(); A a(34); a.print(); delete p; cout n= A:GetNum()

21、endl;答:10. 写出下面程序的运行结果。#include class A public: int n; ; class B:virtual public A; class C:virtual public A; class D:public B,public C int getn()return B:n; ; void main() D d; d.B:n=10; d.C:n=20; coutd.B:n,d.C:nendl; 答:五、完成程序题1. 请在横线处填上适当的字句,以使程序完整。#include #include math.hclass Point private:double

22、X,Y;_ _Line;public:Point(double x=0, double y=0) X=x; Y=y; Point(Point &p) X=p.X; Y=p.Y; ;class Lineprivate: Point p1,p2;public: Line(Point &xp1, Point &xp2): _ _ double GetLength();double Line:GetLength() double dx=p2.X-p1.X; double dy=p2.Y-p1.Y;return sqrt(dx*dx + dy*dy);void main() Point p1,p2(3,

23、4); Line L1(p1,p2); coutL1.GetLength()endl;2. 设计一个立方体类Box,使它能计算并输出立方体的体积和表面积。 要求: Box类包含三个私有数据成员:a(立方体边长)、volume(体积)和area(表面积);Box类包含有构造函数及seta()(设置立方体边长)、getvolume()(计算体积)、getarea()(计算表面积)和disp()(输出体积和表面积)。3. 下面程序中A是抽象类,为使其输出是:This is class B printing. This is class C printing.请在横线处填写适当容,以使程序完整。#in

24、clude class Apublic: _ _;class B: public Apublic: void printMe() cout This is class B printing. endl;class C: public B void printMe() cout This is class C printing. endl;void print (_ _)a.printMe(); void main ()B b;C c;print (b); print (c); 4. 设计一个复数类Complex,包含实部real和虚部image两个私有数据成员,另有一个重载运算符“+”(用成员

25、函数实现),以实现求两个复数对象之和,和一个重载运算符“”,以实现输出复数类的对象。在主程序中用实例进行测试。5. 请在下面程序的横线处填上适当容,以使程序完整。#include#includeclass Personchar name20;public:Person(char* s)strcpy(name,s);void display( )cout”Name:”nameendl;class Student:public Personint grade;public:Student(char* s, int g): grade=g;void display( ) ;cout”Grade:”gradeendl;void main( )Student s(“周山”,90);s.display( );C+程序设计(高起专)练习题二一、单项选择题1.将客观实体的特征与行为作为不可分割的整体进行程序设计的方法称为( )程序设计。A. 面向应用 B. 面向过程 C. 面向对象 D. 面向系统2.构造函数是在( )时被执行的。A.

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

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