
设函数toLower的功能是求一个大写字母对应的小写字母,以下哪一项是toLower的最佳设计? A. char toLower(int c) B. char toLower(char c) C. void toLower(char c) D. int toLower(char c)
我们来分析每个选项:
toLower 的功能是将一个大写字母转换成对应的小写字母,即输入一个大写字母,返回对应的小写字母。
假设输入的字符一定是大写字母 A–Z。
A. char toLower(int c)
可行,因为字符在 C/C++ 中通常用 int 或 char 处理,int 可以隐式转换。但用 int 作为参数类型对于“处理字符”来说不够直观,不过在标准库函数(如 tolower 在 <ctype.h>)里常用 int 是为了允许 EOF 等值。如果只是处理大写字母且返回 char,则 int 有点多余。
B. char toLower(char c)
直接接收 char,返回 char,最直观地表达“字符到字符”的转换,代码清晰,参数类型明确。
C. void toLower(char c)
不返回值,那么只能通过修改参数(传指针/引用)或者打印结果,这不符合“返回小写字母”的功能,设计不好。
D. int toLower(char c)
返回 int,可以存放字符,但和直观返回 char 相比稍显冗余。标准库返回 int 是为了兼容 EOF,但这里题目是自定义函数,最佳设计应更贴近问题描述,而不是照搬标准库的设计理由。
题目问“最佳设计”
如果是在学校考题或强调“功能清晰明了,专门处理字符返回字符”,那么 B 是最佳选择,因为它的签名最直接地表达了意图:传入一个 char,返回一个 char。
如果是遵循标准库 tolower 风格(为了一致性)就会选 D,但题干没说要兼容标准库,只说“实现这个功能”,所以更贴近题意的是 B。
答案:B ✅