数组习题讲解3

以下程序运行后,输出结果是( )

main()
{
  int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
  printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
  }
  1. 0650
  2. 5430
  3. 输出值不定
  4. 1470

以上程序可以贴进去直接运行,程序运行还不会操作的 看这里

这是一道数组基本知识题,这是一个4行4列的数组,定义的并赋初值。数组下标从0开始,即第一行第一个元素是a[0][0],第四行第四个是a[3][3]

赋初值的时候,大括号{}里面又有3对{},对应3行,还有一行没写出来默认都是0 。每行是4个,但是 {}里面不够4个,后面缺的也是0 。相当于:

int a[4][4]={  {1,3,5,0},
               {2,4,6,0},
               {3,5,7,0},
               {0,0,0,0}    };

延伸:

如果定义数组时候行数没有写,int a[][4]={{1,3,5},{2,4,6},{3,5,7}}; 那 {} 里面有3对{},对应3行,

这个数组相当于 int a[3][4] = { {1,3,5,,0}, {2,4,6,0}, {3,5,7,0} };

我们也会经常遇到这样的情况:int a[][3]={1,3,5,2,4,6,3,5,7}; 我们知道{}里面有9个数,每行3列,刚好是3行。如果{} 有10个数呢,11个数呢?

2017年上海市二级C语言就考了这样一道题目:

设有定义:int a[][3]={1,2,3,4,5,6,7,8,9,10}; 则数组a第一维的大小是:(______)

A.3

B.4

C.5

D.有语法错误,不能确定

题目很简单,3行放不下就4行,5行就多一行浪费了。很多同学以前看到的都是恰好整除算出来行数,看到这样的就一愣,要犹豫一下。4行够用恰好,缺的2个元素默认是0 。

如果是char类型的数组,没写的默认值是 '\0' (ASCII表上第一个,编号为0)。

如char a[6] = {'1','3','5',' ','0'};

相当于char a[6] = {'1','3','5',' ','0','\0'};

也相当于char a[6] = {"135 0"};或者char a[] = {"135 0"};

char a[7] = {'1','3','5',' ','0'}; 和上面几个就不等价了,因为这个后是2个 '\0',长度不一样。

本文分享自微信公众号 - 计算机二级C语言(gh_044a0595bf44),作者:计算机二级C语言

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C语言:数组

    C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。

    用户6755376
  • C语言:数组与指针

    比如有数组 int a[10]; 里面10个元素分别是 a[0]、a[1]、a[2]......a[9]。

    用户6755376
  • C语言:多维数组

    多维数组最简单的形式是二维数组。一个二维数组,在本质上,是一个一维数组的列表。声明一个 x 行 y 列的二维整型数组,形式如下:

    用户6755376
  • 【剑指offer】数组中重复的数字

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    喜欢ctrl的cxk
  • jQuery text() html() val()设置内容和attr()设置属性的用法

    下面的例子演示如何通过 text()、html() 以及 val() 方法来设置内容:

    德顺
  • jQuery的使用

    1.需求分析 在首页中(logo的上方)显示一个广告图片(页面加载后,间隔3秒弹出广告图片,再间隔3秒后隐藏广告图片)。【使用jQuery实现】

    用户5927264
  • 资深程序员的敏捷开发实践总结

    敏捷开发它是一种指导思想或开发方式,但是它没有明确告诉我们到底采用什么样的流程进行开发,而Scrum和XP就是敏捷开发的具体方式了,你可以采用Scrum方式也可...

    用户5224393
  • 敏捷开发实践总结

    敏捷开发它是一种指导思想或开发方式,但是它没有明确告诉我们到底采用什么样的流程进行开发,而Scrum和XP就是敏捷开发的具体方式了,你可以采用Scrum方式也可...

    PhoenixZheng
  • Django+Bootstrap+Mysql 搭建个人博客 (六)

    zhang_derek
  • JQuery的学习

    silentcow

扫码关注云+社区

领取腾讯云代金券