- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
语言第7数组
? strcat() 函数 ? strcpy() 函数 ? strcmp() 函数 ? strlen() 函数 练习: ?练习一:找错误。 ?练习二:写出程序的输出。 7.4.5 字符串数组举例 例:字符串输入。 程序如下: #include stdio.h main( ) { char s[20],s1[20]; scanf(“%s”,s); printf(“%s \n”,s); scanf(“%s%s”,s,s1); /*从键盘上输入字符串,将How给s,将do给sl*/ printf(“s=%s,sl=%s”,s,s1); puts(“\n”); gets(s); puts(s); } 程序运行结果: How do you do? ↙ How How do you do? ↙ S=How,S1=do How do you do? ↙ How do you do? 例中使用了scanf( )与gets( )两个函数来实现字符串的输入,要注意它们的差别,根据需要来选用。 例:从键盘上输入两个字符串,若不相等,将短的字符串连接到长的字符串的末尾并输出。 #include stdio.h #include string.h main( ) { char s1[80],s2[80]; gets(s1); gets(s2); if (strcmp(s1,s2)!=0) if (strlen(s1)strlen(s2)) { strcat(s1,s2); puts(s1); } else { strcat(s2,s1); puts(s2); } } 输入:you ↙ Thank ↙ 输出:Thank you §7.5 数组作为函数的参数 7.5.1 数组元素做函数实参 数组元素作函数的参数与一般变量作函数参数相同,要注意的是,数组元素作参数时候,值的传递方式仍是单向的值传递。 由于这方面在函数一章讲述较多,这里重点讲第二节。 7.5.2 将数组名作函数参数 此时形参与实参都应使用数组名,分别在被调函数与主调函数中说明数组类型,并且要求实参与形参数组的类型相同,维数相同。在进行参数传递时是“地址传递”,即实参数组的首地址传给形参数组,而不是将实参数组的每个元素一一送给形参的各数组元素。 思路: 把相邻两数比较,若前面数大,则两数交换位置,直至最后一个元素被处理,最大的元素就“沉”到最下面,即在最后一个元素位置。这样,如有n个元素,共进行n-1轮,每轮让剩余元素中最大的元素“沉”到下面,从而完成排序。 程序如下: 下面给出一个程序设计中的经典例子。 例:用冒泡法将10个数按由小到大排序。 * 第七章 数组 前面所用到的数据均为基本类型(整、实、字符),为了丰富数据类型 ,须提供强有力的数据表达方式。C语言提供了一种构造类型数据–––由基本类型按某一规则组合在一起。 其中数组:同一种(基本)类型按一定顺序组合在一起的数据类型。 §7.1 一维数组 7.1.1 一维数组的定义 1. 数组名的确定方法同变量名。 2. C语言用方括号[ ]表示数组元数个数。 形式: 类型说明符 数组名[常量表达式]; 例: int a [20]; float x [100]; 3. 常量表达式为常量和符号常量。不允许有变量,其表达式的值代表了元素的个数。 例: int a[20]; 表示有20个元素 且元素从0开始编排:a[0],a[1]…,a [19] 4. 可在定义时对静态数组和外部存储(全局)数组赋初值, 方法如下: ? 对部分元素赋初值 static int a[10]={0,1,2,3,4}; 静态 ? 对全部元素赋初值 static int a[10]={10, 11, 12, 13, 14, 15, 16, 17, 18, 19,} 如此,只有前5个元素初值确定,后5个元素由系统设置(一般缺省初始化为0)。 ? 如对数组元素赋同一初值,必须一一写出: static int a[10]={0,0,0,0,0,0,0,0,0,0}; 不可写成: static int a[{10*0}]; 7.1.2 一维数组的引用 2. 引用方式: 数组名[下标] 代表了一个元素,等价一个同类型的变量。 3. 一般地,一维数组各元素分配在连续地内存单元之中。 1. 须象使用变量那样,先定义,后使用 例: a [0]?5+a[1] ?
文档评论(0)