单选题
1、〖第17题〗635) 若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。
A
2
B
3
C
4
D
无确定值
答案解析
正确答案:B
解析:
这是一道关于 C 语言二维数组初始化的经典题目。以下是详细的解析:
### 核心考点
**二维数组初始化时,第一维(行数)的自动推导规则。**
### 详细推导过程
1. **理解数组定义**
语句 `int a[][3] = {1, 2, 3, 4, 5, 6, 7};` 定义了一个二维整型数组 `a`。
* `[]` 表示第一维(行数)未指定,编译器需要根据初始化列表的内容自动计算。
* `[3]` 表示第二维(列数)固定为 3,即每一行最多存放 3 个整数。
2. **分析初始化列表**
初始化列表中共有 **7** 个元素:`{1, 2, 3, 4, 5, 6, 7}`。
3. **计算行数(第一维大小)**
在 C 语言中,当省略第一维大小时,行数的计算公式为:
$$ \text{行数} = \lceil \frac{\text{元素总个数}}{\text{列数}} \rceil $$
也就是:**行数 = (元素总数 + 列数 - 1) / 列数** (向上取整)。
具体分配如下:
* **第 1 行** (`a[0]`):容纳前 3 个元素 `{1, 2, 3}`
* **第 2 行** (`a[1]`):容纳接下来的 3 个元素 `{4, 5, 6}`
* **第 3 行** (`a[2]`):容纳剩下的 1 个元素 `{7}`,其余位置自动补 0,即 `{7, 0, 0}`
因为还有剩余元素需要存放,所以必须开辟第 3 行。
数学计算:$7 \div 3 = 2 \dots 1$。商为 2,余数为 1,说明填满 2 行后还剩 1 个元素,因此需要第 3 行。所以总行数为 **3**。
### 结论
数组 `a` 的第一维大小(行数)为 **3**。
故正确答案是 **B**。
题目纠错
c语言选择判断题库
相关题目
单选题
1、第282题 (1.0分) 题号:575 若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于 表达式(exp)的是()。
单选题
1、第281题 (1.0分) 题号:551 应用缓冲文件系统对文件进行读写操作,打开文件的函数名为()。
单选题
1、第280题 (1.0分) 题号:562 下列叙述中正确的是()。
单选题
1、第279题 (1.0分) 题号:560 能将高级语言编写的源程序转换为目标程序的是()。
单选题
1、第278题 (1.0分) 题号:511 求平方根函数的函数名为()。
单选题
1、第277题 (1.0分) 题号:618 C语言中用于结构化程序设计的三种基本结构是()。
单选题
1、第276题 (1.0分) 题号:706 若有说明:int *p,m=5,n;以下正确的程序段是()。
单选题
1、第275题 (1.0分) 题号:102 以下数据中,不正确的数值或字符常量是()。
单选题
1、第274题 (1.0分) 题号:596 下面四个选项中,均是不合法的用户标识符的选项是()。
单选题
1、第273题 (1.0分) 题号:492 下列程序段的输出结果为()。 float x=213.82631; printf(”%3d”,( );
