全国2013年10月自学考试C++程序设计试题

发布日期:2019-12-27 15:22:03 编辑整理:河南自考网 【字体: 】   【自考招生老师微信】
立即购买

《自考视频课程》名师讲解,轻松易懂,助您轻松上岸!低至199元/科!

课程代码:04737

    请考生按规定用笔将所有试题的答案涂、写在答题纸上。

选择题部分

注意事项:

    1.答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。

 2.每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。如需改动,用橡皮擦干净后,再选涂其他答案标号。不能答在试题卷上。

一、单项选择题(本大题共20小题,每小题1分,共20分)

 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将答题纸的相应代码涂黑。错涂、多涂或未涂均无分。

1.下列不属于C++关键字的是

 A. extern                                                   B.goto

C.free                                                         D.default

 2.C++中定义标准输入的库为

 A.stdio                                                      B.math

C.istream                                                    D.stdlib

 3.My是一个类,则执行语句My a[3],*[2];之后,自动调用构造函数次数为

 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.反对称性

9.C++中类的成员默认为

 A. public                                                   B.private

C.protected                                                 D.static

10.C++中要实现动态联编,调用虚函数时必须使用

 A.基类指针                                              B.类名

C.派生类指针                                          D.对象名

11.下面对析构函数的正确描述是

 A.系统不能提供默认的析构函数               B.析构函数必须由用户定义

 C.析构函数没有参数                                D.析构函数可以设置默认参数

12.在下面的二维数定义正确的是

 A.int ary[5][ ];                                   B.int ary[ ][5]={{0,1,2}};

 C.int ary[ ][5];                                   D.int ary[5,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 voicl 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分)

21.C++程序的编译是以_____为单位进行的。

22.C++语言支持的两种多态性分别是编译时的多态性和____的多态性。

23.重载的运算符保持其原有的操作符个数、_____和结合性不变。

24.在C++中,函数的参数有两种传递方式,它们分别是值传递和____ 。

25.含有_____的类称为抽象类。

26.C++程序运行时的内存空间可以分成全局数据区,堆区,栈区和_____。

27.对于无返回值函数,定义函数时要用_____修饰函数类型。

28.定义重载函数必须在参数的个数或参数的_____上与其它同名函数不同。

29.拷贝构造函数是在用一个对象初始化另一个对象时被调用,系统缺省的拷贝构造函数

 的工作方法是_____。

30.以面向对象方法构造的系统,其基本单位是_____。

3 1.C++中定义友元函数使用的关键字为____ 。

32.当一个成员函数被调用时,该成员函数的____ 指向调用它的对象。

33.类可将实现细节隐藏起来,这种机制称为____ 。

34.在面向对象的程序设计中,通过封装实现数据隐藏;通过_____实现代码的复用。

35.在公有继承的中基类数据成员在派生类中的访问权限____ 。

36.复杂对象可以由简单对象构成,这种现象称为____ 。

37.如有“char * p="Hello";”,则语句“cout<<*(p+1);”输出值是_____。

38.基类和派生类的关系称为_____。

39.C++对其对象的数据成员和成员函数的访问是通过_____来限制的。

40.假定x =10,则表达式x< =10? 20:30的值为_____ 。

三、改错题(本大题共5小题,每小题4分,共20分)

下面的每题中有一处错误,请在“答题纸”上将错误所在行写出并给出修改意见。

41. #include <iostream.h>

     class point{

     private: float x,y;

     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;

    cout << *p << endl;

    }

43. #include < iostream. h >

 class test{

     private: int x;y;

 public: voicl f( int a,int b) { x = a;y = b; }

       int max( ) { return(x > y) ? x:y; }

   };

 main( ) {

     test a;

     a. f( 1 ,3) ;

     cout << a. max( ) << endl;

     }

44. #include <iostream h >

 class test{

     private: int x;

 public:test(int a) { x = a; }

 void set(int a) { x = a;}

 void get( ) { cout << x << endl; }

 };

 class testl: public test{

 private: int x;

 public :testl ( int a) { x = a; }

 void set( int a) { x = a;}

 void get( ) { cout <<′′<< endl; }

 };

45. #include < iostream. h >

 class f{

 private: int x,y;

 public: fl ( int a,int b) { x = a;y = b; }

 void print( ) { cout << x << --<< y << endl; }

 };

 main( ) {

 f a;

 float x = 1.0,y = 2. 0;

 a. fl ( x,y) ;

 a. print( ) ;

 }

四、完成程序题(本大题共5小题,每题4分,共20分)

46.在答题纸上填上缺少的部分。源程序如下:

 #include <iostream>

 using namespace std;

 class base

 {

  int a,b;

 public:

 base( int x,int y){a=x;b=y;}

void show(                 

 {

 cout<<p.a<<″, ″<<p.b<<endl;

 }

 }                

 void main( )

{

base b(78,87);

b.show(b);

}

47.在答题纸上填上缺少的部分。源程序如下:

 #include <iostream>

 #include<fstream>

 using namespace std;

 void main( )

 {

                myf("ab. txt");//定义输出流文件,并初始化

                << "This ia a TXT file";//向文件输入字符串

 myf. close ( );

 }

48.在下面程序中的答题纸上填上适当的程序,使程序的输出结果如下:

 67 ,90

 源程序如下:

 #include <iostream>

 using namespace std;

 class base

 {

 pnvate:

 int x,y;

 priblic:

 void initxy( int a,int b){x=a;y=b;}

 void show( base*p);

 } ;

 inline void base::show(                

 {

 cout<< p- >x<<""<<p- >y<<endl;

 }

    void print( base*p)

     {

       p -> show(p);

 }

 void main()

      {

        base a;

        a.initxy(67 ,90);

        print(       );

       }


49.下面程序给出了一个从普通的基类派生出一个模板类的方法,在答题纸上填上缺少的

 部分。

    #include <iostream>

    using namespace std;

    class Base

    {

    public:

      Base(int a){x=a;}

      int Getx(){return x;

      void showb(){cout<<x<<endl;}

    private:

 int x;

     };

template <class T>

 class derived: public Base

{

     public:

       derived(T a,int b):____

     {y=a;}

        T Gety( ){return y;}

 void showd( ){cout<<y<<" "<<Gets ( )<< endl;}

 private:

                  

} ;

   void main ( )

   { Base A(458);

 A.showb ( );

 derived < char * >B ("It is" ,1357);

      B.showd ( );

 }

50.下面程序的运行结果如下:

 20,22

 60,22

   在答题纸上填上缺少的部分。源程序如下:

 #include < iostream >

 using namespace std;

 class base

 {

 private:

 const int a;

 static const int b;

 public:

 base( int);

 void Show();

 };

                 =22;

                   : a (i){ }   //初始化

 void base : :Show(  )

 {cout<<a<<","<<b<<endl;}

 void main ( )

 {

 base al (20) ,a2 (60);

 al. Show ( );

 a2. Show ( );

 }

五、程序分析题(本大题共2小题,每小题5分,共10分)

51.给出下面程序的输出结果

    #include  <iostream>

using namespace std;

 class base

 {

 int x;

 public:

 void setx( int a){x=a;}

 int getx ( ){return x;}

 } ;

 void main ( )

 {

 int*p;

 base a;

 a.setx (15);

 p= new int (a. getx( ));

 cout < < * p;

 }

52.给出下面程序的输出结果

 #include < iostream >

 using namespace std;

 class base

 {

 private:

 int x;

 public:

void setx (int a){x=a;}

 int getx ( ){return x;}

} ;

 void main ( )

 {

 base a,b;

 a.setx (89);

 b =a;

 cout < < a.getx ( ) < < endl;

 cout < < b.getx ( ) < < endl;

}

六、程序设计题(本大题共10分)

53.在字符串类string中实现一个判断函数,该函数功能是统计某一字符串类对象(仅有单词和空格组成)有多少个单词,同时保存所有单词在字符串中的起始地址(设该字符串不超过100个单词)

#include < iostream. h >

#include < string >

class str{

 string s;  int n,a [ 100 ],j ,1;

 public:str ( string&a){s=a;n=0;j=0;l=0;}

 ....test (....);

   int * geta ( ){ return a;}

} ;

 请写出test函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)




《河南自考网》免责声明:

1、由于各方面情况的调整与变化,本网提供的考试信息仅供参考,考试信息以省考试院及院校官方发布的信息为准。

2、本网信息来源为其他媒体的稿件转载,免费转载出于非商业性学习目的,版权归原作者所有,如有内容与版权问题等请与本站联系。联系邮箱:812379481@qq.com。

全国2013年10月自学考试C++程序设计试题

日期:2019-12-27 15:22:03  整理:河南自考网  浏览(

课程代码:04737

    请考生按规定用笔将所有试题的答案涂、写在答题纸上。

选择题部分

注意事项:

    1.答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。

 2.每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。如需改动,用橡皮擦干净后,再选涂其他答案标号。不能答在试题卷上。

一、单项选择题(本大题共20小题,每小题1分,共20分)

 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将答题纸的相应代码涂黑。错涂、多涂或未涂均无分。

1.下列不属于C++关键字的是

 A. extern                                                   B.goto

C.free                                                         D.default

 2.C++中定义标准输入的库为

 A.stdio                                                      B.math

C.istream                                                    D.stdlib

 3.My是一个类,则执行语句My a[3],*[2];之后,自动调用构造函数次数为

 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.反对称性

9.C++中类的成员默认为

 A. public                                                   B.private

C.protected                                                 D.static

10.C++中要实现动态联编,调用虚函数时必须使用

 A.基类指针                                              B.类名

C.派生类指针                                          D.对象名

11.下面对析构函数的正确描述是

 A.系统不能提供默认的析构函数               B.析构函数必须由用户定义

 C.析构函数没有参数                                D.析构函数可以设置默认参数

12.在下面的二维数定义正确的是

 A.int ary[5][ ];                                   B.int ary[ ][5]={{0,1,2}};

 C.int ary[ ][5];                                   D.int ary[5,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 voicl 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分)

21.C++程序的编译是以_____为单位进行的。

22.C++语言支持的两种多态性分别是编译时的多态性和____的多态性。

23.重载的运算符保持其原有的操作符个数、_____和结合性不变。

24.在C++中,函数的参数有两种传递方式,它们分别是值传递和____ 。

25.含有_____的类称为抽象类。

26.C++程序运行时的内存空间可以分成全局数据区,堆区,栈区和_____。

27.对于无返回值函数,定义函数时要用_____修饰函数类型。

28.定义重载函数必须在参数的个数或参数的_____上与其它同名函数不同。

29.拷贝构造函数是在用一个对象初始化另一个对象时被调用,系统缺省的拷贝构造函数

 的工作方法是_____。

30.以面向对象方法构造的系统,其基本单位是_____。

3 1.C++中定义友元函数使用的关键字为____ 。

32.当一个成员函数被调用时,该成员函数的____ 指向调用它的对象。

33.类可将实现细节隐藏起来,这种机制称为____ 。

34.在面向对象的程序设计中,通过封装实现数据隐藏;通过_____实现代码的复用。

35.在公有继承的中基类数据成员在派生类中的访问权限____ 。

36.复杂对象可以由简单对象构成,这种现象称为____ 。

37.如有“char * p="Hello";”,则语句“cout<<*(p+1);”输出值是_____。

38.基类和派生类的关系称为_____。

39.C++对其对象的数据成员和成员函数的访问是通过_____来限制的。

40.假定x =10,则表达式x< =10? 20:30的值为_____ 。

三、改错题(本大题共5小题,每小题4分,共20分)

下面的每题中有一处错误,请在“答题纸”上将错误所在行写出并给出修改意见。

41. #include <iostream.h>

     class point{

     private: float x,y;

     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;

    cout << *p << endl;

    }

43. #include < iostream. h >

 class test{

     private: int x;y;

 public: voicl f( int a,int b) { x = a;y = b; }

       int max( ) { return(x > y) ? x:y; }

   };

 main( ) {

     test a;

     a. f( 1 ,3) ;

     cout << a. max( ) << endl;

     }

44. #include <iostream h >

 class test{

     private: int x;

 public:test(int a) { x = a; }

 void set(int a) { x = a;}

 void get( ) { cout << x << endl; }

 };

 class testl: public test{

 private: int x;

 public :testl ( int a) { x = a; }

 void set( int a) { x = a;}

 void get( ) { cout <<′′<< endl; }

 };

45. #include < iostream. h >

 class f{

 private: int x,y;

 public: fl ( int a,int b) { x = a;y = b; }

 void print( ) { cout << x << --<< y << endl; }

 };

 main( ) {

 f a;

 float x = 1.0,y = 2. 0;

 a. fl ( x,y) ;

 a. print( ) ;

 }

四、完成程序题(本大题共5小题,每题4分,共20分)

46.在答题纸上填上缺少的部分。源程序如下:

 #include <iostream>

 using namespace std;

 class base

 {

  int a,b;

 public:

 base( int x,int y){a=x;b=y;}

void show(                 

 {

 cout<<p.a<<″, ″<<p.b<<endl;

 }

 }                

 void main( )

{

base b(78,87);

b.show(b);

}

47.在答题纸上填上缺少的部分。源程序如下:

 #include <iostream>

 #include<fstream>

 using namespace std;

 void main( )

 {

                myf("ab. txt");//定义输出流文件,并初始化

                << "This ia a TXT file";//向文件输入字符串

 myf. close ( );

 }

48.在下面程序中的答题纸上填上适当的程序,使程序的输出结果如下:

 67 ,90

 源程序如下:

 #include <iostream>

 using namespace std;

 class base

 {

 pnvate:

 int x,y;

 priblic:

 void initxy( int a,int b){x=a;y=b;}

 void show( base*p);

 } ;

 inline void base::show(                

 {

 cout<< p- >x<<""<<p- >y<<endl;

 }

    void print( base*p)

     {

       p -> show(p);

 }

 void main()

      {

        base a;

        a.initxy(67 ,90);

        print(       );

       }


49.下面程序给出了一个从普通的基类派生出一个模板类的方法,在答题纸上填上缺少的

 部分。

    #include <iostream>

    using namespace std;

    class Base

    {

    public:

      Base(int a){x=a;}

      int Getx(){return x;

      void showb(){cout<<x<<endl;}

    private:

 int x;

     };

template <class T>

 class derived: public Base

{

     public:

       derived(T a,int b):____

     {y=a;}

        T Gety( ){return y;}

 void showd( ){cout<<y<<" "<<Gets ( )<< endl;}

 private:

                  

} ;

   void main ( )

   { Base A(458);

 A.showb ( );

 derived < char * >B ("It is" ,1357);

      B.showd ( );

 }

50.下面程序的运行结果如下:

 20,22

 60,22

   在答题纸上填上缺少的部分。源程序如下:

 #include < iostream >

 using namespace std;

 class base

 {

 private:

 const int a;

 static const int b;

 public:

 base( int);

 void Show();

 };

                 =22;

                   : a (i){ }   //初始化

 void base : :Show(  )

 {cout<<a<<","<<b<<endl;}

 void main ( )

 {

 base al (20) ,a2 (60);

 al. Show ( );

 a2. Show ( );

 }

五、程序分析题(本大题共2小题,每小题5分,共10分)

51.给出下面程序的输出结果

    #include  <iostream>

using namespace std;

 class base

 {

 int x;

 public:

 void setx( int a){x=a;}

 int getx ( ){return x;}

 } ;

 void main ( )

 {

 int*p;

 base a;

 a.setx (15);

 p= new int (a. getx( ));

 cout < < * p;

 }

52.给出下面程序的输出结果

 #include < iostream >

 using namespace std;

 class base

 {

 private:

 int x;

 public:

void setx (int a){x=a;}

 int getx ( ){return x;}

} ;

 void main ( )

 {

 base a,b;

 a.setx (89);

 b =a;

 cout < < a.getx ( ) < < endl;

 cout < < b.getx ( ) < < endl;

}

六、程序设计题(本大题共10分)

53.在字符串类string中实现一个判断函数,该函数功能是统计某一字符串类对象(仅有单词和空格组成)有多少个单词,同时保存所有单词在字符串中的起始地址(设该字符串不超过100个单词)

#include < iostream. h >

#include < string >

class str{

 string s;  int n,a [ 100 ],j ,1;

 public:str ( string&a){s=a;n=0;j=0;l=0;}

 ....test (....);

   int * geta ( ){ return a;}

} ;

 请写出test函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)



本文标签:河南自考 河南自考C++程序设计 全国2013年10月自学考试C++程序设计试题

转载请注明:文章转载自(http://www.hazikao.net

本文地址:http://www.hazikao.net/C++/31175.html



《河南自考网》免责声明

1、由于各方面情况的调整与变化,本网提供的考试信息仅供参考,考试信息以省考试院及院校官方发布的信息为准。

2、本网信息来源为其他媒体的稿件转载,免费转载出于非商业性学习目的,版权归原作者所有,如有内容与版权问题等请与本站联系。联系邮箱:812379481@qq.com