1、自考C+程序设计试题真题全国2010年10月高等教育自学考试 C+程序设计试题 课程代码:04737一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.C+中注释“”的有效范围是( )A.从“”开始到行尾 B.从“”开始到下一个“”C.“”及其后一个字符 D.从“”开始到程序尾2.假定MyClass为一个类,则该类的复制构造函数的声明语句为( )A.MyClass&(MyClass x); B.MyClass(MyClass x);C.MyClass(MyClass &x); D
2、.MyClass(MyClass *x);3.下列选项不是C+关键字的是( )A.typedef B.void C.bool D.inc4.用于标识十进制常量的前缀或后缀是( )A.无前后缀 B.后缀L或l C.前缀0 D.前缀0x5.设int x=56;int r=x;若cout &x;显示0012FF7A,则cout 静态成员名 D.对象指针.静态成员名18声明友元使用下列哪个关键字( )Aclass Bconst Cfriend Dvirtual19派生类继承了基类的( )A所有成员 B部分成员 C数据成员 D成员函数20基类private成员,通过public派生,其在派生类中为( )
3、Aprivate Bprotected Cpublic D不可访问二、填空题(本大题共20小题,每小题1分,共20分) 请在每小题的空格中填上正确答案。错填、不填均无分。21执行下列代码 double pi=3.141592; coutsetprecision(1)pi; 程序的输出结果是_。22要使用STL库提供的对数组进行升幂排序算法,在源程序中需要包含的头文件是_。23C+语言中动态回收内存的关键字是_。24执行下列代码 int b=100; cout”Oct:”octb; 程序的输出结果是_。25C+语言中用于定义一个类的关键字是_。26为了使用C+语言标准程序库提供的string类,
4、在程序中必须使用的文件包含命令是_。27在程序中执行int*a=new int之后,若a为空指针,则表明_。28C+函数中传递对象地址值是使用_作为参数。29将指向对象的指针作为函数参数,形参是对象指针,实参是对象的_。30C+函数有库函数(标准函数)和_两类。31C+中通过_对类的对象进行初始化。32UML中实例连接反映对象之间的静态关系,消息连接描述对象之间的_关系。33若将一个对象说明为常对象,则通过该对象只能调用它的_成员函数,不能调用其它成员函数。34静态成员函数是_的成员,不是对象的成员。35私有继承时,在派生类中基类的protected权限变为_。36若使用一个表达式的含义能解释
5、为访问多个基类中的成员,则这种对基类成员的访 问就是不确定的,称这种访问具有_。37如果在类模板的定义中有一个静态数据成员,则在程序运行中会产生_静态变量。38vector类中用于获取向量可以容纳最多对象的个数的方法是_。39C+用于运算符重载的关键字是_。40含有_的类称为抽象类,它只能作为基类来使用。三、改错题(本大题共5小题,每小题4分,共20分)下面的每题中有一处错误,请用下横线标出错误所在行并给出修改意见41. #include class testl private : int x; public: testl ( ) x = 2 ; void set(int a)x =a; vo
6、id get( ) cout x endl; ;class test2 private: int x; public : test2 ( ) x = 3 ; void set( int a) x = a; void get( ) cout x endl; ; class test: public testl, public test2 private : int x; public:void set( int a) x=a; void gettest( ) cout x endl; ; void main( ) test a; a. get( ); 42. #include class tes
7、t private : int x, y; public : void testl ( int a, int b) x = a ; y = b; int max( ); ; int test:max( ) if(xy) return x;else return y; void main( ) test a; a. testl ( 1,3); cout a. max ( ) endl; 43. #include void main() int x =5; const int * const p = &x; * p =88; cout * p endl; 44. #include class po
8、int private : float x, y ; public : f( float a, float b) x = a ; y = b ; f( ) x=O;y=O; void getx( ) cout x endl; void gety ( ) cout y endl ; class pointl private : float x, y ; public : f( float a, float b) x = a; y = b ; f( )x=l;y=l; void getx( ) cout x endl; void gety( ) cout y endl; ; main( ) I p
9、oint a; a.f(); a. getx( ) ;a. gety ( ); 45. #include void main( ) string strl ( we are here ); cout strl endl; 四、完成程序题(本大题共5小题,每题4分,共20分)46在下面程序的下划线处填上正确的数据类型,保证程序具有如下输出结果: 0 17 17,17,17源程序如下:#include using namespace std;class base public : _num; base ( ) ; int base:hum = 0; void main( ) cout base:n
10、um endl; _* p=&base : :num; *p=17; cout base:num end1; base a,b; cout * p, a. hum , b. num;47在下面横线处填上正确的内容,完成类的定义。class Base int x; static const int b; public: Base( int, int); const int &a; ; _b =15; Base:Base(int i,int j): _ 48完成下面程序中的show函数的定义,使其运行结果如下: In base In derived 程序清单如下: #include using n
11、amespace std; class base pubhc : virtual void print( ) cout In base endl; ; class derived: public base public : void print( ) cout In derived endl; ; void show(base * pb,void (base: * pf) ( ) ) _ void main( ) base b; derived d ; show ( &b, base:print); show ( &d, base:print); 49在下面程序的下划线处填上正确的语句。 #i
12、nclude using namespace std; template T f( T&a, T&b, int n) for (int i=0;i n;i + ) ai =ai +bi; return a ; void main( ) In ta5 =1,2,3,4,5; int b5 = 100,200,3,4,51 , * p; for(int i =0;i 2;i +) p=_调用函数f for( ;p a +5;p + ) cout _ endl ; 50.下列程序将x,y,z按从小到大的顺序排列并将结果返回给实参,在横线处填入正确的内容。 template void order(_)
13、 _; if(x y) a =x;x =y;y =a; if(y z) a =y;y =z;z =a; if(x y) a =x;x =y;y =a; 五、程序分析题(本大题共2小题,每小题5分,共10分)51给出下面程序的输出结果 #include using namespace std; template T F(T x) return x 5; void main( ) int a = 15; cout F(a) n; double b = - 5.8976; cout F(b) n; cout F(5) n; 52给出下面程序的输出结果 #include using namespace
14、 std; class A private: int X, Y; public : A ( int myx, int myy) X = myx; Y = myy ; void show ( ) cout X = X Y = Y endl; ; class B : public A private : int H, W; public: B ( int myx, int myy, int myh, int myw) : A ( myx, myy) H = myh ; W = myw; void show ( ) cout H = H ; W = W endl; ; void main( ) B
15、d(1,2,3,4) ; d. show ( ) ; 六、程序设计题(本大题共1小题,共10分)53定义队列类模板queue(先进先出),队列的大小由使用者确定。要求该类模板对外提供如下二种基本操作:(1)insert(入队列)(2)front(出队列),用数组来实现 #include using namespace std; template class queue T x size ; int current, front, rear; public : queue ( ) current = 0 ; front = 0 ; rear = 0 ; . . . .insert(. . . .); . . . .front(. . . .); ;请写出两个函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1