自考C程序设计04737试题及答案解析.docx
《自考C程序设计04737试题及答案解析.docx》由会员分享,可在线阅读,更多相关《自考C程序设计04737试题及答案解析.docx(14页珍藏版)》请在冰豆网上搜索。
自考C程序设计04737试题及答案解析
20XX年10月高等教育自学考试全国统一命题考试
C++程序设计
试卷
(课程代码04737)
本试卷共10页,满分100分,考试时间150分钟。
考生答题注意事项:
1.本卷所有试题必须在答题卡上作答。
2•第一部分为选择题。
必须对应试卷上的题号使用
3.第二部分为非选择题。
必须注明大、小题号,使用
4.合理安排答题空间,超出答题区域无效。
答在试卷上无效,试卷空白处和背面均可作草稿纸。
2B铅笔将“答题卡”的相应代码涂黑。
0.5毫米黑色字迹签字笔作答0
第一部分
选择题
一、单项选择题(本大题共20小题,每小题1分。
共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡”的相应代码涂黑。
未涂、错涂或多涂均无分。
1.在C++语言中用于注释的标识符是
A.&B.//C.*
2.编写C++程序一般需经过的几个步骤依次是
A.编辑、调试、编译、连接
C.编译、编辑、连接、运行
3.要求通过函数来实现一种不太复杂的功能,
A.内联函数B.重载函数
4.设x=8,执行语句Y=x++,则y等于
A.6B.7
5.下列运算符中,优先级最高的是
A.*B.一>
6.关于new运算符的下列描述中,错误的是
A.它可以用来动态创建对象和对象数组
B.使用它创建的对象和对象数组可以使用运算符
C.使用它创建对象时要调用构造函数
D.使用它创建对象数组时必须指定初始值
7.存储下列数据,占用存储字节最多的是
A.0B.‘0'
&关于类和对象不正确的说法是
A.类是一种类型,它封装了数据和操作
C.一个类的对象只有一个
9.下列有关构造函数的描述中,正确的是
A.构造函数可以带有返回值
C.构造函数必须带有参数
10.假定a为一个整型数组名,则元素
A.a+4B.a+8
11.类中能访问静态成员的函数是
D./
B.编译、调试、编辑、连接
D.编辑、编译、连接、运行并且要求加快执行速度,选用
C.
内部函数
D.函数模板
C.
C.
C.
&&
“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<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#iacludeusingnaineepace別d;classhasefint♦p;public:
base(inta))p=&a;
intget()flelunip禺
mtmaui()
baseb(3);coutgpt()E
42.#uicludeusingnamespacestd;classbase}inta;intget()ireturna;
voidactValue(intb))a=b;
intgm(){returna;
baseb;
b,3etValuc(7);return0;
43.^includeusingnamespacestd;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.^includeusingnamespace9td;classA{intX;publict
A(mla)1
X=a;
voidsct(inta)'[
X=a;
voidget(){
cout«I«endl;;
intniam()
constAa(4);a.,set(6);a*getC)J
a.8et(10)f乩getC);rcium0;
45.#inc1ur1euaingnamespacestd;classbase|
(nt肌b:
public:
voidscteem()I
I=Ojy=0;
voidpImjw(){
cout«jt«""«y«endl;
mtmain()t
baseb;
b-aetoeiti{0*0);
ictum0;
四、完成程序题(本大题共5小题,每小题4分,共20分)请在答题卡上作答。
46.用简单选择法对10个数排序,使其从小到大排列。
ttinclude**scdab.h**#mc[u(lcusin^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];
for(i=0;1<10;1++)cout«num[il«*;
47.打印以下图案:
业*******卓
*#点***髀
#iDchid寸£[tla&”h”^includeusingnuucapoctetid;voidTnain(vmd)
intj,n;forfJ—Wj=I;J控制空格
cwt«**f
(br(>//n控制臺号
caut«"•";
tout«endl■
48.任意输入10个同学的成绩,计算其平均成绩。
要求用函数average()计算平均成绩,主
函数输入数据并输出结果。
^include'*fttdafx.h"includeusingnamespacevoid[naia(void)
floatfloat»[]);
floatacofc[10];
for()
cin»3core[i]';
I
cout«"average*"«average(score)«endl*
floatttvenige(floata[])
floatsum=0;
for(inti=0:
i<10;i++)I
rctum(aumZIO);
49.编一个函数to_lower(),实现将字符串中的大写字母转换成相应小写字母。
主函数输入数据并输出结果。
#include"stdabc.h"
^include
voidmain(void}
voidtojower(chara[]|).;char3tr[10];
cin»str;
tojower(str);cout«str«endl;
voidto_lowcr(chara[])
for(inti=0;i<[0&&直[订!
=*\0*;i++)
if()
a[i]+s32;
50.下面程序用来求直角三角形斜边长度。
#iiLclu(leftnclude
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;
public;
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);
五、程序分析题(本大题共2小题,每小题5分,共10分)请在答题卡上作答。
51.给如下面程序输出结果。
#includ©
classBam
(private:
intY;
pubiic;
Base(inty-0){Y=y;cout«“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«")\n"(
1
~DerivedC)J™ti(«"-Derived()j|voidpriiit()
IBm:
:
pTint();
Guut«Z«endl;
voidtiiAin()
tDerived<1(10,20);d.print();
52.给出下面程序输出结杲。
#mclude"ioetrcani.h"void)
intx,y,z;
x=3;
y-x.++;
Z5=++X;
coutcv”%="«X«ty-"«y«”;z=杯«艺u六、程序设计题(本大题共I小题,共10分)
请在答题卡上作答。
53.写一个程序,定义一个抽象类Shape,由它派生3个类:
Square(正方形卜Trapezoid(梯
形)和Triangle(三角形)。
用虚函数分别计算几种图形面积、并求它们的和。
要求用基
类指针数组,使它每一个元素指向一个派生类对象。
#include
classShape
Ipublic:
virtualdoubleaiea()const=0j
塔空★启用前
2015年10和髙等教育自学考试全国统一侖题考试
c+申程序设计试题答案及评分参考
(课程代码04737)
一澤璀購择凰(本大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
Ipublic:
Trupexoid(doublei,doublej,doublek)^a(Vfb(j),b(k)
!
i
doubkAg()con就|rctuni({a+b)*h/2);1
privatej
doubleB|bfh;
claaATnuigU:
publicShape
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页)