单选题
1、若有说明:int a[10];则对a数组元素的正确引用是()。
A
a[10]
B
a[3,5]
C
a(5)
D
a[10-10]
答案解析
正确答案:D
解析:
**解析:**
在 C 语言中,数组的定义和引用有严格的语法规则。对于声明 `int a[10];`:
1. **数组下标范围**:
* 数组 `a` 包含 10 个元素。
* 下标从 `0` 开始,到 `9` 结束。
* 合法的下标范围是 `0` 到 `9`(即 `0 <= index < 10`)。
2. **选项分析**:
* **A. `a[10]`**:
* 语法上是数组引用格式,但下标 `10` 超出了合法范围(最大下标为 9)。这会导致**数组越界**访问,属于非法或危险的操作,不是对数组元素的“正确”引用。
* **B. `a[3,5]`**:
* C 语言中不支持这种多维或多下标的写法。逗号表达式 `3,5` 的结果是 `5`,所以这实际上等同于 `a[5]`。虽然 `a[5]` 是合法的,但 `a[3,5]` 这种写法不符合常规的数组元素引用规范,且容易引发误解,通常不被视为标准的正确引用方式(在某些编译器警告级别下可能会报错或警告)。更重要的是,在单选题中,如果有更标准、无歧义的选项,此选项通常不被选。
* **C. `a(5)`**:
* 这是函数调用的语法格式,而不是数组引用的格式。C 语言中数组引用必须使用方括号 `[]`,不能使用圆括号 `()`。因此语法错误。
* **D. `a[10-10]`**:
* 方括号内是一个表达式 `10-10`,其计算结果为 `0`。
* 因此,`a[10-10]` 等价于 `a[0]`。
* `a[0]` 是数组的第一个元素,下标 `0` 在合法范围 `[0, 9]` 内,且语法完全正确。
**结论:**
只有选项 D 引用了合法的数组元素(即 `a[0]`),且语法正确。
**正确答案:D**
题目纠错
c语言选择判断题库
相关题目
单选题
1、〖第14题〗211)fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是()。
单选题
1、〖第13题〗205) 变量p为指针变量,若p=&a,下列说法不正确的是()。
单选题
1、〖第12题〗22) 以下不符合C语言语法的赋值语句是()。
单选题
1、〖第11题〗61)设j和k都是int类型,则for循环语句 for(j=0,k=-1;k=1;j++,k++) printf(”****\n”);()。
单选题
10.以下函数调用语句中实参的个数是()。 func((e1,e2),(e3,e4,e5));
单选题
9.以下程序的输出结果为()。 main() {int i=010,j=10; printf(”%d,%d\n”,++i,j--); }
单选题
8.若有以下程序段:int a=3,b=4; a=a^b;b=b^a;a=a^b;则执行以上 语句后,a和b的值分别是()。
单选题
7.以下运算符中,优先级最高的运算符是()。
单选题
6.下列字符序列中,不可用作C语言标识符的是()。
单选题
5.C语言中的文件的存储方式有()。
