/*
给定程序modi.c 中函数fun的功能是:首先将大写字母转换为对应小
写字母;若小写字母为a~u,则将其转换为其后的第5 个字母;若小写字母为v~
z,使其值减21。转换后的小写字母作为函数值返回。例如,若形参是字母A,则转
换为小写字母f;若形参是字母W,则转换为小写字母b。 请改正函数fun 中指定
部位的错误,使它能得出正确的结果。 注意:不要改动main 函数,不得增行或
删行,也不得更改程序的结构!*/
#include < stdio.h >
#include < ctype.h >
//分析
//1. 因为转换功能是在 fun 函数,因此直接阅读fun即可
//2. 因为我们是将大写的字符转成 小写的字符,因此 c=c-32; 应改成 c = c + 32
//3. 因为 将其转换为其后的第5 个字母, 因此 c=c-5; 应改成 c=c+5;
char fun(char c)
{ if(c>='A' && c<='Z')
c=c+32;
if(c>='a' && c<='u')
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");
getchar();
getchar();
}
考察对ASCLL的理解应用 2.
1)函数fun 的功能是进行数字字符转换。
2)若形参ch 中是数字字符'0'~'9',则'0'转换成'9','1'转换成'8','2'转换成'7',……,'9'转换成'0';
3)若是其它字符则保持不变;
4并将转换后的结果作为函数值返回。
请在程序的下划线处填入正确的内容并把下划线删除,
使程序得出正确的结果。 注意:源程序存在考生文件夹下的BLANK1.C 中。不得增行或删行,
也不得更改程序的结构!*/
#include < stdio.h >
char fun(char ch)
{
if (ch>='0' && ch <= '9')
return '9' - (ch - '0' );
return ch;
}
main()
{ char c1, c2;
printf("\nThe result :\n");
c1='2'; c2 = fun(c1);
printf("c1=%c c2=%c\n", c1, c2);
c1='8'; c2 = fun(c1);
printf("c1=%c c2=%c\n", c1, c2);
c1='a'; c2 = fun(c1);
printf("c1=%c c2=%c\n", c1, c2);
}
//分析 //1 . 空格1 因为 函数fun 将转换后的结果作为函数值返回, 因此 返回类型就是char ,填写 char //2. 空格2 if (ch>='0' && 【2】) 判断 ch 是不是在 '0'~'9'字符之间, 填写 ch <= '9' //3. 空格3 转换的规则 '0'转换成'9','1'转换成'8','2'转换成'7', 这里 '9' - 差值(ch - '0') , 填写 '0' // 测试 如果 '9' => '9' - ('9'-'0') => 57 - 9 = 48 => '0' // 测试 如果 '8' => '9' - ('8'-'0') => '9' - 8 = 49 => '1'