C语言 数组 课件_第1页
C语言 数组 课件_第2页
C语言 数组 课件_第3页
C语言 数组 课件_第4页
C语言 数组 课件_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 第六章第六章 数数 组组 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 6.1 6.1 一维数组一维数组 6.2 6.2 二维数组二维数组 6.3 6.3 字符数组字符数组 6.4 6.4 本章小结本章小结 本章内容本章内容 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 数据类型数据类型 基本数据类型基本数据类型 构造数据类型构造数据类型 int float char string int short

2、 int long int 数组 指针 结构体 共用体 double 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 当变量个数少,且彼此独立时,采用变量先定义,后当变量个数少,且彼此独立时,采用变量先定义,后 赋值,再使用。如:赋值,再使用。如:int a,b,c ; a = 5; b=10;c=23; printf(“%d,%d,%d”,a,b,c); 当变量个数比较多,并且有内在的关系时,例如当变量个数比较多,并且有内在的关系时,例如 :全:全 班有班有3030个人,每人一个成绩个人,每人一个成绩 如:如:int int c c1,1,c

3、c2,2,,c c30 30 (可以利用数组可以利用数组) 数组是怎么构成的?数组是怎么构成的? 一组有序数据的集合一组有序数据的集合,各个元素属于各个元素属于同一个类型同一个类型,用用统一的名称统一的名称 标识这一组数标识这一组数,用用下标唯一下标唯一地确定这组数中的每一个值,这就构成地确定这组数中的每一个值,这就构成 了了“数组数组”。 数组的基本概念数组的基本概念 :有限个:有限个相同数据类型相同数据类型的数据分量的有序集合。的数据分量的有序集合。 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 一一 、一维数组的定义、一维数组的定义 格式

4、:格式: 类型 类型 标识符标识符 长度长度 所有元素为所有元素为 同一类型同一类型 变量名,变量名, 即数组名即数组名 数组中所含数组中所含 元素的个数元素的个数 int a10;由由10个整数个整数 组成的数组,共同拥组成的数组,共同拥 有数组名有数组名 2、数组长度必须是、数组长度必须是整型量整型量 int a2*3 说明:说明: 1、用、用方括号方括号将数组的将数组的长度长度括起来括起来 3、数组长度也可以用、数组长度也可以用常量表达式常量表达式 4、不能对长度做、不能对长度做动态定义动态定义,或者,或者不定义长度不定义长度 如:如:int n;n=10; int an; 6 6.1

5、.1 一维数组的定义和使用一维数组的定义和使用 例如:例如:int a5;int a5; 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 数组的三要素:数组的三要素: (1)相同的数据类型()相同的数据类型(定义数组时规定定义数组时规定) (2)有限的成员个数)有限的成员个数 (定义数组时规定定义数组时规定) (3)彼此有序的排列)彼此有序的排列 (引用数组元素时的下标引用数组元素时的下标) int a5; a0=1;a1=2;a2=3;a3=4;a4=5; 6 6.1 .1 一维数组的定义和使用一维数组的定义和使用 第六章 数组 2010年4月

6、21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 数据类型数据类型 数组名数组名 常量表达式常量表达式 初始化数据;初始化数据;格式:格式: 1.定义数组时,对定义数组时,对全部元素全部元素赋值赋值 int a5=1,2,3,4,5; 2. 对对部分元素部分元素赋值赋值 float x5 = 1.9 ,2.0 ; x0=1.9;x1=2.0; 3.3.若要对数组的若要对数组的全部元素初始化全部元素初始化,则,则可省略可省略数组的数组的长度长度 int a = 1,2,3,4; 二、二、 一维数组的初始化一维数组的初始化 6 6.1 .1 一维数组的定义和使用一维数组的定义和使

7、用 用用 包括所有初值,包括所有初值, 用用逗号逗号分隔各数值分隔各数值,且初值的,且初值的 个数个数不能大于数组不能大于数组长度。长度。 按按顺序顺序给前给前2个元素赋值个元素赋值, 其余元素为均为其余元素为均为 0 数组数组长度长度=元素的元素的个数个数 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 三三 、一维数组元素的引用、一维数组元素的引用 1、数组必须先定义,后赋值,再使用、数组必须先定义,后赋值,再使用 2、数组中的元素必须、数组中的元素必须逐一引用逐一引用 3、通过通过数组名数组名及其元素的及其元素的下标下标引用引用 定义定义:

8、 类型类型 数组名数组名长度长度 如如: int a10 引用引用: 数组名数组名下标下标 a0,a1,a9为数组为数组a10中的所有元素中的所有元素 (1 1)下标下标表示了元素在数组中的位置表示了元素在数组中的位置 (2 2)下标下标可以用表达式可以用表达式 a2*3相当于相当于a6 说明说明 6 6.1 .1 一维数组的定义和使用一维数组的定义和使用 下标范围从下标范围从 0 0 到到长度长度-1-1 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 例例1:main() int i; int a10 = 1,2,3,4,5,6,7,8,9,

9、10; for(i=0;i10;i+) printf(%3d,ai); 运行结果:运行结果:1 2 3 4 5 6 7 8 9 10 6 6.1 .1 一维数组的定义和使用一维数组的定义和使用 int a10; for(i=0;i10;i+) scanf(%d, 通过数组名和下标,通过数组名和下标, 引用数组中的每一个元素引用数组中的每一个元素 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 例:有一个数组例:有一个数组, ,内有内有1010个元素个元素, ,求出最小的元素和它的求出最小的元素和它的 下标。下标。 713326 68 1 53 2

10、06512int a10 a0 a i a9 1.定义两个临时变量定义两个临时变量 min和和 k 2.假定第一个元素就是最小的假定第一个元素就是最小的,min=a0,k=0 3.用用min与数组中的与数组中的每一个每一个元素元素ai比较比较, 若若ai比比min小小, 将将ai 赋给赋给min, 同时同时将下标将下标i赋给赋给k, 否则否则,继续比较。继续比较。 6 6.1 .1 一维数组的定义和使用一维数组的定义和使用 分析:分析: 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 26 713326 68 1 53 206512 min=a0

11、 i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8 i=9 1326 min=a1 k=1 33 min和和k的值不变的值不变 133 203 min和和k的值不变的值不变 11 min和和k的值不变的值不变 1 for(i=0;i10;i+) scanf ( “%d”, min=a0;k=0; for(i=1;iai ) min=ai ; k=i ; printf(“%d,%d”,k,min); 循环输入循环输入10个数个数 循环找出最小的循环找出最小的 输出最小值和原始下标输出最小值和原始下标 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计

12、语言程序设计 例例 1. 将将6个实数由小到大排序。个实数由小到大排序。 5 8 9 4 7 2 5 8 9 4 7 21 5 8 9 4 7 22 5 8 9 4 7 23 4 8 9 5 7 24 4 8 9 5 7 2 5 第一轮结束:第一轮结束: 2 8 9 5 7 4 2 8 9 5 7 4 第一轮第一轮 2 4 9 8 7 5 第二轮第二轮 2 4 5 9 8 7 第三轮第三轮 2 4 5 7 9 8 第四轮第四轮 2 4 5 7 8 9 第五轮第五轮 结结 果:果:2 4 5 7 8 9 算法一:选择排序法算法一:选择排序法 选择排序思路选择排序思路:将数组中的每一个元素和其后面

13、所有的元素:将数组中的每一个元素和其后面所有的元素 进行比较,如果某一个元素小于该数,将互换位置。进行比较,如果某一个元素小于该数,将互换位置。 第一轮开始:第一轮开始: 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 #include main() int a6=5,8,9,4,7,2; int i,j,t; for(i=0;i5;i+) /i为比较的第几轮 for(j=i+1;jaj) t=ai;ai=aj;aj=t; for(i=0;i6;i+) /将比较后的记过输出来 printf(%5d,ai); 程序代码一:程序代码一: 第六章 数组

14、 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 #include main() int a6=5,8,9,4,7,2,i,j,t,k; /*k为数组的下标为数组的下标 */ for(i=0;i5;i+) /* i循环比较的轮数循环比较的轮数*/ k=i; for(j=i+1;jaj) k=j; /* 记下较小的元素的下标记下较小的元素的下标*/ t=ai; ai=ak; ak=t; /*每轮结束后交换每轮结束后交换*/ for (i=0;i6;i+) printf(a%d=%dn,i,ai); 程序代码二:程序代码二: 第六章 数组 2010年4月21日星期

15、三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 算法二:算法二: 冒泡排序冒泡排序 冒泡法的思路冒泡法的思路:将相邻两个数比较,如果相邻的两个值是升序排:将相邻两个数比较,如果相邻的两个值是升序排 列的,就保持原样,如果是降序排列的,就交换它们的值。(实列的,就保持原样,如果是降序排列的,就交换它们的值。(实 质:大的沉下去,小的浮上来)质:大的沉下去,小的浮上来) start: a0 a1 a2 a3 a4 a5 a6 a7 2 57 29 89 42 34 16 1 1 times:2 29 57 42 34 16 1 89 2 times: 2 29 42 34 16 1 57

16、 89 3 times: 2 29 34 16 1 42 57 89 4 times: 2 29 16 1 34 42 57 89 5 times: 2 16 1 29 34 42 57 89 6 times: 2 1 16 29 34 42 57 89 7 times: 1 2 16 29 34 42 57 89 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 main()() int a10=2,57,29,89,42,34,16,1; int pass , time , temp,xb; for( pass =1; pass 9; pass

17、 +) /* pass是循环比较的趟数是循环比较的趟数*/ for(time =0; time atime+1)/* 判断每相邻两个元素下标判断每相邻两个元素下标*/ temp =atime; atime=atime +1;atime +1=temp; for (xb=0; xb10; xb+) printf( “a%d=%d n”, xb, axb ); 程序代码一:程序代码一: 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 #include #define SIZE 8 main( ) int aSIZE=2,57,29,89,42,34,

18、16,1; int i, pass, hold; clrscr(); for(i=0;i=SIZE-1;i+) printf(%4d, ai); printf(n); for(pass=1;pass=SIZE-1;pass+) /*比较趟数*/ for(i=0;iai+1) hold=ai; ai=ai+1; ai+1=hold; for(i=0;i=SIZE-1;i+) printf(%4d,ai); 程序代码二:程序代码二: 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 6 6.2 .2 二维数组的定义和引用二维数组的定义和引用 当一个一维

19、数组中的每个元素本身又是一个一维数组当一个一维数组中的每个元素本身又是一个一维数组 时,该数组构成时,该数组构成“二维数组二维数组” 。 一、二维数组的定义一、二维数组的定义 格式:格式:类型类型 标识符标识符长度长度1长度长度2 如:如:int a44 a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23 a30 a31 a32 a33 a0 a1 a2 a3 一维数组一维数组a4 二维数组二维数组a44 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 说明:说明: 1. 二维数组元素需要二维数组元素需

20、要两个两个下标表示下标表示 例:例:int a44表示数组表示数组a中有中有4行行4列列共共16个数据个数据 2.二维数组在存储空间中是按二维数组在存储空间中是按行行优先存储优先存储 a00 a01 a02a23.a03 第一行第一行 a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23 a30 a31 a32 a33 6 6.2 .2 二维数组的定义和引用二维数组的定义和引用 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 二、二维数组的初始化二、二维数组的初始化 形式:形式:1、 对对全部元素全部元素

21、赋初值赋初值,分行,各用一个分行,各用一个 。 int a23=1,2,3,4,5,6; 2 整体赋值,系统自动分行整体赋值,系统自动分行 int a23=1,2,3,4,5,6;1,2,3 3 对部分元素赋初值,注意区别:对部分元素赋初值,注意区别: (1)int a23=1,2,3; (2) int a23=1,2,3; (3) int a23=0,1,2,3; 说明:当为全部元素赋值时,说明:当为全部元素赋值时,一维长度一维长度可省略可省略 如:int a 3=1,2,3,4,5,6; 6 6.2 .2 二维数组的定义和引用二维数组的定义和引用 第六章 数组 2010年4月21日星期三教

22、师:赵军富教师:赵军富 C 语言程序设计语言程序设计 三三 、二维数组的引用、二维数组的引用 原则原则 : 逐一引用逐一引用 说明:说明:1.数组名数组名下标下标1下标下标2 下标下标1 1从从0 0到长度到长度-1-1 下标下标2 2从从0 0到长度到长度-1-1 方法:方法:数组名数组名 N1N2 如:如:int a42 a00 a01 a10 a11 a20 a21 a30 a31 6 6.2 .2 二维数组的定义和引用二维数组的定义和引用 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 2、若定义、若定义int a34,则对则对a的正确引

23、用是:的正确引用是: A) a 2 4 B) a 1,3 C) a 1+1 0 D) a (2)(1) 1、以下二维数组说明方式中正确的是:、以下二维数组说明方式中正确的是: A) int a3 ; B) float a(3,4); C) double a14; D) float a(3)(4); 举例:举例: 6 6.2 .2 二维数组的定义和引用二维数组的定义和引用 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 例例1:1:已知已知5 5名学生的四门课程成绩,求每位学生的总成绩,名学生的四门课程成绩,求每位学生的总成绩, 并按二维表格式输出

24、。并按二维表格式输出。 姓名姓名语文语文数学数学外语外语政治政治 张三张三 91726344 李四李四 51627354 王五王五 91829384 赵六赵六 919210084 刘七刘七 61725344 程序代码见下页程序代码见下页 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 main() int a54=91,72,63,44,51,62,73,54,91,82,93,84, 91,92,100,84,61,72,53,44; int i,j,s5; for(i=0;i=4;i+) /* 给每个学生求总成绩给每个学生求总成绩*/ si=

25、0; for(j=0;j=3;j+) si=si+aij; for(i=0;i=4;i+) /* 输出各学生成绩二维表,并附带总成绩输出各学生成绩二维表,并附带总成绩*/ for(j=0;j=3;j+) printf(%4d ,aij); printf(%dn,si); 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 例例2 2、计算两个矩阵的乘积。计算两个矩阵的乘积。 main() int i,j,k; int a23=1,2,3,4,5,6, b34=1,2,3,4,5,6,7,8,9,10,11,12,c24=0; for(i=0;i2;i

26、+) for(j=0;j4;j+) for(k=0;k3;k+) cij+=aik*bkj; for(i=0;i2;i+) for(j=0;j4;j+) printf(%4d,cij); printf(n); Chengji.c 1 2 3 4 5 6 矩阵矩阵a= 矩阵矩阵b= 1 2 3 4 5 6 7 8 9 10 11 12 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 例例3. 3. 不用输入,自动生成下列矩阵不用输入,自动生成下列矩阵 1 2 3 4 5 1 1 6 7 8 1 1 1 9 10 1 1 1 1 11 1 1 1 1

27、 1 元素值为元素值为 1 按按 行行 递递 增增 mainmain( ) int i,j,a55;int i,j,a55; int int k=2;k=2; for(i=0;i5;i+)for(i=0;i5;i+) / /* * 按行循环按行循环 * */ / for(j=0;j5;j+)for(j=0;j=ji=j) aij=1; ) aij=1; / /* *下下三角三角 * */ / else else aij=k+;aij=k+; / /* *上上三角三角 * */ / for(i=0;i5;i+) for(i=0;i5;i+) for(j=0;j5;j+) for(j=0;j5;j

28、+) printf(“%4d”,aij); printf(“%4d”,aij); printf(“n”); printf(“n”); / /* * 输输出一行后换行出一行后换行 * */ / 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 1、用来存放字符数据的数组是、用来存放字符数据的数组是字符数组字符数组。 2、字符数组中的每个元素存放一个、字符数组中的每个元素存放一个字符字符。 定义方式与一、二维介绍的类似。定义方式与一、二维介绍的类似。 例:例:char c10,d23; 由于字符型与整型是互相通用的,由于字符型与整型是互相通用的, 因此

29、也可定义因此也可定义 int c10; 与一、二维介绍的类似,只是数组的每一个元素对应一个字符。与一、二维介绍的类似,只是数组的每一个元素对应一个字符。 char c10=I, , a, m, , h,a , p, p, y; char c32= , *, *, , , * ; 6 6.3 .3 字符数组的定义和引用字符数组的定义和引用 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 原则:原则: 逐一引用逐一引用 方法:方法: 数组名数组名下标下标1下标下标2 下标下标1 1从从0 0到到长度长度-1-1 下标下标2 2从从0 0到到长度长度-

30、1-1 a00.a31 共共8个数据个数据 例例1输出一个字符串输出一个字符串 main( ) char c10=I, ,a,m, ,a, ,b,o,y ; int i; printf(n); 6 6.3 .3 字符数组的定义和引用字符数组的定义和引用 for(i=0;i10;i+) printf(%c,ci); printf(%s,c); 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 main( ) char a55; int i,j; * for(i=0;i5;i+)* for(j=0;j5;j+) * * if(j= =0|i= =j)

31、* * aij=*; * * else aij= ; for(i=0;i5;i+) for(j=0;j5;j+) printf(%c,aij); printf(n); 6 6.3 .3 字符数组的定义和引用字符数组的定义和引用 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 在在C语言中,语言中,同时,为了测同时,为了测 定字符串的定字符串的,在,在C语言规定了一个语言规定了一个 字符字符 ),如一个字符串第,如一个字符串第个字符为个字符为 0,则此字符串的,则此字符串的,即在遇到,即在遇到字符字符 时,表示时,表示,由它前面的,由它前面的。 系

32、统对字符串常量也自动加一个系统对字符串常量也自动加一个作为结束符,当然在定作为结束符,当然在定 义字符数组时应估计义字符数组时应估计实际字符串长度实际字符串长度。 对字符数组对字符数组,可以用,可以用字符串常量字符串常量来使字符数组初始化。来使字符数组初始化。 如:如: char c =“I am happy”; 或或char c =“I am happy”; 此时系统此时系统自动自动在串尾加在串尾加 0。 6 6.3 .3 字符数组的定义和引用字符数组的定义和引用 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 1、输入输出有两种方式、输入输出

33、有两种方式: 逐个字符输入输出。用逐个字符输入输出。用“%c” 将整个字符串一次输入输出。用将整个字符串一次输入输出。用“%s” 2、输出应注意的问题:、输出应注意的问题: char c=“china”; printf(“%s”,c); 输出字符不包括结束符输出字符不包括结束符0 用用“%s”格式输出字符时,格式输出字符时,printf函数中的输出项是函数中的输出项是字符数组名字符数组名 , 而不是而不是数组元素名数组元素名。 如果数组长度大于字符串实际长度,也只输出到如果数组长度大于字符串实际长度,也只输出到0结束结束 如果一个字符数组中包含如果一个字符数组中包含一个以上一个以上0,则遇到,

34、则遇到第一个第一个0 时输出时输出 就结束。就结束。 输入时应输入时应注意注意: 在使用在使用scanf函数时,若函数时,若输入字符串输入字符串,用,用“%s”格式,则后面跟格式,则后面跟数组数组 名,且不带名,且不带“ gets(str); puts(str); Computer 和和 strcpy(str1,China) ; 拷贝时连同字符串后面的拷贝时连同字符串后面的0一起拷贝到字符数组一起拷贝到字符数组1中中 ; 不能用赋值语句将一个字符串常量或字符数组直接赋不能用赋值语句将一个字符串常量或字符数组直接赋 给一个给一个字符数组字符数组 如:如:str1=“China”为非法为非法; 可

35、以用可以用strcpy函数将字符串函数将字符串2中中前面若干个字符前面若干个字符拷贝到拷贝到 字符数组字符数组1中去中去; 6 6.3 .3 字符数组的定义和引用字符数组的定义和引用 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 5、strcmp(字符串字符串1,字符串,字符串2) 作用作用: 比较字符串比较字符串1和字符串和字符串2 方法:方法: 对两个字符串自左至右逐个相比,直到出现对两个字符串自左至右逐个相比,直到出现不同的字符或不同的字符或 遇到遇到0为止,如全部字符相同,则认为相等;若出现不相同的字符,为止,如全部字符相同,则认为相等

36、;若出现不相同的字符, 则以第一个不相同的字符的比较结果为准,比较的结果由函数值带回。则以第一个不相同的字符的比较结果为准,比较的结果由函数值带回。 字符串字符串1=字符串字符串2, 函数值为函数值为0 字符串字符串1字符串字符串2, 函数值为一正整数函数值为一正整数 字符串字符串1字符串字符串2, 函数值为一负整(记忆方法:绝对值)函数值为一负整(记忆方法:绝对值) 6、strlen(字符数组)字符数组) 作用:测试字符串长度的函数,函数的值为字符串中的实际长度,作用:测试字符串长度的函数,函数的值为字符串中的实际长度, 不包括不包括0在内。在内。 7、strlwr(字符串)字符串) 将字符

37、串中大写字母换成小写字母。将字符串中大写字母换成小写字母。 8、strupr(字符串)字符串) 将字符串中小写字母换成大写字母。将字符串中小写字母换成大写字母。 6 6.3 .3 字符数组的定义和引用字符数组的定义和引用 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 例例2: 输入一行字符,统计有多少个单词,单词用空格分隔。输入一行字符,统计有多少个单词,单词用空格分隔。 如:如:I am a student. #include stdio.h main( ) char string81, c; int i,num=0,word=0; gets

38、(string); for(i=0;(c=stringi)!=0;i+) if(c= = ) word=0; else if (word= =0) word=1; num+; printf(There are %d words in the linen,num); 6.4 6.4 应用实例应用实例 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 例例3任输入十个国家的名字,按由小到大排序。任输入十个国家的名字,按由小到大排序。 #include stdio.h“ main( ) char a1020, b20; int i, j; /* a数组定

39、义为二位,列是代表每一个的名字数组定义为二位,列是代表每一个的名字*/ for(i=0;i10;i+) gets(ai); for(i=0;i9;i+) for(j=i+1;j0) strcpy(b,ai); strcpy(ai,aj); strcpy(aj,b); for(i=0;i10;i+) printf(%sn,ai); 6.4 6.4 应用实例应用实例 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 第第6 6章章 习题习题 1. 1. 下面不能把字符串:下面不能把字符串:Hello! Hello! 赋给数组的语句是赋给数组的语句是 A

40、 A)char b110=H,e,l,l,o,!;char b110=H,e,l,l,o,!; B B)char b210;b2=Hello!;char b210;b2=Hello!; C C)char b310;strcpy(b3,Hello!);char b310;strcpy(b3,Hello!); D D)char b410=Hello!;char b410=Hello!; 2、若二维数组若二维数组a 有有m列,则列,则aIj前的元素个数为:前的元素个数为: A) j*m+I B) I*m+j C) I*m+j-1 D)I*m+j+1 3、下面程序段运行结果是:下面程序段运行结果是:

41、char c5=a,b,0,c,d,0 ; printf(“%s”,c); A) ab B)ab C) ab c D)ab0 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 4、以下对以下对S的初始化,不正确的是:的初始化,不正确的是: A) char s5=“abc” B) char s5=a, b, c; C) char s5= ; D) char s5=“abcdef”; 5、有下面程序段:有下面程序段: char a3,b =“china”; a=b; printf(“%s”,a); 则则 A)运行后输出运行后输出china B)运行后输

42、出运行后输出ch C)运行后输出运行后输出chi D)编译出错编译出错 第第6 6章章 习题习题 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 6、若定义二维数组若定义二维数组 int a33=1,2,3,4,5,6,7,8,9; int k; 则下列语句的输出结果是:则下列语句的输出结果是: for (k=0;k3;k+) printf (“%d”, ak,2-k); A) 3 5 7 B) 3 6 9 C) 1 5 9 D) 1 4 7 7、判断字符串判断字符串a 和和 b 是否相等,应当使用:是否相等,应当使用: A) if (a= =

43、b) B) if (a=b) C) if (strcpy(a,b) D) if (strcmp(a,b) 第第6 6章章 习题习题 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语言程序设计语言程序设计 8、读程序,写出正确结果:、读程序,写出正确结果: main() char a5=*,*,*,*,* int i, j, k; char space= ; for (i=0;i5;i+) printf(“n”); printf(“ ”); for (j=1;j=i;j+) printf(“%c”,space); for (k=0;k5;k+) printf (“%c”,ak); * * * * * 第第6 6章章 习题习题 第六章 数组 2010年4月21日星期三教师:赵军富教师:赵军富 C 语

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论