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

2016年9月計算機二級C上機考試試題及答案

計算機等級 閱讀(1.54W)

  程式改錯題【1】

2016年9月計算機二級C上機考試試題及答案

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

150

200

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

提示:定義Numl為一個整型資料位長的'變數。

試題程式:

#include

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

struct

{

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

intNuml:1;

intNum2;

}

MyStruct;

voidmain()

{

MyStructmstr;

1=150;

2=15;

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

int*ptr=&;

cout<<*ptr<  *ptr=200;

cout<<*ptr<  }

(1)“typedefstruct”。

(2)“intNuml:32;”或“intNuml;”。

(3)“int*ptr=(int*)&mstr;”。

解析】第1處是定義結構體,結構體定義的一般形式為

struct(結構體名>

{

<成員列表>

}

(變數名列表);

程式當中定義結構體名放在後面,MyStruct為結構體變數型別,相當於typedef為已有的型別定義一個新的型別,第1處應改為“typedefstruct”。第2處是定義Numl為一個整型資料變數,整型資料位數為32(4位元組),因此第2處應改成“intNuml:32;”或“intNuml;”。ptr為整型資料指標,mstr為MyStruct型別結構變數,兩者型別不一致應該做強制型別轉換,第3處應改成“int*ptr=(int*)&mstr;”,表示將mstr的地址給ptr,ptr指向MyStruct的第一個域Numl,Numl也是整型,型別一致,故可通過ptr指標來改變Numl的值。

  程式改錯題【2】

使用VC++6.0開啟考生資料夾下的源程式檔案,使它能執行正確的結果。

注意:不要改動其他語句,不得增行或刪行,也不得更改程式的結構!

本程式要求螢幕輸出:i=12345

注意:語句在/********error********/的下面。修改該語句即可,其他的語句不能修改。

試題程式:

#include

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

classTC()

{

public:

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

void~TC(){}

TC(inti)

{

cout<<’i’<<’=’<  }

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

}

voidmain()

{

TCobj(12345);

return;

}

(1)“classTC()”應改為“classTC”。

(2)“void~TC(){}”應改為“~TC(){}”。

(3)“}”應改為“};”。

【解析】本題考查了考生對類的定義瞭解的情況。類定義類名後不能有括號,所以第1處應該是“classTC”。類的解構函式不能有返回型別,所以應改兩“~TC(){}”。最容易忽略的地方,就是類定義之後必須跟一個分號。因為類的定義屬於型別定義語句,就好像定義一個結構、用typedef關鍵字定義一個型別的別名一樣,其後都要跟語句結束標誌“;”。