2016年計算機二級C語言上機考試試題及答案
一、程序改錯題
使用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的值。
二、綜合應用題
使用VC++6.0打開考生文件夾下的源程序文件3.cpp,其中定義了用于表示日期的類Date,但類Date的定義并不完整,按要求完成下列操作,將類的定義補充完整。
(1)定義私有成員變量year、month、day,分別表示年、月、日,類型為int。請在注釋1后添加適當的語句。
(2)完成構造函數,分別給year、month、day賦值,請在注釋2后添加適當的語句。
(3)完成重載符號“+=”的定義,請在注釋3后添加適當的語句。
(4)完成函數print打印函數,如2005年1月5日到屏幕和文件out3.txt格式相同,請在注釋4后添加適當的語句。
注意:增加代碼,或者修改代碼的位置已經用符號表示出來。請不要修改其他的程序代碼。
試題程序:
#include
#include
#include
#include
usingnamespacestd;
voidWriteFile(intc)
{
ofstreamout1;
out1.open("out3.txt",ios_base::app);out1< out1.close();
}
voidWriteFile(char*str)
{
ofstreamout1;
out1.open("out3.txt",ios_base::app);out1< out1.close();
}
voidClearFile()
{
ofstreamout1;
out1.open("out3.txt"):
outl.close();
}
classDate
{
public:
Date(inty,intm,intd)
{
//********1*********}
voidprint();
//********2********
{
month+=m:
inti=month/12;
intj=month%12;
if(j==0)
{
year+=(i-1):
month=12;
}
else
{
year+=i:
month=j;
}
return*this:
}
private:
//********3********
};
voidDate::print()
{
//********4********
WriteFile(year);
WriteFile("年");
WriteFile(month);
WriteFile("月");
WriteFile(day);
WriteFile("日");
}
intmain()
{
ClearFile();
DateNationa1_day(2004,10,5);
National_day+=3;
National_day.print();
return0;
} (1)應添加“year=y;month=m;day=d;”。
(2)應添加“Date&operator+=(intm)”。
(3)應添加“intyear,month,day;”。
(4)應添加“cout<
【解析】本題要求私有成員變量year、month、day為整形表示方法,所以注釋3應添加“intyear,month,day;”;注釋1要求分別給year、month、day賦值,根據上下文提意,所以應添加“year=y;month=m;day=d;”;注釋2是對“+=”運算符的重栽,Date&operator4+=(intm);第4處打印輸出年、月、日,C++語言中,輸出使用cout。
【計算機二級C語言上機考試試題及答案】相關文章:
計算機二級C語言考試上機考試題及答案04-09
計算機二級C語言上機沖刺試題及答案05-26
計算機二級《C語言》上機操作試題及答案06-02
2016年二級C語言上機試題及答案04-28
計算機二級考試C語言預測上機鞏固試題06-17
計算機二級考試C上機考試試題及答案03-18
計算機二級《C++》上機試題及答案08-12
計算機二級考試C++上機考試試題及答案02-08