C++练习试卷6及参考答案

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

原运算符功能相符,不能创造新的运算符。 3、简述对话框窗口显示数据库数据的步骤。 4、简述对话框窗口显示图片的步骤。 四、阅读程序,写出运行结果 1. ======================================================== #include <iostream> using namespace std; class Test {public: Test(){}; Test(const Test &t) {cout<<”Object Copy” <<endl;} }; Test fun(Test &u) {Test t=u; return t;} int main() {Test x,y; x=fun(y); return 0; }
2、 ==========================================================
#include <iostream> using namespace std; class BASE {public: ~BASE( ){ cout<<"BASE";} }; class DERIVED: public BASE {public: ~DERIVED( ) { cout<<"DERIVED"<<endl;} }; int main( ) { DERIVED x; return 0 ; }
1、 填空题(每空2分) 1、下面的函数定义是某函数模板能够生成的函数实例 int square(int n) {return n*n;} double square(double n) {return n*n;} 由此可知,该函数模板的定义是 ① ② 2. 要采用“cin,cout”进行输入输出时,必须包含的头文件是 ① 。 3.异常使用三部曲:框定异常( ① 语名块)、定义异常处理( ② 语句块)、抛掷异常(throw语句块)。 4、在类中,成员的访问权限往往不同,缺省的访问权限是 ① ,而在结构体中缺省的访问权限是 ② 。 5. 如果一个派生类只有一个直接基类,则该类的继承方式称为 ① 继承;如果一个派生类同时有多个直接基类,则该类的继承方式称 为 ② 继承。 6、所有的文档类都派生于 ① ,所有的视图类都派生于 ② 。 7. 运算符“+”允许重载为类成员函数,或者非成员函数。若用 operator+(c1, c2)这样的表达式来使用运算符“+”,应将“+”重载为 ① 函数。 8 派生类中的成员函数可以直接访问基类中的公有成员和 ① 成 员。 9、面向对象程序设计的方法是抽象和分类,步骤是: (1) 找出类 ; (2) ① ; (3) ② 。 10、假定Xcs是一个类,该类中一个成员函数的原型为“Xcs * abc();”,则在类外定义时对应的函数头为 ① 。 11、如果异常错误类型为C++的类,并且该类有其基类,则应该将 ① 类的错误处理程序放在前面, ② 类的错误处理程序放在后面。 12. 滚动条类CScrollBar的成员函数规定了滚动条的操作。 设置滚动 条的范围使 用 ① 函数,设置滚动块的位置使用 ② 函数,获取滚动块 的当前位置使用 ③ 函数。 13. 一个双目运算符作为类的成员函数重载时,重载函数的参数表中 有 ① 个参数。 【参考答案】 1. ① template<class T> ② T square(T n){return n*n} 2. ① iostream.h 3. ① try ② catch 4. ① private ② public 5. ① 单 ② 多 6. ① CDocument ② CView 7. ① 友员 8. ① 保护 9. ①描述类和类之间的关系 ②用类来组织程序结构 10. ① Xcs* Xcs::abc(); 11. ① 派生类(子类) ② 基类(父类) 12. ① SetScrollBar ② SetScrollPos ③ GetScrollPos 13. ① 1
3、 =============================================================
#include<iostream.h> class CD {public: ~CD(){cout<<'C'<<endl;} private: char name[80]; }; int main() {CD a,*b,d[2]; return 0;}
4、 =============================================================
#include <iostream.h> class B {public: B(int xx):x(xx){++count; x+=10;} virtual void show() const {cout<<count<<endl<<x<<endl;} protected: static int count; private: int x; }; class D:public B {public: D(int xx,int yy):B(xx),y(yy) {++count; y+=100;} virtual void show() const {cout<<count<<endl<<y<<endl;} private: int y; }; int B::count=0; int main() { B b(8),*ptr; ptr=&b; ptr->show(); ptr=new D(10,20); ptr->show(); delete ptr; return 0; }
C++练习试卷6及参考答案
2011-1Fra Baidu bibliotek10
2、 单项选择题(每小题2分) 1.下面是类Shape的定义: class Shape {public: virtual void Draw()=0;}; 下列关于Shape类的描述中,正确的是 A语句“Shape s;”能够建立Shape的一个对象s B类Shape是虚基 类 C 类Shape中的Draw函数声明有误 D类Shape是抽象类 2. 要定义整型数组x,使之包括初值为O的三个元素,下列语句中错误的 是 A int x[3]={0,0,0}; B int x[]={0}; C static int x[3]={0}; D int x[]={0,0,0}; 3. 面向对象方法中,继承是指 A 一组对象所具有的相似性质 B 一个对象具有另一个对象的 性质 C 各对象之间的共同性质 D 类之间共享属性和操作的机制 4.在类定义的外部,可以被访问的成员有 A 所有类成员 B private或protected的类成员 C public的类成员 D public或private的类成员 5. 下列关于运算符重载的描述中,错误的是 A 可以通过运算符重载在C++中创建新的运算符 B 赋值运算符只能重载为成员函数 C 运算符函数重载为类的成员函数时,第一操作数是该类对象 D 重载类型转换运算符时不需要声明返回类型 6.下列关于对象初始化的叙述中,正确的是 A 定义对象的时候不能对对象进行初始化 B 定义对象之后可以显式地调用构造函数进行初始化 C 定义对象时将自动调用构造函数进行初始化 D 在一个类中必须显式地定义构造函数实现初始化 7.下列关于基类和派生类关系的叙述中,正确的是 A 每个类最多只能有一个直接基类 B 派生类中的成员可以访问基类中的任何成员 C 基类的构造函数必须在派生类的构造函数体中调用 D 派生类除了继承基类的成员,还可以定义新的成员 8.下列关于模板的叙述中,正确的是 A 如果一个类中存在纯虚函数,这个类就是类模板 B 函数模板不能有形式参数表 C 类模板是一种参数化类型的类,是类的生成器 D 类模板中不能包含构造函数 9.在C++中,cin是个 A 类 B 对象 C 模板 D 函数 10.下列关于C++预定义流对象的叙述中,正确的是 A cin是C++预定义的标准输入流对象 B cin是C++预定义的标准输入流类 C cout是C++预定义的标准输入流对象 D cout是C++预定义的标准输入流类 11.某类中有一个无参且无返回值的常成员函数Show,则正确的 Show函数原型 是 A const void Show(); B void const Show(); C void Show()const; D void Show(const); 12.要求通过函数来实现一种不太复杂的功能,并且要求加快执 行速度,选 用 合适。 A. 内联函数; B. 重载函数; C. 递归调用; D. 嵌套调用。 13. 若MyClass是一个类名,且有如下语句序列 MyClass c1,*c2; MyClass *c3=new MyClass; MyClass &c4=c1; 上面的语句序列所定义的类对象的个数是
三、简述题 1、什么是继承? 答:定义类B时,自动得到类A的操作和数据属性,使得程序员只 需定义类A中所没有的新成分就可完成在类B的定义,这样我们称类B继 承了类A,类A派生了类B,A是基类(父类),B是派生类(子类)。 这种机制称为继承。 2、什么是运算符重载? 答:为运算符定义新功能的过程称为运算符重载。运算符重载要与
A 1 B 2 C 3 D 4 14.将前缀运算符“--”重载为非成员函数,下列原型中,能正确用于 类中说明的是 A friend Decr& operator --(Decr&); B Decr operator --( Decr&,int); C Decr& operator --(int); D frlend Decr operator --(Decr&, int); 15.下列叙述中,错误的是 A false是一个逻辑型常量 B "b"是一个字符型常量 C 365是一个int常量 D 3.1415926是一个double常量 16. 要定义一个引用变量p,使之引用类MyClass的一个对象,正确 的定义语句 是 A MyClass p=MyClass; B MyClass p=new MyClass; C MyClass &p=new MyClass; D MyClass a,&p=a; 17. 下列程序段中包含4个函数,其中具有隐含this指针的是 int fun1(); class Test{ public: int fun2(); friend int fun3(); static int fun4(); }; A fun1 B fun2 C fun3 D fun4 18.下列静态数据成员的特性中, 是错误的。 A. 说明静态数据成员时前边要加修饰符static B. 静态数据成员要在类体外进行初始化 C. 静态数据成员不是所有对象所共用的 D. 引用静态数据成员时,要在其名称前加<类名>和作用域运 算符 19. 下列代码声明了3个类 class Person{}; class Student:public Person{}; class Undergraduate:Student{}; 下列关于这些类之间关系的描述中,错误的是 A 类Person是类Undergraduate的基类 B 类Undergraduate从类Student公有继承 C 类Student是类Person的派生类 D 类Undergraduate是类Person的派生类 20.下列关于继承方式的描述中,错误的是 A 如果不显式地指定继承方式,缺省的继承方式是私有 (private) B 采用公有继承方式时,基类中的公有成员在派生类中仍然是 公有成员 C 采用保护继承方式时,基类中的保护成员在派生类中仍然是 保护成员 D 采用私有继承方式时,基类中的私有成员在派生类中仍然是 私有成员 【参考答案】 题号 1 答案 D 题号 11 答案 C 2 B 12 A 3 D 13 B 4 C 14 A 5 A 15 B 6 C 16 D 7 D 17 B 8 C 18 C 9 B 19 B 10 A 20 D
相关文档
最新文档