华清远见嵌入式学院第一学期期末考试
一、选择题(10题,每题2分,共20分)
1.obj是一个对象,下面哪一个表达式是不可能出现的?
[A] obj.100        [B]  !obj        [C] obj++        [D]  obj,100 。
2.下述程序中,类C的public各有哪些属性成员(    )。
class B1   
{
public:
                    int i ;
protected :
                    int k ;
};
class B2   
{
public:
                    int l ;
private:
                    int m;
protected :
                    int q ;
};
class B3   
{
public:
                    int p1;
};
class C: public B2, protected B1, private B3
{
public:   
                    int c;
};
[A] i/l/p1     [B] c/l    [C] c/l/q    [D] i/l/q
3.下述程序运行后,显示结果为(    )。
class B1   
{
public:
                    B1(int i) {cout<<"constructing B1 "<<i<<endl;}
                    ~B1〔 〕 {cout<<"destructing B1 "<<endl;}
};
class B2   
{
public:
                    B2(int j) {cout<<"constructing B2 "<<j<<endl;}   
                    ~B2〔 〕 {cout<<"destructing B2 "<<endl;}   
};
class B3   
{
public:
                    B3〔 〕{cout<<"constructing B3 *"<<endl;}
                    ~B3〔 〕 {cout<<"destructing B3 "<<endl;}   
};
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);  }
[A]        constructing B2 2                [B]        constructing B1 1
constructing B1 1                            constructing B2 2
constructing B3 *                            constructing B3 *
constructing B1 3                            constructing B1 3
constructing B2 4                            constructing B2 4
constructing B3 *                            constructing B3 *
destructing B3                                destructing B3
destructing B2                            destructing B2
destructing B1                            destructing B1
destructing B3                            destructing B3
destructing B1                            destructing B1
destructing B2                            destructing B2
[C]        constructing B2 2                    [D]        constructing B2 2
constructing B1 1                            constructing B1 1
constructing B3 *                            constructing B3 *
constructing B1 3                            constructing B3 *
constructing B2 4                            constructing B1 3
constructing B3 *                            constructing B2 4
destructing B3                            destructing B3
destructing B2                            destructing B2
destructing B1                            destructing B1
destructing B3                            destructing B3
destructing B2                                destructing B1
destructing B1                            destructing B2
4.以下关于C++中类的析构函数,说法正确的选项是(  )
[A] 析构函数必须自己实现
[B] 析构函数不能自己实现
[C] 析构函数不需要明确调用,系统会自动调用
[D] 析构函数的调用顺序和构造函数的调用顺序一样
5.以下有关线性表的表达中,正确的选项是(  )
[A] 一个线性表是n个数据元素的有限序列
[B] 线性表中任何一个元素有且仅有一个直接前驱
[C] 线性表中任何一个元素有且仅有一个直接后继
[D] 以上说法都不正确
6.一个队列的入列序列是1,2,3,4,那么队列的输出序列是(  )
    [A]  4,3,2,1      [B]  1,2,3,4      [C]  1,4,3,2      [D]  3,2,1,4
7.从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动(  )个元素
[A] n - i    [B] n – i + 1    [C]  n – i - 1      [D] i
8.一个栈的入栈序列是a,b,c,d,e,那么栈的不可能的输出序列是(  )
[A]  edcba      [B]  decba    [C]  dceab    [D]  abcde
9.从一个具有n个结点的单链表中查其值等于x的结点时,在查成功的情况下,需平均比拟(  )个结点
[A]  n      [B]  n/2      [C]  (n+1)/2      [D]  (n-1)/2
10.L是无头结点的单链表,且P结点既不是首结点,也不是尾结点,试从以下提供的答案中选择适宜的语句序列,实现在P结点前插入S结点(                                    )
〔1〕P->next=S;        (2) P->next=P->next->next;        (3)P->next=S->next;    (4) S->next=P->next;
(5)S->next=L;        (6)S->next=NULL;                (7)Q=P;               
(8)while(P->next!=Q) P=P->next;                    (9)while(P->next!=NULL) P=P->next
      (10)P=Q;            (11)P=L;                        (12)L=S;                (13)L=P;
二、判断题(10题,每题1分,共10分)
1.执行语句A * p=new A[100];时,类A的构造函数会被调用100次。
2.一个类中的成员函数重载〔overload〕可以用const修饰符函数原型的参数个数对应位置的参数的类型和返回值类型为依据
3.实例化派生类对象时,一定会调用到基类的某一个构造函数。
4.如果类A是类B的友员,类D以public继承方式从类B继承,那么类A也是类D的友员。
5.在同一个类中,可以定义重载的成员函数 void f(int& anInt);和void f(int anInt);。
6.public继承方式下,基类中被说明为protectedprivate的成员只能被其派生类的成员函数访问,不能被其它的函数访问
7.在线性表的顺序存储构造中,逻辑上相邻的数据元素在物理位置上也是相邻的。
8.在线性表的链式存储构造中,逻辑上相邻的数据元素在物理位置上是无关的。
9.栈只能在栈顶进展插入和删除。
10.队列只能在队首进展删除,在队尾进展插入。
三、简答题(第1/3题5分,第2/4题10分,共30分)
1.说明出现在下面头文件中的预处理指令的作用。
#ifndef  __MY
#define  __MY
第一范式正则化不能产生稀疏解      …      //头文件内容
#endif        //__MY
2.指出下面程序的错误,将程序修改正确并输出结果。
class circle{
private:
    int radius=0;
public:
    circle();
    ~circle();
    double area();
    void initialize(int);
};
circle::circle()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。