二级C语言 程序改错题

高仿模拟练习,找到 found 标记处的错误并改正,答案点击按钮展开

56程序改错题:大写转小写(2 处错误)

函数 lower 将大写字母转为小写,非大写原样返回。请改正 found 标记处的 2 处错误。

#include <stdio.h>
char lower(char c)
{
/**********found**********/
    if(c >= 'a' && c <= 'z'){
/**********found**********/
        return c - 32;
    }
    return c;
}
int main()
{
    printf("%c\n", lower('R'));
    return 0;
}
参考答案
第1处: if(c >= 'A' && c <= 'Z'){
第2处: return c + 32;
解析

第1处应判断大写范围 'A'..'Z';第2处大写转小写应 +32(-32 方向反了,'R' 会变成 '2')。lower('R') 应输出 r。