题目
5 设有两行定义语句:int scanf;float case;则以下叙述正确的是____。A. 第2行语句不合法B. 两行定义语句都合法C. 第1行语句不合法D. 两行定义语句都不合法
5 设有两行定义语句:
int scanf;
float case;
则以下叙述正确的是____。
A. 第2行语句不合法
B. 两行定义语句都合法
C. 第1行语句不合法
D. 两行定义语句都不合法
题目解答
答案
A. 第2行语句不合法
解析
本题考查C语言标识符的命名规则,核心在于区分关键字与标准库函数名的使用限制:
- 关键字是C语言预先保留的词(如
case),不能用作变量名; - 标准库函数名(如
scanf)虽然属于系统定义的标识符,但不是关键字,可以作为用户自定义的变量名(尽管不推荐)。
破题关键:判断scanf和case是否属于关键字。
第1行语句 int scanf;
scanf是C标准库中的输入函数名,但不是C语言的关键字。- 根据规则,非关键字的标识符可以作为变量名,因此该行定义合法。
第2行语句 float case;
case是C语言的关键字,用于switch语句中。- 关键字不能用作变量名,因此该行定义非法。
结论:第2行语句不合法,第1行合法。