第 1 頁:上機試題 |
第 2 頁:參考解析 |
點擊查看:2018年9月計算機二級C++考試上機練習題及答案匯總
一、程序改錯題
使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運行時有誤,請改正其中的錯誤,使程序正常運行,并使程序的輸出結果為
平均值為29
最大值為112
最小值為-11
注意:錯誤的語句在//******error******的下面,修改該語句即可。
試題程序:
#include(iostream)
usingnamespacestd;
intmain()
{
inti,Ave,Min,Max;
intdata[8]={100,21,-73,86,14,0,-21,1};
Ave=0;
for(i=0:i<8:i++)
//******error******
Ave=data[i];
Ave/=8:
cout<<"平均值為:"< Max=Min=data[O];
for(i=0;i<8;i++)
{
//******error******
if(data[i](Max)Max=data[i];
//******error******
if(data[i])Min)Min=data[i];
}
cout<<"最大值為:"< cout<<"最小值為:"< return0;
}
二、簡單應用題
使用VC++6.0打開考生文件夾下的源程序文件2.cpp。閱讀下列函數說明和代碼,完成空出部分程序。函數sum(intA[NUM][NUM],intn)的功能是計算矩陣中所有非質數數字的和。
提示:函數isPrime(intn)的功能是判定當前數字是否為質數,如果是,則返回true。
注意:不能修改程序的其他部分,只能修改sum函數。
試題程序:
#include(iostream.h)
#include
#defineNUM50
intA[NUM][NUM]=
{
{1,3,5,7,9},
{11,13,15,17,19},
{21,23,25,27,29},
{31,33,35,37,39},
{41,43,45,47,49}
};
boolisPrime(intn)
{
if(n==1)
returnfalse;
if(n==2)
returntrue;
for(inti=2;i(n/2;i++)
{
if(n%i==0)
returnfalse;
}
returntrue;
}
intsum(intAENUM]ENUM],intn)
{
}
intmain()
{
cout< return0;
}
三、綜合應用題
使用VC++6.0打開考生文件夾下的源程序文件3.cpp,其中定義了類BA、PA1和PA2,其中PA1類由BA類公有派生,PA2類由PA1類公有派生。上述3個類的定義并不完整,請按要求完成下列操作,將程序補充完整。
程序輸出結果如下:
1O
5
1057
(1)定義類BA的構造函數,該構造函數有一個整型的參數m,在構造函數中將m賦值給數據成員a。請在注釋1之后添加適當的語句。
(2)定義類PA1的構造函數,該構造函數有兩個整型的參數m和n,在構造函數中將m賦值給數據成員b,將n作為基類BA構造函數的參數值傳人。請在注釋2之后添加適當的語句。
(3)定義類PA2的構造函數,該構造函數有3個整型的參數m、n和k,在構造函數中請將m賦值給數據成員c,將n和k分別賦值給基類PA1構造函數的參數m和n。請在注釋3之后添加適當的語句。
(4)完成類PA2的成員函數show的定義,該函數調用基類成員函數,輸出基類私有成員a、b及類PA2自身的數據成員C的值,上述3個值在輸出時用空格隔開。請在注釋4之后添加適當的語句。
注意:除在指定位置添加語句之外,請不要改動程序中的其他內容。
試題程序:
#include(iostream.h>
classBA
{
inta;
public:
//********1********
intgeta(){returna;}
};
classPAl:publicBA
{
intb;
public:
//********2********
intgetb(){returnb;}
};
classPA2:publicPAl
{
intC;
public:
//********3********
voidshow()
{
//********4********
}
};
voidmain()
{
PA2a(7,5,10);
cout< cout< a.show();
}
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦: