单选题
1、〖第12题〗641) 若有说明:int a[10];则对a数组元素的正确引用是()。
A
a[10]
B
a[3,5]
C
a(5)
D
a[10-10]
答案解析
正确答案:D
解析:
**解析:**
在 C 语言中,数组的引用需要遵循特定的语法规则和边界限制。题目中定义了 `int a[10];`,这意味着数组 `a` 拥有 10 个整型元素。
1. **下标范围分析**:
C 语言中数组的下标从 `0` 开始。对于长度为 10 的数组 `a`,其合法的下标范围是 `0` 到 `9`(即 `a[0]` 到 `a[9]`)。任何超出这个范围的访问都是非法的或导致未定义行为。
2. **选项逐一分析**:
* **A. `a[10]`**:下标为 10。由于合法下标最大为 9,`a[10]` 属于**数组越界**访问,因此是错误的引用。
* **B. `a[3,5]`**:这是逗号表达式。在 C 语言中,`3,5` 的结果是最后一个表达式的值,即 `5`。虽然语法上 `a[3,5]` 等价于 `a[5]` 且 `a[5]` 是合法的,但在标准的数组引用考察中,通常不推荐使用逗号表达式作为下标,且该写法容易引发歧义或被视为非标准用法。更重要的是,在单选题中,如果有更标准、无歧义的选项,通常不选此项。不过,严格来说它语法通过,但相比 D 选项,D 是更典型的正确引用形式。*注:在某些严格的考试语境下,逗号表达式虽合法但常被作为干扰项,或者题目意在考察最规范的写法。让我们先看其他选项。*
* **C. `a(5)`**:C 语言中数组引用必须使用**方括号** `[]`,而不是圆括号 `()`。圆括号通常用于函数调用。因此,这是**语法错误**。
* **D. `a[10-10]`**:下标是一个表达式 `10-10`,其计算结果为 `0`。`a[0]` 是数组的第一个元素,下标 `0` 在合法范围 `[0, 9]` 内,且使用方括号,符合 C 语言数组引用的所有规范。因此,这是**正确**的引用。
**结论:**
选项 A 越界,选项 C 语法错误,选项 B 虽可能编译通过但不如 D 规范且常作为干扰项,选项 D 完全符合语法且下标合法。
故正确答案为 **D**。
题目纠错
c语言选择判断题库
相关题目
单选题
1、第287题 (1.0分) 题号:147 执行下列语句后,a和b的值分别为()。 int a,b; a=1+'a'; b=2+7%-4-'A';
单选题
1、第286题 (1.0分) 题号:690 设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是()。
单选题
1、第285题 (1.0分) 题号:497 C语言能正确处理的指数是()。
单选题
1、第284题 (1.0分) 题号:158 在C语言中,为了结束由while语句构成的循环,while后一对圆括号 中表达式的值应该为()。
单选题
1、第283题 (1.0分) 题号:495 下列字符序列中,是C语言保留字的是()。
单选题
1、第282题 (1.0分) 题号:575 若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于 表达式(exp)的是()。
单选题
1、第281题 (1.0分) 题号:551 应用缓冲文件系统对文件进行读写操作,打开文件的函数名为()。
单选题
1、第280题 (1.0分) 题号:562 下列叙述中正确的是()。
单选题
1、第279题 (1.0分) 题号:560 能将高级语言编写的源程序转换为目标程序的是()。
单选题
1、第278题 (1.0分) 题号:511 求平方根函数的函数名为()。
