|
|
|
|
移动端

1.3.2 二维数组

《程序员面试笔试真题与解析》本书针对当前各大 IT企业面试笔试中特性与侧重点,精心挑选了 3年以来近百家典型 IT企业的面试笔试真题,这些企业涉及业务包括系统软件、搜索引擎、电子商务、手机 APP、安全关键软件等,面试笔试真题非常具有代表性与参考性。本节为大家介绍二维数组。

作者:猿媛之家来源:机械工业出版社|2017-12-06 13:31

有奖调研 | 1TB硬盘等你拿 AI+区块链的发展趋势及应用调研


1.3.2 二维数组

【真题 14】有如下定义语句: int a[][3]={{1},{3,2},{6,7,8},{9}};,那么 a[2][1]的值是()。

A.3 B.6 C.2 D.7 答案:D。对于二维数组的初始化,必须指定其列的个数。本题中,申请并初始化了一个四行三列的二维数组,第一行中除了第一列的值为 1以外,其余列的

值都为 0,第二行前两列的值分别为 3和 2,第三列的值为 0,第三行初始化的值分别为 6、7、8,第四行第一列的值为 9,其余两列的值为 0,如下所示:

  1. 1 0 0  
  2. 3 2 0  
  3. 6 7 8  
  4. 9 0 0 

因此,a[2][1]=7。所以,选项 D正确。

【真题 15】在程序设计中,当需要对两个 16K×16K的多精度浮点数二维数组进行矩阵求和时,行优先读取和列优先读取的区别是()。

A.没区别 B.行优先快

C.列优先快 D.2种读取方式速度为随机值,无法判断答案:B。在 C/C++等语言中,数组的存储都是按行优先顺序存放的。行优先顺序也称为低下标优先或左边下

标优先于右边下标。具体实现时,按行号从小到大的顺序,先将第一行中元素全部存放好,再存放第二行元素,然后存放第三行元素,依此类推。而与之相对的就是列优先顺序,列优先顺序也称为高下标优先或右边下标优先于左边下标。具体实现时,按列号从小到大的顺序,先将第一列中元素全部存放好,再存放第二列元素,然后存放第三列元素,依此类推。

如果按列访问就需要跳过很大一串内存地址,这样可能需求的内存地址不在当前页中,需要页置换,则需要硬盘 IO,通常会较慢。所以,通常情况下,行优先顺序会比列优先顺序速度更快。所以,选项 B正确。

【真题 16】定义 int **a[3][4];,则变量占用的内存空间为()。答案:48。此处定义的是指向指针的指针数组,对于 32位系统而言,指针占用内存空间 4个字节,因此,变

量占用的总空间为 3*4*4=48。

【真题 17】有数组定义 int a[2][2]={{1},{2,3}};,则 a[0][1]的值为 0。答案:正确。

【真题 18】定义有二维数组 int A[2][3] = {1,2,3,4,5,6};,则 A[1][0]和*(*(A+1)+1)的值分别是()。

A.4,5 B.4,3 C.3,5 D.3,4 答案:A。本题中,数组 A是一个有 2行 3列的二维数组,数组下标从 0开始计数。 A[1][0]表示的是第 2行第

1列,该值为 4,*(*(A+1)+1)表示的是第 2行第 2列,该值为 5。所以,选项 A正确。所以,本题的答案为 A。

【真题 19】假定一个二维数组的定义语句为“ int a[3][4]={{3,4},{2,8,6}};”,则元素 a[1][2]的值为()。

A.6 B.4 C.2 D.8

答案:A。


【真题 20】以下不能正确定义二维数组的选项是()。

A.int a[2][2]={{1},{2}}; B.int a[][2]={1,2,3,4};

C.int a[2][2]={{1},2,3}; D.int a[2][]={{1,2},{3,4}};

答案:D。

对于二维数组而言,行数可以省略,但列数一定要指定,因为编译器根据列数来进行寻址。所以,选项 D正确。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Java网络编程精解

本书结合大量的典型实例,详细介绍了用Java来编写网络应用程序的技术。本书的范例都基于最新的JDK 1.5版本,书中内容包括:Java网络编程的...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊