一、填空題
1.數據結構分為邏輯結構與存儲結構,線性鏈表屬於【1】。
【參考答案】
【1】存儲結構
2.耦合和內聚是評價模塊獨立性的兩個主要標準,其中【2】反映了模塊內各成分之間的聯繫。
【參考答案】
【2】內聚
3.數據庫設計分為以下6個設計階段:需求分析階段、【3】、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。
【參考答案】
【3】數據庫概念設計階段
4.面向對象的模型中,最基本的概念是對象和【4】。
【參考答案】
【4】類
5.數據模型按不同應用層次分成3種類型,它們是概念數據模型、【5】和物理數據模型。
【參考答案】
【5】邏輯數據模型
6.開發一個C++語言程序的步驟通常包括編輯、【6】、鏈接、運行和調試。
【參考答案】
【6】編譯
7.下面程序的輸出結果為【7】。
#include
void main()
{
int num=0,i=8;
do{
i--;
num++;
}while(--i);
cout<
}
【參考答案】
【7】-4
8.下面程序的運行結果為【8】。
#include
void fun(int x=0,int y=0)
{cout<
void main()
{fun(5);}
【參考答案】
【8】50
9.C++語言支持的兩種多態性分別是編譯時的多態性和【9】的多態性。
【參考答案】
【9】運行時
(′A′);,還可以表示為【10】。
【參考答案】
【10】cout<<′A′;
11.將以下程序寫成三目運算表達式是【11】。
if(a>b)max=a;
else max=b;
【參考答案】
【11】max=(a>b)?a:b;
12.下面程序的功能是將字符數組a中下標值為偶數的元素從小到大排列,其他元素不變,請填空。
#include
#include
void main()
{ char a[]=″clanguage″,t;
int i,j,k;
k=strlen(a);
for(i=0;i<=k-2;i+=2)
for(j=i+2;j<=k;【12】)
if(【13】)
{ t=a[i];a[i]=a[j];a[j]=t;}
cout<
cout<
【參考答案】
【12】j+=2 【13】a[i]>=a[j]或a[i]>a[j]
13.請定義一個函數名為A,返回值為int,沒有參數的純虛函數的定義是【14】。
【參考答案】
【14】virtual int A()=0;
14.假設fin是一個文件流對象,則關閉文件的語句是【15】。
【參考答案】
【15】fin
上機部分
一、改錯題
使用VC6打開考生文件夾下的工程kt5_1,此工程包含一個源程序文件kt5_,但該程序運行有問題,請改正程序中的錯誤,使程序的輸出結果如下:
(1,2)
5,6
(6,9)
源程序文件kt5_清單如下:
#include
classA{
public:
A(inti,intj){a=i;b=j;}
/****************found*******************/
voidMove(intx,inty){a+=x;b+=y}
voidShow(){cout<<"("<
private:
inta,b;
};
classB:privateA
{
public:
/****************found*******************/
B(inti,intj,intk,intl):(i,j){x=k;y=l;}
voidShow(){cout<
voidfun(){Move(3,5);}
/****************found*******************/
voidf1(){Show();}
private:
intx,y;
};
voidmain()
{
Ae(1,2);
();
Bd(3,4,5,6);
();
();
d.f1();
}
【參考答案】
(1)將void Move( int x, int y) {a+=x;b+=y}
改為:void Move( int x, int y) {a+=x;b+=y;}
(2)將B(int i,int j,int k,int l):(i,j) {x=k;y=l;}
改為:B(int i,int j,int k,int l):A(i,j) {x=k;y=l;}
(3)將void f1(){Show();}
改為:void f1(){A::Show();}
【試題解析】
(1)主要考查對錶達式定義規則的掌握,此處缺少一個“;”,任何一個表達式都應該以分號作為結束標誌;
(2)主要考查對派生類構造函數定義的掌握,參數列表中基類的成員應使用基類構造函數初始化,因此必須向基類傳遞參數,傳遞時直接使用基類名;
(3)主要考查對基類函數調用方法的掌握,為了調用基類的函數應該使用作用域符“::”以限定訪問的位置。