自考C程序设计04737试题及答案解析Word文档格式.docx
《自考C程序设计04737试题及答案解析Word文档格式.docx》由会员分享,可在线阅读,更多相关《自考C程序设计04737试题及答案解析Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
“0"
D.8
D.>
=
delete删除
D.0.0
B.对象是类的实例
D.一个对象必属于某个类
B.构造函数的名字与类名完全相同
D.构造函数必须定义,不能缺省a[4]的字节地址为
C.a+16
D.a+32
A.虚函数B.静态成员函数
12.下列说明语句中正确的是
A.inta,&
ra=a,&
ref=ra
C.inta,&
ra=a,&
*refp=&
ra
13.关于对象概念的描述中,说法错误的是
A.对象就是C语言中的结构体
B.对象代表着正在创建的系统中的一个实体
C.对象是类的一个变量
D.对象之间的信息传递是通过消息进行的
14.有关多态性说法不正确的是
A.C++语言的多态性分为编译时的多态性和运行时的多态性
B.编译时的多态性可通过函数重载实现
C.运行时的多态性可通过模板和虚函数实现
D.实现运行时多态性的机制称为动态多态性
15.关于友元函数的描述中,错误的是
A.友元函数不是成员函数
B.友元函数只能访问类中私有成员
C.友元函数破坏隐藏性,尽量少用
D.友元函数说明在类体内,使用关键字
16.类中定义的成员默认访问属性为
A.PublicB.private
17.拷贝构造函数的参数是
A.某个对象名
C.某个对象的引用名
18.关于类模板的说法正确的是
A.类模板的主要作用是生成抽象类
B.类模板实例化时,编译器将根据给出的模板实参生成一个类
C.在类模板中的数据成员具有同样类型
D.类模板中的成员函数没有返回值
19.下列有关重载函数的说法中正确的是
A.重载函数必须具有不同的返回值类型
C.重载函数必须有不同的形参列表
20.当一个类的某个函数被说明为virtual
A.都是虚函数
B.只有被重新说明时才是虚函数
C.都不是虚函数
D.只有被重新说明为virtual时才是虚函数
c.构造函数
D.析构函数
B.int&
refa[10]
D.int*pi,*&
pref=pi
friend
C.Protected
D.friend
时,
第二部分
B.某个对象的成员名
D.某个对象的指针名
B.重载函数参数个数必须相同
D.重载函数名可以不同
在该类的所有派生类中的同原型函数
非选择题
二、填空题(本大题共20小题,每小题1分,共请在答题卡上作答。
21.C语言中scanf命令在C++中改用:
cin
22.假定类AB中有一个公用属性的静态数据成员员bb赋值为10的写法:
intAB;
bb=10;
20分)
staticintbb;
在类外不通过对象名给该成
23.在类内部定义的公有(public)数据可以在类外进行存取,但保护Protected数据和私有
(Private)数据不能在类外直接存取。
24.在C++中,虚函数帮助实现了类的多态性。
25.如果要把类B的成员函数voidfun()说明为类A的友元函数,则应在类A中加入语句
26.执行下列程序doublea=3.1415926,b=3.14;
cout<
<
setprecision(5)<
a<
"
'
'
<
setprecision(5)<
b<
endl;
程序的输出结果是。
27.在C++中,访问一个指针所指向的对象的成员所用的指向运算符是
28•基类的公有成员在派生类中的访问权限由决定。
29.由const修饰的对象称为。
30•如果通过同一个基类派生一系列的类,则将这些类总称为__
31.为了实现运行时的多态性,派生类需重新定义基类中的
32.在C++中有两种参数传递方式:
传值和传
33.C++中ostream的直接基类。
34.已知int*p=NULL,使用new为指针P申请一个存储大小为10的存放int型的空间,代码为
在编译指令中,宏定义使用每个对象都是所属类的一个。
函数重载时,编译系统会根据或形参的个数来区分。
静态成员函数、友元函数、构造函数和析构函数中,不属于成员函数的是局部对象和全局对象中,在同一程序中生存期最长。
改错题(本大题共5小题,每小题4分,共20分)
请在答题卡上作答。
F面的程序段中有一处错误,请在答题卡上抄写错误所在行并指出错误原因。
4L#iaclude<
ioatreani>
usingnaineepace別d;
classhasefint♦p;
public:
base(inta))p=&
a;
intget()flelunip禺
mtmaui()
baseb(3);
coutgpt()E
42.#uiclude<
lostreoni>
usingnamespacestd;
classbase}inta;
intget()ireturna;
voidactValue(intb))a=b;
intgm(){returna;
baseb;
b,3etValuc(7);
return0;
43.^include<
lo^trcam>
usingnamespacestd;
classAj
scaticinti;
y;
public;
A(inta,udb)j
X=a;
y=b;
get()treturnx+y;
X审5;
intinain()
Aa(h2);
oout«
a,get()«
endi;
r«
mm0;
44.^include<
iostreflni>
usingnamespace9td;
classA{intX;
publict
A(mla)1
voidsct(inta)'
[
voidget(){
cout«
I«
endl;
;
intniam()
constAa(4);
a.,set(6);
a*getC)J
a.8et(10)f乩getC);
rcium0;
45.#inc1ur1e<
iostrcam>
uaingnamespacestd;
classbase|
(nt肌b:
public:
voidscteem()I
I=Ojy=0;
voidpImjw(){
jt«
«
y«
endl;
mtmain()t
baseb;
b-aetoeiti{0*0);
ictum0;
四、完成程序题(本大题共5小题,每小题4分,共20分)请在答题卡上作答。
46.用简单选择法对10个数排序,使其从小到大排列。
ttinclude**scdab.h**#mc[u(lc<
iostearo>
usin^aamespacAsld;
Etmain(void)
inti;
intniiin[10],tJ;
for()
cin»
mjni[订;
for(i=0;
i<
9J++)
for(j=i+Hj<
10;
j++)
1£
(nuin[i]>
nuin[j])
t=nnm[il;
num[i]sniini[j];
1<
10;
1++)cout«
num[il«
*;
47.打印以下图案:
业*******卓
*#点***髀
#iDchid寸£
[tla&
”h”^include<
iqatreAni>
usingnuucapoctetid;
voidTnain(vmd)
intj,n;
forfJ—Wj=I;
J控制空格
cwt«
**f
(br(>
//n控制臺号
caut«
•"
tout«
endl■
48.任意输入10个同学的成绩,计算其平均成绩。
要求用函数average()计算平均成绩,主
函数输入数据并输出结果。
^include'
*fttdafx.h"
include<
iostream>
usingnamespacevoid[naia(void)
floatfloat»
[]);
floatacofc[10];
for()
3core[i]'
I
average*"
average(score)«
endl*
floatttvenige(floata[])
floatsum=0;
for(inti=0:
10;
i++)I
rctum(aumZIO);
49.编一个函数to_lower(),实现将字符串中的大写字母转换成相应小写字母。
主函数输入数据并输出结果。
#include"
stdabc.h"
^include<
ioatream>
voidmain(void}
voidtojower(chara[]|).;
char3tr[10];
str;
tojower(str);
cout«
str«
endl;
voidto_lowcr(chara[])
for(inti=0;
[0&
直[订!
=*\0*;
i++)
if()
a[i]+s32;
50.下面程序用来求直角三角形斜边长度。
#iiLclu(le<
ioEtreaci.h>
ftnclude<
math,h>
classLine;
classPoint
tprivate:
dcHjblei,y;
public*
Point(dou&
kikO,doublej=0)IX=i;
y=j:
i
Point(Point&
p)
fi=p.T;
y=p-y;
l
I:
Line
Iprivate:
Pointpl,p2;
Line(Point&
xpl,Point&
xp2):
doubleCetLength();
doubleline;
;
GetJjength()
Idoubledx=p2.xpkx;
doubledy=p2-y—pl.y;
returnsqrt(dx•dx+dy•dy);
voidmain()
IPoiiUp1^p2(63);
LineLI(pl,p2);
XHit«
LI*CeLLeng|li(〉«
cndl;
五、程序分析题(本大题共2小题,每小题5分,共10分)请在答题卡上作答。
51.给如下面程序输出结果。
#includ©
iostreajQ,h>
classBam
(private:
intY;
pubiic;
Base(inty-0){Y=y;
“B«
se("
y«
)\n"
j4Ba3e(){cout«
去Baee()\n"
j}voidprint()fcout«
Y«
*;
|
cJassDedvedspubVcBase
tprivatct
intZ;
public:
Derived(inty*inti)
iz=zi
ooul«
l>
erived("
i«
(
1
~DerivedC)J™ti(«
-Derived()j|voidpriiit()
IBm:
:
pTint();
Guut«
Z«
voidtiiAin()
tDerived<
1(10,20);
d.print();
52.给出下面程序输出结杲。
#mclude"
ioetrcani.h"
void)
intx,y,z;
x=3;
y-x.++;
Z5=++X;
coutcv”%="
X«
ty-"
”;
z=杯«
艺u<
六、程序设计题(本大题共I小题,共10分)
53.写一个程序,定义一个抽象类Shape,由它派生3个类:
Square(正方形卜Trapezoid(梯
形)和Triangle(三角形)。
用虚函数分别计算几种图形面积、并求它们的和。
要求用基
类指针数组,使它每一个元素指向一个派生类对象。
#include<
iastream«
h>
classShape
Ipublic:
virtualdoubleaiea()const=0j
塔空★启用前
2015年10和髙等教育自学考试全国统一侖题考试
c+申程序设计试题答案及评分参考
一澤璀購择凰(本大a共纫小《,毎小》1分,尹凶令J
1.B1DMA4.D鼠B6.丹7,D
MB12D11A14.C【MB'
*B17.C
二、«
空逼(本玄a共20■毎小H1伶•共切分)
21.dh
24.塞态性
27.七
30,类K
3工™
36,实例
目.C9.aJO.c
忆B19.C20.A
32,iiUABijbh=iQ;
25,frieodvoidB*:
fun();
28,谊问控jW方或曲承方式
3L
34pEDOWin([l0]i
a舷畫的类®
23.保护[pnxeued)数擄
26,33416,3.N
29.
32,
35,班
40+
謝用ttdeGnc友元施戟
39"
EnondvoidB;
tfimVJ;
三“改Wfil*大IS凳5小H・毎小《+分,共加分}
41*霽案E呦-Pi^.B«
OS»
的返目舷试是int型变*価代码中評()返回餡是血第腊廿m自考单科包过qql65ai612燈敦!
#rrtuEp;
楼改为jcgE*pj
g禅魚诚摩确函数石ffi賣接调用*
»
改:
#«
*¥
■!
«
(血)函数声朝为公有S數,
扌沐答當士JI-5;
L*为»
垂JR据成员’谏出呂式错iSLtta.uiiA;
ii=5s
44・《案:
coniith呎4”错,■是常討氯不ffittSr新.tfSx将*定叉歩非#对ft.
45.昏乗由,如巩04);
错膜■因为类中不存在带有两牛形*WTacroO瞬数,修改】将h.KUw戚0.0);
#改为如letze叔卄
HL完威本大■共S小題•桶小«
4分.共2D分)椁案tint1-0,1<
1DJ^nuratj]=t
答案:
inti*】H"
X*++11-9(n>
=2•r-Itit—
答案:
iMimOM斗阳訂++HHMa[I]
菩薬rusingrtlEMpiresldft{f]|>
='
**&
・〔:
]"
■*»
*£
*
答札fiipmdtJnefpl(xpl),p2{^p31
4fi.47.
49.
50.
ttt折]友元灵的fit用■定丈Line迢Poim类的朮元娄”血臭対象的初筋优采用列表的冊式.
五*澤序幷怫赢(車大《共1小》,每小fi5分■井10仝』5k答索t
Bue(lO)Dfiriv«
i{10,20)1020-DerivedC)rBiueC】
31.答案=5;
厂阳"
5
>
04737C卄理洋设计试J醉案及评分齧曙第1更(共2血
六、程序设计Sf#大题共10分)
53,答案:
cldS4>
Square:
puUicSh即眸
jpublic:
SquAPcCdouhteSJM血(営){jdoublearoaf)contd[rciumside*side;
\private*
douhle期de(
tUsaTmpcMjjd:
publicShape
Trupexoid(doublei,doublej,doublek)^a(Vfb(j),b(k)
!
i
doubkAg()con就|rctuni({a+b)*h/2);
1
privatej
doubleB|bfh;
claaATnuigU:
Ipublic:
TriuigleCdiwblfii,doublej);
w{i),b(j)
II
double"
4l^Ga{)eonstli«
him(w•h/2);
)
p
doublew,h*
voidtnajn()
Shape*p[S];
Squares*>
(5)
Trapezoidtd(2,5,4)^
Truni^clc(5,ft);
p[0]書&
昨
p[l]H&
ld;
p[2]
doahlf(ia=0;
fortinti=0ii<
3j(++)|fla+=p[i]->
anwO;
[cool«
*总面积足:
"
da«
cndlj
04737G++S序设计„试题答褰及评分参考®
2页(共2页)