上機(jī)考試試題答案與解析
一、程序改錯(cuò)題
(1)應(yīng)改為“ein.getline(str,120,’?’);”。
(2)應(yīng)改為“while(str[i])”。
(3)應(yīng)改為“if(str[i]>=’a’&&str[i]<=’2’)”。
【解析】本題中要求以輸入字符“?”為結(jié)束符,用于字符輸入的流成員函數(shù)getline函數(shù)讀入一行字符,格式為“cin.getline(字符數(shù)組,字符個(gè)數(shù),終止標(biāo)志字符)”,所以第1處改為“cin.getline(str,120,’?’);”。第2處的“while(str)”語句應(yīng)該是判斷字符串str中的每一個(gè)字符是否為結(jié)束符,若不是結(jié)束符,在循環(huán)中判斷每一個(gè)字符是否為小寫,若為小寫,則轉(zhuǎn)換。所以應(yīng)該修改為“while(str[i])”。第3處的“if(str[i]>=’a’)”語句是判斷字符str[i]是否為小寫字符,而現(xiàn)有的語句只是判斷字符是否大于’a’,但是小寫字符應(yīng)該是’a’到’2’,所以修改為“if(str[i]>=’a’&&str[i]>=’z’)”。
二、簡單應(yīng)用題
inti;
for(i=0;s1[i]!=0;i++)//循環(huán)判斷每一個(gè)字符
{
if(i%2==0)//判斷字符串中下標(biāo)為偶數(shù)位置
{
s2[i]=s1[3];
s2[i+1]=s1[i];
s2[i+2]=’\0’;//新串添加尾符
}
}
【解析】判斷一個(gè)字符串中的某一個(gè)字符下標(biāo)i是否為偶數(shù),可用“i%2==0”來判斷。對串s1中各個(gè)字符串逐個(gè)進(jìn)行考查,滿足條件的字符就順序放在新串s2中,否則就不存放。所有字符處理完成后,記得在新串s2的末尾加上結(jié)束符“’\0’。
三、綜合應(yīng)用題
(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< 【解析】本題中第1處要求“完成構(gòu)造函數(shù),分別給year、month、day賦值”。在程序中“Date(inty,intm,intd)”的構(gòu)造函數(shù)中添加給year、month、day賦值的語句,即在第1處添加“year=y;month=m;day=d;”。第2處要求“完成重載符號‘+=’的定義”。在C++中,運(yùn)算符重栽的定義方法是定義一個(gè)重載運(yùn)算符的函數(shù),格式為函數(shù)operator+重載運(yùn)算符號+,所以這里補(bǔ)全“Date&operator+=(intm)”。第3處要求“定義私有成員變量year、month、day”。在C++程序的private區(qū)域中添加變量year、month、day的定義,即在第3處添加“intyear,month,day;”。第4處要求“完成函數(shù)print()打印函數(shù)”。在C++中的print函數(shù)中補(bǔ)全其打印功能,即在第四個(gè)標(biāo)識下添加“eout<
相關(guān)推薦:
2014年計(jì)算機(jī)二級C++考試精選試題及答案匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |