自考04737C++程序设计01历年真题及答案Word下载.docx
《自考04737C++程序设计01历年真题及答案Word下载.docx》由会员分享,可在线阅读,更多相关《自考04737C++程序设计01历年真题及答案Word下载.docx(16页珍藏版)》请在冰点文库上搜索。
C.通过该类对象访问D.本类的成员函数中
13.如果没有为一个类定义任何构造函数的情况下,下列描述正确的是()
A.编译器总是自动创建一个不带参数的构造函数
B.这个类没有构造函数
C.这个类不需要构造函数
D.该类不能通过编译
14.一个类可包含析构函数的个数是()
A.0个
B.1个
C.至少一个
D.0个或多个
15.this指针存在的目的是()
A.保证基类公有成员在子类中可以被访问
B.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码
C.保证基类保护成员在子类中可以被访问
D.保证基类私有成员在子类中可以被访问
16.下列关于类的权限的描述错误的是()
A.类本身的成员函数只能访问自身的私有成员
B.类的对象只能访问该类的公有成员
C.普通函数不能直接访问类的公有成员,必须通过对象访问
D•—个类可以将另一个类的对象作为成员
请在每小题的空格中填上正确答案。
错填、不填均无分。
21.
C++语
设要把一个文件输出流对象myFile与文件“f:
\myText.txt”相关联,所用的
句是:
。
22.C++中ostream类的直接基类是。
23.运算符[]只能用运算符来重载,不能用友元运算符来重载。
24.定义虚函数所用的关键字是。
25.vector类中用于返回向量中第1个对象的方法是。
26.在C++中,利用向量类模板定义一个具有20个char的向量E,其元素均被置为字符
‘t'
,实现此操作的语句是。
27.类的继承是指子类继承基类的和成员函数。
28.不同对象可以调用相同名称的函数,但可导致完全不同的行为的现象称为。
29.指令指示编译器将一个源文件嵌入到带该指令的源文件之中。
30.设类A有成员函数
voidFun(void);
要定义一个指向类成员函数的指针变量pafn来指向Fun,该指针变量的声明语句是
31.设在程序中使用如下语句申请了一个对象数组:
Point*ptr=newPoint[2];
则在需要释放ptr指向的动态数组对象时,所使用的语句是。
32.在保护派生中,基类权限为Private的成员在派生类中。
33.类A有如下成员函数
intA:
:
fun(doublex){return(int)x/2;
}
fun(intx){returnX*2;
}
设a为类A的对象,在主函数中有ints=a.fun(6.0)+a.fun
(2),则执行该语句后,s
值为。
34.对象传送的消息一般由3部分组成:
接收对象名、调用操作名和。
35.将指向对象的指针作为函数参数,形参是对象指针,实参是对象的。
36.在使用string类的find成员函数来检索主串中是否含有指定的子串时,若在主串中不
含指定的子串,find函数的返回值是。
37.在C++中,声明布尔类型变量所用的关键字是。
38.执行下列代码
inta=29,b=100;
cout<
<
setw(3)<
a<
b<
endl;
程序的输出结果是:
39.执行下列代码
"
Hex:
hex<
255;
程序的输出结果为。
40.C++语言中可以实现输出一个换行符并刷新流功能的操控符是。
三、改错题(本大题共5小题,每小题2分,共10分)下面的类定义中有一处错误,请用下横
线标出错误所在行并指出错误原因。
41.#include<
iostream.h>
main(){
intx=5,y=6;
constint*p=&
x;
*p=y;
*p<
endl;
42.#include<
classf{
private:
intx,y;
public:
fl(){x=0;
y=0;
main(){
fa;
a.fl(1,1);
a.print();
43.#include<
intx=0,y=0;
voidfl(intavoidget(){cout<
x<
'
};
a.fl(1,3);
a.get();
44.#include<
,intb){x=a;
y=b;
,'
y<
classpoint{private:
floatx;
voidf(floata){x=a;
voidf(){x=0;
friendfloatmax(point&
a,point&
b);
};
floatmax(point&
b)
{return(a.x>
b.x)?
a.x:
b.x;
}main(){
pointa,b;
a.f(2.2);
b.f(3.3);
a.max(a,b);
45.#include<
template<
classT>
classf{private:
Tx,y;
public:
voidfl(Ta,Tb){x=a;
y=b;
Tmax(){return(x>
y)?
x:
y;
};
a.fl(1.5,3.8);
a.x<
a.y<
a.max()<
endl
四、完成程序题(本大题共5小题,每小题4分,共20分)
46.完成下面类中的成员函数的定义。
classpoint
{
intm,n;
point(int,int);
point(point&
);
point:
point(inta,intb)
m=a:
=b;
point()
m=t.m;
n=t.n;
47.下面是一个输入半径,输出其面积和周长的C++程序,在下划线处填上正确的语句。
#include<
iostream>
usingnamespacestd;
pi=3.14159;
voidmain()
doubler;
r="
;
doublel=2.0*pi*r;
doubles=pi*r*r;
\nThelongis:
"
l<
endl;
Theareais:
s<
48.在下划线处填上缺少的部分。
fstream>
classcomplex
public:
intreal;
intimag;
complex(intr=0,inti=O)
real=r
imag=i;
complexoperator+(,complex&
intr=a.real+b.real;
inti=a.imag+b.imag;
return;
complexx(1,2),y(3,4),z;
z=x+y;
z.real<
+"
z.imag<
i"
49.程序的输出结果如下:
1,9
50,30请根据输出数据在下面程序中的下划线处填写正确的语句。
源程序如下:
usingnamespacestdclassbase
;
}
{private:
intm;
base(){};
base(inta):
m(a){}intget(){returnmvoidset(inta){m=a};
voidmain(){base*ptr=newbase[2]ptr->
set(30)ptr=
ptr->
set(50)basea[2]={1
delete[]ptr;
50.在下面横线处填上求两个浮点数之差的cha函数的原型声明、调用方法。
floata,b;
//函数cha的原型声明
a=12.5;
b=6.5;
floatc=;
//调用函数cha
c<
floatcha(floatx,floaty)
floatw;
w=x-y;
returnw;
五、程序分析题(本大题共4小题,每小题5分,共20分)
51.给出下面程序的输出结果。
template<
classSample
Tn;
Sample(Ti){n=i;
intoperator==(Sample&
intSample<
T>
:
operator==(Sample&s)
if(n==s.n)
return1;
else
return0;
Sample<
int>
sl
(2),s2(3);
sl与s2的数据成员"
(sl==s2?
相等”:
不相等”)<
Sample<
double>
s3(2.5),s4(2.5);
s3与s4的数据成员"
(s3==s4?
相等”:
不相等"
)<
52.给出下面程序的输出结果。
Tmax(Tml,Tm2)
{return(ml>
m2)?
ml:
m2;
voidmain(){
max(1,7)<
\t"
max(2.0,5.0)<
max('
y'
,‘b'
\t"
max("
A"
"
a"
53.给出下面程序的输出结果
classA{
intx;
A(){}
A(inta){x=a;
intget(inta){returnx+a;
}};
Aa(8);
int(A:
*p)(int);
p=A:
get;
(a.*p)(5)<
A*pi=&a;
(pi->
*p)(7)<
54.给出下面程序的输出结果。
include<
string>
classBook{
char*title;
char*author;
intnumsold;
Book(){}
Book(constchar*strl,constchar*str2,constintnum){
intlen=strlen(strl);
title=newchar[1en+1];
strcpy(title,strl);
len=strlen(str2);
author=newchar[1en+1];
strcpy(author,str2);
numsold=num;
}voidsethook(constchar*strl,constchar*str2,constintnum){
〜Book(){
deletetitle;
deleteauthor;
voidprint(ostream&
output){output<
书名:
title<
output<
作者:
author<
月销售量:
numsold<
Bookobjl("
数据结构"
,"
严蔚敏"
,200),obj2;
objl.print(cout);
obj2.setbook("
C++语言程序设计"
李春葆"
,210);
obj2.print(cout);
六、程序设计题(本大题共l小题,共10分)
55.在三角形类TRI实现两个函数,功能是输入三个顶点坐标判断是否构成三角形#include<
math.h>
classpoint{
floatx,y;
voidset(floatafloatgetx(){returnxfloatgety(){returny
point(){x=O;
y=O;
,floatb){x=a;
};
classtri{
pointx,y,z;
floatsl,s2,s3;
public:
settri();
//用于输入三个顶点坐标
test();
//用于判断是否构成三角形
请写出两个函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)
绝密★启用前编号:
231
2011年1月高等教育自学考试全国统一命题考试
C++程序设计试题答案及评分参考
(课程代码04737)
一、单项选择题(本大题共20小题,每小题1分,共20分)
1.B2.A3.C4.C5.A6.A7.A&
C9.A10.B
11.C12.D13.A14.B15.B16.A17.B1&
B19.A20.B二、填空题(本大题共20小题,每小题1分,共20分)
21.myFile.open(nf:
\\myText.txt"
);
23.类
25.front()
27.数据成员
29.#include
31.delete[]ptr;
33.7
35.地址值
37.bool
22.ios类
24.virtual
26.vector<
char>
E(20/t*);
2&
多态性
30.void(A:
♦pafn)(void);
32.不可访问
34.必要的参数
36.-1
38.—29100
40.endl
39.Hex:
ff
三、改错题(本大题共5小题,每小题2分,共10分)
下面的类定义中有一处错误,请用下横线标出错误所在行并给出修改意见。
各1分
41.
*P=y;
指向常量命指针P不能进行左值操作
a.fi(i,i);
no调用时实参与形参数虽不一致
private:
intx=0,y=0;
数据成员声明时不允许直接赋值
cout<
<
a.max(a.b);
max()不是类的成员函数,不能用a.max()方式调用
a.x<
a.y<
a.max()<
endl;
x,y是私有类型,不能在主函数中直接使用企。
四、完成程序题(本大题共5小题,每小题4分,共20•分)
46.npoint&
t
47・constdoublecin>
>
r
42.
43.
44.
45.
48・complex&
acomplex(r,i)
49.ptr+1;
ptr->
gct()
50.floatcha(float,float);
cha(atb)
04737C++程序设计试题答案及评分参考第1页(共2施卫盟S為
五、程序分析题(本大题共4小题,每小题5分,共20分)
51.S,与S2的数据成员不相等
S3与S4的数据成员相等
52.75Jy4•
ya-
或53.13°
・
15
54.书名:
数据结构’&
&
作者:
严蔚敏歹夕
月销售凰:
200
@书名:
C++语言程序设计於*
余作者:
李春葆冷・冷・
麝月销售1ft:
210療麝
六、程序设计题(本大题共1小题,共10分)
55.voidtri:
:
test()|
si=sqrt((x.gctx()-y.gctx())♦(x.getx()・y.getx())+(x.gety()-y.getyO)
♦(x.gety()-y.getyO));
s2=scpl((x.getx()・z.getx())♦(x.getx()-z.gclx())+(x.gety()-z.gcty())
*(x.gety()-z.gety()));
s3=sqrt((y.getx()-z.gctx())♦(y.getx()-z.gctx())+(y.gety()-z.gety())“*(y-gcly()-z.gety()));
if(sl==s2+s311s2==sl+s3lIs3==sl+s2)
W”三个顶点坐标不能构成二角形”,
elsecout<
”三个顶点坐标能构成三角形”;
I(6分)
voidtri:
settri(floatxl9floatyl,floatx2ffloaty2,floatx3,floaty3)
Ix・set(xlfyl);
y.set(x2,y2);
z.set(x3,y3);
|(4分)
04737C++程序设计试题答案及评分参考第2页(共2页0二聽忌
觸・0却学员的用上豪■