电大《面向对象程序设计》综合练习题

时间:2024-04-30 09:45:56 5A范文网 浏览: 平时作业 我要投稿

 一、单项选题

1字符串a+b=12/n的长度为(    )。

A. 6             B. 7              C. 8         D. 9

2. x>0 || y==5的相反表达式为(    )。

A. x<=0 || y!=5         B. x<=0 && y!=5  

C. x>0 || y!=5          D. x>0 && y==5

3. 循环体有可能一次都不执行的语句为   

A. for循环              B. switch循环

C. do循环               D. 任一种循环

4. 函数调用func((exp1,exp2,exp3),exp4,exp5))中所含实参的个数为(    )个。

A.  1            B.  2          C.  3          D.  5

5. 假定p是具有int**类型的指针变量,则给p赋值的正确语句为(    )。

A. p=new int;            B. p=new int[10];

C. p=new int**;          D. p=new int*;

6假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]值为(    )。

A. 2             B.4             C. 6         D. 0

7. 假定一个类的构造函数为“A(int aa=1, int bb=0) {a=aa; b=bb;}”,则执行“A x(0);”语句后,x.ax.b的值分别为(    )

A. 00        B. 01        C. 10       D. 11

8. 假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为(   )。

Aint AA::a()            Bint AA:a()

 CAA::a()                DAA::int a()

9关于插入运算符<<的重载,下列说法不正确的是(   )。

A. 运算符函数的返回值类型是ostream &

B. 重载的运算符必须定义为类的成员函数。

C. 运算符函数的第一个参数的类型是ostream &

D. 运算符函数有两个参数。

10. 假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete []px;”语句时共调用该类析构函数的次数为(    )

 A. 0           B. 1          C. n          D. n+1

二、填空题

1. 当使用_______保留字作为函数类型时,该函数不返回任何值。

2. 执行char *p=new char(x)操作后,p所指向的数据对象的值为________

3. 当在程序中执行到________语句时,将结束本次循环,执行下一次循环语句。

4. 一个指针类型的对象占用内存的________个字节的存储空间。

5. 假定用户为类AB定义了一个构造函数“AB(int aa) {a=aa;}”,则系统(会/不会)_________为该类自动定义一个无参构造函数"AB() {}"

6已知语句“cout<<s;”的输出是“hello,world”,则执行语句“cout<<s+%;”的输出结果为__________

  7. 如果一个派生类的基类不止一个,则这种继承称为____________

8. 重载一个函数的条件是:该函数必须在参数的个数或参数对应的__________上与其它同名函数不相同。

9. 假定用户为类AB定义了一个构造函数“AB(int aa) {a=aa;}”,则系统(会/不会)_________为该类自动定义一个无参构造函数"AB() {}"

10.假定用户为类AB定义了一个构造函数“AB(int aa=0):a(aa){}”,则定义该类的对象时,可以有________种不同的定义格式。

 

三、程序填充题,根据题意在横线上填写合适的内容。

1. 已知一个类的定义如下:

#include<iostream.h>

class AA {

    int a[10];

    int n;

public:

    void SetA(int aa[], int nn); //初始化函数

    int MaxA();     //从数组a中前n个元素中查找最大值

void SortA();  //采用选择排序的方法对数组a中前n个元素           进行从小到大排序

   };

    该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。

int ____(1)_____

{

    int x=a[0];

    for(int i=1; i<n; i++)

        if(a[i]>x) ___(2)___;

    ___(3)___;

}

(1)                   (2)                   (3)

 

2. A的定义

     class A {

           int *a; int n; int MaxLen;

         public:

           A(): a(0), n(0), MaxLen(0) {}    //无参构造函数

           A(int *aa, int nn, int MM) {     //带参构造函数

               n=nn;

               MaxLen=MM;

               if(n>MaxLen) exit(1);

               a=new int[MaxLen];

               for(int i=0; i<n; i++) _____1_______;

           }

           ~A(){_____2_________;}

   };      

      (1)                          (2)

    

3在下面一段类定义中, Derived类公有继承了基类Base。需要填充的函数由注释内容给出了功能。

class Base{

  private:

    int mem1,mem2;    //基类的数据成员

  public:

      Base(int m1,int m2) {

        mem1=m1; mem2=m2;

      }

      void output(){cout<<mem1<<' '<<mem2<<' ';}

  };

class Derived: public Base{

  private:

    int mem3;         //派生类本身的数据成员

  public:

  //构造函数,m1m2分别初始化mem1mem2,由m3初始化mem3

    Derived(int m1,int m2, int m3);

  //输出mem1,mem2mem3数据成员的值

    void output(){

        ___(1)___;

cout<<mem3<<endl;

    }

};

Derived::Derived(int m1,int m2, int m3): ___(2)___ {

___(3)___;

}

(1)                   (2)                     (3)  

 

四、理解问答题,写出程序运行结果或程序(或函数)所能实现的功能。

  

1#include<iostream.h>

   double f1(int n) {

      double sign=1,s=1;

      for(int i=2;i<=n; i++) {

       s+=sign/(i*i);

          sign*=-1;

        }

       return s;

       }

   void main(){

        int a;

        cin>>a;

        cout<<f1(a)<<endl;

       }

   函数功能:

  

2char* f8(char* str1, const char* str2){

        int i=0,j=0;

        while(str1[i]) i++;

        while(str2[j]) str1[i++]=str2[j++] ;

        str1[i]='/0';

        return str1;

        }

函数功能:

 

3#include<iostream.h>

  void f2(int& x, int& y){

       int z=x; x=y; y=z;

        }

  void f3(int* x, int* y){

       int z=*x; *x=*y; *y=z;

        }

  void main(){

        int x=10,y=26;

        cout<<"x,y="<<x<<", "<<y<<endl;

        f2(x,y);

        cout<<"x,y="<<x<<", "<<y<<endl;

        f3(&x,&y);

        cout<<"x,y="<<x<<", "<<y<<endl;

        x++; y--;

        f2(y,x);

        cout<<"x,y="<<x<<", "<<y<<endl;

    }

 运行结果

 

五、程序改错,请根据程序段或函数模块的功能改写个别地方的错误。

 

    下面是分数类fract的定义及测试主程序,在类定义及其友元函数定义中有两处错误,更正错误后程序应显示41/28,请指出错误所在行的行号并给出改正意见。

class fract{

    int den;   //分子

    int num;   //分母

public:

    fract(int d=0,int n=1):den(d),num(n){}       //1

    friend fract &operator+=(fract,fract&);      //2

    void show(){ cout<<den<<'/'<<num;}           //3

};                                               //4        

friend fract &operator+=(fract f1,fract f2)      //5

{                                                //7

    f1.den=f1.den*f2.num+f1.num*f2.den;          //8

    f1.num*=f2.num;                              //9

    return f1;                                   //10

}

void main(){

    fract fr(3,4);

    fr+=fract(5,7);

    fr.show();

}

 

错误行的行号为______________。(2分)

分别改正为_____________________________________4分)

        _____________________________________4分)

参考答案

一、单选题

1. B    2. B   3.A    4.C   5. D    6. D   7. A   8.A    9. B    10. C

 

二、填空题

1. void    2. x    3.contiune    4. 4      5. 不会

6.  ple      7. 多继承(或多重继承)  8.  类型   9.  不会    10. 2

 

三、程序填充题,根据题意在横线上填写合适的内容。

    评分标准:每空4

    1. (1) AA::MaxA()     (2) x=a[i]      (3) return x

    2. 1a[i]=aa[i]    2delete []a

    3. (1) Base::output()    (2) Base(m1,m2)       (3) mem3=m3

四、理解问答题,写出程序运行结果或程序(或函数)所能实现的功能。

1. 计算并输出1+的值,其中a的值由键盘输入。

2.实现strcat函数的功能,把str2所指字符串连接到str1所指字符串的后面,并返回str1指针。 

3.     x,y=10, 26

       x,y=26, 10 

       x,y=10, 26

       x,y=25, 11

五、程序改错,请根据程序段或函数模块的功能改写个别地方的错误。

2  5

   friend fract &operator+=(fract&,fract);

   fract &operator+=(fract &f1,fract f2);

来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。

相关文章:

重庆电大《市场营销学》形考作业(1)04-30

2015春广东电大《市场营销学》期末综合练习04-30

2015春浙江电大《初级会计》期末复习资料(1)04-30

2015春中央电大《基础会计》复习资料(2)04-30

电大《现代教育原理》期末综合练习及204-30

陕西电大《公共政策概论》形考册04-30

陕西电大《电子政务导论》期末复习综合练习题04-30

电大《开放英语1》形考作业04-30

重庆电大《市场营销学》形考作业(4)04-30

重庆电大《市场营销学》形考作业(2)04-30

热搜文章
最新文章