第 1 頁:上機試題 |
第 2 頁:參考答案 |
答案與解析
一、程序改錯題
(1)應改為“ein.getline(str,120,’?’);”。
(2)應改為“while(str[i])”。
(3)應改為“if(str[i]>=’a’&&str[i]<=’2’)”。
【解析】本題中要求以輸入字符“?”為結束符,用于字符輸入的流成員函數getline函數讀入一行字符,格式為“cin.getline(字符數組,字符個數,終止標志字符)”,所以第1處改為“cin.getline(str,120,’?’);”。第2處的“while(str)”語句應該是判斷字符串str中的每一個字符是否為結束符,若不是結束符,在循環中判斷每一個字符是否為小寫,若為小寫,則轉換。所以應該修改為“while(str[i])”。第3處的“if(str[i]>=’a’)”語句是判斷字符str[i]是否為小寫字符,而現有的語句只是判斷字符是否大于’a’,但是小寫字符應該是’a’到’2’,所以修改為“if(str[i]>=’a’&&str[i]>=’z’)”。
二、簡單應用題
inti;
for(i=0;s1[i]!=0;i++)//循環判斷每一個字符
{
if(i%2==0)//判斷字符串中下標為偶數位置
{
s2[i]=s1[3];
s2[i+1]=s1[i];
s2[i+2]=’\0’;//新串添加尾符
}
}
【解析】判斷一個字符串中的某一個字符下標i是否為偶數,可用“i%2==0”來判斷。對串s1中各個字符串逐個進行考查,滿足條件的字符就順序放在新串s2中,否則就不存放。所有字符處理完成后,記得在新串s2的末尾加上結束符“’\0’。
三、綜合應用題
(1)應添加“year=y;month=m;day=d;”。
(2)應添加“Date&operator+=(intm)”。
(3)應添加“intyear,month,day;”。
(4)應添加“cout< 【解析】本題中第1處要求“完成構造函數,分別給year、month、day賦值”。在程序中“Date(inty,intm,intd)”的構造函數中添加給year、month、day賦值的語句,即在第1處添加“year=y;month=m;day=d;”。第2處要求“完成重載符號‘+=’的定義”。在C++中,運算符重栽的定義方法是定義一個重載運算符的函數,格式為函數operator+重載運算符號+,所以這里補全“Date&operator+=(intm)”。第3處要求“定義私有成員變量year、month、day”。在C++程序的private區域中添加變量year、month、day的定義,即在第3處添加“intyear,month,day;”。第4處要求“完成函數print()打印函數”。在C++中的print函數中補全其打印功能,即在第四個標識下添加“eout<
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦: