22春學期(高起本1709-1803、全層次1809-2103)《程序設計基礎(下)》在線作業(yè)-00001
試卷總分:100 得分:100
一、單選題 (共 20 道試題,共 40 分)
1.缺省析構函數的函數體是( )。
A.不存在
B.隨機產生的
C.空的
D.無法確定的
2.下列關于類的繼承描述中,( )是錯誤的。
A.派生類可以訪問基類的所有數據成員,也能調用基類的所有成員函數
B.派生類也是基類,但基類不一定具有派生類的全部屬性和方法
C.繼承描述類的層次關系,派生類可以具有與基類相同的屬性和方法
D.一個基類可以有多個派生類,一個派生類可以有多個基類
3.下列運算符中,()運算符在C++中不能重載。
A.?:
B.+
C.-
D.=
4.線性表最多有( )個結點沒有前驅。
A.0
B.1
C.2
D.無數個
5.下列( )不是構造函數的特征。
A.構造函數的函數名與類名相同
B.構造函數可以重載
C.構造函數可以設置默認參數
D.構造函數必須指定類型說明
6.下面函數原型聲明中,( )聲明了fun為純虛函數。
A.void fun()=0;
B.virtual void fun()=0;
C.virtual void fun();
D.virtual void fun(){};
7.在下述結論中,正確的是( ) ①只有一個結點的二叉樹的度為0; ②二叉樹的度為2; ③二叉樹的左右子樹可任意交換; ④深度為K的完全二叉樹的結點個數小于或等于深度相同的滿二叉樹。
A.①②③
B.②③④
C.②④
D.①④
8.有關構造函數說法不正確的是( )。
A.構造函數的名字和類的名字一樣
B.在創(chuàng)建對象時,系統自動調用構造函數
C.構造函數無任何函數類型
D.構造函數有且只有一個
9.關于下面程序段說法正確的是( ) class X { private: int n; public: X(X&); }; X::X(X&x) {n=x.n} X obj1,obj2(obj1);
A.語句obj2(obj1);的功能是用對象obj1初始化具有相同類類型的對象obj2
B.語句obj2(obj1);的功能是用對象obj2初始化具有相同類類型的對象obj1
C.X(X&x)中的&符號可以刪除
D.X(X&x)函數中不能訪問對象的私有成員
10.類B是類A的公有派生類,類A和類B中都定義了虛函數func(),p是一個指向類A對象的指針,則p->A::func()將( )。
A.調用類A中是函數func()
B.調用類B中是函數func()
C.根據P所指的對象類型而確定調用A中或類B中的函數func()
D.既調用類A中函數,也調用類B中的函數
11.在數據結構中,從邏輯上可以把數據結構分成( )。
A.動態(tài)結構和靜態(tài)結構
B.緊湊結構和非緊湊結構
C.線性結構和非線性結構
D.內部結構和外部結構
12.對于類定義 class A{ public: virtual void funcl(){} void func2(){} }; class B:public A{ public: void func1(){cout<<"class B func1"<<endl;} virtual void func2(){cout<<"class B func2"<<endl;} };下面正確的敘述是( )。
A.A::func2()和B::func1()都是虛函數
B.A::func2()和B::func1()都不是虛函數
C.B::func1()是虛函數,A::func2()不是虛函數
D.B::func1()不是虛函數,A::func2()是虛函數
13.對二叉樹的結點從1開始進行連續(xù)編號,要求每個結點的編號大于其左、右孩子的編號,同一結點的左右孩子中,其左孩子的編號小于其右孩子的編號,可采用( )遍歷實現編號。
A.先序
B.中序
C.后序
D.從根開始按層次遍歷
14.在一個單鏈表中,若將p所指結點從鏈表中移除,q已指向其前驅結點,則執(zhí)行( )。
A.q->next=p
B.q=p->next
C.q->next=p->next
D.p->next=q
15.如果以鏈表作為隊列的存儲結構,則出隊操作時( )。
A.必須判別隊列是否滿
B.判別隊列元素的類型
C.必須判別隊列是否空
D.對隊列不作任何判別
16.下列( )是構造函數的特征。
A.構造函數在創(chuàng)建對象時自動調用
B.構造函數不可以重載
C.構造函數不可以設置默認參數
D.構造函數必須指定函數類型
17.類A是類B的友元,類B是類C的友元,則( )是正確的。
A.類B是類A的友元
B.類C是類A的友元
C.類A是類C的友元
D.以上都不對
18.()是一個在基類中說明虛函數,它在該基類中沒有定義,但要求任何派生類中的可訪問性的規(guī)定是相同的。
A.純虛函數
B.虛析構函數
C.虛構造函數
D.靜態(tài)成員函數
19.二叉樹就是每個結點的度小于等于2的( )。
A.有序樹
B.無序樹
C.可以有序也可以無須
D.根據結點的度決定是否有序
20.利用數組a[N]順序存儲一個棧時,用top表示棧頂指針,用top==-1表示???并已知棧未滿,當元素x進棧時所執(zhí)行的操作是( )。
A.top--; a[top]=x;
B.a[top]=x; top--;
C.top++; a[top]=x;
D.a[top]=x; top++;
二、多選題 (共 15 道試題,共 30 分)
21.下列描述中,正確的是( )。
A.創(chuàng)建派生類對象時會先調用基類構造函數,再調用派生類構造函數
B.創(chuàng)建派生類對象時會先調用派生類構造函數,再調用基類構造函數
C.如果基類構造函數有參數,則必須在派生類構造函數的初始化列表中寫上基類構造函數的調用語句
D.如果派生類構造函數的初始化列表中沒寫基類構造函數的調用,則表示調用基類的無參構造函數
22.不能使用類對象直接訪問的成員包括( )。
A.公有成員
B.保護成員
C.私有成員函數
D.私有成員變量
23.下列關于類模板的描述中,正確的是( )。
A.類模板中可以有靜態(tài)數據成員
B.類模板的靜態(tài)數據成員由所有該類模板實例化的模板類共享
C.類模板的靜態(tài)數據成員需要在類體外進行定義和初始化
D.類模板中可以用類型形參聲明靜態(tài)數據成員
24.已知Cirle是一個類,其中有一個成員函數public:void setRadius(int r),且有如下變量定義語句Circle c, pC=&c;則下列語句正確的是( )。
A.c::setRadius(3)
B.pC->setRadius(3)
C.pC.setRadius(3)
D.setRadius(3)
25.下列關于類的繼承描述中,( )是正確的。
A.派生類可以訪問基類的所有數據成員,也能調用基類的所有成員函數
B.派生類也是基類,但基類不一定具有派生類的全部屬性和方法
C.繼承描述類的層次關系,派生類可以具有與基類相同的屬性和方法
D.一個基類可以有多個派生類,一個派生類可以有多個基類
26.下面描述中,正確的是( )。
A.虛函數是沒有實現的函數
B.純虛函數的實現在派生類中
C.抽象類是有純虛函數的類
D.抽象類指針可以指向不同的派生類
27.下列說法正確的是( )。
A.面向對象方法的基本觀點是一切系統都是由對象構成的
B.面向對象方法的基本觀點是一切系統都是由模塊構成的
C.面向對象方法中通過“消息”來觸發(fā)行為
D.面向對象方法中用類和對象來表示現實世界
28.下列函數中,可以作為虛函數的是( )。
A.普通成員函數
B.構造函數
C.靜態(tài)成員函數
D.析構函數
29.如果類A繼承了類B,則類A稱為()。
A.派生類
B.繼承類
C.子類
D.父類
30.下列函數中,不可以作為虛函數的是()。
A.析構函數
B.成員函數
C.普通函數
D.構造函數
31.已知in是ifstream對象,則下列語句正確的是( )。
A.in.seekg(5);
B.in.seekg(5, ios::beg);
C.in.seekg(5, ios::end);
D.in.seekg(-5);
32.下列說法中正確的是( )。
A.一個成員函數在類體外定義,則該成員函數默認是內聯函數
B.一個成員函數在類體中定義,則該成員函數默認是內聯函數
C.在類體外定義成員函數需要使用::運算符指明該成員函數屬于哪個類
D.類體外定義的成員函數默認為公有成員函數
33.假設A為抽象類,下列語句( )是正確的。
A.A fun(int);
B.A *p;
C.int fun(A&);
D.A Obj;
34.下列描述中,正確的是( )。
A.派生類構造函數主要是對派生類新定義的成員變量進行初始化
B.派生類從基類繼承的成員變量的初始化通過基類構造函數完成
C.派生類對象被銷毀時會先調用基類析構函數
D.派生類對象被銷毀時會先調用派生類析構函數
35.已知f是以二進制讀寫方式打開的文件流對象,且有int型變量a,則下列選項中能正確進行文件讀寫操作的語句包括( )。
A.write((char*)a, sizeof(a));
B.write((char*)&a, sizeof(a));
C.read((char*)a, sizeof(a));
D.read((char*)&a, sizeof(a));
三、判斷題 (共 15 道試題,共 30 分)
36.在用class定義一個類時,數據成員和成員函數的默認訪問權限是public。
37.二叉鏈表表示是二叉樹最常用的存儲結構。
38.在圖的所有形式的生成樹中,邊上的權之和最小的生成樹,稱為圖的最小生成樹。
39.根據二叉樹的后序遍歷序列可以確定二叉樹的根結點。
40.在線性表的順序存儲結構中,邏輯上相鄰的兩個元素在物理位置上并不一定緊鄰。
41.類非成員函數形式的運算符重載函數通常采用友元函數,是為了在運算符重載中方便訪問類中的非公有成員。
42.深度優(yōu)先遍歷類似于樹的逐層遍歷。
43.純虛函數是一種特殊的成員函數,它是一種沒有具體實現的虛函數。
44.從一個結點到其后繼結點之間的連線稱為一個分支;從一個結點X到另一個結點Y所經歷的所有分支構成結點X到結點Y的路徑;一條路徑上的分支數目稱為路徑長度;從樹的根結點到其他各個結點的最長路徑長度稱為樹的路徑長度。
45.二叉樹是特殊的樹形結構
46.C++的I/O系統通過流的機制實現文件和控制臺的輸入輸出操作。
47.當一個函數的返回值是類對象時,則該函數執(zhí)行結束后會自動調用拷貝構造函數初始化一個臨時對象。
48.為了在對象生存期結束時釋放其指針成員所指向的動態(tài)存儲空間,通常需要為該類定義構造函數。
49.在通信、數據壓縮等領域被廣泛應用的哈夫曼樹采用的是二叉樹結構。
50.圖是以一種典型的線性結構。
奧鵬,國開,廣開,電大在線,各省平臺,新疆一體化等平臺學習
詳情請咨詢QQ : 3230981406或微信:aopopenfd777

