C++考前热身 一定要看的Word格式.docx
《C++考前热身 一定要看的Word格式.docx》由会员分享,可在线阅读,更多相关《C++考前热身 一定要看的Word格式.docx(47页珍藏版)》请在冰豆网上搜索。
★考生得分:
0分
评语:
7.类的构造函数可以带有()个参数。
D.任意
8.假定AB为一个类,则执行“ABx(a,5);
9.设px是指向一个类对象的指针变量,则执行“deletepx;
”语句时,将自动调用该类的()。
A.无参构造函数
B.带参构造函数
C.析构函数
D.拷贝构造函数
10.在一个类的定义中,包含有()成员的定义。
A.数据
B.函数
C.数据和函数
D.变量
11.在C++中,当一个对象被创建后,它的每一个成员函数都含有一个系统自动生成的隐含的指针,称之为()指针。
A.对象
B.派生
C.基类
D.this
12.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()。
A.x.a
B.x.a()
C.x->
a
D.x->
a()
13.下面有关重载函数的说法中正确的是()。
A.重载函数必须具有不同的返回值类型;
B.重载函数形参个数必须不同;
C.重载函数必须有不同的形参列表;
D.重载函数名可以不同;
C
14.当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为()。
A.n
B.n+1
C.n-1
D.n-2
15.一个类的析构函数通常被定义为该类的()成员。
A.私有
B.保护
C.公用
D.友元
16.类的析构函数是一个对象被()时自动调用的。
A.建立
B.撤消
C.赋值
D.引用
B
17.假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为()。
A.intAA:
:
B.intAA:
C.AA:
D.AA:
inta()
A
18.在一个类的定义中,包含有()成员的定义。
D.数据或函数
19.对于公有继承,基类中的私有成员在派生类中将()。
A.能够直接使用成员名访问
B.能够通过成员运算符访问
C.仍然是基类的私有成员
D.变为派生类的私有成员
20.下面描述中,表达错误的是()。
A.公有继承时基类中的public成员在派生类中仍是public的
B.私有继承时基类中的private成员在派生类中仍是private的
C.私有继承时基类中的protected成员在派生类中仍是protected的
D.私有继承时基类中的public成员在派生类中是private的
21.在C++中,对于基类的protected成员,当以protected方式派生一个新类时。
该成员将成为派生类的()成员。
A.private
B.protected
C.public
D.非法
22.在c++中,一个虚函数是通过关键字()放在其基类说明的前面来加以说明的.(2分)
A.virtual
C.operator
23.设置虚基类的目的是()。
A.简化程序;
B.消除二义性;
C.提高运行效率;
D.减少目标代码;
24.凡是能用以派生新类,却不能创建自己的对象的类称为()。
A.虚基类
B.抽象类
C.容器类
D.派生类
25.抽象类是():
A.不可以定义对象
B.可以定义对象
C.不可以派生新类
D.不可以输出
26.假定有定义“intb[10];
int*pb;
”,则不正确的赋值语句为()。
A.pb=b;
B.pb=&
b[0];
C.*pb=newint;
D.pb=b[5];
27.假定一条定义语句为“inta[10],x,*pa=a;
”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为()。
A.x=pa[3];
B.x=*(a+3);
C.x=a[3];
D.x=*pa+3;
28.下列给字符数组赋初值时,正确的是()。
A.chars1[]=”abcdef”;
B.chars2[4]=”abcd”;
C.chars3[2][3]={“abc”,”xyz”};
D.chars4[4][]={‘a’,’x’,’s’,’t’};
29.
执行语句“chara[10]={"
abcd"
},*p;
p=a;
”后,*(p+4)的值是()(2分)
A.“abcd”
B.'
d'
C.'
\0'
D.不能确定
30.设有如下函数定义
intf(char*s){
char*p=s;
while(*p!
=’\0’)p++;
return(p-s);
}
在主函数中用cout<<f(“good”)调用上述函数,则输出结果为()。
A.3
B.4
C.5
D.6
31.下面语句()是非法的。
A.charx='
C'
;
B.charx='
#'
C.charx='
'
D.charx='
$'
32.一个C++程序至少应包含()个函数。
D.3
33.设a=12,n=5,则表达
式a%=(n%=2)运算后,a的值为()。
C.6
D.12
34.下列关于单目运算符++、--的叙述中正确的是(2分)
A.它们的运算对象可以是任何变量和常量
B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D.它们的运算对象可以是char型变量、int型变量和float型变量
D
35.假定变量x定义为“intx=5;
”,要使rx成为x的引用(别名),rx应定义为()。
A.intrx=x;
B.intrx=&
x;
C.int*rx=&
D.int&
rx=x;
36.以下描述中正确的是()。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.在for循环中,不能用break语句跳出循环体
D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
37.循环语句“for(inti=0;
i<n;
i++)cout<<i*i<<’’;
”中循环体执行的次数为()。
A.1
B.n-1
C.n
D.n+1
38.C++语言的跳转语句中,对于break和continue说法正确的是()。
A.break语句只用于循环体中
B.continue语句只用于循环体中
C.break是无条件跳转语句,continue不是
D.break和continue的跳转范围不够明确,容易产生问题
39.在下面循环语句中循环体执行的次数为()。
inti=0,s=0;
while(s<20){i++;
s+=i;
}(2分)
A.4
B.5
D.7
40.do语句能够改写为()语句。
A.复合
B.if
C.switch
D.while
34444
1.采用重载函数的目的是()。
A.实现共享
B.减少空间
C.提高速度
D.使用方便,提高可读性
2.假定AB为一个类,则执行“ABx(a,5);
3.假定AB为一个类,则执行“AB*s=newAB(a,5);
”语句时得到的一个动态对象为()。
A.s
B.s->
C.s.a
D.*s
4.当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的()。
A.只能是公有成员
B.只能是保护成员
C.只能是除私有成员之外的任何成员
D.任何权限的成员
5.在关键字private后面定义的成员为类的()成员。
B.公用
C.保护
D.任何
6.一个C++程序文件的扩展名为()。
A..h
B..c
C..cpp
D..cp
7.对于任一个类,用户所能定义的构造函数的个数至多为()。
8.在C++程序中使用的cout标识符是系统类库中定义的()类中的一个对象。
A.istream
B.ostream
C.iostream
D.fstream
9.类的析构函数可以带有()个参数。
10.如果类A被说明成类B的友元,则()(2分)
11.类的析构函数是一个对象被()时自动调用的。
12.引入友元的主要目的是为了()。
A.增强数据安全性
B.提高程序的可靠性
C.提高程序的效率和灵活性
D.保证类的封装性
13.关于封装,下列说法中不正确的是()。
A.通过封装,对象的全部属性和操作结合在一起,形成一个整体
B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)
C.通过封装,每个对象都成为相对独立的实体
D.通过封装,对象的属性都是不可见的
14.被非静态成员函数访问的类的数据成员()。
A.可以是非静态数据成员或静态数据成员
B.不可能是类的静态数据成员
C.只能是类的非静态数据成员
D.只能是类的静态数据成员
15.在C++程序中使用的cin标识符是系统类库中定义的()类中的一个对象。
16.对于任意一个类,析构函数的个数最多为()(2分)
17.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()。
18.在C++中,当一个对象被创建后,它的每一个成员函数都含有一个系统自动生成的隐含的指针,称之为()指针。
19.如果类B在类A的基础上构造,那么,就称()。
A.类A为基类或父类,类B为超类或子类
B.类A为基类、父类或超类,类B为派生类或子类
C.类A为派生类,类B为基类
D.类A为派生类或子类,类B为基类、父类或超类
20.C++的基类指针可以访问派生类对象,但不能访问派生类对象的()成员。
D.新增
21.派生类的成员函数可以直接访问基类的()成员。
A.所有
B.公有和保护
C.保护和私有
D.私有
22.派生类的对象对其基类中()可直接访问。
A.公有继承的公有成员
B.公有继承的私有成员
C.公有继承的保护成员
D.私有继承的公有成员
23.当派生类中有和基类一样名字的成员时,一般来说,()。
A.将产生二义性
B.派生类的同名成员将覆盖基类的成员
C.是不能允许的
D.基类的同名成员将覆盖派生类的成员
24.c++语言的运算符可以重载为成员函数和():
A.算术函数
B.输出函数
C.友元函数
D.逻辑函数
25.不能重载的运算符是:
()(2分)
A./
B.*
C.:
D.+=
26.要想在程序中使用strcpy()函数,须把()包含到程序中。
A.iostream.h
B.stdio.h
C.string.h
D.iomanip.h
27.以下函数的返回结果是()。
intfunction(char*x){
char*p=x;
while(*p++);
return(p-x-1);
A.求字符串的长度
B.将字符串x连接到字符串p后面
C.将字符串x复制到字符串p中
D.将字符串x反向存放
28.假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加()。
C.sizeof(double)
D.sizeof(p)
29.假定指针变量p定义为“int*p=newint[30];
”,要释放p所指向的动态内存,应使用语句()。
A.deletep;
B.delete*p;
C.delete&
p;
D.delete[]p;
30.执行语句“chara[10]={"
31.一个C++程序至少应包含()个函数。
32.以下错误的描述是()。
A.被调用函数中可以不用return语句
B.被调用函数中可以用多个return语句
C.被调用函数中,如果有返回值,就一定要有return语句
D.被调用函数中,一个return语句可返回多个值给调用函数
33.设a=12,n=5,则表达式a%=(n%=2)运算后,a的值为()。
34.下列标识符中()是正确。
A._suml23__
B._suml23$
C.*pt_123
D.Sum-Count
35.函数调用不可以()。
A.出现在一个表达式中
B.出现在执行语句中
C.作为一个函数的实参
D.作为一个函数的形参
36.在下面循环语句中循环体执行的次数为()。
for(inti=0;
i++)
if(i>n/2)break;
A.n/2
B.n/2+1
C.n/2-1
D.n-1
37.C++语言的跳转语句中,对于break和continue说法正确的是()。
38.C++中用于结构化程序设计的三种基本结构是(2分)
A.顺序结构、选择结构、循环结构
B.if、switch、break
C.for、while、do-while
D.if、for、continue
39.有以下程序
voidmain()
{
inti;
for(i=0;
i<3;
i++)
switch(i)
case1:
cout<<i;
case2:
default:
}执行后输出的结果是
A.011122
B.012
C.012020
D.120
40.switch语句能够改写为()语句。
A.for
C.do
34555
一.单选(共40题,共80分)
1.类中定义的成员默认为()访问属性。
A.public
B.private
C.protected
D.friend
2.在类作用域中能够通过直接使用该类的()成员名进行访问。
3.类的构造函数是在定义该类的一个()时被自动调用执行的。
A.成员函数
B.数据成员
C.对象
D.友元函数
4.对于任意一个类,析构函数的个数最多为()(2分)
.0
5.在一个类的定义中,包含有()成员的定义。
6.对于一个类的析构函数,其函数名与类名()。
A.完全相同
B.完全不同
C.只相差一个字符
D.无关系