欢迎您访问重庆自考网!  今天是
当前位置: 主页 > 历年真题 >

全国2013年10月自考C++程序设计试题(课程代码:04737)

2014-03-21 19:53来源:重庆自考网
全国2 0 1 3年1 0月高等教育自学考试
C++程序设计试题
课程代码:04737
  
一、单项选择题(本大题共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函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)

下该试题WORD文档:
全国2013年10月自考C++程序设计试题(课程代码:04737)
 
上一篇:全国2013年7月自考电子技术基础(三)试题(课程代码:04730)

下一篇:全国2013年10月自考Java语言程序设计(一)试题(课程代码:04747)