内容发布更新时间 : 2025/2/19 16:22:58星期一 下面是文章的全部内容请认真阅读。
全国2014年4月高等教育自学考试
C++程序设计试卷
课程代码:04737
本试卷满分100分,考试时间150分钟. 考生答题注意事项:
1.本卷所有试卷必须在答题卡上作答。答在试卷上无效。试卷空白处和背面均可作草稿纸。 2.第一部分为选择题。必须对应试卷上的题号使用28铅笔将“答题卡”的相应代码涂黑。 3.第二部分为非选择题。必须注明大、小题号,使用0.5毫M黑色字迹签字笔作答。 4.合理安排答题空间。超出答题区域无效。
第一部分选择题
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题 纸”的相应代码涂黑。错涂、多涂或未涂均无分。 1.下列关于类的权限描述错误的是
A.类本身的成员函数可以访问自身的任何成员 B.类的对象只能访问公有成员
C.普通函数可以不通过对象直接访问类的公有成员 D.一个类可以包含另一个类的对象作为成员
2.只能在自身类和子类成员函数中被访问,无法通过对象在类外访问的成员属于
A.private C.public
3.面向对象中的“对象”是指
A.行为抽象
C.行为抽象和数据抽象的统一
B.数据抽象
D.行为抽象和数据抽象的对立 B.protected D.publish
4.在类外定义成员函数时,::运算符两侧分别连接
A.返回值类型函数名 C.函数名类名D.类名函数名
5.设函数int& index(int * a,int i)返回数组a中下标为i的元素,如存在整型数组int Array[]={1,2,3},在执行 index(Array,2)+ +后,Array中各元素值为
A.{0,1,2} C.{1,2,4}
6.类构造函数定义的位置是
A.类体内或体外
B.只是在类体内
1 / 14
B.{l,1,2} D.{0,2,3} B.返回值类型类名
C.只在类体外 D.在类的成员函数中
7.设存在数组a,其长度为Len,则下列哪项泛型算法用于在a中寻找值Value的位置
A.reverse(a,a+Len,Value); C.find(a,a+Len,Value);
8.关于对象的性质,下列描述错误的是:
A.同一类对象间可相互赋值 C.对象不可以用作函数参数
9.声明一个没有初始化参数的对象,需调用
A.指定参数构造函数
C.初始化函数D.默认构造函数 10.下列运算符不能重载的是
A.! C.new
B.sizeof D.delete B.拷贝构造函数 B.可以使用对象数组
D.一个对象可以用作另一个类的成员 B.sort(a,a+Len,Value); D.copy(a,a+Len,Value);
11.如P是一指针类型表达式,则下列表达式中不是左值表达式的是
A.P C.&P
B.*P D.P+1
12.使用下列流格式控制符能输出一个换行符的是
A.dec C.hex
B.oct D.endl
13.下列表达式,能将P声明为常量指针的是
A.const int * P; C.const int * const P 14.C++程序文件扩展名为
A..cpp C..lib
15.对C++中主函数描述正确的是
A.名称为main,可为多个
C.名称为main,必须有且只能有一个
B.名称不限,可为多个
D.名称不限,必须有且只能有一个 B..h D..obj B.int*const P; D.int * P
16.假定有char * P=\;,要输出这个字符串的地址值的正确写法是
A.cout<< *P C.cout<<&P
17.下列描述错误的是
A.在没创建对象前,静态成员不存在 B.静态成员是类的成员,不是对象成员 C.静态成员不能是虚函数
D.静态成员函数不能直接访问非静态成员
2 / 14
B.cout<
18.对于友元描述正确的是
A.友元是本类的成员函数B.友元不是本类的成员函数 C.友元不是函数
D.以上皆不正确
19.一个函数功能不太复杂,但要求频繁使用,则该函数适合作为
A.内联函数 C.递归函数
20.下列默认参数的声明不正确的是
A.int max(int a,int b,int c,int d=0); B.int max(int a,int b,int c=0,int d=0); C.int max(int a=0,int b,int c=0,int d=0); D.int max(int a,int b=0,int c=0,int d=0);
B.重载函数 D.嵌套函数
非选择题部分
注意事项:
用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试卷卷上。
二、填空题(本大题共20小题,每小题1分,共20分) 21.C++程序的编译是以___文件___为单位进行的。
22.默认参数是在__函数原型____中说明的,默认参数可以多于一个。 23.通过C++语言中的___派生___机制,可以从现存类中构建其子类。 24.拷贝构造函数使用___引用对象___作为参数初始化创建中的对象。 25.基类的公有成员在通过公有派生得到的子类中访问权限是___公有类型___。 26.要关闭一个输出流对象myFile,所用的C++语句是___myFile.close()___。
27.执行下列代码:double pi=3.1415926;cout< 29.建立一个对象时,对象的状态是不确定的。为了使对象的状态确定,必须对其进行正确的__初始化____。 30.C++类中的___析构___函数在对象的生存期结束时被自动调用。 31.C++语言中的整数常量有四种:十进制常量、长整型常量、八进制常量和___十六进制常量___。 32.UML中对象之间的静态关系是通过对象属性之间的连接反映的,称之为___实例连接___。 33.声明一个常成员函数Fun,返回类型为char,第一个参数类型为int,第二个参数类型为double,则该函数的声明原型是___char Fun(int,double)const。___。 34.在C++语言中,利用向量类模板定义一个具有20个int类型且初值为1的向量C,实现此操作的语句是___vector 35.执行下列代码:int a=123,b=321;cout< 3 / 14 37.vector类中用于返回向量中第一个对象的方法是___front()___。 38.C++语言中动态分配内存的关键字是__new____。 39.C++类成员的访问权限有___私有___、公有和保护三种。 40.写出声明一个复数对象num的语句,并使对象被初始化为单精度2.2+1.3i,此声明语句是__complex 三、改错题(本大题共5小题,每小题4分,共20分) 下面的每题中有一处错误,请在答题纸上写出错误所在行并给出修改意见 41.#include * p=y;指向常量的指针P不能进行左值操作 cout<<*p< 42.#include private:T x, y。 模板没有声明 public:f1(T a,T b){x=a;y=b;} T max( ){return(x>y)?x:y;} }; main( ) { f a; a.f1(1.5,3.8); cout< 43.#include class point { private:float x,y; public:point(float a,float b){x=a;y=b;} f( ){x=0;y=0;} void getx( ){cout< point a (3.5);没有定义一个参数的构造函数 a.getx( ); } 44.#include 4 / 14 class f{ private:float x,y; float get( ){return x+y;} public:f1(float a,float b){x=a;y=b;} }; main( ) { f a; a.f1(1,3.8); cout< 45.#include class test:public testl,public test2.{ private:int x; public:void set(int a){x=a;} void gettest( ){cout< test a;a.get( );get()存在二义性,使用时需要指出使用哪个基类的函数。例如:a.test1::get() } 四、完成程序题(本大题共5小题,每小题4分,共20分) 46.完成下面类中的成员函数的定义。 class point { private: int m,n; public: point(int,int); 5 / 14