面向对象程序设计综合练习题a资料.docx

上传人:b****7 文档编号:10538875 上传时间:2023-02-21 格式:DOCX 页数:81 大小:47.93KB
下载 相关 举报
面向对象程序设计综合练习题a资料.docx_第1页
第1页 / 共81页
面向对象程序设计综合练习题a资料.docx_第2页
第2页 / 共81页
面向对象程序设计综合练习题a资料.docx_第3页
第3页 / 共81页
面向对象程序设计综合练习题a资料.docx_第4页
第4页 / 共81页
面向对象程序设计综合练习题a资料.docx_第5页
第5页 / 共81页
点击查看更多>>
下载资源
资源描述

面向对象程序设计综合练习题a资料.docx

《面向对象程序设计综合练习题a资料.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计综合练习题a资料.docx(81页珍藏版)》请在冰豆网上搜索。

面向对象程序设计综合练习题a资料.docx

面向对象程序设计综合练习题a资料

一、单项选择题

1-1.C++语言是从早期的C语言逐步发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是(B)。

A.面向过程B.面向对象

C.安全性D.复用性

1-2.C++源程序文件的缺省扩展名为(A)。

A.cpp      B.exe      C.obj      D.lik

1-3.由C++源程序文件编译而成的目标文件的缺省扩展名为(C)。

A.cpp      B.exe      C.obj      D.lik

1-4.由C++目标文件连接而成的可执行文件的缺省扩展名为(B)。

A.cpp      B.exe      C.obj      D.lik

1-5.编写C++程序一般需经过的几个步骤依次是(B)。

A.编译、编辑、连接、调试

B.编辑、编译、连接、调试

C.编译、调试、编辑、连接

D.编辑、调试、编辑、连接

1-6.用“>>”运算符从键盘输入多于一个数据时,各数据之间应使用(D)符号作为分隔符。

A.空格或逗号B.逗号或回车

C.逗号或分号D.空格或回车

1-7.C++中声明常量的关键字是(A)。

A.constB.extern

C.publicD.enum

1-8.以下叙述中正确的是(B)

 A.使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值

       B.使用const定义的常量名有类型之分,其值在程序运行时是不可改变的

       C.在程序中使用内置函数使程序的可读性变差

       D.在定义函数时可以在形参表的任何位置给出缺省形参值

1-9.下列的符号常变量定义中,错误的定义是(C)。

A.constM=10;        B.constintM=20;

C.constcharch;     D.constboolmark=true;

1-10.函数原型语句正确的是(B)。

A.intFunction(voida)

B.voidFunction(int);

C.intFunction(a); 

D.voidint(doublea);

1-11.以下正确的函数原型语句是(C)。

       A.doublefun(intx,inty)       

B.doublefun(intx;inty)

       C.doublefun(int,int);       

D.doublefun(intx,y);

1-12.下面有关重载函数的说法中正确的是(C)。

A.重载函数必须具有不同的返回值类型

B.重载函数形参个数必须不同

C.重载函数必须有不同的形参列表

D.重载函数名可以不同

1-13.函数重载是指(A)。

A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同

    B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同

C.两个以上的函数名字不同,但形参的个数或类型相同

    D.两个以上的函数取相同的函数名,并且函数的返回类型相同

1-14.采用重载函数的目的是(D)。

A.实现共享B.减少空间

C.提高速度 D.使用方便,提高可读性

1-15.以下关于函数模板叙述正确的是(C)。

A.函数模板也是一个具体类型的函数

B.函数模板的类型参数与函数的参数是同一个概念

C.通过使用不同的类型参数,函数模板可以生成不同类型的函数定义

D.用函数模板定义的函数没有类型

1-16.以下正确的描述是(  C )。

A.不允许设置参数的默认值

B.设置参数的默认值只能在定义函数时设置

C.设置参数的默认值时,应该设置右边的参数

D.设置参数的默认值时,应该全部参数都设置

1-17.(B)是给变量取一个别名,它引入了变量的同义词。

A.指针B.引用

C.枚举D.结构

1-18.假定变量x定义为“intx=5;”,要使rx成为x的引用(别名),rx应定义为(  D)。

       A.intrx=x;    B.intrx=&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)情况下适宜采用inline定义内置函数。

A.函数体含有循环语句

B.函数体含有递归语句

C.函数代码少、且频繁调用

D.函数代码多、不常调用

1-22.为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择(A)。

A.内置函数B.重载函数

C.递归函数D.函数模板

1-23.一个函数功能不太复杂,但要求被频繁调用,选用(A)

A.内置函数B.重载函数

C.递归函数D.嵌套函数

1-24.说明内置函数的关键字是(A)。

A.inlineB.virtual

C.defineD.static

1-37.对于动态分配内存空间描述正确的是(D)。

A.使用new运算符分配的内存空间的长度必须是常量

B.delete运算符可以释放动态的存储空间和静态的存储空间

C.用new分配的内存空间是不连续的

D.delete运算符只能以释放由new分配的动态存储空间

1-38.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为(  A)。

A.int*p=newint[30];       B.int*p=newint(30);

C.int*p=new[30];          D.*p=newint[30];

2-1.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是(D)。

A.增加了一些新的运算符

B.允许函数重载,并允许设置缺省参数

C.规定函数说明符必须用原型

D.引进了类和对象的概念

   2-2.面向对象软件开发中使用的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.成员函数一定是内置函数

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     B.private     C.protected     D.friend

2-11.假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为(  D)。

       A.x(a)     B.x[a]     C.x->a     D.x.a

2-12.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为(  B)。

       A.x.a     B.x.a()     C.x->a     D.x->a()

2-13.假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为(  C)。

       A.px(a)     B.px[a]     C.px->a     D.px.a

2-14.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为(  D)。

       A.x.a     B.x.a()     

C.x->GetValue()     D.x.GetValue()

2-14.假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为(  A)。

       A.intAA:

:

a()     B.intAA:

a()

C.AA:

:

a()         D.AA:

:

inta()

2-15.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字(  B)放在函数原型或函数头的前面。

       A.in     B.inline     C.inLine     D.InLiner

2-16.下列特性不是面向对象程序设计语言所特有的是(D)。

A.数据封装B.继承

C.多态性D.模板

3-1.关于构造函数,下列说法不正确的是(D)。

A.构造函数名字和类名相同

B.构造函数在创建对象时自动执行

C.构造函数无任何函数返回类型

D.构造函数有且只有一个

3-2.类的构造函数是在定义该类的一个(   C)时被自动调用执行的。

A.成员函数     B.数据成员     

C.对象     D.友元函数

3-3.一个类的构造函数通常被定义为该类的(  A )成员。

A.公用     B.保护     C.私有     D.友元

3-4.关于构造函数特点描述中,错误的是(A)。

A.定义构造函数必须指出类型

B.构造函数的名字与该类的类名相同

C.一个类中可以定义0个至多个构造函数

D.构造函数是一个成员函数

3-5.对于一个类的构造函数,其函数名与类名(A)。

A.完全相同B.基本相同

C.不相同 D.无关系

3-6.每个类(C)构造函数。

A.只能有一个B.可以有公用的

C.可以有多个D.只可有缺省的

3-7.对类对象成员的初始化是通过构造函数中给出的(B)实现的。

A.函数体B.参数初始化表

C.参数表 D.参数初始化表或函数体

3-8.假定AB为一个类,则执行“ABx;”语句时将自动调用该类的(B).。

A.有参构造函数B.无参构造函数

C.复制构造函数D.赋值重载函数

3-9.假定AB为一个类,则执行“ABx(a,5);”语句时将自动调用该类的(  A )。

A.带参构造函数 B.无参构造函数  

C.复制构造函数  D.赋值重载函数

3-10.假定CTest为一个类,并且有一无默认值的的有参构造函数和一无参构造函数,则执行“CTestobjTest;”语句时将自动调用该类的(B)。

A.有参构造函数B.无参构造函数

C.复制构造函数D.赋值构造函数

3-11.构造函数不具备的特征是(D)。

A.构造函数的函数名与类名相同

B.构造函数可以重载

C.构造函数可以设置默认参数

D.构造函数必须指定类型说明

3-12.假定一个类的构造函数为“B(intax,intbx):

a(ax),b(bx){}”,执行“Bx(1,2),y(3,4);x=y;”语句序列后x.a的值为(C)。

A.1B.2C.3 D.4

3-13.假定一个类的构造函数为“A(intaa,intbb){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和5

3-14.假定一个类的构造函数为“A(intaa=1,intbb=0){a=aa;b=bb;}”,则执行“Ax(4);”语句后,x.a和x.b的值分别为(  D )。

A.1和0    B.1和4     C.4和1      D.4和0

3-15.假定一个类AB只含有一个整型数据成员a,用户为该类定义的带参构造函数可以为(   C)。

A.AB(){}                  B.AB():

a(0){}

C.AB(intaa=0){a=aa;}     D.AB(intaa){}

3-16.类的析构函数是一个对象被(  B )时自动调用的。

A.建立     B.撤消     C.赋值       D.引用

3-17.能够释放对象所占资源的是(A)。

A.析构函数     B.数据成员    

C.构造函数    D.静态成员函数

3-18.类的析构函数的作用是(D).。

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.对象生命期结束时D.不自动调用

3-24.当一个类对象离开它的作用域时,系统自动调用该类的(  D )。

A.无参构造函数   B.带参构造函数   

C.拷贝构造函数 D.析构函数

3-25.假定一个类对象数组为A[n],当离开它定义的作用域时,系统自动调用该类析构函数的次数为(   C)。

A.0     B.1     C.n     D.n-1

3-26.假定AB为一个类,则执行“ABa[10];”语句时调用该类无参构造函数的次数为(   D)。

A.0     B.1     C.9     D.10

3-27.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数的类型为(  D)。

       A.int     B.char     C.AA     D.AA*

   3-28.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为(  C)。

       A.abc     B.*this     C.this     D.this&

3-29.假定AB为一个类,则执行“AB*px=newAB[n];”语句时将(  A )。

A.动态分配一个数组     B.动态分配一个对象

C.静态分配一个数组     D.静态分配一个对象

3-30.设px是指向一个类对象的指针变量,则执行“deletepx;”语句时,将自动调用该类的(  C )

A.无参构造函数   B.带参构造函数   

C.析构函数   D.复制构造函数

3-31.对于在类中定义的静态数据成员,下面正确的说法是(C)。

A.该类的每一个对象中都有一个静态数据成员

B.对象创建时产生

C.在类外进行初始化

D.既可以在类外初始化,也可以在类内初始化

3-32.一个类的静态数据成员所表示属性(  C)。

A.是类的或对象的属性         B.只是对象的属性

C.只是类的属性               D.类和友元的属性

3-33.类的静态成员的访问控制(  D)。

A.只允许被定义为private

B.只允许被定义为private或protected

C.只允许被定义为public

D.可允许被定义为private、protected或public

3-34.静态成员函数对类的数据成员访问(  B )。

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.自己类对象的常引用

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.不需加上类域的限定

C.类域的限定可加可不加       

D.不需要任何限定

3-43.类成员的访问权限中,(C)只能被本类的成员函数和其友元函数访问。

A.shareB.public

C.privateD.protected

3-44.当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的(   D)。

A.只能是公有成员                     

B.只能是保护成员

C.只能是除私有成员之外的任何成员     

D.具有任何权限的成员

3-45.下面不是描述类的成员函数的是(C)。

A.构造函数B.析构函数

C.友元函数D.复制构造函数

3-46.下列函数中,(C)不是类的成员函数。

A.构造函数B.析构函数

C.友元函数D.复制构造函数

3-47.如果类A被说明成类B的友元,则(D)。

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-3.关于运算符重载,下列说法正确的是(B)。

A.所有运算符都可以重载

B.通过重载,可以使运算符应用于自定义的数据类型

C.通过重载,可以创建原来没有的运算符号

D.通过重载,可以改变运算符的优先级

4-4.在一个类中可以对一个运算符进行(D)重载。

A.1种B.2种以下

C.3种以上D.多种

4-5.不能参与重载的运算符是(A)。

A.类B.函数

C.函数模板D.运算符

4-6.在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是(  B )。

A.作为友元函数重载的1元运算符        

B.作为成员函数重载的1元运算符

C.作为友元函数重载的2元运算符        

D.作为成员函数重载的2元运算符

4-7.在成员函数中进行双目运算符重载时,其参数表中应带有(  B )个参数。

A.0     B.1     C.2     D.3

4-8.双目运算符重载为普通函数时,其参数表中应带有(   C)个参数。

A.0     B.1     C.2     D.3

4-9.如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为(  A)。

A.a.operator+(b)    B.b.operator+(a)

C.operator+(a,b)    D.operator(a+b)

4-10.如果表达式a==b中的“==”是作为普通函数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

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

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