给定程序MODll.C中函数fun的功能是:首先将大写字母转换为对应小写字母;若小写字母为a~u,则将其转换为其后的第5个字母;若小写字母为v~z,使其值减21。转换后的小写字母作为函数值返回。例如,若形参是字母A,则转换为小写字母f:若形参是字母w,则转

admin2013-03-29  9

问题 给定程序MODll.C中函数fun的功能是:首先将大写字母转换为对应小写字母;若小写字母为a~u,则将其转换为其后的第5个字母;若小写字母为v~z,使其值减21。转换后的小写字母作为函数值返回。例如,若形参是字母A,则转换为小写字母f:若形参是字母w,则转换为小写字母b。
    请改正函数fun中指定部位的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
char fun(char c)
{  if(c>=’A’  &&c<=’Z’)
/**************found***************/
    C=C+32;
    if(c>=’a’  &&c<=’u’)
/**************found***************/
    c=c-5;
    else if(c>=’v’&&c<;’z’)
    c=c-21;
    return c;
}
main()
{char c1,c2;
  printf("\nEnter a letter(A—Z):
"); c1=getchar();
  if(isupper(c1))
  {  c2=fun(c1);
    printf("\n\nThe letter\’%c\’
change to\’%c\’\n",c1,c2);
  }
  else printf("\nEnter(A—Z)!\n");
}

选项

答案(1)c=c+32; (2)c=c+5;

解析 (1)第一个标识下“C=C+32;"中变量C没有定义,编译时会提示出错。根据题意,这行语句的作用是将大写字母转换为小写字母,C语句中大写字母转换为对应的小写字母是对原有ASCⅡ码加32,小写转换为大写是减32,所以应将“C=C+32;"改为“C=C+32;"。
    (2)第二个标识下是将小写字母转换为其后的第五个字母,字母在a~u之间只加上5就可以了,原题中减5则是将字母转换到该字母之前的第五个字母,所以第二个标识下“C=C-5:"改为“C=C+5;"。
转载请注明原文地址:https://kaotiyun.com/show/EPJp777K
0

最新回复(0)