c语言1<4 4<7,C语言程序设计教程教案7第1讲(4页)-原创力文档

江西理工大学信息工程学院教案

C语言程序设计(A)

课程名称:C语言程序设计(A)     教学内容:数组

教材章节: 第7章       授课学时:共2学时?

教学目的:

掌握数组的定义、初始化和数组元素的引用

掌握数组下标越界问题

掌握数组的应用,学会利用数组处理数据的能力

掌握查找、排序数组

具备较好的批量数据处理能力和编程应用能力

教学内容(7.1-7.4节):              是否重、难点

一维数组的定义和引用、初始化 掌握 重点

二维数组的定义和引用、初始化 掌握 重点

字符数组的定义 掌握 重点

字符串与字符数组、常用的字符串处理函数 了解 难点

教学设计:

亚瑟·叔本华(德国哲学家)说:单个的人是软弱无力的,就像漂流的鲁滨逊一样,只有同别人在一起,他才能完成许多事业。通过名人名句引出使用数组的必要性。

这一讲的教学内容较多,如果面面俱到全部讲完,教学安排的时间肯定是不够的,因此,课堂上主要以讲解一维数组、二维数组的基本概念为主,应用主要放在经典算法的章节中进行消化。

一维数组

定义的一般格式:

类型说明符 数组名[数组长度];

接着以图的形式分析数组及数组元素。

例如:

int a[10];

表示定义了一个名为a的数组,数组大小为10。即a数组有10个元素,分别是a[0]、a[1]、a[2]、a[3]、a[4]、a[5]、a[6]、a[7]、a[8]、a[9]。每个元素的数据类型为整型数据,编译时系统会在内存中分配10个连续的整型数据存储单元给a数组,见图1所示。

图1 数组在内存中的存储形式

特别要强交待数组下标从0开始,下限为n-1。

下标越界带来的严重问题。

一维数组的初始化

全部赋值:int a[10]={1,2,3,4,5,6,7,8,9,10};

部分赋值:int a[10]={1,2,3,4,5};

特别注意:未赋值的元素默认为0。

未赋值三种情况:int a[10];

特别注意:未赋值的元素与未赋值的变量一样,其值为不确定的值。

2.二维数组

二维数组定义的一般格式:

类型说明符 数组名[第1维长度][第2维长度];

第1维长度:表示二维数组第1维的大小,即二维数组的行数;

第2维长度:表示二维数组第2维的大小,即二维数组的列数;

第1维长度、第2维长度都必须是常量表达式。

例如:

int a[3][4];

表示定义了一个整型数组a,表示有3行4列,共12个整型元素。

float b[4][5];

表示定义了一个单精度浮点型数组b,表示有4行5列,共20个浮点型元素。

C语言存储二维数组是按行存放的,即在内存中先顺序存放第一行的元素,再存放第二行的元素,依此类推。图2表示a[3][4]数组在内存中的存放顺序。

a[0][0]

a[0][1]

a[0][2]

a[0][3]

a[1][0]

a[1][1]

a[1][2]

a[1][3]

a[2][0]

a[2][1]

a[2][2]

a[2][4]

图2 二维数组存储示意图

二维数组的初始化

二维数组的初始化有以下四种形式:

按行完全初始化

int a[3][4]={ {1,2,3,4},{5,6,7,8},{9,10,11,12}};

在大括号中的每对大括号表示一行数据,每行数据按顺序赋值给对应的元素。

按行部分初始化

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

每对内大括号表示一行数据,根据一维数组初始化概念可知未赋值的元素默认为0。因此,第一行{1,2}表示a[0][0]的值为1,a[0][1]的值为2,a[0][2]和a[0][3]的值为0。其余行同理。

给全部元素初始化

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

像这种没有内大括号的初始化形式,系统会按行给每个元素赋初始值,则每个元素的值为:a[0][0]=1, a[0][1]=2, a[0][2]=3, a[0][3]=4, a[1][0]=5, a[1][1]=6, a[1][2]=7, a[1][3]=8, a[2][0]=9, a[2][1]=10, a[2][2]=0, a[2][3]=0。

省略第1维长度的初始化

int a[3][4]={ 1,2,3,4,5,6,7,8,9,10,11,12};

也可写成:

int a[][4]={ 1,2,3,4,5,6,7,8,9,10,11,12};

若给全部元素初始化时,二维数组的第1维的长度可省略,编

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值