最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

C++程序设计基础(二)试卷A(2009)

来源:动视网 责编:小OO 时间:2025-10-01 17:14:03
文档

C++程序设计基础(二)试卷A(2009)

试题纸(A卷)课程名称:程序设计基础(二)适用专业年级:2008级计算机科学与技术、软件、网络考生学号:考生姓名:………………………………………………………………………………………………………………………一、单项选择题(每题1分,共15分)1、关于继承和封装说法正确的是() 。A)封装就是完全封闭,外部只能通过接口实现互连B)继承是封装的基础C)封装是继承的基础D)子类可只继承父类的部分可继承行为和属性,也可全部继承,就像儿子可继承父亲的部分性格一样2、关于结构体、共用体及类的说法正确的是()
推荐度:
导读试题纸(A卷)课程名称:程序设计基础(二)适用专业年级:2008级计算机科学与技术、软件、网络考生学号:考生姓名:………………………………………………………………………………………………………………………一、单项选择题(每题1分,共15分)1、关于继承和封装说法正确的是() 。A)封装就是完全封闭,外部只能通过接口实现互连B)继承是封装的基础C)封装是继承的基础D)子类可只继承父类的部分可继承行为和属性,也可全部继承,就像儿子可继承父亲的部分性格一样2、关于结构体、共用体及类的说法正确的是()
                           试题纸(A卷)

  课程名称: 程序设计基础(二)         适用专业年级: 2008级计算机科学与技术、软件、网络 

  考生学号:                            考  生 姓 名:                                     

………………………………………………………………………………………………………………………

一、单项选择题(每题1分,共15分)

1、关于继承和封装说法正确的是(      ) 。

A)封装就是完全封闭,外部只能通过接口实现互连       B)继承是封装的基础

C)封装是继承的基础

D)子类可只继承父类的部分可继承行为和属性,也可全部继承,就像儿子可继承父亲的部分性格一样

2、关于结构体、共用体及类的说法正确的是(      ) 。

A)结构体、共用体没有什么不同,都是把不同或相同类型的数据组织为一体

B)一般来说,结构体、共用体只有数据成员,没有成员函数

C)结构体、共用体与类相比,都含有数据成员的成员函数,只是前者是专为面向过程的程序设计的,后者为面向对象的程序设计的

D)类可只含数据成员或成员函数,不影响使用

3、假设person是一个类,p1是该类的一个对象,p2是一个指向p1的指针,getname()是其中的一个函数,则下面对象的使用不正确的是(      ) 。

A)person.getname( )      B)p1.getname( )      C)p1.person::getname( )     D)p2->getname( )

4、关于构造函数的说法,正确的是(      ) 。

A)构造函数用于代替类中的一个成员函数来在创建对象时给对象赋初值(通常是成员变量),它是由人工设计的,因此可以在任何时候、任何地方来调用它

B)构造函数的名字与类名相同,因此同类的不同对象的构造函数是相同的

C)构造函数的参数多少没有定制,它的返回值的类型为vois型

D)构造函数的名字与类名相同,因此一个类只有一个构造函数,即构造函数不可重载

5、关于析构函数的说法,正确的是(      ) 。

A)析构函数用来释放构造函数为对象分配的内存空间。它可以被用户调用,也可以被系统调用

B)析构函数没有数据类型,其返回值为隐含型

C)析构函数可以没有参数,也可以有多个参数

D)析构函数与构造函数不一样,它可以有多个,以方便使用

6、关于成员函数的重载,说法正确的是(      ) 。

A)就是在类中设计多个函数名相同,参数个数及类型也相同的函数

B)析构函数可以重载

C)函数重载,要求函数名相同,但参数个数不同或参数个数相同但其类型不同

D)构造函数不可重载

7、假设person是一个类,p、q是它的不同对象,有函数person f(person &x),下列过程中没有调用拷贝构造函数的是(      ) 。

A)person p(q);       B)person p=q;      C)q=f(p);   D)person p(10)

8、关于友元函数的说法正确的是(      ) 。

A)友元函数可以是任何类中的一个函数

B)如果函数在被说明为友元函数的类中定义,则它就是该类的成员函数

C)不属于任何类的函数不可以被说明为友元函数

D)使用友元函数的主要目的是提高程序执行效率,因为它可以直接调用该类的私有变量。

9、关于静态数据成员的说法正确的是(      ) 。

A)静态数据成员虽然能实现同类的对象共享数据,但破坏了类的封装性

B)静态数据成员是所有同类对象共享的数据,它不能具体地属于哪一个对象

C)静态数据成员只在类中说明一次即可

D)若C为一个类,a为它的一个对象

10、关于继承的目的和作用,说法不正确的是(      ) 。

A)继承是为了重复利用父类的可用代码,避免重复劳动

B)继承可以增加自己的父类不能实现的功能的代码,使子类的功能更完美,提高程序设计效率

C)子类可以继承父类的函数和数据,以便重复使用

D)子类可以继承父类的所有特性,以便重复使用,这才是继承的目的

11、下列try、catch语句块说法不正确的是(      ) 。

A)try语句块出现之前不允许出现catch语句块

B)catch语句块只能跟在try语句块之后,它们之间可以有其他语句

C)try语句块之后可以紧跟多跟catch语句块

D)catch必须有参数

12、假定AB为一个类,则执行“AB  a(4) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的次数为(      ) 。

A)3              B)4               C)6               D)9

13、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:(      ) 。

A)AB  operator+(AB  & a , AB  & b)       B)AB  operator+(AB  & a)

C)operator+(AB  a)                       D)AB  & operator+( )

14、如果要对AB类中的整型静态变量c赋初值0,则书写语句正确的是(      ) 。

A)int c=0;     B)static int c=0;      C)int AB:: c=0;     D)static int  AB:: c=0;

15、在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是(      ) 。

A)fail          B)eof          C)bad           D)good  

二、判断题(每题1分,共10分)

1.为了避免派生类catch不能捕获异常,基类catch总是放在派生类catch后。

2.同一类的不同对象占有不同的内存空间。

3.当内联函数被调用时,内联函数的代码在调用处被展开。

4.数据只有在流中从可以被操作。

5.把流分为输入流和输出流是相对文件流的,输出流是数据从文件流向流中,输入流是数据从流中流向内存变量。

6.函数的返回值类型在区别重载函数时起着举足轻重的作用。

7.多重继承往往产生二义性问题,可用成员名限定法来消除。

8.基类构造函数的调用顺序是按基类被继承时声明的顺序从右至左调用。

9.已知:double k=10; 可以用double &p=10; 表示引用。

10.virtual 只用来说明类声明中的原型,不能用在函数实现时。

三、阅读程序,将程序运行结果填写答题册上。(每小题5分,共20分)

1、 #include

class B0     {    public: virtual void display(){cout<<"B0::display()"<class B1: public B0 

{ public: void display() { cout<<"B1::display()"<class D1: public B1    

{ public:      void display()  { cout<<"D1::display()"<void main()    

{    B0 b0,  *p;       B1 b1;           D1 d1;    

        p=&b0;       p->display();

        p=&b1;       p->display();

        p=&d1;        p->display();

}

2、# include

class A 

{    int a;

public:

      A(int aa=0) { a=aa; }

      ~A() { cout <<"Destructor A!"<};

class B:public A 

{    int b;

public:

       B(int aa=0,int bb=0):A(aa) { b=bb; }

~B() { cout <<"Destructor B!"<};

void main() {    B x(5),y(6,7);   }

3、# include

int a=5;

void main() 

{   int a=10,b=20;

     cout <     {   int a=0,b=0;

for (int i=1; i<6; i++) {    a+=i; b+=a;    }

         cout <     }

     cout <}

4、#include

class B1    

{ public:

          B1(int i)   {  cout<<"constructing B1 "<          ~B1() {  cout<<"destructing B1 "<};

class B2    

{    public:

             B2(int j)    {   cout<<"constructing B2 "<             ~B2()    {    cout<<"destructing B2 "<};

class B3    

{    public:

             B3()   {    cout<<"constructing B3 *"<             ~B3()   {   cout<<"destructing B3 "<};

class C: public B2, public B1, public B3    

{    public:

              C(int a, int b, int c, int d): B1(a),memberB2(d),memberB1(c),B2(b){}

private:

              B1 memberB1;         B2 memberB2;         B3 memberB3;

};

void main()    {    C   obj(1,2,3,4);      }

5、 #include

void main( )

          Try   {     int a=8;     double b=8.8;     throw acatch( int x )    {    cout<<”the int value “<catch( double y ) {    cout<<”the double value “<}

四、程序填空题(根据题意要求,将程序补充完整,每空2分,共20分)

1、下面程序的功能是输出将1元人民币换成1分、2分、5分的所有方案,请填空。

#include

       (1)     

void main( )

{    int  i,j,k,s=0;

for( i=0; i<=20; i++ )

for( j=0; j<=50;j++ )

           {        (2)     ;

if(k>=0)

{ cout<            }

        cout<<”共有方案”<

2、下面为复数类的定义。

class Complex

{   public: 

Complex (    (3)     ) //默认为纯虚数,即实部为0

{  real=x;    image=y;    }

      (4)         //对运算符+进行重载实现复数加法

 {  Complex t;

t.real=     (5)      ;

t.image=    (6)      ;

return t;

}

void disp(){ cout<       private:

          double real,image ;

}; 

3、请按下面程序的提示信息将程序填充完整。

#include

class Point    //Point类声明

{ public:    

Point(int x,int y)   {   X=x;   Y=y;       (7)     ;}

int GetX()    { return X; }   //返回X的值

int GetY()    { return Y; }   //返回Y的值

static void GetC() {cout<<" Object id="<   private:    

      int X,Y;

           (8)       ;

};

int Point::countP=0;    //用来统计已生成的Point对象的个数

void main()    

{            (9)       ;    //指向函数的指针gc指向类的成员函数GetC

    Point A(4,5);    //声明对象A

cout<<"Point A,"<        (10)         ;  //通过函数指针gc调用GetC函数

}

五、编程题(第1小题8分,第2小题10分,第3小题12分,共30分)

1、编写一个程序,至少设计一个点类Point,求两个点之间的距离。

2、下面为单链表的结点类模板,各成员数据以及成员函数的意义在后面进行了描述,请将其4个成员函数的实现代码补充完整。

template

class Node

{   private:

Node *next;    //指向后继结点的指针

    public:

        T data;    //数据域

Node (const T& item, Node* ptrnext = NULL); // 构造函数

void InsertAfter(Node *p);    // 在本结点之后插入一个同类结点p 

Node *DeleteAfter(void);    // 删除本结点的后继结点,并返回其地址

Node *NextNode(void) const;     // 获取后继结点的地址

};

3、设计一个倒计时的时钟类,该类包括days,hours,minutes,seconds四个成员数据,分别表示倒计时的天数、小时数、分钟数和秒数,成员函数包括构造函数、显示四个成员数据值的函数和后置――运算符的重载函数,要求倒计时的最短时间为10天9小时8分7秒。

一、单项选择题(每题1分,共15分)

(1)C    (2)B    (3)A    (4)B    (5)A

(6)C    (7)D    (8)D    (9)B    (10)D

(11)B    (12)C    (13)B    (14)D    (15)B

二、判断题(每题1分,共10分)

(1)√    (2)×    (3)√    (4)√    (5)×

(6)×    (7)√    (8)×    (9)×    (10)√

三、阅读程序,将程序运行结果填写答题册上。(每小题5分,共25分)

1、      B0::display()

B1::display()

D1::display()

2、      Destructor  B!  7

Destructor  A!  6

Destructor  B!  0

Destructor  A!  5

3、      10   20

15   35   5

10   20

4、       constructing B2 2

constructing B1 1

constructing B3 *

constructing B1 3

constructing B2 4

constructing B3 *

destructing B3

destructing B2

destructing B1

destructing B3

destructing B1

destructing B2

5、the double value  8  was thrown

四、程序填空题(每空2分,共20分)

(1)#include    (2)k=100-5*i-2*j;

(3)double x=0, double y=0     (4)Complex operator +(Complex &y) 

(5)real+y.real    (6)image +y.image

(7)countP++;    (8)static int countP;    

(9)void (*gc)()=Point::GetC     (10)gc()

五、编程题(第1小题8分,第2小题10分,第3小题12分,共30分)

1、

#include

#include

class Point

{   double x,y; 

public: 

Point(double i, double j){x=i;y=j;}

double getx(){ return x;} 

double gety(){ return y;} 

void disp() { cout<<"("<}; 

double distance(point  px,point  py) 

{ double d,dx,dy; 

  dx=px.getx()-py.getx();

  dy=px.gety()-py.gety();

d=sqrt(dx*dx+dy*dy); 

return d; 

void main() 

{    point p1(2,2),p2(5,5); 

p1.disp(); cout<<"与"; p2.disp(); 

cout<<"之间距离="<

2、

template

Node::Node(const T& item, Node* ptrnext) : data(item), next(ptrnext) {  }

  

template   // 返回后继结点的指针

Node *Node::NextNode(void) const  {    return next;    } 

// 在当前结点之后插入一个结点p 

template

void Node::InsertAfter(Node *p)

{

p->next = next;    //p结点指针域指向当前结点的后继结点

    next = p;    //当前结点的指针域指向p 

}

// 删除当前结点的后继结点,并返回其地址

template

Node *Node::DeleteAfter(void)

{

Node *tempPtr = next;    //将欲删除的结点地址存储到tempPtr中

    if (next == NULL)    //如果当前结点没有后继结点,则返回NULL

        return NULL;

next = tempPtr->next;    //使当前结点的指针域指向tempPtr的后继结点

    return tempPtr;    //返回被删除的结点的地址

}

3、

class Clock

{    

public: 

Clock(int d=10,int h=9,int m=8,int s=7);

Clock operator ++(int); 

void disp(); 

       private:

           int days,hours,minutes,seconds ;

}; 

Clock ::Clock(int d,int h,int m,int s)

{

   int t;

   t=s+100*m+h*10000+d*1000000;

if(t<10090807) { cout<<”Error”;  exit(1);  }

   days=d;  hours=h;   minutes=m;     seconds=s;

}

Clock Clock ::operator --(int)

{  Clock  old=*this;

   if(days==0&&hours==0&&minutes==0&&seconds==0) return old;

   seconds--;

if(seconds<0)

   {   seconds=59;

        minutes--;

if(minutes<0)

        {   minutes=59;

            hours--;

if(hours<0) days--;

        }

    }

   return old;

}

void Clock ::disp()

{  cout<

文档

C++程序设计基础(二)试卷A(2009)

试题纸(A卷)课程名称:程序设计基础(二)适用专业年级:2008级计算机科学与技术、软件、网络考生学号:考生姓名:………………………………………………………………………………………………………………………一、单项选择题(每题1分,共15分)1、关于继承和封装说法正确的是() 。A)封装就是完全封闭,外部只能通过接口实现互连B)继承是封装的基础C)封装是继承的基础D)子类可只继承父类的部分可继承行为和属性,也可全部继承,就像儿子可继承父亲的部分性格一样2、关于结构体、共用体及类的说法正确的是()
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top