C语言第七章(重点大学课件)

上传人:我*** 文档编号:145142552 上传时间:2020-09-16 格式:PPT 页数:24 大小:203KB
返回 下载 相关 举报
C语言第七章(重点大学课件)_第1页
第1页 / 共24页
C语言第七章(重点大学课件)_第2页
第2页 / 共24页
C语言第七章(重点大学课件)_第3页
第3页 / 共24页
C语言第七章(重点大学课件)_第4页
第4页 / 共24页
C语言第七章(重点大学课件)_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《C语言第七章(重点大学课件)》由会员分享,可在线阅读,更多相关《C语言第七章(重点大学课件)(24页珍藏版)》请在金锄头文库上搜索。

1、7.1 一维数组 一维数组的定义: 数据类型 数组名常量表达式 ; ;,第七章 数组,构造数据类型之一。 数组:有序数据的集合,用数组名标识。 元素:属同一数据类型,用数组名和下标确定。,合法标识符, :数组运算符。 不能用( ) 。,编译时分配连续内存,数组名表示内存首地址,是地址常量。,表示数组长度(包 含的元素个数),不 能包含变量。,例: int a6 ;,下标从0 开始。,! int i=15; int data i ; 不能用变量定义数组长度。,下标从0 开始。,一维数组的引用,数组元素的表示形式: 数组名下标,下标可以是整型常 量或整型表达式。,只能逐个引用数组元素,不能一次引用

2、整个数组。,例: a0、 a6 、 a2*2、 a i ,例: int a10; printf(“%d”,a10 ); 必须 : for( i=0; i10; i+ ) printf(“%10d”,a i ); ,例: int data5; data5=10; C 语言对数组不作越界检 查,使用时要 注意。,例: #include void main( ) int i, a10 ; for ( i=0; i=0; i - - ) printf (“%3d”,ai) ; ,一维数组的初始化,初始化的一般形式:,int a5= 1,2,3,4,5 ;,如: int a5=6,2,3; 等价于: a

3、0=6; a1=2; a2=3; a3=0; a4=0;,如: int a =1, 2, 3, 4, 5, 6 ; 编译系统根据初值个数确定数组长度。,在定义数组时,为数组元素赋初值。,若想使一个数组中全部元素为0 ,可以写成: int a10=0 ;,为全部数组元素赋初值时,可不指定数组长度。,可只给部分数组元素赋初值 。,说明: 若数组不初始化,其元素值为随机数。,一维数组程序举例,例1:输入10 个整数存入数组,找出其中最大值和最小值。,#include void main( ) int x10, i, max, min; printf(Enter 10 integers:n); for

4、( i=0; ix i ) min=x i ; printf(Max= %d ,Min= %d n,max,min); ,例2: 用起泡法对 10 个数排序(由小到大)。,冒泡法的排序思路: 1. 比较第一个数与第二个数,若 为逆序 a0a1,则交换;然后 比较第二个数与第三个数;依次 类推,直至第n-1个数和第 n个数 比较为止 (第一轮)。结果最大的 数被安置在最后一个元素的位置 上。 2. 对前n-1个数进行第二趟冒泡 排序,结果使次大的数被安置在 第 n-1个元素的位置(第二轮) 。 3.重复上述过程,共经过 n-1轮 冒泡排序后,排序结束。,#include void main( )

5、 int a11, i, j, t; printf(Input 10 numbers:n); for(i=1;iai+1) t=ai; ai=ai+1; ai+1=t; printf(The sorted numbers:n); for(i=1;i11;i+) printf(%d ,a i ); ,7.2 二维数组 二维数组的定义: 数据类型 数组名常量表达式常量表达式;,行 数,列 数,元素个数 = 行数*列数,例: int a34 ; float b25 ; int a 3,4 ; ,二维数组元素的形式: 数组名行下标列下标;,二维数组的元素在内存中的存放顺序是:按行连续存放。,如: in

6、t a32 ;,a00 a01 a10 a11 a20 a21,二维数组的理解技巧 可以把二维数组看成是一种特殊的一维数组:它的元素又是一个一维数组。,例: int a34 ;,a0 a1 a2,a00 a01 a02 a03,a10 a11 a12 a13,a20 a21 a22 a23,二维数组 a 是由 3 个元素组成。,每个元素a i 是包含4 个元素的一维数组。,二维数组的引用: 下标从0 开始。只可引用数组元素,不可引用整个数组。,二维数组的初始化,分行给二维数组赋初值。,按元素排列的顺序赋初值。,对部分元素赋初值。,赋初值时,第一维的长度可以省略,绝对不可省略列数。,二维数组程序

7、举例,例1:将二维数组的行列元素互换,存到另一个数组中。,#include void main( ) int a23=1,2,3,4,5,6; int b32, i, j; printf(array a:n); for(i=0;i=1;i+) for(j=0;j=2;j+) printf(%5d,aij); bji=aij; ,printf(n); printf(array b:n); for(i=0;i=2;i+) for(j=0;j=1;j+) printf(%5d,bij); printf(n); ,输出: array a : 1 2 3 4 5 6 array b : 1 4 2 5

8、3 6,例2:求二维数组中最大的元素值及其行列号。,#include void main( ) int a34= 1, 2, 3, 4, 9, 8, 7, 6, -10, 10, -5, 2 ; int i,j,hang=0, lie=0,max; max=a00; for(i=0;imax) max=aij; hang=i;,lie=j; printf(max=%d,hang=%d, lie=%dn,max,hang,lie); ,输出: max=10, hang=2, lie=1,7.2 7.3 仔细阅读第七章 7.1、7.2 节内容 7.6,作 业,字符数组的定义: 用来存放字符数据的数

9、组是字符数组。字符数组中的 一个元素存放一个字符。 字符数组通常用来存放字符串。,字符数组的初始化,用字符串常量赋值。,逐个字符赋值。,二维字符数组的初始化,7.3 字符数组,一维、二维、字符数组的课间练习,float weight10.3 ;,int array-100 ;,int a5 ; a= 2,4,6,8,10 ;,float f2 = 1.2 , 2.2 ;,int a23= 5,6, 7,8 ; int a23= 5,6,7,8 ;,char str =“Hello”; char str =H,e,l,l,o;,字符数组的输入输出,printf( )、 scanf( ) 函数 1

10、、逐个字符输入输出:%c,例: #include void main( ) char str5 ; int i ; for(i=0;i5;i+) scanf(%c, ,2、整个字符串输入输出:%s,注意: 用“%s”输出时,遇0结束。,数组中有多个0时,遇第一个结束。,例:#include void main() char a =h,e,l,0,l,o,0; printf(%s,a); 输出:hel,scanf 中用%s 输入时,遇空格或回车结束。,例:#include void main() char a15, b5, c5 ; scanf(%s%s%s,a,b,c); printf(a=%

11、snb=%snc=%sn,a, b, c ); ,puts( ) 函数 格式:puts (字符数组) 功能:向显示器输出字符串(输出完换行)。,说明: 字符数组必须以0结束。 puts( )自动将0转成n,实现换行。 使用puts( )必须包含头文件 stdio.h 。,gets( ) 函数 格式:gets (字符数组) 功能:从键盘输入一个以回车结束的字符串放入 字符数组中,并自动加0。,说明: 输入串长度应小于字符数组长度。 gets( ) 只以回车作为输入结束的标志。 使用gets( )必须包含头文件 stdio.h 。,常用字符串处理函数,字符串连接函数 strcat( ) 。 格式:

12、 strcat (字符数组1,字符数组2) 功能:把字符数组 2 连到字符数组 1 后面。 返值:返回字符数组1的首地址。,说明: 字符数组1必须足够大,字符数组2 也可是字符串。 连接前,两串均以0结束;连接后,串1的0 取消,新串最后加0。 使用strcat( )必须包含头文件 string.h 。,例: #include #include void main( ) char str10 =abcd; strcat(str,efgh); puts(str); 输出:abcdefgh,字符串拷贝函数 strcpy( ) 。 格式: strcpy (字符数组1,字符串2) 功能:把字符串 2

13、拷贝到字符数组 1 中去。 返值:返回字符数组1的首地址。,说明: 字符数组1必须足够大,字符串2 也可是字符数组。 拷贝时0一同拷贝。 使用strcpy( )必须包含头文件 string.h 。 不能使用赋值语句为一个字符数组赋值。,例: char str120, str220 = “Hello!”; str1=“Hello!”; str1=str2; - char str120, str220 = “Hello!”; strcpy(str1,str2); ,/* strcpy、strcat 应用举例*/ #include #include void main( ) char destina

14、tion25; char blank = , c = C+, turbo = Turbo; strcpy(destination, turbo); strcat(destination, blank); strcat(destination, c); printf(%sn, destination); 输出: Turbo C+,字符串比较函数 strcmp( ) 。 格式: strcmp (字符串1,字符串2) 功能:比较两个字符串。 返值:返回 int 型整数。 a. 若字符串1 字符串2, 返回正整数。 c. 若字符串1= 字符串2, 返回零。,说明: 字符串比较不能用关系运算符,必须用s

15、trcmp 。 使用strcmp( )必须包含头文件 string.h 。,例: if( str1=str2) printf(“yes”) ; - if( strcmp(str1,str2)=0) printf(“yes”) ; ,求字符串长度函数 strlen( ) 。 格式: strlen (字符数组) 功能:计算字符串长度。 返值:返回字符串实际长度。,说明: 返回的是字符串的实际长度,不包括0。 “字符数组”也可以是字符串。 使用strlen( ) 必须包含头文件 string.h 。,例: char str10=“China”; printf( “%dn”, strlen( str ); 输出:5,输出: How are you?Hello! Len1=6, Len

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号