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

admin2016-10-29  26

问题 给定程序MODI1.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语句中大写字母转换为对应的小写字母是对原有ASCIl码加32,小写转换为大写是减32,所以应将“C=C+32;”改为“C=C+32;”。
    (2)第二个标识下是将小写字母转换为其后的第五个字母,字母在a~u之间只加上5就可以了,原题中减5则是将字母转换到该字母之前的第五个字母,所以第二个标识下“c=c-5;”改为“c=c+5;”。
转载请注明原文地址:https://kaotiyun.com/show/WjDp777K
0

最新回复(0)