湖南大学自考招生网
  • 湖南大学学校简介
  • 湖南大学自考招生简章
  • 湖南大学自考网上报名

湖南大学自考信息所在位置:主页 > 自考试题 >

要让一个类中的所有对象具有共同的数据 应使用

时间 :2019-04-16 09:43 来源 : 湖南大学自考招生网 作者:admin 点击:

第一部分  选择题
 
一、单项选择题
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卷”上的相应字母涂黑。错涂、多涂或未涂均无分。
1.面向对象程序的基本元素是
     A.类                      B.对象                   C.程序                   D.方法
2.表达式 long(int  var) 也可表示为
     A.int  var = long;                                 B.int var(long)     
     C.(long)int var                                    D.以上都不是
3.要让一个类中的所有对象具有共同的数据,应使用
     A.常数成员变量                                B.私有数据成员
   C.静态数据成员                                 D.公有数据成员
4.在C++中,头文件扩展名是
     A.cpp                     B.h                        C.lib                      D.obj
5.下列数据类型中不属于C++语言的基本数据类型是
     A.字符类型            B.整型类型            C.枚举类型            D.逻辑类型
6.设已有函数int min(int,int),该min函数功能为返回两个参数中的较小值,若求22,59,70三者中最小值,下列表达式不正确的是
   A.int m=min(22,59,70);                B.int m=min(min(22,59),70);
   C.int m=min(22,min(59,70));     D.int m=min(59,min(22,70));
7.对于下面的函数原型声明:void testDefautParam(int a, int b=7, char z='*');  下列函数调用中,不合法的是
     A.testDefautParam(5);                     B.testDefautParam(5,8);
     C.testDefautParam(5,'#');                   D.testDefautParam(0,0,'*');
8.已有函数double  Fun1(int,int);下列函数中不可以定义为Fun1函数的重载函数的是
   A.int Fun1(int,int,int);                 B.int Fun1(int,int);
   C.double Fun1(double,double);        D.double Fun1(int,double);
9.有关析构函数的说法,不正确的是
     A.析构函数有且仅有一个
     B.析构函数和构造函数一样可以有形参
     C.析构函数的功能是在系统释放对象之前作一些内存清理工作
     D.析构函数无任何函数类型
10.类定义的内容允许被其对象无限制地访问的是
     A.private 部分                                    B. protected 部分  
     C.public 部分                                     D.以上都不对
11.C++语言可用p.a的形式访问派生类对象p的基类成员a,其中a是
   A.私有继承的公有成员              B.公有继承的公有成员
   C.公有继承的保护成员              D.公有继承的私有成员
12.对于友元函数,下列描述中正确的
   A.友元是本类的成员函数                      B.友元不是本类的成员函数
   C.友元不是函数                                  D.友元不能访问本类私有成员
13.关于成员函数的重载,说法正确的是
     A.就是在类中设计多个函数名相同,参数个数及类型也相同的函数
     B.析构函数可以重载
     C.函数重载,要求函数名相同,但参数个数不同或参数个数相同但其类型不同
     D.构造函数不可重载
14.能实现对对象进行初始化功能的是
     A.数据成员            B.构造函数            C.析构函数            D.静态成员函数
15.多继承派生类构造函数构造对象时,被最先调用的是
     A.派生类自己的构造函数                      B.虚基类的构造函数
     C.非虚基类的构造函数                          D.派生类中子对象类的构造函数
  
第二部分  非选择题
 
二、填空题
16.面向对象程序设计有以下主要特点,即抽象、封装、继承和      。
17.假设int a=l ,b=2;则表达式(++a/b) * b--的值为      。
18.无论是什么继承方式,派生类的成员不能访问基类      属性的成员。
19.静态成员属于      ,非静态成员属于对象。
20.用于输出表达式值的标准输出流对象是     
21.在函数模板的参数中,用class修饰的参数称为      参数。
22.函数重载时,编译系统会根据形参的个数或      来区分。
23.编译时的多态性可以通过使用      来实现。
24.设要把一个文件输出流对象thisFile与文件“d:\myfile\code.txt”相关联,所用的C++语句是      。
25.C++中,已知char *p1=new char(10); 则释放p1指向的内存使用语句是      。
 
三、程序填空题
26.下列程序实现将用户输入的字符串逆向输出。例如:输入的字符串为ABCDE,则输出为EDCBA。
       #include <iostream>
       using namespace std;
       void main( )
       {
              char str[180];
                   
              int k=strlen(str);
              for (int i=0; i<k; i++)
                          
       }
27.下列程序实现了对复数进行加法运算,请将程序补充完整。
#include<iostream>
#include<fstream>
using namespace std;
Class complex  //定义一个复数类
{
    public:
           int real;
    int imag;
    complex(int r=0,int i=0)
           {     real=r;imag=i;}
};
complex operator+(      ,complex& b)
{
    int r=a.real+b.real;
    int i=a.imag+b.imag;
    return       ;
}
void main( )
{
    complex x(1,2),y(3,4),z;
    z=x+y;
cout<<z.real<<“+”<<z.imag<<“I”<<endl;
}
 
28.下面函数模板求,其中n为整数。
       #include <iostream>
       using namespace std;
            
       double power(T x, int n)
       {     if(x==0) return 0;
              if(n==0) return 1;
              T powerx=1;
              for (int i=0; i<abs(n); i++)
                     powerx=powerx*x;
              if (n<0)
                     return 1.0/powerx;
              else
                          
       }
29.在下面横线处填上适当内容,完成类B的定义。
       #include <iostream>
       using namespace std;
       class A
       {    
         public:
              A( ) {a=0;}
              A(int i) {a=i;}
              void print( ) {cout<<a<<”,”;}
         private: int a;
       };
       class B:public A
{
  public:
       B(      ) {b1=b2=0;}
       B(int i, int j, int k):       {b1=j;  b2=k; }//使a的值为i
       void print( ){A::print( ); cout<<b1<<”,”<<b2<<endl;}
       private: int b1, b2;
       }
30.完成下面类中的成员函数的定义。
class triangle
{     private:
int base,height;//三角形的底和高
public:
triangle(int base,int height);
triangle(triangle &t);
};
triangle::triangle(int a,int b)
{
base=a;
       =b;
}
triangle::triangle(      )
{
base =t. base;
height =t. height;
}
30.以下程序是定义一个累加器类sumA,对其重载运算符“+”,请填空。
class sumA
{     private: int n;
public:
sumA() {n=0;}
sumA(int i) {n=i;}
           //运算符重载函数
{     sumA t;
t.n=n+a.n;
          //函数返回
}
void disp()
{     cout<<"n="<<n<<endl;
}
};
void main()
{     sumA k1(7),k2(27),k3;
k3=k1+k2;
k1.disp(); k2.disp(); k3.disp();
}
 
 
 
 
四、程序分析题
31.写出下列程序的运行结果:
#include <iostream>
using namespace std;
void swap(int x, int y)
{     int t;
       t=x;  x=y;  y=t;
}
void main( )
{     int a=80, b=100;
       cout<<”a=”<<a<<”,b=”<<b<<endl;
       swap(a,b);
       cout<<”a=”<<a<<”,b=”<<b<<endl;
 
}
 
32.写出下列程序的运行结果:
#include <iostream>
using namespace std;
class BASE
       {
         public:
              ~BASE( ) { cout<<”BASE”;}
       };
       class DERIVED : public BASE
       {
         public:
              ~ DERIVED ( ) { cout<<” DERIVED”;}
       };
       void main( )
       {     DERIVED  obj;
       }
 
33.写出下列程序的运行结果:
#include <iostream>
using namespace std;
class A
       {
         public:
              A( ) {cout<<”A”; }
              ~A( ) { cout<<”-A”; }
       };
class B : public A
       {     A* p;
         public:
              B( ) {cout<<”B”;  p=new A( ); }
              ~B( ) { cout<<”-B”;  delete p; }
       };
       void main( )
       {     B obj;
       }
 
五、编程题
 
34.编写一个函数int StrNum(char *s, char *subs),其功能是:统计子字符串subs在字符串s中出现的次数。
35.定义一个Point类,派生出圆Circle类,并增加一函数Area()计算圆的面积。不要求定义测试类。


TAG标签