logo资料库

C++期末复习题库.pdf

第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
资料共22页,剩余部分请下载后查看
C++程序设计试题 一、单项选择题 1.对 C++语言和 C 语言的兼容性,描述正确的是( A ) A.C++兼容 C B.C++部分兼容 C C.C++不兼容 C D.C 兼容 C++ 2.在 C++中使用流进行输入输出,其中用于屏幕输出的对象是 ( C ) A. cerr B.cin C. cout D. cfile cerr:标准错误输出; cin:标准输入 3.对使用关键字 new 所开辟的动态存储空间,释放时必须使 用( C ) A. free B. create C. delete D.release 4.如没有使用 private 关键字定义类的数据成员,则默认为 ( A ) A. Private B. public C.protected D.friend 5 . 使 用 值 传 递 方 式 将 实 参 传 给 形 参 , 下 列 说 法 正 确 的 是 ( A ) A.形参是实参的备份 B.实参是形参的备份 C.形参和实参是同一对象 D.形参和实参无联系 6.在函数调用时,如某一默认参数要指明一个特定值,则有 ( A ) A.其之前所有参数都必须赋值 B.其之后所有参数都必须赋
值 C.其前、后所有参数都必须赋值 D.其前、后所有参数都不 必赋值 7.设存在函数 int max(int ,int)返回两参数中较大值,若求 22, 59, 70 三者中最大值,下列表达式不正确的是( C ) A.int m = max(22,max(59,70)); B.int m = max(max(22,59), 70); C.int m = max(22,59,70); D.int m = max(59,max(22,70)); 8.下列哪个类型函数不适合声明为内联函数( A ) A.函数体语句较多 B.函数体语句较少 C.函数执行时间较短 D.函数执行时间过长 9.int Func(int ,int);不可与下列哪个函数构成重载( B ) A. int Func(int, int , int); B.double Func(int,int); C.double Func(double,double) ; D.double Func(int,double); 说明:不能以形参名来区分函数; 不能以函数返回值来区分函数。 必须是形参的个数或者类型不同才能构成函数重载。 10.对类中声明的变量,下列描述中正确的是( C ) A.属于全局变量 B.只属于该类 C.属于该类,某些情况下也可被该类不同实例所共享 D.任何情况下都可被该类所有实例共享 11.类的私有成员可在何处访问( D ) A.通过子类的对象访问 B.本类及子类的成员函数中
C.通过该类对象访问 D.本类的成员函数中 12.如果没有为一个类定义任何构造函数的情况下, 下列描述正 确的是( A ) A.编译器总是自动创建一个不带参数的构造函数 B.这个类没有构造函数 C.这个类不需要构造函数 D.该类不能通过编译 13.一个类可包含析构函数的个数是( B ) A. 0 个 B.1 个 C.至少一个 D. 0 个或多个 只有一个, 多了编译器都不知道调用哪个好。 而构造函数可以有 多个,因为构造函数调用时编译器可以根据变量的类型和数量来 确定调用哪个构造函数 ,而析构函数是系统调用的,不能做到 这种效果。 14. this 指针存在的目的是( B ) A.保证基类公有成员在子类中可以被访问 B.保证每个对象拥有自己的数据成员,但共享处理这些数据成 员的代码 C.保证基类保护成员在子类中可以被访问 D.保证基类私有成员在子类中可以被访问 15.下列关于类的权限的描述错误的是( A ) A.类本身的成员函数只能访问自身的私有成员 B.类的对象只能访问该类的公有成员
C.普通函数不能直接访问类的公有成员,必须通过对象访问 D.一个类可以将另一个类的对象作为成员 16.在编译指令中,宏定义使用哪个指令( B ) A. #include B.#define C.#if D.#else 17.设类 A 将其它类对象作为成员, 则建立 A 类对象时, 下列描 述正确的是( B ) A. A 类构造函数先执行 B.成员构造函数先执行 C.两者并行执行 D.不能确定 类的组合,描述的是一个类内嵌其他类的对象作为成员的情况, 它们之间的关系是一种包含与被包含的关系。 在声明一个组合类的对象时,不仅它自身的构造函数将被调用, 而且还将调用其内嵌对象的构造函数。 这时构造函数的调用顺序 是:(1)按照内嵌对象在组合类的声明中出现的次序, 依次调用内 嵌对象的构造函数; (2)执行本类构造函数的函数体, 析构函数的 调用执行顺序与构造函数刚好相反。 18.下列描述错误的是( A ) A.在创建对象前,静态成员不存在 B.静态成员是类的成员 C.静态成员不能是虚函数 D.静态成员函数不能直接访 问非静态成员 说明:静态成员函数可以直接访问该类的静态数据和函数成员, 而访问非静态成员, 必须通过参数传递方式得到对象名, 然后通 过对象名来访问。
19.对于友元描述正确的是( B ) A.友元是本类的成员函数 B.友元不是本类的成员函数 C.友元不是函数 D.友元不能访问本类私有成员 20.在哪种派生方式中,派生类可以访问基类中的 protected 成 员( B ) A. public 和 private B.public 和 protected C.protected 和 private D.仅 protected 二、填空题 (本大题共 20 小题,每小题 1 分,共 20 分 ) 请在每小题的空格中填上正确答案。错填、不填均无分。 21.设要把一个文件输出流对象 myFile 与文件“ f:\ myText.txt 相 关 联 , 所 用 的 C++ 语 句 是 : _____ myFile.open(“f:\\myText.txt”);_____。 22. C++中 ostream 类的直接基类是 ___ ios类 _____。 23.运算符 [ ]只能用 _____成员 ___运算符来重载, 不能用友 元运算符来重载。 24.定义虚函数所用的关键字是 ___ virtual _____。 25.vector 类中用于返回向量中第 1 个对象的方法是 ___ front( ) _____。 26.在 C++中,利用向量类模板定义一个具有 20 个 char 的向量 E,其元素均被置为字符‘ t ’,实现此操作 的语句是 ___ vectorE(20,‘t’) ____。
27.类的继承是指子类继承基类的 ___数据成员 _____和成员函 数。 28.不同对象可以调用相同名称的函数, 但可导致完全不同的行 为的现象称为 ____多态性 或(类的多态性 )____。 29.___ #include _____指令指示编译器将一个源文件嵌入到带 该指令的源文件之中。 30.设类 A 有成员函数 void Fun(void); 若要定义一个指向类成员函数的指针变量 pafn 来指向 Fun,该指 针变量的声明语句是: ____ void(A::*pafn)(void);____ 。 31.设在程序中使用如下语句申请了一个对象数组: Point * ptr = new Point[2] ; 则在需要释放 ptr 指向的动态数组对象时,所使用的语句是 __ delete[ ]ptr; ______。 32.在保护派生中,基类权限为 Private 的成员在派生类中 __ 不可访问 _____。 33.类 A 有如下成员函数 int A::fun(double x){return (int) x / 2;} int A::fun(int x){return x*2 ;} 设 a 为类 A 的对象,在主函数中有 int s=a.fun(6.0)+a.fun(2),则 执行该语句后, s 的值为 _____7___。 34.对象传送的消息一般由 3 部分组成:接收对象名、调用操作
名和 ____必要的参数 ____。 35.将指向对象的指针作为函数参数,形参是对象指针,实参是 对象的 ____地址值 ____。 36.在使用 string 类的 find 成员函数来检索主串中是否含有指定 的子串时,若在主串中不含指定的子串, find 函数的返回值是 ____ -1____。 37.在 C++中,声明布尔类型变量所用的关键字是 ____ bool ____。 38.执行下列代码 int a=29,b=100; cout < void main( ) {
int x=5,y=6; const int * p= & x; *p=y ; cout<<*p< class f{ private: int x,y; public:f1( ){x=0;y=0;} print( ){cout< class f{ private: int x=0,y=0; public:void f1(int a ,int b){x=a;y=b;} void get( ){cout<
分享到:
收藏