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

1、第109题 (1.0分) 题号:650 若有说明: int a[][4]={0,0};则下面不正确的叙述是()。

A
 数组a的每个元素都可得到初值0
B
 二维数组a的第一维大小为1
C
 因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1
D
 有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

答案解析

正确答案:D

解析:

这道题考查的是 C 语言中二维数组的初始化规则。 **1. 代码分析** 声明语句为:`int a[][4]={0,0};` * **第二维大小确定**:`[4]` 表示数组有 4 列。 * **第一维大小推导**:当省略第一维大小时,编译器会根据初始值的个数和第二维的大小自动计算行数。 * 初始值列表 `{0, 0}` 中有 2 个元素。 * 每行能容纳 4 个元素。 * 因为 $2 \le 4$,所以只需要 1 行即可容纳所有显式给出的初值。因此,第一维大小(行数)被确定为 **1**。 * 数组 `a` 的实际结构是 `a[1][4]`,共有 $1 \times 4 = 4$ 个元素。 **2. 初始化规则** 在 C 语言中,如果提供的初始值个数少于数组元素的总个数,**剩余的元素会自动初始化为 0**(对于静态存储期或全局数组,或者在局部数组中未显式初始化的部分,标准规定其余部分补零)。 具体到本题: * `a[0][0]` 被显式初始化为 `0`。 * `a[0][1]` 被显式初始化为 `0`。 * `a[0][2]` 和 `a[0][3]` 没有显式初值,但根据规则,它们会被**自动初始化为 0**。 **3. 选项逐一解析** * **A. 数组a的每个元素都可得到初值0** * **正确**。前两个元素显式赋值为 0,后两个元素隐式补零为 0。所以所有 4 个元素的值都是 0。 * **B. 二维数组a的第一维大小为1** * **正确**。如前所述,2 个初值填不满一行(4列),所以只需要 1 行。 * **C. 因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1** * **正确**(虽然表述略显生硬,但逻辑成立)。这里的意思是:初值个数(2)除以第二维大小(4),向上取整或者直接看是否超过一行。因为 $2 < 4$,所以行数为 1。通常计算行数的公式是 $\lceil \text{初值个数} / \text{列数} \rceil$。$\lceil 2/4 \rceil = 1$。 * **D. 有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0** * **错误**。这是对 C 语言初始化规则的误解。其余元素(`a[0][2]`, `a[0][3]`)虽然不是显式初始化,但它们会**自动获得初值 0**。说它们“得不到初值0”意味着它们的值是未定义的或随机的,这与事实不符。 **结论** 题目要求选出**不正确**的叙述。 故正确答案是 **D**。
题目纠错
c语言选择判断题库

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

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