【考點(diǎn)分析】 本題考查對(duì)字符數(shù)組中的字符計(jì)算�?疾榈闹R(shí)點(diǎn)主要包括:字符串?dāng)?shù)組的訪問,字符ASCII碼的算術(shù)運(yùn)算,if判斷結(jié)構(gòu)以及邏輯表達(dá)式。
【解題思路】 首先通讀題目,得知此題屬于字符計(jì)算問題;其次分析題干要求,本題要求實(shí)現(xiàn)ChA(void)函數(shù)的功能,分析后可以歸納出3個(gè)關(guān)鍵點(diǎn):關(guān)鍵點(diǎn)1如何對(duì)字符數(shù)組的元素逐一訪問;關(guān)鍵點(diǎn)2按照要求取每個(gè)位置的字符和其下一個(gè)字符相加,并將結(jié)果作為該位置上的新字符,需要注意的是,末尾位置的新字符是該位原字符和第1個(gè)原字符相加的結(jié)果;關(guān)鍵點(diǎn)3最后要將所得的結(jié)果逆序保存。
接著分析每一步的解決方法,對(duì)于關(guān)鍵點(diǎn)1通過字符串處理函數(shù)strlen獲取字符串的長(zhǎng)度,再通過獲得的長(zhǎng)度用下標(biāo)法對(duì)字符數(shù)組的字符元素逐一訪問;關(guān)鍵點(diǎn)2在遍歷訪問字符時(shí),可以直接取下一個(gè)位置的字符進(jìn)行運(yùn)算,在進(jìn)行計(jì)算之前需要首先保存第1個(gè)位置的字符,以作為計(jì)算最后位置新字符的條件;關(guān)鍵點(diǎn)3可以通過for循環(huán)對(duì)數(shù)組從首尾同時(shí)遍歷的算法實(shí)現(xiàn)。
【參考答案】
void ChA(void)
{
int i,j,k; /*定義循環(huán)控制變量*/
int str; /*存儲(chǔ)字符串的長(zhǎng)度*/
char ch,temp; /*定義字符暫存變量*/
for(i=0;i
{
str=strlen(xx[i]); /*求得當(dāng)前行的字符串長(zhǎng)度*/
ch=xx[i][0]; /*將第一個(gè)字符暫存入ch*/
for(j=0;j
/*將該字符的ASCII值賦值為下一個(gè)字符的ASCII值加1,得到新的字符*/
xx[i][j]+=xx[i][j+1];
xx[i][str-1]+=ch;
/*將最后一個(gè)字符的ASCII值與第一個(gè)字符的ASCII值相加,得到最后一個(gè)新的字符*/
for(j=0,k=str-1;j
{
temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
}
}
【易錯(cuò)提示】 最后一個(gè)字符的計(jì)算,逆序存儲(chǔ)算法的選擇。
相關(guān)推薦:
2014年計(jì)算機(jī)等級(jí)考試過關(guān)技巧
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |