已知 int a[3][2]={3,2,1};则表达式"a[0][0]/a[0][1]/a[0][2]"的值是____。
A) 0.166667 B) 1 C) 0 D) 错误的表达式
C语言的问题?
答案:7 悬赏:70 手机版
解决时间 2021-07-30 10:27
- 提问者网友:难遇难求
- 2021-07-29 15:47
最佳答案
- 五星知识达人网友:野味小生
- 2021-07-29 16:28
答案是B。。多维数组的元素是线性存储的。所以在内存中a数组是存放在一片连续的内存空间里。元素的顺序为:a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] 。C语言对数组下标越界不作检查,所以a[0][2]是合法的。它相当于a[0][1]的下一个元素。而a[0][1]在内存中的下一个元素其实是a[1][0]。所以a[0][2]=a[1][0]=1 3/2/1,结果是1啦。。
全部回答
- 1楼网友:笑迎怀羞
- 2021-07-29 20:17
支持硝烟四起!
这明显是个错误的表达式。数组是3行2列,最大列号就是1,a[0][2]是不存在的。编译器没有报错是因为C语言不对数组的边界进行检测。
- 2楼网友:山君与见山
- 2021-07-29 20:07
答案是 B)1,解释如下:
a[3][2]是一个存储有整型数据类型的元素的二维数组,int a[3][2]={3,2,1} 是对该二维数组进行一次初始化,其结果是a[0][0]=3,a[0][1]=2,a[0][2]=1,a[1][0]=1,其他元素以0填补。因为是整型数据,所以a[0][0]/a[0][1]结果取整,实际上是1.5,取整结果为1,再除以a[0][2]还是为1。
- 3楼网友:一叶十三刺
- 2021-07-29 19:31
B。你可以看看c多维数组初始化的资料。
- 4楼网友:几近狂妄
- 2021-07-29 18:25
选D,因为a[3][2]中没有a[0][2] 最大有到a[0][1],最小有到a[0][0]。
- 5楼网友:撞了怀
- 2021-07-29 18:00
选择B
- 6楼网友:大漠
- 2021-07-29 17:17
在内存中,多维数组是按一维数组存储的。
a[0][2]相当于a[1][0]是1.
也就是3/2/1的值了,结果是1。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯