要正确定义一个返回两个整数中较大值的函数 max,应该使用( )。
答案B。函数必须有函数名。函数可以没有参数,可以没有返回值(void类型),定义可以在调用之后(需提前声明)。
函数必须有名称,但可以有默认参数。参数默认以值传递(传值)。函数未被调用时参数不占内存。
【考点】函数返回值类型|函数参数声明|变量作用域与默认值陷阱
🧠 解题思维:核心判断链是"return 语句必须匹配函数返回类型"。A、D 声明 void 却强行用 return 返回整型,违反 C++ 语法——void 函数只能 return 或省略;C 参数缺类型声明,C++ 不允许无类型参数;B 完整定义了 int 返回类型、两个 int 参数,且用 if 分支返回较大值,逻辑与语法双正确。
🪤 陷阱拆解:A 选项利用"return 看似万能"的错觉,void 函数不能用 return 返回值;C 选项偷换参数声明规则,C++ 参数必须显式类型;D 选项更隐蔽——void 函数却调用 cout,还漏写 #include <iostream>,属于"编译都过不了"的硬伤。命题人没让你 print 就让你 return,这是最基础的函数定义规则。
🔄 反命题思维:若改成"输出较大值",void 函数可接受但需补头文件;若参数用引用传递,函数签名会完全改变。刷到此类题先问自己:题目要求返回还是输出?参数要不要显式类型?