【答案】
void CharConvA(void)
{
int i,j,k; /*定义循环控制变量*/
int str; /*存储字符串长度*/
char ch; /*暂存最后一个字符*/
for(i=0;i<maxline;i++) /*以行为单位获取字符*/
{
str=strlen(xx[i]); /*求得当前行的字符串长度*/
ch=xx[i][str-1]; /*将最后一个字符暂存入ch*/
for(j=str-1;j>0;j--) /*从最后一个字符开始,直到第二个字符*/
xx[i][j]=(xx[i][j]>>4)+xx[i][j-1];
/*当前字符ASCII值右移4位加前一个字符的ASCII值,得到新的当前字符*/
xx[i][0]+=ch;
/*第一个字符的ASCII值加最后一个字符的ASCII值,得到新的第一个字符*/
}
}
【解析】本题考查的是二维数组的访问。
首先保存最后一个字符,利用for循环由后向前逆序访问数组中的字符。
将当前获取字符的ASCII值右移4位加前一个字符的ASCII值,得到新的当前字符。
最后,将第一个字符的ASCII值加上保存的最后一个字符的ASCII值,得到新的第一个字符。