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

深圳自学考试/成人高考/远程教育/开放大学/高职扩招/全日制大专/专本连读等-【深圳继教报名服务咨询点】

深圳自考本科
深圳自考本科
2022年学历报考

直通车

点击报考>>

短时间毕业 四大学历提升方式解析

适用于任何想提升学历、有上进心的学员

自学考试

  • · 1.5-2年毕业
  • · 1.4.10月的第二个星期周末考试
  • · 免试入学
  • · 业余学习,上班族首选
  • · 含金量:国家承认,学信网可查
了解自学考试

成人高考

  • · 2.5年毕业
  • · 一年考一次
  • · 统考入学
  • · 分业余、函授、脱产等教学形式
  • · 含金量:国家承认,学信网可查
了解成人高考

远程教育

  • · 2.5年毕业
  • · 一年考两次
  • · 校考入学
  • · 网络教学无地域限制
  • · 含金量:国家承认,学信网可查
了解网教远程

开放大学

  • · 2.5年毕业
  • · 一年考两次
  • · 校考入学
  • · 网络教学或教学站学习
  • · 含金量:国家承认,学信网可查
了解开放大学

没学历也能自考本科,自考方案推荐

低学历升专科

低学历想考专科

在线咨询报名流程>>

高中升专科

高中/中专/中职/升大专

在线咨询报名流程>>

专科升本科

高职/高考/大专升本科

在线咨询报名流程>>

专本套读

高中及以下学历专本一起读

在线咨询报名流程>>

低学历升本科

低学历想考本科

在线咨询报名流程>>

高中升本科

高中/中专/中职/升本科

在线咨询报名流程>>

第二学历

本科修第二学历

在线咨询报名流程>>

上班族升本科

上班族专属定制修本科

在线咨询报名流程>>
您现在的位置: 首页 自考历年真题

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

来源:    发表时间:2014-10-27 10:09    查看: 次    深圳自考网
  

 2 0 1 3年1 0月自学考试C++程序设计试题

  课程代码: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<

  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

  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<

  void gety(){cout<

  } ;

  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

  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

  using namespace std;

  class base

  {

  int a,b;

  public:

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

  void show( )

  {

  cout<

  }

  }

  void main( )

  {

  base b(78,87);

  b.show(b);

  }

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

  #include

  #include

  using namespace std;

  void main( )

  {

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

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

  myf. close ( );

  }

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

  67 ,90

  源程序如下:

  #include

  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<<""

  }

  void print( base*p)

  {

  p -> show(p);

  }

  void main()

  {

  base a;

  a.initxy(67 ,90);

  print( );

  }

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

  部分。

  #include

  using namespace std;

  class Base

  {

  public:

  Base(int a){x=a;}

  int Getx(){return x;

  void showb(){cout<

  private:

  int x;

  };

  template

  class derived: public Base

  {

  public:

  derived(T a,int b):____

  {y=a;}

  T Gety( ){return y;}

  void showd( ){cout<

  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<

  void main ( )

  {

  base al (20) ,a2 (60);

  al. Show ( );

  a2. Show ( );

  }

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

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

  #include

  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函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)

更多内容请点击:在线咨询

(责任编辑:深圳自学考试网)

------深圳自考网分隔线----------------------------

深圳自考推荐信息


咨询窗口

    电话咨询

  • 罗湖:33391553
  • 宝安:29556010
  • 龙岗:85210979
  • 龙华:21017151
  • 网上报名