- 相關推薦
2016年9月計算機二級C上機考試試題及答案
程序改錯題【1】
使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運行時有錯,請改正程序中的錯誤,使程序輸出的結果為
150
200
注意:錯誤的語句在//******error******的下面,修改該語句即可。
提示:定義Numl為一個整型數據位長的變量。
試題程序:
#include
//******error******
struct
{
//******error******
intNuml:1;
intNum2;
}
MyStruct;
voidmain()
{
MyStructmstr;
mstr.Num1=150;
mstr.Num2=15;
//******error******
int*ptr=&mstr.Numl;
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打開考生文件夾下的源程序文件1.cpp,使它能運行正確的結果。
注意:不要改動其他語句,不得增行或刪行,也不得更改程序的結構!
本程序要求屏幕輸出: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關鍵字定義一個類型的別名一樣,其后都要跟語句結束標志“;”。
【9月計算機二級C上機考試試題及答案】相關文章:
2016年計算機二級C上機考試試題及答案09-24
華為C語言上機試題及答案06-27
計算機二級考試C++試題及答案09-20
計算機二級考試C++試題及答案08-14
2024年3月計算機二級c語言上機題庫02-29