大学计算机C++面向对象技术复习题汇总含答案Word文件下载.docx
- 文档编号:22829228
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:22
- 大小:24.69KB
大学计算机C++面向对象技术复习题汇总含答案Word文件下载.docx
《大学计算机C++面向对象技术复习题汇总含答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《大学计算机C++面向对象技术复习题汇总含答案Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。
x:
y;
}
并定义了inti;
charc;
错误的调用语句是:
A、max(i,i)B、max(c,c)C、max((int)c,i);
D、max(i,c)
11、模板的使用是为了()
A、提高代码的可重用性B、提高代码的运行效率
C、加强类的封装性D、实现多态性
12、设有二个语句:
intx[‘a’];
cin>
>
x;
则编译器认为()
A、说明语句intx[‘a’]错B、二个语句都错
C、语句cin>
x错D、二个语句正确,没有语法错
13、设有语句:
voidf(inta[10],int&
x);
inty[10],*py=y,n;
则对函数f的正确调用语句是()
A、f(py[10],n);
B、f(py,n)C、f(*py,&
n)D、f(py,&
n)
14、在C++中实现封装是借助于()
A、枚举B、类C、数组D、函数
15、对于下面几个函数:
(1)voidf(intx,floaty){……}
(2)intf(inta,floatb){……}
(3)intf(inti,intj){……}
(4)floatk(intx){……}
是重载函数。
A、4个全部B、1和2C、2和3D、3和4
16、使用myFile.open(“Sales.dat”,ios:
:
app);
语句打开文件Sales.dat后,则()
A、使输出追加到文件尾部
B、打开一个文件进行读操作
C、打开一个文件进行读和写操作
D、文件以二进制方式打开,默认时为文本文件
二、填空题
1、面向对象的程序设计有四大特征,它们是抽象、封装、、。
2、结构体类型中的数据和成员函数默认类型为 。
3、C++要求为每个函数建立原型,以说明函数的名称、参数的 和 ,以及函数返回值。
4、在函数说明前加关键字“inline”,则该函数被声明为 函数,其引入的目的是为了消除函数调用时的开销,以提高运行速度。
5、引用变量与被引用变量占有 内存单元。
6、 运算符能够用于访问当前作用域内与局部变量同名的全局变量。
7、#include<
iostream.h>
voids(inta,int&
b){intt=a;
a=b;
b=t;
voidmain(void)
{intx=500,y=1000;
cout<
x<
’\t’<
y<
’\n’;
s(x,y);
cout<
’\n';
}
程序的第一行输出为 ,第二行输出为 。
8、#include<
voidmain(void)
{for(inta=1,b=1;
a<
=5;
a++)
{if(b>
=8)break;
if(b%2==1){b+=7;
continue;
b-=3;
}
cout<
”a=”<
’\n’<
”b=”<
b<
程序输出结果是a=,b=。
9、#include<
intx=100;
{intx=200;
x+=:
{intx=500;
x+=x;
}cout<
10、#include<
voidf(floatx=5,inty=16,charz=‘C’);
voidmain()
{floata=1.6;
intb=2;
charc='
D'
;
f();
f(a);
f(a,b);
f(a,b,c);
voidf(floatx,inty,charz)
{cout<
“x=”<
“y=”<
“z=”<
z<
endl;
程序的第二行输出为 ,第三行输出为 。
11、以下程序的输出结果是。
#include<
chara[]=“ABCDEFGHI”;
char&
f(int);
intmain()
{f(6)=‘X’;
return0;
f(inti)
{returna[i];
12、如果C++程序中使用了:
cout、strcpy,则必须在程序首部包含文件 和 。
13、#include<
iomanip>
voidmain()
{inti=7890;
setw(6)<
i<
14、#include<
{inti=100;
cout.setf(ios:
hex);
”\t”;
dec);
”\n”;
以上程序运行的结果是
第三章类和对象
1、( )不是构造函数的特征。
A、构造函数的函数名与类名相同;
B、构造函数可以重载;
C、构造函数可以设置缺省参数;
D、构造函数必须指定类型说明。
2、下列关于构造函数的描述中,( )是正确的。
A、构造函数可以设置缺省参数;
B、构造函数可以被继承;
C、构造函数可以对静态数据成员进行初始化;
D、构造函数可以说明为虚函数;
3、( )是析构函数的特征。
A、析构函数可以有一个或多个参数;
B、析构函数名与类名不同;
C、析构函数的定义只能在类体内;
D、一个类中只能定义一个析构函数;
4、定义析构函数时,应该注意( )。
A、其函数名与类名完全相同;
B、函数返回类型是void类型;
C、无形参,也不可重载;
D、函数体中必须有delete语句;
5、下列静态数据成员的特性中,( )是错误的。
A、说明静态数据成员时前边要加修饰符static;
B、静态数据成员要在类体外进行初始化;
C、静态数据成员不是所有对象所共用的;
D、引用静态数据成员时,要在其名称前加<
类名>
和作用域运算符;
6、友元的作用是( )。
A、提高程序的运用效率;
B、加强类的封装性;
C、实现数据的隐藏性;
D、增加成员函数的种类;
7、关于成员函数特征的下列描述中,( )是错误的。
A、成员函数一定是内联函数;
B、成员函数可以重载;
C、成员函数可以设置缺省参数值;
D、成员函数可以是静态的;
8、已知:
print()函数是一个类的常成员函数,它无返回值,下列表示中,( )是正确的;
A、voidprint()const;
B、constvoidprint();
C、voidconstprint();
D、voidprint(const);
9、在( )情况下适宜采用inline定义内联函数。
A、函数体含有循环语句;
B、函数体含有递归语句;
C、函数代码小,频繁调用;
D、函数代码多,不常调用;
10、假定AB为一个类,则执行“AB
a(4),b[3],*p[2];
”语句时,自动调用该类构造函数的次数为()。
A、3
B、4
C、6
D、9
11、通常拷贝初始化构造函数的参数是()。
A、某个对象名
B、某个对象的成员名
C、某个对象的引用名
D、某个对象的指针名
12、有关类的说法不正确的是()。
A、类是一种用户自定义的数据类型
B、只有类中的成员函数才能存取类中的私有数据
C、在类中,如果不作特别说明,所有的数据均为私有类型
D、在类中,如果不作特别说明,所有的成员函数均为公有类型
13、在声明类时,下面说法正确的的是()。
A、可以在类的声明中给数据成员赋初值
B、数据成员的类型可以是register
C、public,private,protected这三种属性的成员可以按任意顺序出现
D、没有用public,private,protected定义的成员是公有成员
14、已知:
p是一个指向类A数据成员m的指针,A1是类A的一个对象。
如果要给m赋值为5,()是正确的。
A、A1.p=5
B、A1->
p=5
C、A1.*p=5
D、*A1.p=5
15、已知:
类A中一个成员函数说明如下:
voidSet(A&
a);
其中,A&
a的含义是()。
A、指向类A的指针为a
B、将a的地址值赋给变量Set
C、a是类A的对象引用,用来作函数Set()的形参
D、变量A与a按位相与作为函数Set()的参数
16、下列说明中constchar*ptr;
ptr应该是()。
A、指向字符型常量的指针
B、指向字符的常量指针
C、指向字符变量的指针
D、指向字符串的常量指针
17、采用函数重载的目的在于:
A、实现共享B、减少空间
C、提高速度D、使用方便,提高可读性
18、有关类和对象的说法下列不正确的是()。
A、对象是类的一个实例
B、任何一个对象只能属于一个具体的类
C、一个类只能有一个对象
D、类与对象的关系和数据类型和变量的关系相似
19、有以下类的说明,请指出错误的地方()。
ClassCSample
{
inta=2.5;
A
CSample();
B
public:
CSample(intval);
C
~CSample();
D
};
20、在类的定义形式中,数据成员、成员函数和()组成了类定义体。
A、成员的访问控制信息
B、公有消息
C、私有消息
D、保护消息
1.通常的拷贝初始化构造函数的参数是_________________
2.在C++中函数参数的传递方式有三种,分别是:
__________、__________和__________。
3.任何类中允许有三种访问权限的数据,这三种访问权限分别是__________、__________和__________。
4.类中数据成员和成员函数的默认类型为______________
5.在类内部定义的__________和__________数据不能被不属于该类的成员函数来存取,定义为__________的数据,可以在类外部进行存取。
6.__________是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。
7.一个类中有__________个析构函数。
8.__________成员函数中不能直接引用类中说明的非静态成员。
9.已知类Sample中的一个成员函数说明如下:
voidSet(Sample&
其中,Sample&
a的含意是_________________
10.静态数据成员属于类,可以使用_______________的方式访问静态的数据成员。
11.编译程序将this指针指向_____________。
12.以下程序的执行结果是__________。
#include<
classSample
{public:
Sample(){cout<
“constructore”<
endl;
voidfn(inti)
{staticSamplec;
cout<
“i=”<
i<
voidmain()
{fn(10);
fn(20);
13.以下程序的执行结果是_______________。
classsample
{private:
intn;
staticintk;
public:
sample(inti){n=i;
k++;
};
voiddisp();
voidsample:
disp()
"
n="
<
n<
k="
k<
intsample:
k=0;
{samplea(10),b(20),c(30);
a.disp();
b.disp();
c.disp();
}
14.以下程序的执行结果是_______________
{intx;
voidsetx(inti){x=i;
intputx(){returnx;
voidmain()
{sample*p;
sampleA[3];
A[0].setx(5);
A[1].setx(6);
A[2].setx(7);
for(intj=0;
j<
3;
j++)
{p=&
A[j];
p-->
putx()<
"
;
15.以下程序的执行结果是_______________
#include<
classA
A(){cout<
ConstructingA\n"
~A(){cout<
DestructingA\n"
classB
B(){cout<
ConstructingB\n"
~B(){cout<
DestructingB\n"
main()
{Aa;
Bb;
第四章派生类与继承
一、选择
1、从一个基类派生出的各个类的对象之间
(1)。
A、共享所有数据成员,每个对象还包含基类的所有属性
B、共享部分数据成员,每个对象还包含基类的所有属性
C、不共享任何数据成员,但每个对象还包含基类的所有属性
D、共享部分数据成员和成员函数
2、C++的继承性允许派生类继承基类的
(2)。
A、部分特性,并允许增加新的特性或重定义基类的特性
B、部分特性,但不允许增加新的特性或重定义基类的特性
C、所有特性,并允许增加新的特性或重定义基类的特性
D、所有特性,但不允许增加新的特性或重定义基类的特性
3、对于公有继承,基类的公有和保护成员在派生类中将(3)成员。
A、全部变成公有B、全部变成保护
C、全部变成私有D、仍然相应保持为公有和保护
4、建立包含有类对象成员的派生类对象时,自动调用构造函数的执行顺序依次为(4)的构造函数。
A、自己所属类、对象成员所属类、基类
B、对象成员所属类、基类、自己所属类
C、基类、对象成员所属类、自己所属类
D、基类、自己所属类、对象成员所属类
5、派生类的对象对其基类中(5)可直接访问。
A、公有继承的公有成员B、公有继承的私有成员
C、公有继承的保护成员D、私有继承的以有成员
6、设类B是基类A的派生类,并有语句:
Aaa,*pa=&
aa;
Bbb,*pb=&
bb;
则正确的语句是___(6)__。
A、pb=pa;
B、bb=aa;
C、aa=bb;
D、*pb=*pa;
7、在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是_(7)__.
A、派生类的对象可以赋给基类的对象
B、派生类的对象可以初始化基类的引用
C、派生类的对象可以直接访问基类中的成员
D、派生类的对象的地址可以赋给指向基类的指针
8、若类X和类Y的定义如下:
classX
{inta,b;
voidfx();
};
classY:
publicX
{intc;
voidfy();
voidY:
fy(){c=a*b;
则上述代码中,(8)是非法的语句。
A、voidfx();
B、k=a*b;
C、voidfy();
D、intc;
9、如果一个派生类的基类不止一个,则这种继承称为__(9)__。
A、单继承B、虚继承C、多态继承D、多重继承
10.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:
(10)
。
A、
AB
operator+(AB
a,AB
b)
B、
a)
C、
a)
D、
operator+()
11、下面叙述不正确的是(11)
A、派生类可以使用private派生
B、基类的public成员在派生类中仍然是public
C、对基类成员的访问必须是无二义性的
D、赋值兼容原则也适合多重继承的组合
12、下面叙述不正确的是(12)
A、基类的protected成员在派生类中仍然是protected
B、基类的protected成员在public派生类中仍然是protected
C、基类的protected成员在private派生类中仍然是private
D、对基类成员的访问必须是无二义性的
13、下面叙述不正确的是(13)
A、成员的访问能力在private派生类中和public派生类中仍是不同的
B、基类的private成员在public派生类中不可访问
C、赋值兼容规则不适合于多重继承的组合
D、public基类成员在protected派生中是protected
14、下面叙述正确的是(14)
A、基类的对象可以赋给派生类
B、只要是基类的对象,都可以赋给由它派生的任一个派生类对象
C、只有该基类直接派生出来的类的对象才可以赋给该基类的对象
D、公有派生类的对象可以赋给基类的对象
15以下程序的输出结果为是(15)。
classA
intn;
classB:
virtualpublicA{};
classC:
classD:
publicB,publicC
{intgetn(){returnB:
n;
}};
voidmain()
{Dd;
d.B:
n=10;
d.C:
n=20;
d.B:
n<
"
d.C:
A、10,20B、20,20C、10,10D、输出有二义性,不确定
1、在C++中派生类时,可以有
(1)、
(2)和(3)三种不同的方式。
2、公有派生类不能访问基类的(4)成员,但是派生类可以访问基类的(5)成员和(6)成员。
3、构造函数不能被继承,因此,派生类的构造函数必须通过调用(7)构造函数进行初始化基类的对象。
4、保护派生具有双重作用:
对(8),具有公有性,对其他外部,具有(9)。
5、在多重派生中,要使公共基类在派生类中只有一个拷贝,必须将该基类说明为(10)。
第五章多态性
一、单选题
1、下列运算符中,______运算符在C++中不能重载。
A、?
:
B、+C、—D、<
=
2、下列运算符中,______运算符在C++中不能重载。
A、>
B、[]C、:
:
D、<
3、在C++中,通常重载运算符的成员函数称为______。
A、运算符函数B、重载函数
C、函数重载运算符D、以上都不对
4、下列函数中,______不能重载。
A、成员函数B、非成员函数C、析构函数D、构造函数
5、系统在调用重载函数时,往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是______。
A、参数的个数B、参数的类型
C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学计算机 C+ 面向 对象 技术 复习题 汇总 答案