當前位置:才華齋>IT認證>計算機等級>

2016下半年計算機二級C上機考試試題及答案

計算機等級 閱讀(1.01W)

  1.程式改錯題

2016下半年計算機二級C上機考試試題及答案

使用VC++6.0開啟考生資料夾下的源程式檔案,該程式執行時有錯誤,請改正其中的錯誤,使程式正確執行,並且使程式輸出的結果為

0K

注意:錯誤的語句在//******error******的下面,修改該語句即可。

試題程式:

#include

classTC

{

public:

TC()

{

a=b=0:

}

private:

inta,b;

};

classTCl:publicTC

{

public:

TC1()

{

}

//******error******

virtualvoidfunc();

};

classTC2:publicTCl

{

public:

TC2()

{

a=0:

b=0:

}

voidfunc()

{

//******error******

cout<<"OK"  }

private:

inta;

intb;

};

voidmain()

{

TC20bj;

//******error******

TCl*p=(TCl*)obj;

p->func();

}

(1)應改為“virtualvoidfunc()=0;”。

(2)應改為“cout<<"0K"<(endl;”。

(3)應改為“TCl*p=(TCl*)&obj;”。

【解析】本題中TCl類中的func函式是純虛擬函式,純虛擬函式的定義格式為virtual<函式型別><函式名>((引數表>)=0”,因此第1處的語句應為“virtualvoidfunc()=0;”。func函式沒有引數表。編譯程式後發現第2處的語句有錯誤,cout流中的資料是用流插入運算子“<<”順序加入的,因此“<”不正確,應改成“cout<<"0K"<

  2.綜合應用題

使用VC++6.0開啟考生資料夾下的源程式檔案。其中定義的類不完整,按要求完成下列操作,將類的定義補充完整。

(1)完成TC的建構函式,請改正註釋1後的錯誤。

(2)完成func函式定義,請改正註釋2後的錯誤。

(3)初始化CmyClass的成員變數Num3為4,請改正註釋3後的錯誤。

(4)完成func函式,請改正註釋4後的錯誤。

輸出的.結果為

Num1=12

Num2=18

Num3=16

Num1=4

Num2=2

Num3=19

注意:除在指定位置新增語句之外,不要改動程式中的其他內容。

試題程式:

#include

classTC

{

public:

//********1********

TC(inti,intj)

{

Numl=i;

Num3+=i:

}

voiddisplay()

{

cout<<"Num1="<  cout<<"Num2="<  cout<<"Num3="<  }

voidAddNum(inti)

{

Num3+=i;

}

private:

intNum1;

constintNum2;

staticintNum3;

//********2********

};

//********3********

voidfunc()

{

TCobj(1,2);

1=4;

//********4********

um();

lay();

}

voidmain()

{

TCmyObj(12,18);

lay();

rune();

return;

}

(1)將“TC(inti,intj)”補充完整為“TC(inti,intj):Num2(j)”。

(2)應新增“friendvoidfunc();”。

(3)應新增“intTC::Num3=4;”。

(4)將“um()”補充完整為“um(2);”。

【解析】本題在第1處完成類的建構函式初始化類的成員變數,常資料成員也必須初始化,並且不能被更新,常資料成員的初始化只能通過建構函式的成員初始化類表進行,因此第1處的語句應為“TC(inti,intj):Num2(j)”,i用來初始化Num1和Num3,j初始化Num2。第2處完成fune的函式定義,由審題分析可知,函式fune為類的友元,故第2處的語句應為“friendvoidrune();”。第3處的語句是靜態成員的初始化,靜態資料成員的初始化格式為“(資料型別)<類名>::<靜態資料成員)=<初始值>”,因此第3處的語句應為“intTC::Num3=4;”。成員函式AddNum帶有一個整型引數,因此呼叫此函式時必須有引數傳入,可由程式執行結果分析得知傳入的引數值的大小。在fun函式內,定義TCobj(1,2)後,1=1,2=2,Num3=16+1=17,1=4,Numl為4,obj。Num2為常資料成員,其值不會改變,呼叫AddNum函式後呼叫顯示函式顯示成員變數值,可知Num3為19,因此AddNum()的引數為19-17=2,即第4處的語句應為“um(2);”。

  3.簡單應用題

使用VC++6.0開啟考生資料夾下的源程式檔案。閱讀下列函式說明和程式碼。

函式func(intd口,intn)的功能是將長度為num的陣列d中的奇數擴大1倍,並存儲到陣列d中。

例如:2,15,6,-3,8,-11,9,24,50

返回4,30,12,-6,16,-22,18,48,100

將func(intd[],intnum)函式補充完整。

注意:請勿改動主函式main。

試題程式:

#include

voidfunc(intd[],intnum)

{

}

intmain()

{

intData[]={2,15,6,-3,8,-11,9,24,50};

func(Data,9);

for(inti=0;i(sizeof(Data)/sizeof(int);i++)

{

cout<  }

cout<  return0;

}

for(inti=0;i  {

if(d[i]%2!=O)

d[i]=2*d[i];

}

【解析】由審題分析可知,利用迴圈來逐個判斷d[]中的元素,d[]中元素個數為hum,因此迴圈變數從0變化至num。在迴圈內,用if語句判斷該元素是不是奇數,即if(d[i]%2!=0),將滿足條件的d[i]擴大一倍。


更多計算機二級相關試題推薦:

1.2016年9月計算機二級C語言選擇題及答案

2.2016計算機二級C語言測試題及答案[最新]

3.2016年計算機二級C語言基本知識點

4.2016年計算機二級c語言真題

5.計算機二級C語言機試題庫及答案

6.計算機二級c語言試題及答案

7.2016年計算機二級C語言練習題及答案

8.2016年計算機二級C語言選擇模擬題及答案

9.2016計算機二級C語言考前模擬試題及答案

10.計算機二級考試C語言試題與答案