1、高等教育自学考试 C+程序设计真题 2012 年 1 月及答案解析(总分:100.00,做题时间:150 分钟)一、课程代码:04737(总题数:1,分数:0.00)二、单项选择题(本大题共 20 小题,每小题 1 分(总题数:20,分数:20.00)1.如声明对象数组,则下列描述正确的是( )(分数:1.00)A.对每个元素均调用一次构造函数B.部分元素调用构造函数,其它元素不需调用C.均不需要调用构造函数D.只是首元素调用构造函数2.不同对象调用同一成员函数时,this 指针指向( )(分数:1.00)A.不同对象B.相同对象C.无对象D.不确定3.设存在函数 intmax(int,int
2、)返回两参数中较大值,若求 22,59,70 三者中最大值,下列表达式正确的是( )(分数:1.00)A.int m=max(22,max(59,70);B.int m=max(max(22,59),max(59,70);C.int m=max(max(22,70),59);D.以上皆正确4.一个类可拥有多少个构造函数( )(分数:1.00)A.0 个B.1 个C.1 或多个D.以上皆对5.在编译指令中,嵌入指令是指( )(分数:1.00)A.#includeB.#defineC.#ifD.#else6.设存在数组 a,其长度为 Len,下列哪项操作是将 a 中元素复制到数组 b 中( )(分
3、数:1.00)A.reverse(a+a,Len,b);B.sort(a,a+Len,b);C.find(a,a+Len,b);D.copy(a,a+Len,b);7.下列哪个要素不是面向对象的关键要素( )(分数:1.00)A.模块化B.抽象性C.封装性D.继承性8.下列对于类的描述错误的是( )(分数:1.00)A.类要先声明后使用B.类是具有唯一标识的实体C.两个类可以使用同一个名称D.组成类的不仅有数据,还可以有对数据进行操作的函数9.使用引用调用方式将实参传给形参,下列说法正确的是( )(分数:1.00)A.形参是实参的备份B.实参是形参的备份C.形参和实参共享同一对象D.形参和实参
4、无联系10.关于对象的性质,下列描述错误的是( )(分数:1.00)A.同一类对象之间可相互赋值B.不能使用对象数组C.对象可以用作函数参数D.一个对象可以用作另一个类的成员11.类的私有成员可在哪里被赋值( )(分数:1.00)A.类体中B.该类的成员函数中C.A 和 BD.以上都不是12.设存在数组 a,其长度为 Len,则下列哪个泛型算法用于反转 a 中各元素( )(分数:1.00)A.reverse(a,a+Len);B.sort(a,a+Len);C.find(a,a+Len,value);D.copy(a,a+Len,b);13.用于标识八进制常量的前缀或后缀是( )(分数:1.0
5、0)A.无B.后缀 L 或 1C.前缀零D.前缀 Ox14.派生类中继承的基类成员初始化如何进行( )(分数:1.00)A.由派生类构造函数调用基类的构造函数进行B.由派生类构造函数进行C.由基类构造函数进行,无需派生类构造函数调用D.以上皆不正确15.对于多重继承,下列描述正确的是( )(分数:1.00)A.所有基类使用相同的派生方式B.每个基类可使用不同派生方式C.只能是 public 派生D.只能是 protected 派生16.下列关于类的权限描述错误的是( )(分数:1.00)A.类本身的成员函数可以访问自身的任何成员B.类的对象可以访问该类的所有成员C.普通函数不能直接访问类的公有
6、成员,必须通过成员函数对其访问D.一个类可以将另一个类的对象作为成员17.运算符 delete 与哪个函数一起运行( )(分数:1.00)A.构造函数B.析构函数C.主函数D.不与任何函数一起工作18.一个类可以获得另一个类的特性的机制称为( )(分数:1.00)A.抽象B.封装C.继承D.多态性19.使用下列哪个格式控制符可设置转换十六进制为十进制( )(分数:1.00)A.decB.octC.hexD.endl20.对引用调用描述正确的是( )(分数:1.00)A.分配新存储空间B.修改已存储空间的名称为引用名C.引用名与已存在存储空间无任何关联D.将引用名标识符与一块已存在储区域相关联,
7、没有分配新存储空间三、填空题(本大题共 20 小题,每小题 1 分,共(总题数:20,分数:20.00)21.公共派生中,基类的公有成员在派生类中是 1。(分数:1.00)填空项 1:_22.若要使用标准输入流机制从键盘输入一个整数赋给整型变量 a,相应的 C+语句是 1。(分数:1.00)填空项 1:_23.UML 中对象行为之间的动态关系是通过对象行为之间的依赖关系表现的,称之为 1。(分数:1.00)填空项 1:_24.C+函数中按引用调用传递参数时使用 1 作为参数。(分数:1.00)填空项 1:_25.在 C+中除具有 1 语句和 switch 语句的函数外,其它函数都可以说明为内联
8、函数。(分数:1.00)填空项 1:_26.C+中规定模板以 1 关键字和一个形参表示开头。(分数:1.00)填空项 1:_27.构造函数不能被继承,一个派生类只能调用它的 1 基类的构造函数。(分数:1.00)填空项 1:_28.vector 类中用于获取存放的元素个数的方法是 1。(分数:1.00)填空项 1:_29.C+中 istream 类的直接基类是 1。(分数:1.00)填空项 1:_30.要关闭一个文件输出流对象 myFile,所用的 C+语句是 1。(分数:1.00)填空项 1:_31.执行下列代码 double pi=3.141592 cout * (p+i);cout te
9、mplate class Sample T n; public: Sample( ) Sample(T i)_ Sample)解析:23.UML 中对象行为之间的动态关系是通过对象行为之间的依赖关系表现的,称之为 1。(分数:1.00)填空项 1:_ (正确答案:消息传递)解析:24.C+函数中按引用调用传递参数时使用 1 作为参数。(分数:1.00)填空项 1:_ (正确答案:对象别名)解析:25.在 C+中除具有 1 语句和 switch 语句的函数外,其它函数都可以说明为内联函数。(分数:1.00)填空项 1:_ (正确答案:循环)解析:26.C+中规定模板以 1 关键字和一个形参表示开
10、头。(分数:1.00)填空项 1:_ (正确答案:Template)解析:27.构造函数不能被继承,一个派生类只能调用它的 1 基类的构造函数。(分数:1.00)填空项 1:_ (正确答案:直接)解析:28.vector 类中用于获取存放的元素个数的方法是 1。(分数:1.00)填空项 1:_ (正确答案:Size();)解析:29.C+中 istream 类的直接基类是 1。(分数:1.00)填空项 1:_ (正确答案:Ios 类)解析:30.要关闭一个文件输出流对象 myFile,所用的 C+语句是 1。(分数:1.00)填空项 1:_ (正确答案:myFile.close();)解析:3
11、1.执行下列代码 double pi=3.141592 cout * (p+i);cout template class Sample T n; public: Sample( ) Sample(T i)_ Sample int deg; char level 7 ; friend class process; public: student(char na ,int d)strcpy(name,na);deg=d; ; const int N=3;/学生个数 class process public: void trans(student s ) for(int i=0;i89) strcp
12、y(si.level,“优“); else if(si.deg79) strcpy(si.level,“良“); else if(si.deg69) strcpy(si.level,“中“); else if(si.deg59) strcpy(si.level,“及格“); else strcpy(si.level,“不及格“); /根据学生成绩计算学生等级(优大于 89 分,良大于 79 分,中大于 69 分,及格大于 59 分,不及格小于60 分). void disp(student s ) student temp(“,0); int i,j; for(i=0;isj+1.deg) temp=sj;sj=sj+1; sj+1=temp; for(i=N-1;i=0;i-) cout“姓名:“si.name“ 成绩:“si.deg“ 等级:“si.level解析: