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

1、第129题 (1.0分) 题号:651 以下定义语句中,错误的是()。

A
 int a[]={1,2};
B
 char *a[3];
C
 char s[10]=“test”;
D
 int n=5,a[n];

答案解析

正确答案:D

解析:

这道题考查的是 C 语言中数组定义的基本规则,特别是关于数组长度必须是**常量表达式**这一核心知识点。 我们来逐一分析各个选项: * **A. `int a[]={1,2};`** 这是合法的。在定义数组时,如果提供了初始化列表,编译器可以根据初始值的个数自动推断数组的大小。这里数组 `a` 的大小会被确定为 2。 * **B. `char *a[3];`** 这是合法的。这定义了一个指针数组,包含 3 个元素,每个元素都是一个指向 `char` 类型的指针。数组长度明确指定为常量 3。 * **C. `char s[10]=“test”;`** 这是合法的。这定义了一个长度为 10 的字符数组,并用字符串常量 `"test"` 进行初始化。字符串 `"test"` 占据 5 个字节(包括结尾的空字符 `\0`),剩余空间会自动补零。 * **D. `int n=5,a[n];`** 这是**错误**的(在标准的 C89/C90 规范及大多数传统考试语境下)。 在 C 语言的标准规定中,定义普通局部数组时,方括号 `[]` 内的数组长度必须是一个**整型常量表达式**(Integer Constant Expression),即在编译时就能确定其值的表达式。 虽然变量 `n` 被赋值为 5,但它本质上仍然是一个**变量**。在传统的 C 标准(如 C89)中,不允许使用变量作为数组维度。 *注:虽然 C99 标准引入了变长数组(VLA),允许使用变量定义数组长度,但在计算机二级等基础 C 语言考试中,通常默认遵循 C89 标准或强调“数组长度必须为常量”这一经典规则,因此 D 被视为错误选项。* 综上所述,选项 D 违反了数组定义中长度需为常量表达式的常规要求。 **正确答案:D**
题目纠错
c语言选择判断题库

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

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