资源预览内容
第1页 / 共35页
第2页 / 共35页
第3页 / 共35页
第4页 / 共35页
第5页 / 共35页
第6页 / 共35页
第7页 / 共35页
第8页 / 共35页
第9页 / 共35页
第10页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C程序设计谭浩强 著 清华大学出版社第七章 数组l 一维数组的定义和引用 l 二维数组的定义和引用 l 字符数组 C程序设计 第七章 数组7.1 一维数组的定义和引用 C程序设计 第七章 数组n 一维数组的定义n 一维数组元素的引用n 一维数组的初始化n 一维数组程序举例返回主菜单C程序设计 第七章 数组 7.2 二维数组的定义和引用 n 二维数组的定义n 二维数组的引用n 二维数组的初始化n 二维数组程序举例返回主菜单7.3 字符数组 C程序设计 第七章 数组n 字符数组的定义n 字符数组的初始化n 字符数组的引用n 字符和字符串结束标志n 字符数组的输入输出n 字符串处理函数n 字符数组应用举例返回主菜单C程序设计 第七章 数组 7.1.1 一维数组的定义 类型说明符 数组名 常量表达式; 定义:任一种基本数据类型 或构造数据类型 数据元素的个数 用户定义的数组标识符 例如 :int a10; 说明整型数组a,有10个元素。 float b10; 说明实型数组b,有10个元素。 char ch20; 说明字符数组ch,有20个元素。 说明一维数组定义的几点说明1)数组的类型实际上是指数组元素的取值类型。 2)数组名的书写规则应符合标识符的书写规定。3)数组名不能与其它变量名相同。例如:main ( ) int a;float a10;4)数组元素的 下标从0开始。a5的5个元素分别为 a0, a1, a2, a3, a4。 5)不能在方括号中用变量来表示元素的个数, 但是可以是符号常数或常量表达式。int a3+2 ;int n=5; int an; 6)允许在同一个类型说明中,说明多个数组和多个变量 。例如:int a,b,c,d,k110,k220; 7.1.2 一维数组元素的引用 C程序设计 第七章 数组数组元素的一般形式为 数组名下标 下标可以为整型常量或整型表达式 , 例如 a0=a5+a7-a2*3例7.1例7.1 数组元素的引用main() int i,a10;for(i=0;i=0;i-)printf(“%d “,ai); 运行程序运行结果:9 8 7 6 5 4 3 2 1 0C程序设计 第七章 数组C程序设计 第七章 数组 7.1.3 一维数组的初始化初始化赋值的一般形式为 类型说明符 数组名常量表达式=值,值,值; 几点规定:1)可以只给部分元素赋初值。2)只能给元素逐个赋值,不能给数组整体赋值。3)如给全部元素赋值,则在数组说明中可以不给出 数组元素的个数。例如:int a10=0,1,2,3,4; 例如给十个元素全部赋1值 ,只能写为: int a10=1,1,1,1,1,1,1,1,1,1; 而不能写为:int a10=1;例如:int a5=1,2,3,4,5;可 写为:int a=1,2,3,4,5;C程序设计 第七章 数组 7.1.4 一维数组程序举例例7.3例7.2例7.2 用数组来处理求Fibonacci数列问题main() int i;int f20=1,1;for(i=2;iai+1)t=ai;ai=i+1;ai+1=t;printf(“the sorted numbers :n“);for(i=1;iint a4=1,2,3,4,5,6,7,8,9,10,11,12;例如:int a33=1,2,3; 是对每一行的第一列元素赋值,未赋值的元素 取0值。 赋值后各元素的值为: 1 0 02 0 03 0 0 C程序设计 第七章 数组 7.2.4 二维数组程序举例例7.4例7.5例7.4 将一个二维数组行和列元素互换,存到另一个二维数组中。 main() static int a23=1,2,3,4,5,6;static int b32,i,j;printf(“array a : n“);for(i=0;imax)max=aij;row=i;colum=j;printf(“max=%d,row=%d,collum=%n“,max,row,colum) ;运行程序C程序设计 第七章 数组运行结果:max=10,row=2,colum=1C程序设计 第七章 数组 7.3.1 字符数组的定义类型说明符 数组名 常量表达式; 定义:例如:char c10; =int c10;C程序设计 第七章 数组 7.3.2 字符数组的初始化1)逐个字符赋给数组中各元素。2)如果花括号中提供的初值个数大于数组长度, 则语法错误;如果初值个数小于数组长度,只将这 些字符赋给数组中前面那些元素,其余为0。3)如果提供的初值个数与预定的数组长度相同, 在定义时可以省略各数组长度,系统会自动根据初 值个数确定数组长度。4)可以定义二维数组。例如:char c10=I, , a, m, , h, a, p, p, y例如:char c10=c, , p, r, o , g, r, a, m ;则 c0=c; c1= ; c2=p; c3=r; c4=o; c5=g; c6=r; c7=a; c8=m; c9=0; char c=c, , p, r, o , g, r, a, mchar diamond55= , , *, , *, , *,*, , , *, , *, , *, , , *;C程序设计 第七章 数组 7.3.3 字符数组的引用例7.6例7.7例7.6 输出一个字符串。main() char c10=I, ,a,m,a,b,o,y; int i ; for(i=0;i char c=I, , a, m, , h, a, p, p, y, 0;用字符串常量使字符 数组初始化C程序设计 第七章 数组 7.3.5 字符数组的输入输出1)逐个字符输入输出,用格式符%c输入或输出一个字符 。 2)将整个字符串一次输入输出,用%s格式符。3)如果数组长度大于字符串实际长度,只输出到遇0 结束。4)如果一个字符数组中包含一个以上0,则遇第一个 0时输出就结束。例如: char c=“China”;printf(“%s”,c);例如:char c10=“China” printf(“%s”,c 只输出“China”5个字符例如:char str13;scanf(“%s”,str); 如输入以下12个字符:How are you? 则str数组状态为How0000000000字符串拷贝函数,将字符串2拷贝到字 符数组1中。char str110,str2=“China”;strcpy(str1,str2);C程序设计 第七章 数组 7.3.6 字符串处理函数puts(字符数组)gets(字符数组)strcpy(字符数组1,字符串2)例如: char str=“Chinan Beijing”;puts(str);输出结果为ChinaBeijing例如:gets(str) 从键盘输入:Computer 则将“Computer”送给字符数组str连接两个字符数组中的字符串,把字符串2接到字 符串1的后面,结果放在字符数组1中,函数调用后得 到一个函数值-字符数组1的地址.char str130=“Peoples Republic of ”;char str2=“China”;printf(“%s”,strcat(str1,str2);输出: Peoples Republic of ChinaC程序设计 第七章 数组 7.3.6 字符串处理函数strcat(字符数组1,字符数组2)字符串拷贝函数,将字符串2拷贝到字 符数组1中。char str110,str2=“China”;strcpy(str1,str2);对两个字符串自左到右逐个字符比较(按ASCII码大小比较 ),直到出现不同的字符或遇0为止比较结果: 串1=串2 函数值为
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号