【考点分析】 本题考查对字符数组中字符计算和替换。考查的知识点主要包括:字符串数组的访问,字符ASCII码的算术运算,if判断结构以及逻辑表达式。
【解题思路】 此题属于字符计算问题。分析题干要求,可以归纳出3个关键点:关键点1如何对字符数组的元素逐个访问;关键点2如何根据给出的函数替代关系"f(p)=p*11mod256"对字符进行计算;关键点3根据条件(本题为"小于等于32或对应的字符是大写字母")对计算结果进行判断,并分别对满足与不满足条件的情况进行处理。
解此类题的一般思路为:首先通过字符串处理函数strlen获取字符串的长度,根据获得的长度使用下标法逐一对字符数组的元素进行访问;然后按照题目给出的函数关系式直接对字符进行算术运算;最后通过if判断结构和逻辑表达式判断计算结果是否满足条件,分别对两种情况进行处理。
【参考答案】
void encryChar()
{
int i,j; /*定义循环控制变量*/
int str; /*存储字符串的长度*/
char ch; /*存储当前取得的字符*/
for(i=0;i { str=strlen(xx[i]); /*求得当前行的字符串长度*/ for(j=0;j { ch=xx[i][j] *11%256; /*依次取各行的所有字符*/ if(ch<=32 || (ch>='A' && ch<='Z')) /*如果计算的值小于等于32或对应的字符是大写字母*/ continue; /*则不作改变*/ else xx[i][j]=ch; /*否则用新字符取代原有字符*/ } } } 【模板速记】 记忆口诀:一定义二替换。定义指定义相关变量,替换指按题目要求及替代关系对字符替换。详见模板六。做题时,需灵活应用本模板,切勿死记硬背。
模板六 字符操作类(1)-字符串替代 【易错提示】 根据函数替代关系对字符进行运算;if判断结构中的逻辑表达式。 相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |