AI智能推荐题库-试题通 AI智能整理导入题库-试题通
×
首页 题库中心 c语言选择判断题库 题目详情
CA4E3A01C46000013755684012D01E55
c语言选择判断题库
379
单选题

1、第170题 (1.0分) 题号:644 以下对一维整型数组a的正确说明是()。

A
 int a(10);
B
 int n=10,a[n];
C
 int n; scanf(”%d”,&n); int a[n];
D
 #define SIZE 10 (换行) int a[SIZE];

答案解析

正确答案:D

解析:

这道题考查的是 C 语言中一维数组的定义规则。在 C 语言(特别是传统的 C89/C90 标准,这也是大多数计算机二级考试或基础教材采用的标准)中,定义数组时需要遵循以下核心原则: 1. **数组长度必须是整型常量表达式**:在编译阶段就能确定其值,不能是变量。 2. **使用方括号 `[]`**:数组下标引用和定义都必须使用方括号,而不是圆括号 `()`。 下面逐一分析各个选项: * **A. `int a(10);`** * **错误**。C 语言中定义数组必须使用方括号 `[]`,即 `int a[10];`。圆括号 `()` 通常用于函数调用或改变运算优先级,不能用于数组定义。 * **B. `int n=10, a[n];`** * **错误**(在标准 C89/C90 语境下)。虽然 C99 标准引入了变长数组(VLA),允许使用变量作为数组长度,但在传统的 C 语言教学及大多数标准化考试中,数组的大小必须是**常量表达式**。这里 `n` 是一个变量,因此不符合传统数组定义的要求。即使支持 VLA,通常也不建议在定义时混合声明和初始化大小,且 D 选项是更标准、更通用的写法。 * **C. `int n; scanf("%d", &n); int a[n];`** * **错误**。理由同 B 选项。`n` 的值在运行时通过 `scanf` 输入,属于变量。在传统 C 语言标准中,数组定义不能使用变量作为长度。此外,在某些编译器或标准下,局部可变长数组的使用有限制,不如宏定义常量通用和规范。 * **D. `#define SIZE 10` (换行) `int a[SIZE];`** * **正确**。 * `#define SIZE 10` 是预处理指令,它在编译前将源代码中所有的 `SIZE` 替换为 `10`。 * 因此,`int a[SIZE];` 在预处理后等价于 `int a[10];`。 * `10` 是一个整型常量,符合数组定义中“长度必须为常量表达式”的要求。这是 C 语言中定义固定大小数组的标准且推荐的做法,便于维护和提高代码可读性。 **结论:** 只有选项 D 严格符合 C 语言对一维数组定义的传统规范,即使用常量表达式指定数组大小,并使用正确的方括号语法。 **正确答案:D**
题目纠错
c语言选择判断题库

扫码进入小程序
随时随地练习

关闭登录弹窗
专为自学备考人员打造
勾选图标
自助导入本地题库
勾选图标
多种刷题考试模式
勾选图标
本地离线答题搜题
勾选图标
扫码考试方便快捷
勾选图标
海量试题每日更新
波浪装饰图
欢迎登录试题通
可以使用以下方式扫码登陆
APP图标
使用APP登录
微信图标
使用微信登录
试题通小程序二维码
联系电话:
400-660-3606
试题通企业微信二维码