面向对象程序设计综合练习题a资料_第1页
面向对象程序设计综合练习题a资料_第2页
面向对象程序设计综合练习题a资料_第3页
面向对象程序设计综合练习题a资料_第4页
面向对象程序设计综合练习题a资料_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、单项选择题1- 1C+ 语言是从早期的 C 语言逐步发展演变而来的,与 C 语 言相比,它在求解问题方法上进行的最大改进是( B )。A面向过程B面向对象C安全性D 复用性1- 2 C+ 源程序文件的缺省扩展名为(A )。A. cpp B. exe C. objD. lik1- 3由 C+ 源程序文件编译而成的目标文件的缺省扩展名为 ( C )。A. cpp B. exe C. objD. lik1- 4由 C+ 目标文件连接而成的可执行文件的缺省扩展名为 ( B )。A. cpp B. exe C. objD. lik1- 5编写 C+ 程序一般需经过的几个步骤依次是(B )。A. 编译

2、、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接1- 6用“”运算符从键盘输入多于一个数据时,各数据之间应 使用( D )符号作为分隔符。A空格或逗号B逗号或回车C 逗号或分号D 空格或回车1-7C+ 中声明常量的关键字是(A )。A constB externC publicD enum1- 8以下叙述中正确的是(B )A. 使用 #define 可以为常量定义一个名字,该名字在程序中可 以再赋另外的值B. 使用 const 定义的常量名有类型之分, 其值在程序运行时是 不可改变的C. 在程序中使用内置函数使程序的可读性变差D. 在定义函

3、数时可以在形参表的任何位置给出缺省形参值1- 9下列的符号常变量定义中,错误的定义是(C )。A const M=10;Bconst int M=20;C const char ch; D const bool mark=true;1- 10函数原型语句正确的是( B )。A int Function(void a)B void Function (int);C int Function(a);D void int(double a);1- 11以下正确的函数原型语句是(C )。A double fun(int x,int y)B double fun(int x;int y)C double

4、 fun(int,int);D double fun(int x,y);1- 12下面有关重载函数的说法中正确的是(C )。A重载函数必须具有不同的返回值类型 B重载函数形参个数必须不同 C重载函数必须有不同的形参列表 D重载函数名可以不同 1-13函数重载是指(A )。A. 两个或两个以上的函数取相同的函数名, 但形参的个数或类 型不同B. 两个以上的函数取相同的名字和具有相同的参数个数, 但形 参的类型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名, 并且函数的返回类型相同1- 14采用重载函数的目的是(D )。A 实现共享B减少空间C提高速

5、度D使用方便,提高可读性1- 15以下关于函数模板叙述正确的是(C )。A函数模板也是一个具体类型的函数B函数模板的类型参数与函数的参数是同一个概念C通过使用不同的类型参数,函数模板可以生成不同类型的 函数定义D用函数模板定义的函数没有类型1- 16以下正确的描述是(C )A. 不允许设置参数的默认值B. 设置参数的默认值只能在定义函数时设置C. 设置参数的默认值时,应该设置右边的参数D. 设置参数的默认值时,应该全部参数都设置1- 17( B )是给变量取一个别名,它引入了变量的同义词 A指针B引用C枚举D结构1-18假定变量 名), rx 应定义为(x 定义为 “ int x=5; ”,要

6、使 rx 成为 x 的引用(别 D )。A. int rx=x;B. int rx=&x;C. int *rx=&x; D. int &rx=x;1- 19下列对引用的陈述中不正确的是(C )。A. 每一个引用都是其所引用对象的别名 ,因此必须初始化B. 形式上针对引用的操作实际上作用于它所引用的对象C. 一旦定义了引用, 一切针对其所引用对象的操作只能通过该 引用间接进行D. 不需要单独为引用分配存储空间1- 20下列( C )的调用方式是引用调用。A. 形参和实参都是变量B. 形参是指针,实参是地址值C. 形参是引用,实参是变量D. 形参是变量,实参是地址值1-21在 ( C )情况下适宜

7、采用 inline 定义内置函数。A函数体含有循环语句B函数体含有递归语句C函数代码少、且频繁调用D函数代码多、不常调用1- 22为了提高程序的运行速度, 可将不太复杂的功能用函数实现, 此函数应选择( A )。A 内置函数B重载函数C 递归函数D 函数模板1- 23一个函数功能不太复杂,但要求被频繁调用,选用(A )A 内置函数B重载函数C 递归函数D 嵌套函数1- 24说明内置函数的关键字是(A )。A inlineB virtualC defineD static1- 37对于动态分配内存空间描述正确的是(D )。A使用 new 运算符分配的内存空间的长度必须是常量 Bdelete 运算

8、符可以释放动态的存储空间和静态的存储空间 C用 new 分配的内存空间是不连续的D delete运算符只能以释放由 new 分配的动态存储空间1- 38定义 p 并使 p 指向动态空间中的包含 30 个整数的数组所使 用的定义语句为( A )。A. int *p=new int30;C. int *p=new 30;B. int *p=new int(30);D. *p=new int30;2- 1C+对 C语言作了很多改进, 即从面向过程变成为面向对象 的主要原因是( D )。A增加了一些新的运算符 B允许函数重载,并允许设置缺省参数 C规定函数说明符必须用原型D引进了类和对象的概念2- 2

9、面向对象软件开发中使用的 OOA 表示( A )。A. 面向对象分析B. 面向对象设计C. 面向对象语言D. 面向对象方法2- 3面向对象软件开发中使用的 OOD 表示( B )。A. 面向对象分析 B. 面向对象设计C. 面向对象语言 D. 面向对象方法2- 4 关于面向对象系统分析,下列说法中不正确的是( B )。A. 术语 “面向对象分析 ”可以用缩写 OOA 表示B. 面向对象分析阶段对问题域的描述比设计阶段更详细C. 面向对象分析包括问题域分析和应用分析两个步骤D. 面向对象分析需要识别对象的内部和外部特征2- 5下列关于成员函数特征的描述中, ( A )是错误的。 A成员函数一定是

10、内置函数 B成员函数可以重载 C成员函数可以设置参数的默认值 D成员函数可以是静态的2-6 在关键字 private 后面定义的成员为类的( A )成员。 A. 私有 B. 公用 C. 保护 D. 任何2- 7在一个类的定义中,包含有(C )成员的定义。A. 数据B. 函数C. 数据和函数D. 数据或函数2- 8在类作用域中能够通过直接使用该类的(D )成员名进行访问。A. 私有 B. 公用 C. 保护 D. 任何2-9 在关键字 public 后面定义的成员为类的( B )成员。A. 私有 B. 公用 C. 保护 D. 任何2- 10类中定义的成员默认为( B )访问属性。A. public

11、 B. privateC. protected D. friend2- 11假定 AA 为一个类, a 为该类公有的数据成员, x 为该类的 一个对象,则访问 x 对象中数据成员 a 的格式为( D )x 为该类A. x(a) B. xaC. x-aD. x.a2- 12假定 AA 为一个类, a() 为该类公有的函数成员,的一个对象,则访问 x 对象中函数成员 a() 的格式为( B )。A. x.a B. x.a()C. x-aD. x-a()2- 13假定 AA 为一个类, a 为该类公有的数据成员, px 为指向 该类对象的一个指针,则访问 px 所指对象中数据成员 a 的格式为 (

12、C )。A. px(a) B. pxaC. px-aD. px.a2-14假定 AA 为一个类, a 为该类私有的数据成员, GetValue() 为该类公有函数成员, 它返回 a 的值,x 为该类的一个对象, 则访问 x 对象中数据成员 a 的格式为( D )。A. x.aB. x.a()C. x-GetValue()D. x.GetValue()2- 14假定 AA 为一个类, int a() 为该类的一个成员函数, 若该成 员函数在类定义体外定义,则函数头为( A )。A. int AA:a()B. int AA:a()C. AA:a()D. AA:int a()2- 15若需要把一个类

13、外定义的成员函数指明为内联函数,则必 须把关键字( B )放在函数原型或函数头的前面。A. inB. inlineC. inLineD. InLiner2- 16下列特性不是面向对象程序设计语言所特有的是( D )。A数据封装B继承C多态性D 模板3- 1关于构造函数,下列说法不正确的是(D )。A构造函数名字和类名相同 B构造函数在创建对象时自动执行 C构造函数无任何函数返回类型D构造函数有且只有一个3- 2类的构造函数是在定义该类的一个( C )时被自动调用执行的。A. 成员函数 B. 数据成员C. 对象 D. 友元函数3- 3一个类的构造函数通常被定义为该类的( A )成员。A. 公用

14、B. 保护 C. 私有 D. 友元3- 4 关于构造函数特点描述中,错误的是(A )。A定义构造函数必须指出类型 B构造函数的名字与该类的类名相同 C一个类中可以定义 0 个至多个构造函数 D构造函数是一个成员函数3-5对于一个类的构造函数,其函数名与类名( A )A完全相同C不相同3-6每个类(A只能有一个C可以有多个B基本相同D无关系C )构造函数。B可以有公用的D只可有缺省的3-7对类对象成员的初始化是通过构造函数中给出的( B ) 实现的。A 函数体B参数初始化表C 参数表D参数初始化表或函数体3- 8假定 AB 为一个类,则执行“ AB x;”语句时将自动调用该类 的 ( B ).

15、。A有参构造函数B无参构造函数C复制构造函数D 赋值重载函数3-9假定 AB 为一个类, 则执行 “AB x(a,5); 语”句时将自动调用该 类的 ( A )。A. 带参构造函数 B. 无参构造函数C. 复制构造函数 D. 赋值重载函数3- 10假定 CTest 为一个类,并且有一无默认值的的有参构造函数 和一无参构造函数,则执行“ CTest objTest;”语句时将自动调用该类 的( B )。A有参构造函数C复制构造函数B无参构造函数D赋值构造函数3- 11构造函数不具备的特征是(D )。A构造函数的函数名与类名相同 B构造函数可以重载 C构造函数可以设置默认参数 D构造函数必须指定类

16、型说明3- 12假定一个类的构造函数为 “ Bi(nt ax, int bx): a(ax), b(bx) ”,执行 “B x(1,2),y(3,4);x=y;语句序”列后 x.a 的值为( C )。 A1B2C3D 43- 13假定一个类的构造函数为“ A(int aa, int bb) a=aa;b=aa*bb; ”,则执行 “A x(4,5); 语”句后,x.a 和 x.b 的值分别为 ( C )A. 4 和 5 B. 5 和 4 C. 4 和 20 D. 20 和 53- 14假定一个类的构造函数为 “ A(int aa=1, int bb=0) a=aa; b=bb; ”,则执行 “

17、A x(4);语句”后, x.a和 x.b的值分别为 ( D )。 A. 1 和 0 B. 1 和 4 C. 4 和 1D. 4 和 03- 15假定一个类 AB 只含有一个整型数据成员 a,用户为该类定 义的带参构造函数可以为 ( C )。A. AB() B. AB(): a(0)C. AB(int aa=0) a=aa;D. AB(int aa) 3- 16类的析构函数是一个对象被 ( B )时自动调用的。A. 建立 B. 撤消 C. 赋值 D. 引用3- 17能够释放对象所占资源的是(A )。A. 析构函数B. 数据成员C. 构造函数D. 静态成员函数3-18类的析构函数的作用是 ( D

18、 ).。A一般成员函数B类的初始化C对象的初始化D对象释放后的操作3- 19对于一个类的析构函数,其函数名与类名( C )。A. 完全相同 B. 完全不同C. 只相差一个字符 D. 无关系3- 20一个类的析构函数通常被定义为该类的( C )成员。A. 私有 B. 保护 C. 公用 D. 友元3- 21定义析构函数时,应该注意(C )。A其名与类名完全相同B返回类型是 void 类型C无形参,也不可重载D函数体中必须有 delete 语句 3-22类的析构函数可以带有 ( A )个参数。A. 0 B. 1 C. 2 D. 任意3- 23类的析构函数是在(C )调用的。A 类创建时B创建对象时C

19、 对象生命期结束时D 不自动调用3- 24当一个类对象离开它的作用域时,系统自动调用该类的 ( D ) 。A. 无参构造函数B. 带参构造函数C. 拷贝构造函数D. 析构函数3- 25假定一个类对象数组为 An ,当离开它定义的作用域时, 系 统自动调用该类析构函数的次数为 ( C )。A. 0 B. 1 C. n D. n-13-26假定 AB 为一个类,则执行 “AB a10;语”句时调用该类无 参构造函数的次数为 ( D )。A. 0 B. 1 C. 9 D. 103- 27假定 AA 是一个类, abc 是该类的一个成员函数,则参数 表中隐含的第一个参数的类型为( D )。A. int

20、 B. char C. AA D. AA*3- 28假定 AA 是一个类, abc 是该类的一个成员函数,则参数表 中隐含的第一个参数为( C )。A. abc B. *this C. this D. this&3-29假定 AB 为一个类,则执行 “AB *px=new ABn; ”语句时 将 ( A )。A. 动态分配一个数组B. 动态分配一个对象C. 静态分配一个数组D. 静态分配一个对象3-30设 px 是指向一个类对象的指针变量,则执行“ delete px;语句时,将自动调用该类的 ( C )A. 无参构造函数 B. 带参构造函数C. 析构函数 D. 复制构造函数3- 31 对于在

21、类中定义的静态数据成员,下面正确的说法是( C )。A该类的每一个对象中都有一个静态数据成员B对象创建时产生C在类外进行初始化D既可以在类外初始化,也可以在类内初始化3- 32一个类的静态数据成员所表示属性 ( C )。A. 是类的或对象的属性B. 只是对象的属性C. 只是类的属性D. 类和友元的属性3- 33类的静态成员的访问控制( D )。A. 只允许被定义为 privateB. 只允许被定义为 private 或 protectedC. 只允许被定义为 publicD. 可允许被定义为 private 、protected或 public3- 34静态成员函数对类的数据成员访问( B )

22、。A. 是不允许的B. 只允许是静态数据成员C. 只允许是非静态数据成员D. 可允许是静态数据成员或非静态数据成员3- 35被非静态成员函数访问的类的数据成员 ( A ) 。A. 可以是非静态数据成员或静态数据成员B. 不可能是类的静态数据成员C. 只能是类的非静态数据成员D. 只能是类的静态数据成员3-36静态数据成员的初始化是在( D )中进行的。A. 构造函数B. 任何成员函数C. 所属类D. 全局区3-37由于数据隐藏的需要, 静态数据成员通常被说明为 ( A )。A 私有的B公用的C 保护的D 不可访问的3-38复制构造函数的参数通常是(C )。A无特殊要求B指向对象的指针C自己类对

23、象的常引用D对象 3-39通常,复制构造函数的参数是(C )。A某个对象名B某个对象的成员C某个对象的引用名D某个对象的引用名3-40 关于常成员的描述中,错误的是(B )。A常成员包括常数据成员和常成员函数两种 B常数据成员必须是公用的 C常数据成员要使用构造函数成员初始化列表进行初始化 D常对象只能调用它的常成员函数,不能调用其它的成员函 数3-41引入友元的主要目的是为了(C )。A. 增强数据安全性B. 提高程序的可靠性C. 提高程序的效率和灵活性D. 保证类的封装性3-42一个类的成员函数也可以成为另一个类的友元函数,这时 的友元说明( A )。A. 需加上类域的限定B. 不需加上类

24、域的限定C. 类域的限定可加可不加D. 不需要任何限定3-43类成员的访问权限中, ( C )只能被本类的成员函数和 其友元函数访问。A shareB publicC privateD protected3-44当将一个类 A 或函数 f()说明为另一个类 B 的友元后, 类 A 或函数 f() 能够直接访问类 B 的( D )。A. 只能是公有成员B. 只能是保护成员C. 只能是除私有成员之外的任何成员D. 具有任何权限的成员3-45下面不是描述类的成员函数的是(B析构函数D复制构造函数C )不是类的成员函数。 B析构函数 D复制构造函数A构造函数C友元函数3-46 下列函数中,A构造函数C

25、友元函数)。3-47如果类 A 被说明成类 B 的友元,则( A 类 A 的成员即类 B 的成员 B类 B 的成员即类 A 的成员C 类 A 的成员函数不得访问类 B 的成员D 类 B 不一定是类 A 的友元4- 1 关于运算符重载,下列说法正确的是(C )。A. 重载时,运算符的优先级可以改变。B. 重载时,运算符的结合性可以改变。C. 重载时,运算符的功能可以改变。D. 重载时,运算符的操作数个数可以改变。4- 2 下列关于运算符重载的描述中,错误的是(B )A运算符重载不可以改变操作数的个数B运算符重载不可以改变运算符的功能C运算符重载不可以改变结合方向D运算符重载不可以改变运算优先级4

26、- 3关于运算符重载,下列说法正确的是(B )。A所有运算符都可以重载B通过重载,可以使运算符应用于自定义的数据类型C通过重载,可以创建原来没有的运算符号D通过重载,可以改变运算符的优先级4- 4在一个类中可以对一个运算符进行(D )重载。A1 种B2 种以下C3 种以上D多种4- 5不能参与重载的运算符是(A )。A 类B函数C 函数模板D 运算符4- 6在重载一个运算符时,其参数表中没有任何参数,这表明该- 10 - 运算符是( B )。A. 作为友元函数重载的 1 元运算符B. 作为成员函数重载的 1 元运算符C. 作为友元函数重载的 2 元运算符D. 作为成员函数重载的 2 元运算符4

27、- 7在成员函数中进行双目运算符重载时,其参数表中应带有 ( B )个参数。A. 0 B. 1 C. 2 D. 34- 8双目运算符重载为普通函数时,其参数表中应带有(C )个参数。A. 0 B. 1 C. 2 D. 34- 9如果表达式 a+b 中的 “+”是作为成员函数重载的运算符,若 采用运算符函数调用格式,则可表示为( A )。A. a.operator+(b) B. b.operator+(a)C. operator+(a,b) D. operator(a+b)4- 10如果表达式 a=b 中的 “ =”是作为普通函数重载的运算 符,若采用运算符函数调用格式,则可表示为( C )。A

28、. a.operator=(b)B. b.operator=(a)C. operator=(a,b)D. operator=(b,a)4- 11如果表达式 +a 中的 “+”是作为成员函数重载的运算符, 若采用运算符函数调用格式,则可表示为( D )。A. a.operator+(1) B. operator+(a)C. operator+(a,1) D. a.operator+()4- 12在重载一运算符时,若运算符函数的形参表中没有参数,则 不可能的情况是( D )A. 该运算符是一个单目运算符。B. 该运算符函数有一个隐含的参数this。C. 该运算符函数是类的成员函数。D. 该运算符函

29、数是类的友元函数。4- 13关于插入运算符 a=3; c1.A-display()5-21当派生类中有和基类一样名字的成员时, 一般来说,( B )A. 将产生二义性B. 派生类的同名成员将覆盖基类的成员C. 是不能允许的D. 基类的同名成员将覆盖派生类的成员5-22 C+ 中的虚基类机制可以保证:(D )。A. 限定基类只通过一条路径派生出派生类B. 允许基类通过多条路径派生出派生类, 派生类也就能多次继 承该基类C. 当一个类多次间接从基类派生以后, 派生类对象能保留多份 间接基类的成员D. 当一个类多次间接从基类派生以后,其基类只被一次继承5-23下列虚基类的声明中正确的是(D )。A

30、class virtual B:public AB virtual class B:public AC class B:public A virtualD class B: virtual public A5-24若类 A 和类 B 的定义如下:class Aint i,j;public:A(int m,int n):i(m),j(n)int Geti()return i;class B:public Aint k;public:B(int m,int n,int u):A(m,n),k(u)void Make()k=i*j;int main()- 15 -B b(1,2,3); return

31、 0; 则上述定义中, ( A )是非法的表达式。 A k=i*j;Bint k;C return i;D void Make()5-25以下说法中,错误的是(D )A派生类对象可以向基类对象赋值 B派生类对象可以替代基类对象向基类对象的引用进行赋 值或初始化C如果函数的参数是基类对象或基类对象的引用,实参可 以用子对象的实参D可以用基类对象的指针指向派生类对象,并访问派生类 中的全部成员6- 1面向对象方法的多态性是指(C )。A. 一个类可以派生出多个特殊类B. 一个对象在不同的运行环境中可以有不同的变体C. 针对一消息,不同的对象可以以适合自身的方式加以响应D. 一个对象可以是由多个其他

32、对象组合而成的6- 2 从系统实现的角度看, 多态性分为静态多态性和动态多态性。 以下说法错误的是( C )。A静态多态性是编译时的多态性 B函数重载实现的多态性是静态多态性 C通过虚函数实现的多态性是静态多态性 D动态多态性是运行时的多态性6- 3关于消息,下列说法中不正确的是(B )。A. 发送消息的对象请求服务,接受消息的对象提供服务B. 消息的发送者必须了解消息的接收者如何响应消息C. 在 C+ 中,消息的发送具体体现为对接收消息的对象的某 个函数的调用D. 每个对象只能接收某些特定格式的消息6- 4编译时的多态性使用什么获得?(A )A 重载函数B继承C虚函数DB和 C6- 5运行时

33、的多态性使用什么获得?(C )A 重载函数B继承- 16 -C虚函数DB和 C6- 6虚函数的定义是在基类中进行的,定义时需要冠以关键字 ( C )。A. staticB. friendC. virtual D. public6- 7 C+编译系统确定调用是具体对象的过程称为关联。C+ 有( B )关联。A1种B2 种C3种D4种6- 8 调用一个成员函数时,使用动态关联的情况是(B )。A通过对象调用一虚函数 B通过指针或引用调用一虚函数 C通过对象调用一静态函数 D通过指针或引用调用一静态函数6- 9C+ 类体系中,不能被派生继承的有(C )。A转换函数B构造函数C虚函数D 静态成员函数6

34、-10C+ 语言建立类族是通过(B )。A类的嵌套B类的继承C虚函数D 抽象类6- 11在下面的 4 个关键字中, ( A )是用来说明虚函数的。 A virtualB publicC protected D private6- 12实现运行时的多态性要使用(D )。A 重载函数B析构函数C 构造函数D 虚函数6- 13关于纯虚函数,下列说法不正确的是(C )。A纯虚函数是在声明虚函数时被初始化为0 的函数B纯虚函数没有函数体 C纯虚函数可以被调用D如果在一个类中声明了纯虚函数,该虚函数中在派生类中仍 有可能为虚函数6- 14如果一个类至少有一个纯虚函数,那么该类称为( A ).。A抽象类B虚

35、基类C派生类D 以上都不对7-1C+ 的输入输出不包括( D )。A标准的输入输出B文件的输入输出C字符串输入输出- 17 -D显示屏和打印机的输入输出7- 2下面的类中, ( C )不是由抽象基类 ios 直接派生出来的。 A istreamB ostreamC iostreamD fstreambase7-3在 C+ 中,抽象基类 ios直接派生出( D )。A istrean, ostream, ifstream,ofstreamB istrean, ostream, istrstream,ostrstreamC istrean, ostream, iostreamD istrean,

36、ostream, fstreambase,strstreambase7- 4cin 是某个类的标准对象,该类是(B )。A ostreamB istreamC stdoutD stdin7-5 cout 是某个类的标准对象,该类是(A )。A ostreamB istreamC stdoutD stdin7- 6关于 cout 流对象,以下说法不正确的是(D )。A cout 是 ostream 流类对象B用“ cout ”输出数据时,不须考虑数据是什么类型C当向 cout流插入一个 endl 时,输出换行D 用“ cout”可以直接输出用户声明的类型的数据。7-7在 iostream文件中定

37、义了 4 种流对象,它们是(A )。A cin, cout, cerr, clogB cin, cout, cerr, putC cin, cout, put, getD cin, cout, cerr, get7-8在 C+ 中串流类是在头文件 strstream.h 中定义的 ,下列不属 于串流类的是 ( C )。A. strstream B. ostrstreamC. ofstream D. istrstream7- 9在 C+程序中使用的 cin 标识符是系统类库中定义的 ( A ) 类中的一个对象。A. istreamB. ostreamC. iostreamD. fstream7-

38、10在 C+ 程序中使用的 cout标识符是系统类库中定义的 B )类中的一个对象。A. istream B. ostreamC. iostream D. fstream 7-11以下的函数中, ( AA cout.put(a)C cin.get(ch)不是用于字符输入的。B cin.get()D cin.get(ch,10, n)- 18 -7- 12关于文件,以下说法不正确的是(C )。A用户常用的文件有程序文件和数据文件两大类 B根据数据的组织形式,文件可分为ASCII 文件和二进制文件C对于字符信息,用 ASCII 文件输出和用二进制文件输出, 其形式是不同的D对于数值数据,用 ASC

39、II 文件和用二进制文件所占内存空 间是不同的8- 1以下说法中,正确的是( C )。 A编译系统能发现语法错误,也能发现运行错误 B程序能通过编译,也能运行,就能得到正确的运行结果 C程序能通过编译,也能运行,不一定能得到正确的运行结 果D发现运行错误比发现编译错误较容易8- 2 C+处理异常的机制有 3 部分组成,即( B )。 A检查( try )、捕捉( catch)和纠错( error correction ) B检查( try )、抛出( throy )和捕捉( catch) C检查( try )、捕捉( catch)和处理( heandl) D检查( try )、抛出( thro

40、y)和处理( heandl)8- 3关于异常处理,以下说法不正确的是( C )。A 被检测的函数必须放在 try 块中 B try 块和 catch 块作为一个整体出现 Ccatch 既要检查所捕获的异常信息的类型,也检查它们的值 D如果 throw 抛出的异常信息找不到与之匹配的catch 块,程序终止运行8- 4关于命名空间,以下说法不正确的是( D )。 A命名空间实际上是一个由程序设计者命名的内存区域 B命名空间的作用是建立一些互相分隔的作用域,以免产生 名字冲突C全局变量独立于所有有名的命名空间之外,不需声明命名 空间D不能在一个命名空间内再定义一个命名空间二、填空题1-1 C+ 预

41、定义的标准流包括cin 、 cout 、cerr 和clog。1-2 要把 PI=3.14159 定义为常变量,定义语句是 const float- 19 -PI=3.14259 。1- 3重载函数在函数类型或参数个数上不同,但 函数名 相 同。1- 4函数重载时,编译系统会根据 形参的类型 或 形参的 个数 来区分,与返回类型无关。1-5所有的函数模板都是以template 关键字和一个形参表开头的。1-6设函数 max 是由函数模板实现的, 并且 max(3.5,5) 和 max(2,5) 都是正确的函数调用,则此函数模板具有 2 个类型参数。1-7如果一个函数既作为重载函数,又作为有默认

42、值的函数,当 调用函数时如果少写了一个参数,会出现 二义性 。1-8引用通常用作函数的 参数 和返回值。1-9、 C+ 语言的函数参数传递方式有 传值 和 传址 。1-10 要把一个函数指定为一个内置函数, 有在函数首行的左端加一 个关键字 inline 。1-11在 C+ 中,用动态分配 /撤消内存运算符new 和 delete分别取代 C 中的 malloc 和 free 函数。1-12 New的功能是 动态申请 内存空间, delete 的功能是 释放由 new 申请的 内存空间。1-13使用函数模板的方法是先说明函数模板,然后实例化成相应的 模板函数 进行调用、执行。2- 1对象的三大

43、特征是封装 、 继承 和 多态 。2- 2对象的三大基本特性是多态性、继承 、封装性。2- 3 在 C+ 类中可以包含公共 、 保护 和私有 三种具有不同访问控制权的成员。2-4如果在类的定义中既不指定 private ,也不指定 public,则系 统默认为是 私有的( private ) 。2- 5如果在类外定义成员函数,必须在函数名前加上类名和作用域限定符“ :” 。2- 6在以下程序段的空白处填上合适的语句:Class Timepublic:Int hour;Int minute; ;Time t,*pP=&t ;- 20 -Couthour ; /输出 p 指向的对象中的成员 hou

44、r2- 7类的具体表现是通过创建 对象 来操作的。3- 1构造函数的作用是处理对象的初始化 。3- 2析构函数的作用是在撤消对象占用的内存之前完成一些清理工作 。3- 3如果一个类的名称是 Student,则它的析构函数名为 Student() 。3- 4一个类可以有多 个构造函数,有 一 个析构函数。3- 5每一个成员函数都包含一个特殊的指针,这个指针称为this ,它是指向本类对象的指针,它的值是当前被调用的成员函数 所在对象的的 起始地址 。3- 6如果要在定义对象时指定对象为常对象,应在对象名之前加 上关键字 const 。3-7一个 const 对象只能访问const 成员函数。3-

45、8常成员函数可以 访问常对象中的数据成员, 不允许修改常对象中成员函数的值。3-9 若希望用一个已有对象构造另一个同类型的对象,可以使用 复制构造函数 来实现。3-10静态成员( static)属于类 ,而不属于 任何一个对象 ,它被同一个类的所有对象共享。3-11由 static 修饰的数据成员为该类的所有对象共享 。3-12静态成员函数是类的成员,友元 函数不是类的成员。3-13C+ 类的组成包括数据成员和成员函数 ,友元 不是 (是、不是)该类的成员函数。3-14 友元函数是用关键字friend 修饰的非成员函数。3-15使用友元函数是为了提高程序效率。且节约了调用类的成员函数 的开销。

46、3-16假定 AB 为一个类,则执行“ AB a10; ”语句时,系统自动 调用该类的构造函数的次数为 10 。3-17复制构造函数用它所在的类的引用 作为参数。4- 1运算符重载应保持原来的优先级 、 结合性 和运算顺序 。4- 2重载运算符必须和用户定义的自定义类型的对象一起使用,- 21 -其参数至少应有一个是 类对象(或类对象的引用)。4- 3重载双目运算符 “ +”,如果作为类成员函数, 它应有 1 个 参数;如果作为友元函数,它应有 2 个参数。4- 4在 C+中,一般将单目运算符重载为成员 函数, 将双目运算符重载为 友元 函数。4- 6 重载运算符的含义必须清楚,不能有二义性 。4-7重载运算符“ ”的函数名为operator ”的函数的第一个参数和函数的类型 必须是 istream& 类型,第二个参数是 是要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论