- 計算機二級C語言考試上機考試題及答案 推薦度:
- 計算機二級C語言考試上機試題及答案 推薦度:
- 相關(guān)推薦
2016年計算機二級C語言上機考試試題及答案
一、程序改錯題
使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運行時有錯,請改正程序中的錯誤,使程序輸出的結(jié)果為
150
200
注意:錯誤的語句在//******error******的下面,修改該語句即可。
提示:定義Numl為一個整型數(shù)據(jù)位長的變量。
試題程序:
#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處是定義結(jié)構(gòu)體,結(jié)構(gòu)體定義的一般形式為
struct(結(jié)構(gòu)體名>
{
<成員列表>
}
(變量名列表);
程序當(dāng)中定義結(jié)構(gòu)體名放在后面,MyStruct為結(jié)構(gòu)體變量類型,相當(dāng)于typedef為已有的類型定義一個新的類型,第1處應(yīng)改為“typedefstruct”。第2處是定義Numl為一個整型數(shù)據(jù)變量,整型數(shù)據(jù)位數(shù)為32(4字節(jié)),因此第2處應(yīng)改成“intNuml:32;”或“intNuml;”。ptr為整型數(shù)據(jù)指針,mstr為MyStruct類型結(jié)構(gòu)變量,兩者類型不一致應(yīng)該做強制類型轉(zhuǎn)換,第3處應(yīng)改成“int*ptr=(int*)&mstr;”,表示將mstr的地址給ptr,ptr指向MyStruct的第一個域Numl,Numl也是整型,類型一致,故可通過ptr指針來改變Numl的值。
二、綜合應(yīng)用題
使用VC++6.0打開考生文件夾下的源程序文件3.cpp,其中定義了用于表示日期的類Date,但類Date的定義并不完整,按要求完成下列操作,將類的定義補充完整。
(1)定義私有成員變量year、month、day,分別表示年、月、日,類型為int。請在注釋1后添加適當(dāng)?shù)恼Z句。
(2)完成構(gòu)造函數(shù),分別給year、month、day賦值,請在注釋2后添加適當(dāng)?shù)恼Z句。
(3)完成重載符號“+=”的定義,請在注釋3后添加適當(dāng)?shù)恼Z句。
(4)完成函數(shù)print打印函數(shù),如2005年1月5日到屏幕和文件out3.txt格式相同,請在注釋4后添加適當(dāng)?shù)恼Z句。
注意:增加代碼,或者修改代碼的位置已經(jīng)用符號表示出來。請不要修改其他的程序代碼。
試題程序:
#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)應(yīng)添加“year=y;month=m;day=d;”。
(2)應(yīng)添加“Date&operator+=(intm)”。
(3)應(yīng)添加“intyear,month,day;”。
(4)應(yīng)添加“cout<
【解析】本題要求私有成員變量year、month、day為整形表示方法,所以注釋3應(yīng)添加“intyear,month,day;”;注釋1要求分別給year、month、day賦值,根據(jù)上下文提意,所以應(yīng)添加“year=y;month=m;day=d;”;注釋2是對“+=”運算符的重栽,Date&operator4+=(intm);第4處打印輸出年、月、日,C++語言中,輸出使用cout。
【計算機二級C語言上機考試試題及答案】相關(guān)文章:
計算機二級C語言考試上機考試題及答案04-09
計算機二級C語言上機沖刺試題及答案05-26
計算機二級《C語言》上機操作試題及答案06-02
2016年二級C語言上機試題及答案04-28
計算機二級考試C上機考試試題及答案03-18
計算機二級《C++》上機試題及答案08-12
計算機二級考試C++上機考試試題及答案02-08