C++模拟试题12.docx
- 文档编号:11337079
- 上传时间:2023-02-27
- 格式:DOCX
- 页数:25
- 大小:23.64KB
C++模拟试题12.docx
《C++模拟试题12.docx》由会员分享,可在线阅读,更多相关《C++模拟试题12.docx(25页珍藏版)》请在冰豆网上搜索。
C++模拟试题12
CPP程序设计
模拟考试1--第2套试卷
1.c++系统预定了4个用于标准数据流的对象,下列选项中不属于此类对象的是(____)
A.cout
B.cin
C.cerr
D.cset
正确答案:
【D】 分值:
【1】
2.设有说明:
charw;intx;floaty;doublez;则表达式w*x+z-y
值的数据类型为(____)
A.float
B.char
C.int
D.double
正确答案:
【D】 分值:
【1】
3.下列对析构函数的描述中,正确的是(____)
A.一个类中只能定义一个析构函数
B.析构函数名与类名不同
C.析构函数的定义只能在类体内
D.析构函数可以有一个或多个参数
正确答案:
【A】 分值:
【1】
4.下列定义数组的语句中正确的是(____)
A.#definesize10 char str1[size],str2[size+2];
B.charstr[];
C.intnum['10'];
D.intn=5;inta[n][n+2];
正确答案:
【A】 分值:
【1】
5.关于this指针使用说法正确的是(____)
A.保证每个对象拥有自己的数据成员,但共享处理这些数据的代码
B.保证基类私有成员在子类中可以被访问。
C.保证基类保护成员在子类中可以被访问。
D.保证基类公有成员在子类中可以被访问。
正确答案:
【A】 分值:
【1】
6.所谓多态性是指(____)
A.不同的对象调用不同名称的函数
B.不同的对象调用相同名称的函数
C.一个对象调用不同名称的函数
D.一个对象调用不同名称的对象
正确答案:
【B】 分值:
【1】
7.派生类构造函数的执行顺序是先执行________的构造函数,然后执行成员对象的构造函数,最后执行________的构造函数。
正确答案:
【基类或派生类】 分值:
【1】
8.C++语言程序的注释可以出现在程序中的任何地方,一个注释以________作为开始和结束的标记。
正确答案:
【/**/】 分值:
【1】
9.下列程序在构造函数和析构函数中申请和释放类的数据成员int*a,申请时使用形参b初始化a,请填空。
classA
{
public:
A(intb);
~A();
private:
int*a;
};
A:
:
(intb)
{________;}
A:
:
~A()
{________;}
正确答案:
【a=newint(b)或deletea】 分值:
【1】
10.C++对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是(____)
A.增加了一些新的运算符
B.允许函数重载,并允许设置缺省参数
C.规定函数说明符必须用原型
D.引进了类和对象的概念
正确答案:
【D】 分值:
【1】
11.下列有关模板和继承的叙述正确的是(____)
A.模板和继承都可以派生出一个类系
B.从类系的成员看,模板类系的成员比继承类系的成员较为(____)稳定
C.从动态性能看,继承类系比模板类系具有更多的动态特性
D.相同类模板的不同实例一般没有联系,而派生类各种类之间有兄弟父子等关系
正确答案:
【D】 分值:
【1】
12.关于new运算符的下列描述中,错误的是(____)
A.它可以用来动态创建对象和对象数组
B.使用它创建的对象或对象数组可以使用运算符delete删除
C.使用它创建对象时要调用构造函数
D.使用它创建对象数组时必须指定初始值
正确答案:
【D】 分值:
【1】
13.下列运算符中,在C++语言中不能重载的是(____)
A.*
B.>=
C.:
:
D./
正确答案:
【C】 分值:
【1】
14.已知inti=0,x=1,y=0;在下列选项使i的值变成1的语句是(____)
A.if(x&&y)i++;
B.if(x==y)i++;
C.if(x||y)i++;
D.if(!
x)i++;
正确答案:
【C】 分值:
【1】
15.sizeof(float)是(____)
A.一个双精度型表达式
B.一个整型表达式
C.一种函数调用
D.一个不合法的表达式
正确答案:
【B】 分值:
【1】
16.下面叙述不正确的是(____)
A.基类的保护成员在派生类中仍然是保护的成员
B.基类的保护成员在公有派生类中仍然是保护的
C.基类的保护成员在私有派生类中仍然是私有的
D.对基类成员的访问必须是无二义性
正确答案:
【A】 分值:
【1】
17.决定C++语言中函数的返回值类型的是(____)
A.return语句中的表达式类型
B.调用该函数时系统随机产生的类型
C.调用该函数时的主调用函数类型
D.在定义该函数时所指定的数据类型
正确答案:
【D】 分值:
【1】
18.下面对于友元函数描述正确的是(____)
A.友元函数的实现必须在类的内部定义
B.友元函数是类的成员函数
C.友元函数破坏了类的封装性和隐藏性
D.友元函数不能访问类的私有成员
正确答案:
【C】 分值:
【1】
19.不能作为重载函数的调用的依据是(____)
A.参数个数
B.参数类型
C.函数类型
D.函数名称
正确答案:
【D】 分值:
【1】
20.面向对象的模型中,最基本的概念是对象和________。
正确答案:
【类】 分值:
【1】
21.在VC中,若定义一个函数的返回类型为void,以下叙述正确的是(____)
A.函数返回值需要强类型转换
B.函数不执行任何操作
C.函数本身没有返回值
D.函数不能修改实际参数的值
正确答案:
【C】 分值:
【1】
22.函数参数的默认值不允许为(____)
A.全局常量
B.直接常量
C.局部变量
D.函数调用
正确答案:
【C】 分值:
【1】
23.下列的描述中(____)是错误的。
A.使用全局变量可以从被调用函数中获取多个操作结果
B.局部变量可以初始化,若不初始化,则系统默认它的值为0
C.当函数调用完后,静态局部变量的值不会消失
D.全局变量若不初始化,则系统默认它的值为0
正确答案:
【B】 分值:
【1】
24.已知inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则不能表示数组a中元素的式子是(____)
A.*a
B.*p
C.a
D.a[p-a]
正确答案:
【C】 分值:
【1】
25.已知inta[3][3]={1,2,3,4,5,6,7,8,9};则不能表示数组元素a[2][1]的地址是(____)
A.&a[2][1]
B.*(a[2]+1)
C.a[2]+1
D.*(a+2)+1
正确答案:
【B】 分值:
【1】
26.设char*s1,*s2;分别指向两个字符串,判断字符串s1和s2是否相等的表达式为(____)
A.s1=s2
B.s1==s2
C.strcpy(s1,s2)==0
D.strcmp(s1,s2)==0
正确答案:
【D】 分值:
【1】
27.在类定义的外部,可以被访问的成员有
A.所有类成员
B.private或protected的类成员
C.public的类成员
D.public或private的类成员
正确答案:
【C】 分值:
【1】
28.若classB中定义了一个classA的类成员Aa,关于类成员的正确叙述是(____)
A.在类B的成员函数中可以访问A类的私有数据成员
B.在类B的成员函数中可以访问A类的保护数据成员
C.类B的构造函数可以调用类A的构造函数做数据成员初始化
D.类A的构造函数可以调用类B的构造函数做数据成员初始化
正确答案:
【C】 分值:
【1】
29.要求用友员函数重载的运算符是(____)
A.=
B.[]
C.<<
D.()
正确答案:
【C】 分值:
【1】
30.将以下程序写成三目运算表达式是________。
if(a>b)max=a;
elsemax=b;
正确答案:
【max=(a>b)?
a:
b;】 分值:
【1】
31.下面程序的结果为________。
#include
voidmain()
{inta=1,b=2;
boolc=1;
if((a>b)||c)cout<<″true″<
else
cout<<″false″<
正确答案:
【true】 分值:
【1】
32.在创建派生类对象时,构造函数的执行顺序是(____)
A.对象成员构造函数—基类构造函数—派生类本身的构造函数
B.派生类本身的构造函数—基类构造函数—对象成员构造函数
C.基类构造函数—派生类本身的构造函数—对象成员构造函数
D.基类构造函数—对象成员构造函数—派生类本身的构造函数
正确答案:
【D】 分值:
【1】
33.以下程序的执行结果为________。
#include
usingnamespacestd;
classbase
{
public:
virtualvoidwho()
{cout<<″baseclass″<
};
classderive1:
publicbase
{
public:
voidwho()
{cout<<″derive1class″<
};
classderive2:
publicbase
{
public:
voidwho()
{cout<<″derive2class″<
};
voidmain()
{
baseobj1,*p;
derive1obj2;
derive2obj3;
p=&obj1;
p->who();
p=&obj2;
p->who();
p=&obj3;
p->who();
}
正确答案:
【baseclassderive1classderive2class】 分值:
【1】
34.虚析构函数的作用是(____)
A.虚基类必须定义虚析构函数
B.类对象作用域结束时释放资源
C.delete动态对象时释放资源
D.无意义
正确答案:
【C】 分值:
【1】
35.若一个类中含有纯虚函数,则该类称为(____)
A.基类
B.纯基类
C.抽象类
D.派生类
正确答案:
【C】 分值:
【1】
36.下列流类中可以用于处理文件的是(____)
A.ios
B.iostream
C.strstream
D.fstream
正确答案:
【D】 分值:
【1】
37.作为语句标号使用的C++保留字case和default只能用于________语句
的定义体中。
正确答案:
【switch】 分值:
【1】
38.存储字符’a’和字符串”a”分别需要占用________和________个字节。
正确答案:
【1或2】 分值:
【1】
39.若有定义“structAA{inta;charb;doublec;}x;”,则x占用空间大小为
________字节。
正确答案:
【13】 分值:
【1】
40.若y是x的引用,则&y和&x的值________,即为变量________的地址。
正确答案:
【相等或x】 分值:
【1】
41.执行________操作将释放由p所指向的动态分配的数据空间。
正确答案:
【deletep】 分值:
【1】
42.已知语句“cout<
果为________。
正确答案:
【ple】 分值:
【1】
43.基类和派生类的关系称为________。
正确答案:
【继承】 分值:
【1】
44.若只需要通过一个成员函数读取数据成员的值,而不需要修改它,则应在函数头的后面加上________关键字。
正确答案:
【const】 分值:
【1】
45.为了释放类对象中指针成员所指向的动态存储空间,则需要为该类定义________。
正确答案:
【析构函数】 分值:
【1】
46.假定AB为一个类,则执行“ABa[10];”语句时,系统自动调用该类构造函数的次数为________。
正确答案:
【10】 分值:
【1】
47.对类中引用成员的初始化只能通过在构造函数中给出的________来实现。
正确答案:
【参数初始化表】 分值:
【1】
48.假定要把aa定义为AB类中的一个引用整数型数据成员,则定义语句为________。
正确答案:
【int&aa;】 分值:
【1】
49.定用户为类AB定义了一个构造函数“AB(intaa=0):
a(aa){}”,则定义该类的对象时,可以有________种不同的定义格式。
正确答案:
【2】 分值:
【1】
50.定用户为类AB定义了一个构造函数“AB(intaa):
a(aa){}”,则定义该类的对象时,有________种定义格式。
正确答案:
【1】 分值:
【1】
51.定用户为类AB定义了一个构造函数“AB(intaa=0,intbb=0){a=aa;b=bb;}”,
则定义该类的对象时,可以有________种不同的定义格式。
正确答案:
【3】 分值:
【1】
52.假定用户只为类AB定义了一个构造函数“AB():
a(0),b(0){}”,则定义该类对象x的定义语句“ABx;”是______(正确/错误)的。
正确答案:
【正确】 分值:
【1】
53.假定AB为一个类,则该类的拷贝构造函数的函数头为________。
正确答案:
【AB(AB&)】 分值:
【1】
54.假定AB为一个类,该类中含有一个指向动态数组空间的指针成员pa,则在该类的析构函数中应该包含有一条________语句。
正确答案:
【delete[]pa;】 分值:
【1】
55.派生类的成员函数可以直接访问基类的公有和保护成员,不能直接访问
基类的________成员。
正确答案:
【私有】 分值:
【1】
56.若要保证一个公共的基类在派生类中只产生一个基类子对象,则必须都以________的方式直接继承它。
正确答案:
【虚基类】 分值:
【1】
57.引进虚基类的根本目的是为了消除________。
正确答案:
【二义性】 分值:
【1】
58.若运行时给变量x输入12,则以下程序的运行结果是(____)
#include
voidmain()
{
intx,y;
cin>>x;
y=x>12?
x+10:
x-12;
cout<
cout<
}
A.0
B.22
C.12
D.10
正确答案:
【A】 分值:
【1】
59.一个类可以从直接或间接的祖先中继承所有属性和方法。
采用这个方法提高了软件的________。
正确答案:
【可重用性】 分值:
【1】
60.静态成员函数可以直接访问类的________成员,不能直接访问类的________成员。
正确答案:
【静态或非静态】 分值:
【1】
61.函数模板:
template
Tadd(Tx,Ty){returnx+y;}
下列对add函数的调用不正确的是(____)
A.add<>(1,2)
B.add(1,2)
C.add(1.0,2)
D.add(1.0,2.0)
正确答案:
【C】 分值:
【1】
62.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是(____)
A.派生类的对象可以赋给基类的对象
B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类中的成员
D.派生类的对象的地址可以赋给指向基类的指针
正确答案:
【C】 分值:
【1】
63.在C++语言中每个类都有一个________指针,该指针指向正在调用成员函数的对象。
正确答案:
【this】 分值:
【1】
64.在C++中,cin是一个(____)
A.类
B.对象
C.模板
D.函数
正确答案:
【B】 分值:
【1】
65.下列叙述中,不属于结构化程序设计方法的主要原则的是(____)
A.自顶向下
B.由底向上
C.模块化
D.限制使用goto语句
正确答案:
【B】 分值:
【1】
66.关于构造函数A()的拷贝构造函数正确的是(____)
A.A(A*B);
B.A(AB);
C.A(A&B);
D.A(A);
正确答案:
【C】 分值:
【1】
67.派生类的成员一般分为两部分,一部分是________,另一部分是自己定义的新成员。
正确答案:
【从基类继承的成员】 分值:
【1】
68.(____)不是构造函数的特征
A.构造函数的函数名与类名相同
B.构造函数可以重载
C.构造函数可以设置缺省参数
D.构造函数必须指定类型说明
正确答案:
【D】 分值:
【1】
69.以下对C++语言函数的有关描述中,正确的是(____)
A.在C++语言中调用函数,只能把实参的值传给形参,形参的值不能传送给实参
B.C++语言函数既可以嵌套定义又可以递归调用
C.函数必须无返回值,否则不能使用函数
D.函数必须有返回值,返回值类型不定
正确答案:
【A】 分值:
【1】
70.可以把具有相同属性的一些不同对象归类,称为________。
正确答案:
【对象类】 分值:
【1】
71.C++语言中的多态性是在编译时通过________和模板体现的,在运行时是通过________体现的。
正确答案:
【函数重载或虚函数】 分值:
【1】
72.常数据成员和静态数据成员在使用前共同的要求是要进行________。
正确答案:
【初始化】 分值:
【1】
73.建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数),这3种构造函数的调用顺序为(____)
A.abc
B.acb
C.cab
D.cba
正确答案:
【A】 分值:
【1】
74.表达式x.operator+(y.operator++(0))还可以写成________。
正确答案:
【x+y++或x+(y++)】 分值:
【1】
75.每个C++程序中都必须有且仅有一个
A.类
B.预处理命令
C.主函数
D.语句
正确答案:
【C】 分值:
【1】
76.C++中封装性、继承性和________是面向对象思想的主要特征。
正确答案:
【多态性】 分值:
【1】
77.以下叙述中正确的是(____)
A.构成C++语言程序的基本单位是类
B.可以在一个函数中定义另一个函数
C.main()函数必须放在其他函数之前
D.所有被调用的函数一定要在调用之前进行定义
正确答案:
【A】 分值:
【1】
78.类的析构函数的作用是(____)
A.一般成员函数的初始化
B.类的初始化
C.对象的初始化
D.删除类创建的对象
正确答案:
【D】 分值:
【1】
79.下面关于类和对象的描述中,错误的是(____)
A.类就是C语言中的结构体类型,对象就是C语言中的结构体变量
B.类和对象之间的关系是抽象和具体的关系
C.对象是类的实例,一个对象必须属于一个已知的类
D.类是具有共同行为的若干对象的统一描述体
正确答案:
【A】 分值:
【1】
80.以下程序中,错误的行为是(____)
(1)#include
(2)ClassA
(3){
(4)public:
(5)intn=2;
(6)A(intval){}
(7)~A(){}
(8)};
(9)voidmain()
(10){
(11)Aa(o);
(12)}
A)(5)
B)(6)
C)(7)
D)(11)
正确答案:
【A】 分值:
【1】
81.有如下函数定义:
voidfunc(inta,int&b){a++;b++;}
若执行代码段:
intx=0,y=1;
func(x,y);
则变量x和y值分别是(____)
A.和1
B.和1
C.和2
D.和2
正确答案:
【C】 分值:
【1】
82.关于友元的概念错误的是(____)
A.友元函数没有this指针
B.调用友元函数时必须在它的实参中给出要访问的对象
C.一个类的成员函数也可以作为另一个类的友元函数
D.只能在类的公有段声明友元
正确答案:
【D】 分值:
【1】
83.下列函数的运行结果是(____) #include
intf(inta,intb)
{intc;
if(a>b)c=1;
elseif(a==b)c=0;
elsec=-1;
return(c);}
voidmain()
{inti=2,j=3;
intp=f(i,j);
cout<
A.-1
B.1
C.2
D.编译出错,无法运行
正确答案:
【A】 分值:
【1】
84.下列运算符中全都可以被友元函数重载的是(____)
A.=,+,-,\
B.[],+,(),new
C.->,+,*,>>
D.<>,+,*
正确答案:
【D】 分值:
【1】
85.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初实化并执行其他内部管理操作的函数是(____)
A.友元函数
B.虚函数
C.构造函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 模拟 试题 12