1、教案C语言教案课 题一维数组元素的引用第27、28课时总序第27、28个教案课 型新 授编写时间2014年10月6日执行时间2014年10月6日教学目标一维数组的引用方式教学重点一维数组的引用方式教学难点一维数组的引用方式教学用具多媒体教学执教者雷祥芳一维数组元素的引用 C语言规定数组不能以整体形式参与数据处理,只能逐个引用数组元素。一维数组的引用方式为: 数组名下标;其中下标可以是整型常量、整型变量或整型表达式。例如有定义int a10,i=2;则以下是正确的表达式: a0=a1+ai+ai+3;例5.1 找出10个整数中的最大值及其序号。分析 将10个整数放于一维数组中,找出其中的最大值及
2、其下标即可。 main ( ) int i,max,k,a11; for (i=1;i=10;i+) scanf (%d,&ai); max=a1;k=1; for (i=2;i=10;i+) if (maxai) max=ai;k=i; printf (max=%d,NO: %dn,max,k); 例5.2 用数组处理Fibonacci数列问题main ( ) int i,f 20=1,1; for (i=2;i20;i+)f i=f i-2+f i-1;for (i=0;i20;i+) if (i%5= =0) printf (n);printf (%10d,f i); 程序的运行结果如下
3、: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765例5.3 有17个人围成一圈,从第1号的人开始从1到3循环报数,凡报到3的人离开圈子,直到最后只剩下一个人为止,打印出此过程。main ( )int i,d,temp,a18;for (i=1;i0)for (i=1;i=17;i+) if (ai!=0) temp+;if (temp= =3) printf (%4d,ai); ai=0;temp=0;d-;程序的运行结果是:3 6 9 12 15 1 5 10 14 2 8 16 7 17 13 4 11例
4、5.4 用冒泡法对10个整数由小到大进行排序 main ( )int i,j,t,a11;printf (input 10 numbers:n);for (i=1;i=10;i+)scanf (%d,&ai); printf (n);for (j=1;j=9;j+) /*控制比较的趟数*/for (i=1;iai+1) /*相邻元素相比较*/t=ai;ai=ai+1;ai+1=t; /*交换数组元素的值*/printf (the sorted numbers:n);for (i=1;i=10;i+)printf (%d ,ai); 程序运行情况如下:input 10 numbers: 5 8
5、3 21 0 -4 143 -12 67 42 the sorted numbers: -12 -4 0 3 5 8 21 42 67 143此程序用a0至a10存储10个数据,排序时采用双层循环,外层循环控制比较的“趟”数(共9趟),内层循环控制每趟比较的“次”数。第一趟比较9次,将最大数置于a10中;第二趟比较8次,将次大数置于a9中;第九趟比较1次,将次小数置于a2中;余下的最小数置于a1中。小结教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操作中的普遍错误.教学反思本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。C语言教案课 题调试程
6、序第29、30课时总序第29、30个教案课 型新 授编写时间2014年10月7日执行时间2014年10月7日教学目标一维数组的引用方式教学重点一维数组的引用方式教学难点一维数组的引用方式教学用具多媒体教学执教者雷祥芳#define FD 5 main() int a3+2,b7+FD; 是合法的。但是下述说明方式是错误的。 main() int n=5; int an; 允许在同一个类型说明中,说明多个数组和多个变量。例如: int a,b,c,d,k110,k220;【例7.1】main() int i,a10; for(i=0;i=0;i-) printf(%d ,ai); 【例】main
7、() int i,a10; for(i=0;i=0;i-) printf(%d,ai); 【例】main() int i,a10; for(i=0;i10;) ai+=2*i+1; for(i=0;i=9;i+)printf(%d ,ai); printf(n%d %dn,a5.2,a5.8);小结教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操作中的普遍错误.教学反思本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。 C语言教案课 题二维数组的定义和引用第31、32课时总序第31、32个教案课 型新 授编写时间2014年10月8日执行时间20
8、14年10月9日教学目标二维数组的定义和引用教学重点二维数组的定义和引用教学难点二维数组的定义和引用教学用具多媒体教学执教者雷祥芳一、二维数组的定义与一维数组相同,二维数组也必须先定义,后使用。二维数组的格式为:类型说明符 数组名常量表达式1常量表达式2;例如:int a34;定义a为34(3行4列)的整型数组。该数组有12个元素,分别为:a00 a01 a02 a03a10 a11 a12 a13a20 a21 a22 a23说明:(1)类型说明符、数组名、常量表达式的意义与一维数组相同。(2)二维数组中元素的排列顺序是按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。(3)可
9、以把二维数组看成是特殊的一维数组,它的每个元素又是一个一维数组。 二、二维数组的初始化二维数组也可以在定义时对指定元素赋初值,可以用以下方法对二维数组进行初始化:(1)按行分段赋值。例如:int a34=1,2,3,4,5,6,7,8,9,10,11,12;(2)将所有的初值写在一个大括号内,按数组元素的排列顺序对各个元素赋初值。例如:int a34=1,2,3,4,5,6,7,8,9,10,11,12;(3)可以对数组部分元素赋初值。例如:int a34=1,5,6,9;又如:int a34=1,2, ,0,10;其作用是使a00=1,a01=2,a21=10,数组的其它元素都为0。(4)如
10、果对数组的全部元素都赋初值,则定义数组时可以不指定数组的第一维长度,但第二维长度不能省略。例如:若有定义: int a34=1,2,3,4,5,6,7,8,9,10,11,12;此定义也可以写成:int a 4=1,2,3,4,5,6,7,8,9,10,11,12;小结教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操作中的普遍错误.教学反思本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。C语言教案课 题二维数组元素的引用第33、34课时总序第33、34个教案课 型新 授编写时间2014年10月12日执行时间2014年10月13日教学目标二维数
11、组元素的引用教学重点二维数组元素的引用教学难点二维数组元素的引用教学用具多媒体教学执教者雷祥芳二维数组元素的引用二维数组的引用方式为:数组名下标1下标2其中下标可以是整型常量、整型变量或整型表达式。例5.5 将数组a(23矩阵)行列转置后保存到另一数组b中。 1 2 3 1 4 a= b= 2 5 4 5 6 3 6 main ( )int a23=1,2,3,4,5,6; int i,j,b32; printf (array a:n); for (i=0;i=1;i+)for (j=0;j=2;j+)printf (%5d,aij); /*输出a数组*/bji=aij; /*数组转置*/ p
12、rintf (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 6array b:1 42 53 6小结教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操作中的普遍错误.教学反思本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。C语言教案课 题调试程序第35、36课时总序第35、36个教案课 型新 授编写时间2014年10月12日执行时间2014年10月14日教学目标二维数组元素
13、的定义和引用教学重点二维数组元素的定义和引用教学难点二维数组元素的定义和引用教学用具多媒体教学执教者雷祥芳有一个34的矩阵,求出其中最大值以及它所在位置。main ( )int i,j,max,row=0,col=0;int a34=2,14,-6,8,3,7,9,21,-9,16,0,5;max=a00;for (i=0;i=2;i+)for (j=0;jmax)max=aij;row=i;col=j;printf (max=%d, row=%d, col=%dn, max, row, col); 程序的输出结果为: max=21, row=1, col=3例5.7 某班有20名学生,每名学
14、生有5门课的成绩,分别求出每门课的平均成绩和每个学生的平均成绩。 main ( )int i,j;float score216=0;for (i=1;i=20;i+)for (j=1;j=5;j+)scanf (%f ,&aij);scorei0+=scoreij;score0j+=scoreij;printf (average of student is:n);for (i=1;i=20;i+)printf (%d: %6.2f n,i,sccorei0/5); printf (average of course is:n);for (i=1;i=5;i+)printf ( %d: %6.2
15、f n,i,score0i/20); 小结教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操作中的普遍错误.教学反思本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。C语言教案课 题字符数组的定义和引用第37、38课时总序第37、38个教案课 型新 授编写时间2014年10月15日执行时间2014年10月16日教学目标字符数组的定义和引用教学重点字符数组的定义教学难点字符数组的引用教学用具多媒体教学执教者雷祥芳一、字符数组的定义 1、一维字符数组的格式为: 类型说明符 数组名常量表达式; 例如:char str10; 定义str为一维字符数组,该
16、数组包含10个元素,最多可以存放10个字符型数据。 2、二维字符数组的格式为: 类型说明符 数组名常量表达式1常量表达式2; 例如:char a320; 定义a为二维字符数组,该数组有3行,每行20列,该数组最多可以存放60个字符型数据。 在C语言中,很多情况下字符型与整型是通用的,因此字符型数组也可以这样定义: int str10; int a320; 注意:字符型数据在内存中是以ASCII码方式存储的,在字符数组中也是如此。二、字符数组的初始化 字符数组的初始化方式与其它类型数组的初始化方式类似。(1)逐个元素赋初值 char s5=C,h,i,n,a; (2)如果初值的个数多于数组元素的
17、个数,则按语法错误处理。(3)如果初值的个数少于数组元素的个数,则C编译系统自动将未赋初值的元素定为空字符(即ASCII码为0的字符:0)。 (4) 如果省略数组的长度,则系统会自动根据初值的个数来确定数组的长度。 例如: char c = H, o, w, , a, r, e, , y, o, u, ?; 数组c的长度自动设定为12。(5)二维数组也可以进行初始化。三、字符数组的引用例5.8 输出一个字符串。 main ( ) char c10=I, , a, m, , h, a, p, p, y; int i; for (i=0;i10;i+)printf (%c,ci);printf (
18、n); 程序运行结果: I am happy例5.9 输出钻石图形 main ( ) char c55= , , *, , *, , *,*, , , , *, , *, , *, , , *; int i, j; for (i=0;i5;i+)for (j=0;j5;j+)printf (%c,cij); printf (n); 程序的运行结果为: * * * * * * * *小结教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操作中的普遍错误.教学反思本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。C语言教案课 题字符串第39、40课时总
19、序第39、40个教案课 型新 授编写时间2014年10月19日执行时间2014年10月20日教学目标掌握字符数组的输入与输出教学重点字符数组的输入与输出教学难点字符数组的输入与输出教学用具多媒体教学执教者雷祥芳一、字符串1字符串和字符串结束标志字符串常量是用双引号括起来的一串字符。C语言系统在处理字符串时,一般会在其末尾自动添加一个0作为结束符。2用字符串常量给数组赋初值可以用字符串常量来使字符数组初始化。例如: char c =student;也可以省略大括号而直接写成 char c = student;二 、字符数组的输入与输出1将数组元素逐个输入与输出,即用格式符%c输入或输出一个字符。
20、例5.10 从键盘读入一串字符,将其中的大写字母转换成小写字母后输出该字符串。 main ( )char s80; int i=0; for (i=0;i= A&si= A&si= Z) si+=32;printf (%s, s);注意:(1)用%s格式符读入字符串时,scanf函数中的地址项是数组名,不要在数组名前加取地址符号&,因为数组名本身就是地址(在后面的内容中将介绍到)。(2)用%s格式符输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素。如果写成下面的形式是错误的:printf (%s, s0);(3)以scanf (%s, 数组名);形式读入字符串时,遇空格或回
21、车都表示字符串结束,系统只是将第一个空格或回车前的字符置于数组中,例如有如下语句:char s13;scanf (%s, a);若输入为:How are you?小结教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操作中的普遍错误.教学反思本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。C语言教案课 题字符串处理函数第41、42课时总序第41、42个教案课 型新 授编写时间2014年10月20日执行时间2014年10月21日教学目标掌握字符串处理函数的使用教学重点记住字符串处理函数教学难点字符串处理函数的使用教学用具多媒体教学执教者雷祥芳字符串
22、处理函数在C的库函数中提供了一些字符串处理函数,使用它们可以很方便地处理字符串,如输入、输出、拷贝、连接、比较、测试长度等。1字符串输出函数:puts格式:puts(字符数组名)功能:将一个字符串输出到终端,字符串中可以包含转义字符。例如 :char s = ChinanBeijing;puts(s);输出结果是:ChinaBeijing注意:puts函数会将字符串结束标志0转换成n,即在输出完字符串后换行。 2字符串读入函数:gets格式:gets(字符数组名)功能:从终端读入一个字符串到字符数组。该函数可以读入空格,遇回车结束输入。例如有下面程序段:char s20;gets(s);put
23、s(s);运行时输入:How do you do?输出结果为:How do you do?3字符串连接函数:strcat格式:strcat (字符数组1,字符数组2)功能:将字符数组2中的字符串连接到字符数组1中的字符串的后面,结果放在字符数组1中。例如有如下程序段:char s114= China ,s2 = Beijing;strcat (s1, s2);printf (%s, s1);输出结果为:China Beijing说明:使用strcat函数时,字符数组1应作够大,以便能容纳连接后的新字符串。4字符串拷贝(复制)函数:strcpy 格式:strcpy (字符数组1,字符数组2)功能
24、:将字符数组2中的字符串拷贝到字符数组1中。例如有下面程序段:char s18, s2 = China;strcpy (s1, s2);puts(s1);程序段的输出结果是China说明:(1)字符数组1的长度应大于或等于字符数组2的长度,以便容纳被复制的字符串。(2)字符数组1必须写成数组名的形式(如上例中的s1),字符数组2也可以是一个字符串常量。例如: char s18; strcpy (s1, China);其结果与上例相同。(3)执行strcpy函数后,字符数组1中原来的内容将被字符数组2的内容(或字符串)所代替。(4)不能用赋值语句将一个字符串常量或字符数组直接赋给另一个字符数组。下面的用法是错误的: char s18, s2 = China; s1=s2;在进行字符串的整体赋值时,必须使用strcpy函数。5字符串比较函数:strcmp格式:strcmp (字符串1, 字符串2)功能:比较两个字符串的大小,例如: strcmp (s1, s2); strcmp (Beijing, Shanghai); strcmp (s1, China); 比较的结果由函数值带回。(1)如果字符串1等于字符串2,函数值为0。(2)如果字
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1