考試試題答案與解析
一、程序改錯題
(1)應(yīng)改為“intmax(int&a,int&b)”。
(2)應(yīng)改為“max(m,n);”。
【解析】
由題分析可知,max函數(shù)采用傳送引用的方式來傳遞參數(shù),因此第1處的語句應(yīng)該為“intmax(int&a,int&b)”。調(diào)用max時,傳遞引用時直接使用變量名即可,第2處的語句應(yīng)改為“max(m,n)”。
二、簡單應(yīng)用題
inti,j,k,t;
for(i=0;i(n-1;i++)
{
for(k=i,j=i+1;j if(A[k] 交換
k=j;
if(k!=i)//交換
{
t=AEi3;
A[i]=A[k];
A[k]=t;
}
【解析】以數(shù)組“A[]={3,8,7,6,5,0,1,2,9,4},,為例來說明具體的排序過程,第一次選擇:第一步,從A[0]-A[9]中找最大值max及下標(biāo)k,max=9,k=8;第二步,交換a[0]與最大值a[8]的值;第一次結(jié)束后a[0]已存放了最大值,下一次比較就不必再經(jīng)過它了,而從a[1]開始,如此循環(huán)。從例中可以看出10個元素要進(jìn)行9次比較,n個元素要進(jìn)行n-1次比較。設(shè)置兩層循環(huán),外層循環(huán)變量i從0到n-1,內(nèi)層循環(huán)變量從i開始到n-1,在內(nèi)層循環(huán)中找最大值,如果最大值的下標(biāo)k和i不同,則交換,實(shí)現(xiàn)選擇法排序。在內(nèi)層循環(huán)體內(nèi),如果最大值的下標(biāo)k和i不同,則用一個臨時變量記錄第i個元素,然后將第k個元素賦值給第i個元素,臨時變量值賦給第k個元素,如此完成兩個元素的交換。
三、綜合應(yīng)用題
(1)應(yīng)添加“#defineTRUE1”。
(2)應(yīng)添加“classA1;”。
(3)應(yīng)添加“friendboolfunc(A2&objl,Al&obj2);”。
(4)將“retllin”補(bǔ)充完整為“returnobjl.m_A2==TRUE&&obj2.m_A1==TRUE;”。
【解析】#define命令一般用一個指定的標(biāo)識符(即宏
名)來代表一個字符串,其定義形式一般為“#define宏名(參數(shù)表)字符串”,因此第1處應(yīng)添加“#defineTRUEl”。類聲明格式為“class<類名>;”,故第2處應(yīng)添加“class
A1;”。友元不是本類的成員函數(shù),在它的函數(shù)體內(nèi)可以通過對象名來訪問類的私有成員和保護(hù)成員。友元函數(shù)是在類聲明中由關(guān)鍵字friend修飾的非成員函數(shù),第3處應(yīng)添加“friendboolfune(A2&objl,Al&obj2);”。函數(shù)func返回變量m_A2和m_A1的邏輯與運(yùn)算結(jié)果,因此第4處的語句應(yīng)改為“returnobj1.m_A2==TRUE&&obj2.m_A1==TRUE;”。
![]() | ![]() .. 定價:¥133 優(yōu)惠價:¥133.0 更多書籍 |
![]() | ![]() .. 定價:¥124 優(yōu)惠價:¥124.0 更多書籍 |