单选题
1、若有说明: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. **计算行数(第一维大小)**:
编译器会按照“先行后列”的顺序填充数组,每行填满 3 个元素后换到下一行。
- **第 1 行**:填入前 3 个元素 `{1, 2, 3}`。
- **第 2 行**:填入接下来的 3 个元素 `{4, 5, 6}`。
- **第 3 行**:填入剩下的 1 个元素 `{7}`。虽然该行未满,但仍占用一行空间,剩余位置自动补 0。
因此,总共需要 **3 行** 来容纳这 7 个元素。
4. **计算公式验证**:
第一维大小 = $\lceil \text{初始化元素总数} / \text{第二维大小} \rceil$
$$ \lceil 7 / 3 \rceil = \lceil 2.33... \rceil = 3 $$
### 结论:
数组 `a` 的第一维大小(行数)为 3。
故正确答案是 **B**。
题目纠错
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语言中的文件的存储方式有()。
单选题
4.C语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为()。
单选题
3.数组名作为实参数传递给函数时,数组名被处理为()。
单选题
2.经下列语句定义后,sizeof( ),sizeof( ),sizeof( ),sizeof( )在 微机上的值分别为()。 char x=65; float y=7.3; int a=100; double b=4.5;
