20131月高等教育自学考试全国统一命题考试
C++程序设计试题
课程代码:04737
考生答题注意事项:
1. 本卷所有试卷必须在答题卡上作答。答在试卷和草稿纸上的无效。
2. 第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。
3. 第二部分为非选择题。必须注明大、小题号,使用0.5毫米黑字迹笔作答。
4. 合理安排答题空间,超出答题区域无效。
选择题部分
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将答题纸的相应代码涂黑。错涂、多涂或未涂均无分。
1.下列不属于C++关键字的是
A. extern      B.goto
C.free    D.default
2C++中定义标准输入输出的库为
A.stdio    B.math
C.iostream     D.stdlib
3My是一个类,则执行语句My a3],*p2]之后,自动调用构造函数次数为
A.2    B.3   
C.4    D.5
4.下列语句错误的是
A. int val( 20);    B.extern int val( 20);
C. const int val;     D.extern const int val;
5.下列说法中,有关构造函数是正确的是
A.任何一类必定有构造函数    B.可定义没有构造函数的类
C.构造函数不能重载    D.任何一类必定有缺省的构造函数
6.下面关于类和对象说法不正确是
A.类由数据与函数组成    B.一个对象必属于某个类
C.对象是类的实例    D.一个类的对象只有一个
7指向类成员函数的指针.下面选项中不是类成员函数的是
A.构造函数    B.析构函数   
C.友元函数    D.静态函数
8.在C++中类之间的继承关系具有
A.自反性    B.对称性   
C.传递性    D.反对称性
9C++中类的成员默认为
A. public    B.private
C.protected    D.static
10C++中要实现动态联编,调用虚函数时必须使用
A.基类指针    B.类名   
C.派生类指针    D.对象名
11.下面对析构函数的正确描述是
A.系统不能提供默认的析构函数    B.析构函数必须由用户定义
C.析构函数没有参数    D.析构函数可以设置默认参数
12.在下面的二维数定义正确的是
A.int ary5][];    B.int ary[][5={{0,1,2}};
C.int ary[][5;    D.int ary5,5;
13.以下说法中正确的是
A.C++程序总是从第一个定义的函数开始执行
B.C++程序总是从main函数开始执行
C.C++中函数必须有返回值
D.C++中函数名必须唯一
14.对C++中主函数描述正确的是
A.名称为main,可为多个    B.名称不限,可为多个
C.名称为main,必须有且只能有    D.名称不限,必须有且只能有
15.下面声明纯虚函数语句正确的是
A. void fun( ) =0;    B.virtual void fun( )=0;
C. virtual void fun( );    D.virtual void fun( ){ };
16.对于拷贝初始化构造函数和赋值操作的关系,正确的描述是
A.拷贝初始化构造函数和赋值操作是完全一样的操作
B.进行赋值操作时,会调用类的构造函数
C.当调用拷贝初始化构造函数时,类的对象正在被建立并被初始化
D.拷贝初始化构造函数和赋值操作不能在同一个类中被同时定义
17.使用重载函数的目的是
A.共享函数数据    B.减少代码量
C.优化运行效率    D.提高可读性
18.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是
A.增加了一些新的运算符
B.允许函数重载,并允许设置缺省参数
C.规定函数说明符必须用原型
D.引进了类和对象的概念
19.假定有“char*p=“Hello”,若要输出这个字符串的地址值正确的写法为
A. cout<<*p;    B.cout<<p;
C. cout<<p;    D.cout<< (void*)p;
20.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是
A.公有类型    B.私有类型
C.保护类型    D.友元类型
非选择题部分
注意事项:
用黑字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。
二、填空题(本大题共20小题,每小题1分,共20分)
21C++程序的编译是以_____文件_______为单位进行的。
22C++语言支持的两种多态性分别是编译时的多态性和______运行时______的多态性。
23.重载的运算符保持其原有的操作符个数、_____优先级_______和结合性不变。
24.在C++中,函数的参数有两种传递方式,它们分别是值传递和_____地址传递_______
25.含有______纯虚函数______的类称为抽象类。
26C++程序运行时的内存空间可以分成全局数据区,堆区,栈区和_____代码区_______
27.对于无返回值函数,定义函数时要用____void________修饰函数类型。
28.定义重载函数必须在参数的个数或参数的____类型_____上与其它同名函数不同。
29.拷贝构造函数是在用一个对象初始化另一个对象时被调用,系统缺省的拷贝构造函数的工作方法是_____拷贝每一个数据成员_______
30.以面向对象方法构造的系统,其基本单位是____________
31.拷贝构造函数使用_____引用_______作为参数初始化创建中的对象。
32.当一个成员函数被调用时,该成员函数的_____this指针_______指向调用它的对象。
33.类可将实现细节隐藏起来,这种机制称为_____封装_______
34.在面向对象的程序设计中,通过封装实现数据隐藏;通过____继承___实现代码的复用。
35.在公有继承的中基类数据成员在派生类中的访问权限____保持不变_____
36.复杂对象可以由简单对象构成,这种现象称为__聚合____
37.如有“char*p=''Hello'',则语句“cout<<* (p+1)输出值是______e______
38.基类和派生类的关系称为_____继承_______
39.在类的定义中,说明为protected的数据成员称为保护成员。保护数据成员具有双重作用:对于其派生类而言,是公有的;而对于其外部的程序而言,是_____私有的_______
40.假定x =10,则表达式x< =10? 20:30的值为____20________
三、改错题(本大题共5小题,每小题2分,共10分)
下面的类定义中有一处错误,请写出错误所在行并给出修改意见
41.#include<iostream.h>
    class point{
    private: float xy
public: point( float a,float b) { x = a;y = b; }
  void f( ) {x=0;y=0;}
    void getx( ) { cout<< x<< endl; }
void gety( ) { cout<< y<< endl; }
} ;
  main() {
point a (3.5) ;  没有定义一个参数的构造函数
a.getx( )
}
42. #include < iostream. h >
  main( ) {
int x =7;
  const int * p = &x;
* p=99    指向常量的指针P不能进行左值操作
  cout<< * p<< endl;
}
43. #include < iostream. h >
  class test{
private: int x;y;  x定义时使用了;号,y没有定义
public: void f( int a,int b) { x = a;y = b; }
int max( ) { return(x > y) ? x:y; }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。