C++语言程序设计期末考试综合练习.docx
- 文档编号:1500359
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:40
- 大小:35.37KB
C++语言程序设计期末考试综合练习.docx
《C++语言程序设计期末考试综合练习.docx》由会员分享,可在线阅读,更多相关《C++语言程序设计期末考试综合练习.docx(40页珍藏版)》请在冰豆网上搜索。
C++语言程序设计期末考试综合练习
2018春网院C++语言程序设计期末考试综合练习一
一选择题
1.编写C++程序一般需经过的几个步骤依次是_________.
A.编辑、调试、编译、连接B.编译、编辑、连接、运行
C.编译、调试、编辑、连接D.编辑、编译、连接、运行
2在C++语言中,char型数据在存中的存储形式是_____________。
A.反码B.补码C.ASCII码D.原码
3.设有定义inta;floatf;doublei;则10+’a’+i*f值的数据类型是__________。
A.intB.doubleC.floatD.不确定
4.设charch;以下正确的赋值语句是___________。
A)ch=’583’;B)ch=’$’;C)ch=’\08’;D)ch=’\xfa’;
5在inta[5]={0,1,3,5};中,数组元素a[1]的值是________。
A)1B)0C)3D)5
6.下列表示引用的语句中,___________是正确的。
已知:
intm=10;
A)int&x=m;B)int&y=10;C)int&xD)float&t=&m;
7.决定C++语言中函数的返回值类型的是()
A.return语句中的表达式类型
B.调用该函数时系统随机产生的类型
C.调用该函数时的主调用函数类型
D.在定义该函数时所指定的数据类型
8.设intm=1,n=2,则++m==n的结果是___________。
A)0B)1C)2D)3
9.假定一个类的构造函数为A(intaa,intbb){a=aa++;b=a*++bb;},则执行Ax(4,5);语句后,x.a和x.b的值分别为__________.
A.4和5B.4和20C.4和24D.20和5
10.已知:
p是一个指向类A数据成员m的指针,A1是类A的一个对象。
如果要给m赋值为
5,_______是正确的。
A.A1.p=5
B.A1->p=5
C.A1.*p=5
D.*A1.p=5
11.在intb[][3]={{1},{3,2},{4,5,6},{0}};中,数组元素a[2][2]的值是________。
A)0B)5C)6D)2
12.指针可以用来表示数组元素,下列表示中___________是错误的。
已知:
inta[3][7];
A)*(a+1)[5]B)*(*a+3)C)*(*(a+1))D)*(&a[0][0]+2)
13.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是()
A.类B.对象C.函数体D.数据块
14.在inta=3,*p=&A中,*p的值是__________。
A)变量a的地址值B)无意义C)变量p的地址值D)3
15.已知f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用___是正确的。
A.p=fl
B.P=A:
:
fl
C.P=A:
:
fl()
D.p=f1()
16.假定MyClass为一个类,则执行MyClassa,b
(2),*p;语句时,自动调用该类构造函数_[4]_次。
A)2B)3C)4D)5
17.在C++中,数据封装要解决的问题是______。
A)数据的规化B)便于数据转换
C)避免数据丢失D)防止不同模块之间数据的非法访问
18.一个类的友元函数或友元类能够通过成员操作符访问该类的________。
A)私有成员B)保护成员C)公用成员D)所有成员
19.已知一个类A,______是指向类A成员函数的指针。
假设类有三个公有成员:
void
f1(int),voidf2(int)和inta。
A.A*p
B.intA:
:
*pc=&A:
:
a
C.voidA:
:
*pa
D.A*pp
20.运算符->*的功能是_______。
A.用来表示指向对象指针对指向类成员指针的操作
B.用来表示对象对指向类成员指针的操作
C.用来表示指向对象指针对类成员的操作
D.用来表示对象类成员的操作
21.________不是面向对象系统所包含的要素。
A)重载B)对象C)类D)继承
22.假定MyClass为一个类,则该类的拷贝初始化构造函数的声明语句为______。
A)MyClass&(MyClassx);B)MyClass(MyClassx)
C)MyClass(MyClass&x);D)MyClass(MyClass*x)
23.已知:
类A中一个成员函数说明如下:
voidSet(A&a);
其中,A&a的含义是_______。
A.指向类A的指针为a
B.将a的地址值赋给变量Set
C.a是类A的对象引用,用来作函数Set()的形参
D.变量A与a按位相与作为函数Set()的参数
24.下面对静态数据成员的描述中,正确的是_____。
A)静态数据成员是类的所有对象共享的数据
B)类的每个对象都有自己的静态数据成员
C)类的不同对象有不同的静态数据成员值
D)静态数据成员不能通过类的对象调用
25.下列关于对象数组的描述中,_______是错误的。
A.对象数组的下标是从0开始的
B.对象数组的数组名是一个常量指针
C.对象数组的每个元素是同一个类的对象
D.对象数组只能赋初值,而不能在定义后赋值
26.对类的构造函数和析构函数描述正确的是_____。
A)构造函数可以重载,析构函数不能重载
B)构造函数不能重载,析构函数可以重载
C)构造函数可以重载,析构函数也可以重载
D)构造函数不能重载,析构函数也不能重载
27.类的析构函数的作用是______。
A)一般成员函数B)类的初始化C)对象的初始化D)删除对象
28.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问
权限定义为_______。
A)publicB)protectedC)privateD)static
29.类MyClass的定义如下:
classMyClass
{
public:
MyClass(){value=0;}
SetVariable(inti){value=i;}
private:
intvalue;
}
则对下列语句序列正确的描述是_______。
MyClass*p,my;p=&my;
A)语句p=&my;是把对象my赋值给指针变量p
B)语句MyClass*p,my;会调用两次类MyClass的构造函数
C)对语句*p.SetVariable(5)的调用是正确的
D)语句p->SetVariable(5)与语句my.SetVariable(5)等价
30.对于拷贝构造函数,正确的描述是________。
A)在C++语言中,如果不自定义类的拷贝构造函数,则每个类都有默认的拷贝构造函数
B)必须为每个类定义拷贝构造函数
C)如果要使用拷贝构造函数,则必须在类中先定义
D)当定义了类的构造函数时,如果要使用拷贝构造函数,则必须定义拷贝构造函数
31.类MyClass的定义如下:
classMyClass
{
public:
MyClass(){}
MyClass(inti){value=newint(i);}
int*value;
}
若要对value赋值,则下面语句正确的是:
A)MyClassmy;my.value=1000;
B)MyClassmy;*my.value=1000;
C)MyClassmy;my.*value=1000;
D)MyClassmy(lO);
32.下面对于友元函数描述正确的是_____。
A)友元函数的实现必须在类的部定义
B)友元函数是类的成员函数
C)友元函数破坏了类的封装性和隐藏性
D)友元函数不能访问类的私有成员
33.对于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句应该
是______。
classMyClass
{
public:
MyClass(intx){n=x;}
voidSetNum(intnl){n=nl;}
private:
intn;
}
intf()
{
MyClass*ptr=newMyClass(45);
_____________
}
A)MyClass(50)B)SetNum(50)C)ptr->SetNum(50)D)ptr->n=50
34.下面是类MyClass的定义,对定义中语句描述正确的是______。
classMyClass
{
public:
voidMyClass(inta){X=a;}//①
intf(inta,intb)//②
{
X=a;
Y=b;
}
intf(inta,intb,intc=O)//③
{
X=a;
Y=b;
Z=c;
}
staticvoidg(){X=10;}//④
private:
intX,Y,Z;
};
A语句①是类MyClass的构造函数定义
B语句②和语句③实现类成员函数的重载
C语句④实现对类成员变量X的更新操作
D语句①和④都不正确,②和③有二义。
35.对于拷贝构造函数和赋值操作的关系,正确的描述是__________。
A)拷贝构造函数和赋值操作是完全一样的操作
B)进行赋值操作时,会调用类的拷贝构造函数
C)当调用拷贝构造函数时,类的对象正在被建立并被初始化
D)拷贝构造函数和赋值操作不能在同一个类中被同时定义
36.对下列语句正确的描述是。
constint*x;//①
int*constx;//②
A)语句①的含义是指针变量x不能更改
B)语句②的含义是指针变量x所指向的值不能更改
C)语句②的含义是指针变量x不能更改
D)语句①和②是相同含义的不同定义方式
37.有如下定义语句:
inta[]={1,2,3,4,5};,则对语句int*p=a;正确的描述是_______。
A)语句int*p=a;定义不正确
B)语句int*p=a;初始化变量p,使其指向数组对象a的第一个元素
C)语句int*p=a;是把a[0]的值赋给变量p
D)语句int*p=a;是把a[1]的值赋给变量p
38.关于new运算符的错误的描述是_______。
A)使用运算符new创建对象数组时必须定义初始值
B)使用运算符new创建对象时,会调用类的构造函数
C)运算符new可以用来动态创建对象和对象数组
D)使用new运算符创建的对象可以使用运算符delete删除
39.关于this指针使用说确的是()
A.保证每个对象拥有自己的数据成员,但共享处理这些数据的代码
B.保证基类私有成员在子类
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 语言程序设计 期末考试 综合 练习
![提示](https://static.bdocx.com/images/bang_tan.gif)