C语言,求过程。

10.有以下程序  main()  {int i,t[][3]={9,8,7,6,5,4,3,2,1};for(i=0;... 10.有以下程序
  main()
  {int i,t[][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<3;i++) printf("%d",t[2-i][i]);
}
程序执行后的输出结果是( )。
(A)7 5 3 (B)3 5 7 (C)3 6 9 (D)7 5 1
展开
 我来答
DavidCai0316
2020-03-13 · TA获得超过974个赞
知道小有建树答主
回答量:311
采纳率:85%
帮助的人:107万
展开全部

答案选B,你给的代码在输出语句中并没有输出空格,而答案每个选项的相邻两个数之间都用一个空格隔开,所以应该在输出的地方补上一个空格。

分析:

  1. 这题考查对二维数组的理解。

  2. 声明一个二维数组时,如果给出了初始化列表,那么第一维的 [] 括号中的数字可以忽略不写,由编译器来计算初始化列表值的个数来完成。但第二维的 [] 括号中的数字不能忽略。例如这题二维数组的初始化列表值共有 9 个值,第二维是 3,那么编译器就会用 9 除以 3 来计算第一维数字的值。所以相当于 int t[3][3]。

  3. 二维数组跟一维数组一样,第一维和第二维的下标也是从 0 开始。

  4. 二维数组相当于一个二维矩阵。所以 t[3][3] 的结果如下:

    a[0][0] = 9        a[0][1] = 8        a[0][2] = 7

    a[1][0] = 6        a[1][1] = 5        a[1][2] = 4

    a[2][0] = 3        a[2][1] = 2        a[2][2] = 1

  5. 此时有了以上的概念,再看循环,主要是算出每次循环 i 的值,从而得出第一维和第二维的值,这样就能得到最终结果。

运算过程:

  1. i = 0,i < 3 为真,执行 printf 输出,那么 t[2-i][i] 相当于 t[2][0],t[2][0] 的值为 3。

  2. i = 1,i < 3 为真,执行 printf 输出,那么 t[2-i][i] 相当于 t[1][1],t[1][1] 的值为 5。

  3. i = 2,i < 3 为真,执行 printf 输出,那么 t[2-i][i] 相当于 t[0][2],t[1][1] 的值为 7。

  4. i = 3,i < 3 为假,退出循环。

测试结果

考骄70
科技发烧友

2020-03-13 · 智能家居/数码/手机/智能家电产品都懂点
知道小有建树答主
回答量:1096
采纳率:58%
帮助的人:66.9万
展开全部
赋值后t
987
654
321
要输出,31/22/13,对应值753
A选项
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式