单选题
1、第191题 (1.0分) 题号:641 若有说明:int a[10];则对a数组元素的正确引用是()。
A
a[10]
B
a[3,5]
C
a(5)
D
a[10-10]
答案解析
正确答案:D
解析:
**解析:**
在 C 语言中,数组的声明与引用遵循以下规则:
1. **下标范围**:若定义 `int a[10];`,表示数组 `a` 有 10 个元素。数组下标从 `0` 开始,到 `n-1` 结束。因此,合法的下标范围是 `0` 到 `9`。
2. **引用语法**:访问数组元素必须使用方括号 `[]`,即 `数组名[下标]` 的形式。
**逐项分析:**
* **A. `a[10]`**:
* 错误。虽然语法格式正确,但下标 `10` 超出了合法范围(0~9)。这属于**数组越界**访问,会导致未定义行为。
* **B. `a[3,5]`**:
* 错误。C 语言中不支持这种多维或逗号分隔的下标写法来直接访问一维数组元素。逗号表达式 `3,5` 的结果是 `5`,虽然 `a[5]` 是合法的,但在标准的数组引用语境下,这种写法通常被视为错误或混淆项(且在某些严格编译器或语境下可能报错或警告,不如 D 选项规范)。更重要的是,题目考察的是标准的一维数组引用,B 选项形式不符合常规的一维数组元素引用规范。
* **C. `a(5)`**:
* 错误。C 语言中,圆括号 `()` 用于函数调用。`a(5)` 会被解释为调用名为 `a` 的函数,而 `a` 是一个数组名,不是函数,因此编译错误。
* **D. `a[10-10]`**:
* **正确**。
* 首先,语法上使用方括号 `[]`,符合数组引用格式。
* 其次,下标是一个表达式 `10-10`,其计算结果为 `0`。
* `a[0]` 是数组的第一个元素,下标 `0` 在合法范围(0~9)内。
**结论:**
只有选项 D 既符合语法规范,又在合法的下标范围内。
**正确答案:D**
题目纠错
c语言选择判断题库
相关题目
单选题
1、第68题 (1.0分) 题号:105 以下运算符中,优先级最高的运算符是()。
单选题
1、第67题 (1.0分) 题号:584 设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型为()。
单选题
1、第66题 (1.0分) 题号:146 用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是()。 long a=0xffffff; int b; char c;
单选题
1、第65题 (1.0分) 题号:636 若二维数组a有m列,则在a[i][j]前的元素个数为()。
单选题
1、第64题 (1.0分) 题号:659 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()。
单选题
1、第63题 (1.0分) 题号:524 与实际参数为实型数组名相对应的形式参数不可以定义为()。
单选题
1、第62题 (1.0分) 题号:570 以下叙述不正确的是()。
单选题
1、第61题 (1.0分) 题号:212 C语言中的文件类型只有()。
单选题
1、第60题 (1.0分) 题号:674 以下错误的描述是:函数调用可以()。
单选题
1、第59题 (1.0分) 题号:210 在位运算中,操作数每右移一位,其结果相当于()。
