自考04737C++程序设计10历年真题及答案.docx
- 文档编号:6709746
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:14
- 大小:50.98KB
自考04737C++程序设计10历年真题及答案.docx
《自考04737C++程序设计10历年真题及答案.docx》由会员分享,可在线阅读,更多相关《自考04737C++程序设计10历年真题及答案.docx(14页珍藏版)》请在冰豆网上搜索。
自考04737C++程序设计10历年真题及答案
2012年10月高等教育自学考试全国统一命题考试
C++程序设计试题
课程代码:
04737
请考生按规定用笔将所有试题的答案涂、写在答题纸上。
选择题部分
注意事项:
1.答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。
2.每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。
如需改动,用橡皮擦干净后,再选涂其他答案标号。
不能答在试题卷上。
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。
错涂、多涂或未涂均无分。
1.使用下列哪一限定符可强制改变访问方式
A.constB.short
C.1ongD.signed
2.下列表达式,哪一是声明P为指向常量的指针
A.constint*pB.int*constp;
C.constint*constpD.int*p
3.运算符:
:
叫做
A.下标运算符B.自增运算符
C.成员访问运算符D.作用域运算符
4.如果为一个类定义了自己的构造函数,下列描述正确的是
A.系统不再提供默认构造函数,但提供其他构造函数
B.系统提供其他非默认构造函数
C.系统不再提供默认构造函数
D.系统仍提供默认构造函数
5.对于类中的成员,使用protected修饰,表明该成员的访问权限是
A.公有的B.私有的
C.保护的D.不可见的
6.类不是内存中的物理实体,只有当使用类产生对象时,才进行内存分配,这种对象建
立的过程称为
A.程序化B.结构化
C.过程化D.实例化
7.下列关于类的权限描述错误的是
A.类本身的成员函数可以访问自己定义的任何成员
B.类的对象只能访问公有成员
C.普通函数只能通过对象访问类的公有成员
D.一个类不能包含另一个类的对象作为成员
8.在派生中,访问控制方式没有下列哪种
A.publishB.public
C.protectedD.private
9.采用重载函数的目的是
A.实现共享B.减少空间
C.提高速度D.使用方便,提高可读性
10.设类A中包含若干其他类的对象作为成员,则在定义类A的构造函数时,应使用下列哪个符号将A:
:
A(参数表)与成员初始化列表隔开
A.,B.;
C.:
D..
11.设存在数组a,其长度为Len,则下列哪个泛型算法用于对a进行升幂排序
A.reverse(a,a+Len);B.sort(a,a+Len);
C.find(a,a+Len,value);D.copy(a,a+Len,b);
l2.函数intsum(inta=10,intb=15,intc=25);不可与下列哪个函数同时声明
A.intsum(int,int,int,int)B.intsum(int,int,int)
C.intsum(double)D.intsum(double,double,double);
13.对函数intsaveName(char*first,char*sec="",char*thd="")下列调用方法不正确的是
A.ints=saveName("1","2","3");B.ints=saveName("1","2");
C.ints=saveName("1");D.ints=saveName("1",,"3");
14.下列哪个不是函数重载需要满足的条件
A.返回值类型不同B.参数个数不同
C.参数个数相同时,参数类型不同D.函数名相同
15.关于对象性质,下列描述错误的是
A.同一类对象之间不可相互赋值
B.可以使用对象数组
C.对象可以用作函数参数
D.一个对象可以用作另一个类的成员
16.可用作C++语言用户标识符的一组标识符是
A.void,define,+WORDB.a3_b3,_123,YN
C.for,-abc,CaseD.2a,DO,sizeof
17.设函数int&index(inta,inti)返回数组a中下标为i的元素,如果在整型数组intarray[]={1,2,3},在执行index(array,1)+=3后,array中各元素值为
A.{4,2,3}B.{1,5,3}
C.{1,2,6}D.{4,5,6}
18.对指针动态分配空间用的关键字是
A.defineB.int
C.newD.float
19.一个函数功能不太复杂,但要求被频繁调用,应选用
A.内联函数B.重载函数
C.递归函数D.嵌套函数
20.在inta=3,*p=&a;中,*p的值是
A.变量a的地址值B.无意义
C.变量p的地址值D.3
非选择题部分
注意事项:
用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。
二、填空题(本大题共20小题,每小题1分,共20分)
21.默认参数是在______中说明的,默认参数可以多于1个,但是必须放在参数序列的后部。
22.类所声明的内容用______括起来,之间的内容称为类体。
23.执行代码doublepi=3.141592;cout< 24.在文件输入流类中,用于判断提取操作是否已达到文件尾的方法是______。 25.常量成员包括常量数据成员,静态常数成员,和______。 26.通过C++语言中的______机制,可以从现存类中构建其子类。 27.如果一个函数直接或间接地调用自身,这样的调用称为______调用。 28.使用C++编译器对C++源程序进行编译产生文件的扩展名是______。 29.C++的类成员由数据成员和______组成。 30.C++面向对象程序设计的特点为: 抽象,封装,继承和______。 31.C++标准库string类中用于在主串中检索所需字符串的成员函数是______。 32.C++中函数参数有两种传递方式: 传值和______。 33.在删除一个动态对象时,将自动调用该动态对象所属类的______函数。 34.在C++当中,类外的函数只能通过类的对象使用该类的______。 35.简单成员函数是指声明中不含const,volatile,______关键字的函数。 36.执行cout< 37.假定类A有一个公有属性的静态数据成员b,在类外不通过对象名访问b的写法是______。 38.拷贝构造函数使用______作为参数初始化创建中的对象。 39.一旦基类定义了虚函数,该基类的派生类中的______也自动成为虚函数。 40.在C++类中,有一种类不能生成对象只能被继承,称之为______。 三、改错题(本大题共5小题,每小题4分,共20分) 下面的类定义中有一处错误,请写出错误所在行并给出修改意见。 41.#include template Tminx(Tx,Ty){ if(x>y) x=y; returnx; } voidmain() { inta; doubled; cout< } 42.#include classPeople{ public: voidPeople(){} constintage()const{return15;} char*name(){return"Green";} }; voidmain() { constPeoples; inti=s.age(); cout<<"age="< } 43.#include classA{ public: voidshow(){cout<<"classAshow"< }; classB{ public: voidshow(){cout<<"classBshow"< }; classC: publicA,publicB{ public: voidprint(){cout<<"classCprint"< }; voidmain(){ Cc; c.show(); c.print(); } 44.#include classStudent{ intx=0,y=0; public: Student(){ x=1; y=l; } Student(inta,intb){ x=a; y=b; } voidget(){ cout< } }; intmain(){ Studentstudent(5,6); student.get(); } 45.#include classBase{ public: virtualvoidfun()=0; }; classTest: publicBase{ public: virtualvoidfun(){cout<<"Test.fun="< }; voidmain(){ Basea; Test*p;p=&a; } 四、完成程序题(本大题共5小题,每小题4分,共20分) 46.在下面程序横线处填上适当内容,使程序执行结果为: 40: 15 程序如下: #include template Tfunc(Tx,Ty){ if(sizeof(T)==8) return______; else return______; } voidmain(){ cout< "< intd;cin>>d: } 47.在下面程序横线处填上适当内容,使程序执行结果为: x=0,y=0 x=1,y=2 x=10,y=20 程序如下: #include classSample } intx,y; public: Sample(){______} Sample(______){x=a;y=b;} voiddisp() { cout<<"x="< } }; voidmain() { Samples1,s2(1,2),s3(10,20); Sample*pa[3]={&s1,&s2,&s3}; for(inti=0;i<3;i++) pa[i]->disp(); } 48.在下面程序横线处填上适当内容,使程序执行结果为: n=30 程序如下: #include template classTest { Tn; public: Test(){} Test(Ti){n=i;} Test { staticTest ______; returntemp; } voiddisp(){cout<<"n="< }; voidmain() { Test t3=t1+t2; t3.disp(); } 49.在下面程序横线处填上适当内容,使程序执行结果为: n=2,sum=2 n=3,sum=5 n=5,sum=10 程序如下: #include classTest { intn; staticintsum; public: Test(intx){n=x;} voidadd(){______;} voiddisp() { cout<<{"n="< } }; int______=0; voidmain() { Testa (2),b(3),c(5); a.add(); a.disp(); b.add(); b.disp(); c.add(); c.disp(); } 50.在下面程序中的横线处填上适当内容,使程序完整 #include ______ classA { inti; public: intset(B&); intget(){returni;} A(intx){i=x;} }; classB { inti; public: B(intx){i=x;} ______A; }; intA: : set(B&b) { returni=b.i; } voidmain() { Aa (1); Bb (2); cout< a.set(b); cout< } 五、程序分析题(本大题共2小题,每小题5分,共10分) 51.下面程序中A是抽象类,其输出是什么? #include classA{ public: virtualvoidprintMe(){cout<<"ThisisclassAprinting."< }; classB: publicA{ public: voidprintMe(){cout<<"ThisisclassBprinting."< }; classC: publicB{ public: voidprintMe(){cout<<"ThisisclassCprinting."< }; voidprint(Aa) { a.printMe(); } voidmain() { Bb; Cc; print(b);print(c); } 52.写出此程序的执行结果: #include template Tfunc(Tx,Ty){ if(sizeof(T)==8) returnx+y; else returnx*y; } voidmain(){ cout< "< intd;cin>>d: } 六、程序设计题(本大题共1小题,共10分) 53.设计一个Bank类,实现银行某账号的资金往来账目管理,包括建账号、存入、取出等。 解: Bank类包括私有数据成员top(当前账指针),date(日期),money(金额),rest(余额)和sum(累计余额)。 有三个成员函数bankin()(处理存入账),bankout()处理取出账)和disp()(输出明细账)请完成函数的实现。 本题程序如下: #include #include #defineMax100 classBank { inttop; chardate[Max][10];//日期 intmoney[Max];//金额 intrest[Max];//余额 staticintsum;//累计余额 public: Bank(){top=0;} voidbankin(chard[],intm){…} voidbankout(chard[],intm){…} voiddisp(){…}; };
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自考 04737 C+ 程序设计 10 历年 答案