完整版C++试题及答案docWord下载.docx
- 文档编号:19599389
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:33
- 大小:22.67KB
完整版C++试题及答案docWord下载.docx
《完整版C++试题及答案docWord下载.docx》由会员分享,可在线阅读,更多相关《完整版C++试题及答案docWord下载.docx(33页珍藏版)》请在冰豆网上搜索。
下列语句中正确的是(
A)char*s;
*s="
abcdefg"
B)char*s;
cin>
>
s;
C)char*s1="
abcd"
*s2="
efghijk"
strcpy(s1,s2);
D)char*s="
cout<
*s;
4.C++中,关于构造函数和析构函数,正确的描述是()。
A)在定义类时,必须自定义构造函数和析构函数,在创建对象时自动调用构造函数,在释放对象时自动调用析构函数
B)构造函数和析构函数均可以重载
C)已知类Student以及Student*p;
在使用p=newStudent;
时自动调用无参构造函数创建动态对象,在deleltep;
时自动调用析构函数释放动态对象
D)构造函数和析构函数都可以成为虚函数
5.关于拷贝构造函数的描述正确的是()。
A)通常的拷构造函数的参数是象的指型
B)如果不自定拷构造函数,系提供默的拷构造函数
C)如果有自定的构造函数,系就不再提供拷构造函数
D)如果需要用已有象新建的象初始化,就必自定拷构造函数
6.有关静成的描述的是()。
A)某个的静数据成由的所有象所共享
B)的公有静数据成既可以用的象,也可以直接用作用域运算符“:
:
通”名来
C)静数据成既可以是私有成,也可以是公有成
D)中一旦定了静数据成,就必定静成函数,以便静数据成行操
作
7.
一个的友元函数或友元能通成运算符的(
A)所有成
B)私有成
C)
保成
D)公有成
8.
下面关于承方式的描述中的是(
A)公有承,基的公有成和保成在派生中都成公有成
B)私有承,基的公有成和保成在派生中都成私有成
C)保承,基的公有成和保成在派生中都成保成
D)无哪种承方式,基中的私有成在派生中都无法直接
9.型兼容是指在基象可以出的地方,都可以使用公有派生的象,已知:
classBaseClass
{//⋯};
classDerivedClass:
publicBaseClass
BaseClassb,*pb;
DerivedClassd,*pd;
下面不属于型兼容的是()。
A)b=d;
B)BaseClass&
bb=d;
C)pd=&
b;
D)pb=&
d;
10.
在派生类中重新定义虚函数时,除了(
),其他方面都必须与基类中相应的虚函数
保持一致。
A)
参数个数
B)参数类型
函数名称
D)函数体
11.
下列运算符中,必须使用成员函数进行重载的是(
A)==
B)=
C)>
D)++
12.
下列关于运算符重载的描述中,错误的是(
A)运算符重载不可以改变优先级
B)运算符重载不可以改变结合性
C)运算符重载不可以改变运算符的操作数个数
D)加法运算符“+和”赋值运算符“=都”重载之后,意味着“+=也”被重载了
13.有关运算符重载的说法错误的是()。
A)在一个类中,可以对一个操作符进行多次重载
B)重载赋值运算符“=时”,为了保持原有特性,重载运算符函数中应该使用返回语句“return*this;
”
C)C++中所有的运算符都可以被重载
D)如果在某个类中使用成员函数对运算符重载,其左操作数必须是该类的对象
14.已知某个类的友元函数重载了+=和-,a,b,c是该类的对象,则“a+=b-c”被C++编译
器解释为()。
A)operator+=(a,operator-(b,c))
B)a.operator+=(b.operator-(c))
C)operator+=(a,b.operator-(c))
D)a.operator+=(operator-(b,c))
15.下面4个选项中,专门用于读取单个字符的是()。
A)cin.read()B)cin.get()C)cin.put()D)cin.getline()
16.下列关于getline()函数的叙述中,错误的是()。
A)getline()函数仅用于从键盘而不能从文件读取字符串
B)getline()函数读取字符串长度是受限制的
C)getline()函数读取字符串时,遇到终止符就停止
D)getline()函数中所使用的终止符默认是换行符,也可指定其他终止符
17.打开文件的方式中,()以追加方式打开文件。
A)ios:
inB)ios:
outC)ios:
appD)ios:
trunc
18.当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为()。
A)ios:
out|ios:
binary
B)ios:
in|ios:
C)ios:
out
D)ios:
in
19.有关函数模板和模板函数说法错误的是()。
A)函数模板只是对函数的描述,编译器不为其产生任何执行代码,所以它不是一个实实在在的函数
B)模板函数是实实在在的函数,它由编译系统在遇到具体函数调用时所生成,并调用执行
C)函数模板需要实例化为模板函数后才能执行
D)当函数模板和一般函数同名时,系统先去匹配函数模板,将其实例化后进行调用
20.一个()允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的
返回值能取任意类型。
A)类模板B)模板类C)函数模板D)模板函数
二、判断题(每空
1分,共20
分)
注意:
请将判断题结果(正确为
T,错误为F)
填写到下面表格中!
11121314151617181920
1.定中的成默的限是private。
2.一个中的保成和公有成似,在程序的任何地方都可以被。
3.系提供的缺省构造函数没有参数,所以自定构造函数必有参数。
4.一旦自定了构造函数,系便不再提供缺省的构造函数。
5.一个只能有一个构造函数和一个析构函数。
6.静数据成必在中行定和初始化。
7.静成函数中不能非静成。
8.重插入运算符“<
必”采用成重。
9.如果A是B的友,那么A中的所有成函数都可以B中的所有成。
10.放派生的象,首先用基的析构函数,然后用派生的析构函数。
11.有虚函数的称虚基,它不能用来定象。
12.虚函数只有在有承的情况才会存在。
13.已知:
classBase1{//
⋯};
classBase2{//
classDerived:
publicBase1,publicBase2
{Derived():
Base2(),Base1(){}
//⋯
};
建
用
DerivedDerived
的象,先用的构造函数。
Base2
的构造函数,然后用
Base1
的构造函数,最后
14.基的指或引用用虚函数采用后期定。
15.由抽象基承得到的派生肯定是具体。
16.友元函数内能任何象的任何成。
17.二元运算符采用成函数重,只需要一个参数,而且参数可以是内部型。
18.一元运算符采用某个的友元函数重需要一个参数,参数的象,不能是
其他型。
19.C++
类都是
的输入/输出流库中,
ios类的派生类。
ios
类是一个虚基类,
istream
类、ostream
类以及
streambuf
20.设
inf
是一个
ifstream
类的流对象,则
inf.seekg(10,ios:
beg);
表示将文件指针从文件当
前位置向后移动
10个字节。
三、读程序写结果(每空2
分,共32分)
(注意将结果写在下面相应横线上!
)
⑴
⑵
⑶
⑷
⑸
⑹
⑺
⑻
⑼
⑽
⑾_
⑿
⒀
⒁
⒂
⒃
1.写出下面程序的运行结果。
#include<
iostream.h>
classA
{public:
A()
{cout<
"
A:
A()called.\n"
}virtual~A()
~A()called.\n"
}
classB:
publicA
B(inti)
B:
B()called.\n"
buffer=newchar[i];
}
virtual~B()
{delete[]buffer;
cout<
~B()called.\n"
private:
char*buffer;
voidfun(A*a)
{deletea;
voidmain()
{A*b=newB(10);
fun(b);
运行结果:
2.写出下面程序的运行结果。
classShape
{
public:
voidDraw()
Shape"
endl;
virtualvoidPrint()=0;
classCircle:
publicShape
doubler;
Circle"
voidSetData(doubleradius)
r=radius;
voidPrint()
area:
3.14*r*r<
classRectangle:
doublea,b;
Rectangle"
voidSetData(doublex,doubley)
a=x,b=y;
a*b<
Circlec;
Rectangler;
Shape*sp1=&
c;
Shape&
sp2=r;
c.SetData(10);
r.SetData(3,5);
sp1->
Draw();
c.Print();
sp2.Draw();
r.Print();
3.写出下面程序的运行结果(注:
运行结果中首行的空白行不考虑)。
classCArray
CArray(inti)
{Length=i;
Buffer=newchar[Length+1];
~CArray()
{delete[]Buffer;
intGetLength()
{returnLength;
char&
operator[](inti);
intLength;
char*Buffer;
CArray:
operator[](inti)
{staticcharch;
if(i<
Length&
&
i>
=0)
returnBuffer[i];
else
\nIndexoutofrange."
returnch;
{intcnt;
CArraystring1(6);
char*string2="
Nankai"
for(cnt=0;
cnt<
8;
cnt++)
string1[cnt]=string2[cnt];
string1[cnt];
\n"
string1.GetLength()<
⑾
4.写出下面程序的运行结果。
voidfun(char*s)
intn=0;
while(s[n]!
='
\0'
n++;
chart,*p=s+n-1;
while(s<
p)
t=*s;
*s=*p;
*p=t;
s++;
p--;
charstr[]="
fun(str);
str<
fun(str+1);
四、程序填空(每空
2分,共28分)
1.下面的程序是一个类模板,可实现求三个变量的和,请将程序补充完整。
#include<
classff
{Typea1,a2,a3;
{a1=b1;
a2=b2;
a3=b3;
{returna1+a2+a3;
{ff<
int>
x(12,13,14),y(16,17,18);
x.sum()<
"
y.sum()<
2.下面的程序将一个普通函数作为类的友元函数,求坐标点之和,并且程序输出结果为
2,2,4,请将程序补充完整。
classPoint
intX,Y;
{X=x;
Y=y;
Countp++;
Point(Point&
{X=p.X;
Y=p.Y;
}~Point()
{Countp--;
staticintCountp;
voiddisplay(){cout<
X<
"
Y<
Pointmyfun(Pointp1,Pointp2,Pointp3)
{Pointtmp(p1.X+p2.X+p3.X,p1.Y+p2.Y+p3.Y);
{Pointpp0,pp1(1,2),pp2
(1);
Pointp=myfun(pp0,pp1,pp2);
p.display();
⑻<
//输出Countp的值
3.下面的程序将一个已有文件的内容复制到另一个文件中。
请将程序补充完整。
fstream.h>
stdlib.h>
voidmain()
{⑼
infile.open("
d:
\\file1.txt"
ios:
in);
if(!
infile)
file1.txtcan'
topen.\n"
abort();
outfile.open("
\\file2.txt"
out);
outfile)
file2.txtcan'
abort();
charstr[80]="
\0"
while(!
infile.eof())
{infile.read(str,sizeof(str));
str;
infile.close();
4.ARRAY类的定义如下,构造函数把参数n的值赋给s,给v动态分配长度为
间,然后利用数组参数a初始化v所指向的数组。
请将类定义补充完整。
n的数组空
classARRAY
{int*v;
ints;
ARRAY(inta[],intn);
~ARRAY()
{delete[]v;
intsize()
{returns;
int&
operator[](intn);
⑿ARRAY(inta[],intn){if(n<
=0)
{v=NULL;
s=0;
return;
s=n;
v=⒀
for(inti=0;
i<
n;
i++)
答案
一、(每空1分,共20
分)
C
B
D
A
二、判断(每空
1分,共
20分)(正确
T,F)
T
F
三、程序写果(每空
2分,共
32分)
⑴A:
A()called.
⑸Shape⑹
⑼Indexoutofrange.
⑵B:
B()called.⑶B:
~B()called.⑷
314⑺Shape⑻area:
⑽Indexoutofrange.⑾Nankai
~A()called.
⑿Indexoutof
range.
Indexoutofrange.
gfedcba
gabcdef
28分)
template<
classType>
Point(intx=0,inty=0)
⑵ff(Typeb1,Typeb2,Typeb3)
⑸friendPointmyfun(Point
p1,Point
Typesum()p2,Point
p3);
r
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 C+ 试题 答案 doc