论文分类>>论文库首页 | MBA论文 | MPA论文 | 教育硕士论文 | 法律硕士论文 | 工程硕士论文
 
当前位置:主页 > 硕士论文库 > 工程硕士 > 生物医学工程 > 文章内容

论《C语言程序设计》中的数组
关键字:程序设计,语言,GH,KL,EF,CD,yz,AB,MN,O 发布时间:2011-08-21

福建电脑 2010年第7期 论《C语言程序设计》中的数组 武丽娟 (长治医学院计算机中心山西长治046000) 【摘要】:数组作为.C语言中构造数据类型的一种,是c语言中比较复杂的数据类型之一。文章通过介绍数组、数组变 量的概念以及数组类型,结合具体实例分析,以便于掌握数组的使用方法。 【关键词】:C语言;数组;下标; 1、数组的概念 程序设计中.为了处理方便,把具有相同类型的若干变量按 有序的形式组织起来.这些有序排列的同类数据元素的集合称 为数组。数组中的每一个元素都属于同一个数据类型。用一个统 一的数组名或下标来唯一地确定数组中的元素。在C语言中.数 组属于构造数据类型。一个数组可以分解为多个数组元素.这些 数组元素可以是基本数据类型或是构造类型。因此按数组元素 的类型不同.数组又可分为数值数组、字符数组、指针数组、结构 数组等各种类别。 2、数组类型 2.1一维数组 2.1.1一维数组的定义 一维数组的定义形式: 类型说明符数组名【常量表达式】; 类型说明符是任意一种基本数据类型或构造数据类型。 数组名是用户定义的数组标识符。 方括号中的常量表达式表示数据元素的个数.也称为数组 的长度.可以是整型常量或整型表达式。 例如:intn[51; 这条语句定义了一个具有5个整型元素的名为11数组。这 些整数在内存中是连续存储的。 2.1.2一维数组的初始化 给数组赋值的方法除了用赋值语句对数组元素逐个赋值 外.还可采用初始化赋值和动态赋值的方法。 数组初始化赋值是指在数组说明时给数组元素赋予初值。 数组初始化是在编译阶段进行的。这样将减少运行时间,提高效 率。 例如:intarray[5]=[1,2,3,4,5l; 还有一部分情况是在程序执行过程中。对数组作动态赋值。 例如:mainO I inta【5】,n; for(n=O;n<5;n十卜1 fa[n】=Il; Primf(”%5d”,a[nD;l } 2.2二维数组 2.2.1二维数组的定义 二维数组一般形式是: 类型说明符数组名【常量表达式l】[常量表达式2】; 其中常量表达式1表示第一维下标的长度.常量表达式2 表示第二维下标的长度。C语言对二维数组采用的定义方式.使 我们可以把二维数组看作是一种特殊的一维数组.它的元素又 是一个一维数组。 例如: inta【3】【4】;说明了一个三行四列的数组,数组名为a,其下 标变量的类型为整型。该数组的下标变量共有3x4个,即: a[01[01,a【0】【1】,a【0】【2】,a【0】【3】 a【lⅡ0】,a【1】[1】,a[1][21,aO][3】 a【2】【0】,af2】【1】,a【2】【2】,a【2】【3】 在c语言中.二维数组中元素是按行排列的,即在内存中先 顺序存放第一行的元素,再存放第二行的元素。 2.2.2二维数组的初始化 二维数组初始化也是在类型说明时给各下标变量赋以初 值。二维数组可按行分段赋值。也可按行连续赋值。例如对数 组a【5】【3】: 11按行分段赋值可写为: inta【5】[3】=180,75,92},{61,65,711,{59,63,70},185,87,9HD},{76, 77,85}l; ∞按行连续赋值可写为: Inta【5】【3】={80,75,92,61,65.71,59,63,70,85,87,90,76,77,85l; 这两种赋初值的结果是完全相同的。 和一维数组一样。二维数组也可作动态赋值.它常常和二重 循环联系在一起。 例如: main0 {i11ti,j,n【3]【4】; for(i=0;i<3;i++) for(j==o.j<4;j++) {scanf(”%d”,&a【i】U】); prinff(”%5d",4i]Ij9;) l 2.3字符数组 2.3.1字符数组的定义 用来存放字符数据的数组就是字符数组。在c语言中没有 专门的字符串变量.通常就是用一个字符数组来存放一个字符 串。字符数组中一个元素存放一个字符。字符数组的定义形式和 数值数组类似。 2.3.2字符数组的初始化 字符数组可以在定义之后用赋值语句加以赋值。 例如:chara【5】; 401=、F; 41}=、h-; a[2】-、r; a[3】=、一; a【4卜、矿; 由于字符型与整型是互相通用的.故上面的定义也可以可 写为:inta【5】;但这时每个数组元素占2个字节的内存单元。 字符数组也允许在类型说明时作初始化赋值。 例如:charc[10】=f、c、f、f矿,、r,矿,g-,r,‘旷,、m、l; C语言允许用字符串的方式对数组作初始化赋值。例如: charc口={乞,7,■0,’,o,,,gj,rj,aj,m,1.可写为: charc口=f¨Cprogram”l;或去掉fj写为: charcO=”Cprogram”: 用字符串方式赋值比用字符逐个赋值要多占一个字节。用 于存放字符串结束标志∞’。 除了上述用字符串赋初值的办法外,还可用prinff函数和 万方数据 换页 2010年第7期福建电脑 205 seanf函数一次性输出输入一个字符数组中的字符串.而不必使 用循环语句逐个地输入输出每个字符。 voidmin0 I charcrl=”cprogram’’: printf(”%g\Il”,c); l 注意在本例的prinff函数中,使用的格式字符串为”%s”,表 示输出的是一个字符串。而在输出表列中只给出数组名即可。 不能写为:prill坂”%s”,cD。 2.4指针数组 2.4.1指针数组的定义 一个数组,其元素均为指针类型数据,称为指针数组。也就 是说,指针数组中的每一个元素相当于一个指针变量。 指针数组的定义格式为: 类型名+数组名【数组长度】; 例如:float+pf31; 因为下标运算符口的优先级高于指针运算符?,因此P先与 [3]结合,形成“3】形式,这显然是数组形式,"fit3个元素。然后 再与P前面的n利结合,”剃表示此数组是指针类型的.每个数组 元素(相当于一个指针变量)都可指向一个float变量。上述定义 等价于:float+(p[3】); 说明P是一个含有3个元素的数组.数组元素为指向float 型变量的指针变量。 又如: int*pnf51;严定义一个5个元素的指针数组,数组元素为 指向int型变量的指针变量}, 2.4.2指针数组引用 不论指针数组是什么类型.指针数组的每个数组元素都用 来保存一个地址值.在TurboC下,每个数组元素是一个an. signedint型变量.占用2个字节。 指针数组定义后.可以使数组元素指向一个变量和其他数 组的首地址。下面是一个指针数组定义和引用的例子。 mainO { inti; charcl口=”How”; charc2口=”are”; char+c3=”you”: char*pArray[3]; pArray[0]=cl; pArray[1]=c2; pAxray[2]=c3; f0坪卸;i<3;i++) pnntfj(“%s”.pArray[i]); l 程序运行的结果为: How areyou 说明: (1)程序中cl,c2被定义为字符数组并初始化;c3是一个指 针变量.指向字符串所在字符数组的首地址。 (2)语句char*pArray[3];fi!Y-了三个元素的指针数组pAr- ray.数组元素是指向char型变量或数组的指针变量。 (3)语句pA瓶y【0】=c1;将字符数组cl的首地址赋给pArray 『01,指针变量pArray[O]指向了c1的首地址。 (4)for循环中,语句pfinff(”%s”,pArray[i]);依次打印了三个 字符数组的内容。比如,pA眦y【o】里存放了cl的首地址,pfinff (”%s”,pArray[0])和prinff(”%s”,c1)的作用是相同的。 3.小结 3.1数组是程序设计中最常用的数据结构。要掌握数据的定 义方式。 3.2数组的赋值常采用初始化赋值和赋值语句方式赋值。在 用赋值语句赋值时,不能整体赋值,而必须采用循环语句法。 参考文献: 1.谭浩强《c语言程序设计》清华大学出版社【M】,2002 2.谢乐军《c语言程序设计及应用>冶金工业出版社【M】,2009 ?+?+-+-+-+-+-+—+-+-?●一—+-+?+-+-+?—+一-—●一-—+——+—+一?●-??卜——卜—+-+-—●一-+-—●一?+?+-+-+—+—。。+一一‘P—‘_一-’●’‘—卜-+-+-+。‘●。。’●‘-。‘+一。+-+?+? (上接第210页) 整个教学过程中选择一个可行的综合性的工作项目.提取典型 性工作任务.将工作任务合理有序化后.对每一项工作任务分析 所涉及的相关知识、技能和职业素质,设计系列学习情境;针对 每一种学习情境以项目为导向.以任务为驱动,逐级深化,层层 包含.构成一个由浅入深的知识学习与技能训练有机结合的体 系。 根据本门课程的特点和学生的实际情况.在整个课程教学 中,以开发学生们比较熟悉的”教学成绩管理系统”项目为主线。 以完成项目开发的典型工作任务的过程作为教学活动的中心. 由浅入深.由简单到复杂.从枯燥的理论教学转变为直观的实践 操作.既提高了学生的学习兴趣。又培养了本课程所要求的职业 能力。 2.2案例教学法 在每次课堂教学中.又以项目的一个实例的层层推进来驱 动课堂教学的开展。通过采用案例教学,讲解与任务相似的案 例.使学生掌握完成任务所需的知识和技能。从而实现知识点的 有效过渡和深化。 2.3启发引导和分组协作 整个课堂教学内容围绕”教学成绩管理系统”的项目开发展 开.而在课堂教学的同时,为了进一步提高学生的实践能力。在 实验课时,将学生分组同步开发”图书管理信息系统”。每个小组 大致4-5人,学习小组的形成以教师组织和学生自发组织相结 合.小组内部成员分工协作,遇到问题时相互讨论彼此合作,主 动积极地参与开发任务的完成.从中既可以建构出自己对学习 内容的系统知识.又能够完成整个小组的共同目标。不同组之问 可以相互比较效果。得出最佳方法,互相学习,取长补短。这样, 不仅增强了学生学习的兴趣.还提高了他们与他人合作的能力。 老师主要在下面巡查指导.如发现共性问题时。进行启发引导学 生找出解决问题的方法。 3.结束语: 笔者在近二届学生《数据库原理与应用》课程教学中,基于 项目开发的实际工作过程调整教学内容后.将项目导向、任务驱 动和案例教学法应用到教学设计中,并结合课程的特点,对该教 学方法进行了不断的改进和具体化,实践证明,教学效果显著。 参考文献: 【1】1赵彦.高职SQLServer2000课程教学改革的探索田.软件导刊,2009 (第8卷第1期). 【2】2池瑞楠.高职<大型数据库)课程的教学设计及实或探索Ⅱ】.职业教育 研究,2007(g03期) 【3l程录度,王志立.陆骥.任务驱动法在<大型数据库)课程教学中的应 用探索D】.高教论坛.2009(g六期). 万方数据 换页

上一篇:补虚平喘膏穴位敷贴对COPD患者细胞免疫和BODE评分指数的影响   下一篇:没有了
:::: 支付方式 ::::
:::: 服务热线 ::::
(周一至周五8:30-17:30)
(周六至周日9:00-18:00)
服务电话:020-61131011
020-61131022 转82
传真:020-61131022
电子邮件:paper@126.com
paperease@vip.163.com
服务QQ:130009919
130008818
:::: 热点文章 ::::
:::: 相关文章 ::::

· MBA
· MPA
 · 教育硕士
· 法律硕士
· 工程硕士

服务电话:020-61131011;020-61131022 转82 投诉电话:020-61131011;020-61131022 转88 传真:020-61131022
电子邮件:paperease@vip.163.com paper@126.com 服务QQ:130008818 130009919 (工作时间:周一至周五8:30-20:30 周六至周日9:00-18:00)
© 2002-2004 轻松论文网  网络实名:轻松论文
SiteMap