【考點(diǎn)分析】 本題考查對字符數(shù)組中的字符進(jìn)行計算以及替換?疾榈闹R點(diǎn)主要包括:字符串?dāng)?shù)組的訪問,字符ASCII碼的位運(yùn)算,if判斷結(jié)構(gòu)以及邏輯表達(dá)式。
【解題思路】 首先通讀題目,得知此題屬于字符計算問題;其次分析題干要求,本題要求實(shí)現(xiàn)StrCharJL()函數(shù)的功能,分析后可以歸納出3個關(guān)鍵點(diǎn):關(guān)鍵點(diǎn)1如何對字符數(shù)組的元素逐一訪問;關(guān)鍵點(diǎn)2如何對字符的ASCII碼做左移的位運(yùn)算;關(guān)鍵點(diǎn)3如何根據(jù)條件(移位后的ASCII值小于等于32或大于100)對計算結(jié)果進(jìn)行判斷,并分別對滿足與不滿足條件的情況進(jìn)行處理。
接著分析每一步的解決方法,關(guān)鍵點(diǎn)1通過字符串處理函數(shù)strlen獲取字符串的長度,再通過獲得的長度使用下標(biāo)法對字符數(shù)組的元素逐一訪問;關(guān)鍵點(diǎn)2可以直接對字符的ASCII碼進(jìn)行位運(yùn)算;關(guān)鍵點(diǎn)3通過if判斷結(jié)構(gòu)和邏輯表達(dá)式即可實(shí)現(xiàn)功能。
【參考答案】
void StrCharJL(void)
{ int i,j; /*定義循環(huán)控制變量*/
int str;
char ch;
for(i=0;i { str=strlen(xx[i]); /*求得當(dāng)前行的字符串長度*/ for(j=0;j { ch=xx[i][j]<<4; if(ch<=32 || ch>100) continue; /*如果左移4位后字符的ASCII值小于等于32或大于100,則原字符保持不變*/ else xx[i][j]+=4; /*否則就把左移后的字符ASCII值加上原字符的ASCII*/ } } } 【易錯提示】 根據(jù)字符ASCII碼的位計算;if判斷語句中的邏輯表達(dá)式。 相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |