全国2012年10月自学考试C++程序设计试题及答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

全国2012年10月自学考试C++程序设计试题课程代码:04737选择题部分一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。错涂、多涂或未涂均无分。1.使用下列哪一限定符可强制改变访问方式A.constB.shortC.1ongD.signed2.下列表达式,哪一是声明P为指向常量的指针A.constint*pB.int*constp;C.constint*constpD.int*p3.运算符::叫做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.publicC.protectedD.private9.采用重载函数的目的是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,YNC.for,-abc,CaseD.2a,DO,sizeof17.设函数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.intC.newD.float19.一个函数功能不太复杂,但要求被频繁调用,应选用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;coutpi;程序的输出结果是______。24.在文件输入流类中,用于判断提取操作是否已达到文件尾的方法是______。25.常量成员包括常量数据成员,静态常数成员,和______。26.通过C++语言中的______机制,可以从现存类中构建其子类。27.如果一个函数直接或间接地调用自身,这样的调用称为______调用。28.使用C++编译器对C++源程序进行编译产生文件的扩展名是______。29.C++的类成员由数据成员和______组成。30.C++面向对象程序设计的特点为:抽象,封装,继承和______。31.C++标准库string类中用于在主串中检索所需字符串的成员函数是______。32.C++中函数参数有两种传递方式:传值和______。33.在删除一个动态对象时,将自动调用该动态对象所属类的______函数。34.在C++当中,类外的函数只能通过类的对象使用该类的______。35.简单成员函数是指声明中不含const,volatile,______关键字的函数。36.执行coutchar('a'+2)endl;后的显示结果为______。37.假定类A有一个公有属性的静态数据成员b,在类外不通过对象名访问b的写法是______。38.拷贝构造函数使用______作为参数初始化创建中的对象。39.一旦基类定义了虚函数,该基类的派生类中的______也自动成为虚函数。40.在C++类中,有一种类不能生成对象只能被继承,称之为______。三、改错题(本大题共5小题,每小题4分,共20分)下面的类定义中有一处错误,请写出错误所在行并给出修改意见。41.#includeiostream.htemplateclassTTminx(Tx,Ty){if(xy)x=y;returnx;}voidmain(){inta;doubled;coutminx(a,d)endl;}42.#includeiostream.hclassPeople{public:voidPeople(){}constintage()const{return15;}char*name(){returnGreen;}};voidmain(){constPeoples;inti=s.age();coutage=iendl;}43.#includeiostream.hclassA{public:voidshow(){coutclassAshowendl;}};classB{public:voidshow(){coutclassBshowendl;}};classC:publicA,publicB{public:voidprint(){coutclassCprintendl;}};voidmain(){Cc;c.show();c.print();}44.#includeiostream.hclassStudent{intx=0,y=0;public:Student(){x=1;y=l;}Student(inta,intb){x=a;y=b;}voidget(){coutxyendl;}};intmain(){Studentstudent(5,6);student.get();}45.#includeiostream.hclassBase{public:virtualvoidfun()=0;};classTest:publicBase{public:virtualvoidfun(){coutTest.fun=endl;}};voidmain(){Basea;Test*p;p=&a;}四、完成程序题(本大题共5小题,每小题4分,共20分)46.在下面程序横线处填上适当内容,使程序执行结果为:40:15程序如下:#includeiostream.htemplateclassTTfunc(Tx,Ty){if(sizeof(T)==8)return______;elsereturn______;}voidmain(){coutfunc(8,5):func(5.0,10.0)endl;intd;cind:}47.在下面程序横线处填上适当内容,使程序执行结果为:x=0,y=0x=1,y=2x=10,y=20程序如下:#includeiostream.hclassSample}intx,y;public:Sample(){______}Sample(______){x=a;y=b;}voiddisp(){coutx=x,y=yendl;}};voidmain(){Samples1,s2(1,2),s3(10,20);Sample*pa[3]={&s1,&s2,&s3};for(inti=0;i3;i++)pa[i]-disp();}48.在下面程序横线处填上适当内容,使程序执行结果为:n=30程序如下:#includeiostream.htemplateclassTclassTest{Tn;public:Test(){}Test(Ti){n=i;}TestT______(constTestT&s){staticTestTtemp;______;returntemp;}voiddisp(){coutn=nendl;}};voidmain(){Testintt1(4),t2(5),t3;t3=t1+t2;t3.disp();}49.在下面程序横线处填上适当内容,使程序执行结果为:n=2,sum=2n=3,sum=5n=5,sum=10程序如下:#includeiostream.hclassTest{intn;staticintsum;public:Test(intx){n=x;}voidadd(){______;}voiddisp(){cout{n=n,sum=sumendl;}};int______=0;voidmain(){Testa(2),b(3),c(5);a.add();a.disp();b.add();b.disp();c.add();c.disp();}50.在下面程序中的横线处填上适当内容,使程序完整#includeiostream.h______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);couta.get(),;a.set(b);couta.get()endl;}五、程序分析题(本大题共2小题,每小题5分,共10分)51.下面程序中A是抽象类,其输出是什么?#includeiostream.hclassA{public:virtualvoidprintMe(){coutThisisclassAprinting.endl;};};classB:publicA{public:voidprintMe(){coutThisisclassBprinting.endl;}};classC:publicB{public:voidprintMe(){coutThisisclassCprinting.endl;}};voidprint(Aa){a.

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功