一、填空題
1.在面向對象方法中,類之間共享屬性和操作的機制稱為【1】。
【參考答案】
1.【1】繼承
2.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體“項目主管”與實體“項目”的聯繫屬於【2】的聯繫。
【參考答案】
2.【2】一對多(或1:N)
son結構化程序設計方法是英國的son提出的,它是一種面向【3】的設計方法。
【參考答案】
3.【3】數據結構
4.軟件設計模塊化的目的是【4】。
【參考答案】
【4】降低複雜性
5.在樹結構中,樹根結點沒有【5】。
【參考答案】
【5】前件
6.C++中封裝性、繼承性和【6】是面向對象思想的主要特徵。
【參考答案】
【6】 多態性
7.下列for語句的循環次數為【7】。
for(int a=0,b=1;b&&a<5;a++);
【參考答案】
【7】5
8.C++程序是從【8】函數開始執行的。
【參考答案】
【8】main
9.派生類構造函數的執行順序是先執行【9】的構造函數,然後執行成員對象的構造函數,最後執行【10】的構造函數。
【參考答案】
9.【9】基類 【10】派生類
10.C++語言程序的註釋可以出現在程序中的任何地方,一個註釋以【11】作為開始和結束的標記。
【參考答案】
【11】/**/
11.用以下語句調用庫函數malloc,使字符指針st指向具有11個字節的動態存儲空間,請填空。
st=(char*)【12】;
【參考答案】
【12】malloc(11)或malloc(sizeof(char)*11)
12.下列程序在構造函數和析構函數中申請和釋放類的數據成員int *a,申請時使用形參b初始化a,請填空。
class A
{
public:
A(int b);
~A();
private:
int *a;
};
A::(int b)
{【13】;}
A::~A()
{【14】;}
【參考答案】
12.【13】a=new int(b) 【14】delete a
13.將x+y*z中的“+”用成員函數重載,“*”用友元函數重載應寫為【15】。
【參考答案】
【15】ator+(operator *(y,z))
二、改錯題
使用VC6打開考生文件夾下的工程kt1_1,此工程包含一個源程序文件kt1_,但該程序運行有問題,請改正程序中的錯誤,使程序的輸出結果為:
Whichact(aorb)?b
act1
act2
Bact3
Bact4
Bend
源程序文件kt1_清單如下:
#include
classA
{public:
virtualvoidact1(){cout<<"act1n";act2();}
voidact2(){cout<<"act2n";act3();}
voidact3(){cout<<"Aact3n";act4();}
virtualvoidact4{cout<<"Aact4n";act5();}
voidact5(){cout<<"Aendn";}
};
classB:publicA
{
voidact3(){cout<<"Bact3n";act4();}
voidact4(){cout<<"Bact4n";act5();}
voidact5(){cout<<"Bendn";}
};
voidmain(void)
{
charc;
A*a;
cout<<"Whichact(aorb)?";
cin<
if(c=='a')
a=newA;
else
a=newB;
a->act1();
deletea;