GESP 三级 · GESP 202512 C++ 三级 第 18 题

判断题 · 答案 B

← 整套速查表 GESP 三级 全部真题

题目

strcmp(str1, str2) 返回 0 表示 str1 大于 str2,返回正数表示两者相等。

答案:B

解题思维

答案B。结合题目信息和所学知识分析。

常见错误

仔细审题,注意"不正确""不属于""不是"等否定词。用排除法缩小范围。

详细解析(节选)

【考点】strcmp

这个题考的是对 C 标准库函数 strcmp 的行为理解——它按字典序逐字符比较,返回 0 表示相等,小于 0 表示 str1 < str2,大于 0 表示 str1 > str2。题目把返回值说反了:声称"等于 0 表示 str1 大于 str2",其实等于 0 是相等;又说"返回正数表示相等",其实正数意味着 str1 更大。举个例子:strcmp("abc", "abd") 会返回一个负数,因为 'c' < 'd'。要判断谁大谁小,得用 strcmp(str1, str2) > 0 这种写法,而不是指望返回值直接是 0 或正数来代表大小关系。命题人就是拿这个函数签名和返回值语义的对应关系做文章,如果你只背过"strcmp 返回 0 表示相等"这一句,看到选项里的变形就容易掉坑。所以选 B。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断