教案.docx

上传人:b****8 文档编号:10664055 上传时间:2023-02-22 格式:DOCX 页数:35 大小:29.62KB
下载 相关 举报
教案.docx_第1页
第1页 / 共35页
教案.docx_第2页
第2页 / 共35页
教案.docx_第3页
第3页 / 共35页
教案.docx_第4页
第4页 / 共35页
教案.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

教案.docx

《教案.docx》由会员分享,可在线阅读,更多相关《教案.docx(35页珍藏版)》请在冰豆网上搜索。

教案.docx

教案

C语言教案

课题

一维数组元素的引用

第27、28课时

总序第27、28个教案

课型

新授

编写时间

2014年10月6日

执行时间

2014年10月6日

教学目标

一维数组的引用方式

教学重点

一维数组的引用方式

教学难点

一维数组的引用方式

教学用具

多媒体教学

执教者

雷祥芳

一维数组元素的引用

C语言规定数组不能以整体形式参与数据处理,只能逐个引用数组元素。

一维数组的引用方式为:

数组名[下标];

其中下标可以是整型常量、整型变量或整型表达式。

例如有定义

inta[10],i=2;

则以下是正确的表达式:

a[0]=a[1]+a[i]+a[i+3];

例5.1找出10个整数中的最大值及其序号。

[分析]将10个整数放于一维数组中,找出其中的最大值及其下标即可。

main()

{inti,max,k,a[11];

for(i=1;i<=10;i++)

scanf("%d",&a[i]);

max=a[1];k=1;

for(i=2;i<=10;i++)

{if(max

printf("max=%d,NO:

%d\n",max,k);}

例5.2用数组处理Fibonacci数列问题

main()

{inti,f[20]={1,1};

for(i=2;i<20;i++)

f[i]=f[i-2]+f[i-1];

for(i=0;i<20;i++)

{if(i%5==0)printf("\n");

printf("%10d",f[i]);}}

程序的运行结果如下:

11235

813213455

89144233377610

9871597258441816765

例5.3有17个人围成一圈,从第1号的人开始从1到3循环报数,凡报

到3的人离开圈子,直到最后只剩下一个人为止,打印出此过程。

main()

{inti,d,temp,a[18];

for(i=1;i<=17;i++)

a[i]=i;

temp=0;d=17;

while(d>0)

for(i=1;i<=17;i++)

if(a[i]!

=0)

{temp++;

if(temp==3)

{printf("%4d",a[i]);

a[i]=0;temp=0;d--;}}}

程序的运行结果是:

3691215151014281671713411

例5.4用冒泡法对10个整数由小到大进行排序

main()

{inti,j,t,a[11];

printf("input10numbers:

\n");

for(i=1;i<=10;i++)

scanf("%d",&a[i]);

printf("\n");

for(j=1;j<=9;j++)/*控制比较的趟数*/

for(i=1;i<=10-j;i++)/*控制每趟比较的次数*/

if(a[i]>a[i+1])/*相邻元素相比较*/

{t=a[i];a[i]=a[i+1];a[i+1]=t;}/*交换数组元素的值*/

printf("thesortednumbers:

\n");

for(i=1;i<=10;i++)

printf("%d",a[i]);}

程序运行情况如下:

input10numbers:

583210-4143-126742↙

thesortednumbers:

-12-40358214267143

此程序用a[0]至a[10]存储10个数据,排序时采用双层循环,外层循环控制比较的“趟”数(共9趟),内层循环控制每趟比较的“次”数。

第一趟比较9次,将最大数置于a[10]中;第二趟比较8次,将次大数置于a[9]中;……;第九趟比较1次,将次小数置于a[2]中;余下的最小数置于a[1]中。

小结

教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操作中的普遍错误.

教学反思

本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。

达到教学目的。

 

 

C语言教案

课题

调试程序

第29、30课时

总序第29、30个教案

课型

新授

编写时间

2014年10月7日

执行时间

2014年10月7日

教学目标

一维数组的引用方式

教学重点

一维数组的引用方式

教学难点

一维数组的引用方式

教学用具

多媒体教学

执教者

雷祥芳

#defineFD5

main()

{

inta[3+2],b[7+FD];

……

}

是合法的。

但是下述说明方式是错误的。

main()

{

intn=5;

inta[n];

……

}

允许在同一个类型说明中,说明多个数组和多个变量。

例如:

inta,b,c,d,k1[10],k2[20];

【例7.1】

main()

{

inti,a[10];

for(i=0;i<=9;i++)

a[i]=i;

for(i=9;i>=0;i--)

printf("%d",a[i]);

}

【例】

main()

{

inti,a[10];

for(i=0;i<10;)

a[i++]=i;

for(i=9;i>=0;i--)

printf("%d",a[i]);

}

【例】

main()

{

inti,a[10];

for(i=0;i<10;)

a[i++]=2*i+1;

for(i=0;i<=9;i++)

printf("%d",a[i]);

printf("\n%d%d\n",a[5.2],a[5.8]);

}

小结

教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操作中的普遍错误.

教学反思

本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。

达到教学目的。

 

 

 

C语言教案

课题

二维数组的定义和引用

第31、32课时

总序第31、32个教案

课型

新授

编写时间

2014年10月8日

执行时间

2014年10月9日

教学目标

二维数组的定义和引用

教学重点

二维数组的定义和引用

教学难点

二维数组的定义和引用

教学用具

多媒体教学

执教者

雷祥芳

一、二维数组的定义

与一维数组相同,二维数组也必须先定义,后使用。

二维数组的格式为:

类型说明符数组名[常量表达式1][常量表达式2];

例如:

inta[3][4];

定义a为3×4(3行4列)的整型数组。

该数组有12个元素,分别为:

a[0][0]a[0][1]a[0][2]a[0][3]

a[1][0]a[1][1]a[1][2]a[1][3]

a[2][0]a[2][1]a[2][2]a[2][3]

说明:

(1)类型说明符、数组名、常量表达式的意义与一维数组相同。

(2)二维数组中元素的排列顺序是按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。

(3)可以把二维数组看成是特殊的一维数组,它的每个元素又是一个一维数组。

二、二维数组的初始化

二维数组也可以在定义时对指定元素赋初值,可以用以下方法对二维数组进行初始化:

(1)按行分段赋值。

例如:

inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

(2)将所有的初值写在一个大括号内,按数组元素的排列顺序对各个元素赋初值。

例如:

inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

(3)可以对数组部分元素赋初值。

例如:

inta[3][4]={{1},{5,6},{9}};

又如:

inta[3][4]={{1,2},{},{0,10}};

其作用是使a[0][0]=1,a[0][1]=2,a[2][1]=10,数组的其它元素都为0。

(4)如果对数组的全部元素都赋初值,则定义数组时可以不指定数组的第一维长度,但第二维长度不能省略。

例如:

若有定义:

inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

此定义也可以写成:

inta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};

小结

教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操作中的普遍错误.

教学反思

本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。

达到教学目的。

 

 

C语言教案

课题

二维数组元素的引用

第33、34课时

总序第33、34个教案

课型

新授

编写时间

2014年10月12日

执行时间

2014年10月13日

教学目标

二维数组元素的引用

教学重点

二维数组元素的引用

教学难点

二维数组元素的引用

教学用具

多媒体教学

执教者

雷祥芳

二维数组元素的引用

二维数组的引用方式为:

数组名[下标1][下标2]

其中下标可以是整型常量、整型变量或整型表达式。

例5.5将数组a(2×3矩阵)行列转置后保存到另一数组b中。

12314

a=b=25

45636

main()

{inta[2][3]={{1,2,3},{4,5,6}};

inti,j,b[3][2];

printf("arraya:

\n");

for(i=0;i<=1;i++)

{for(j=0;j<=2;j++)

{printf("%5d",a[i][j]);/*输出a数组*/

b[j][i]=a[i][j];/*数组转置*/

}

printf("\n");}

printf("arrayb:

\n");

for(i=0;i<=2;i++)

{for(j=0;j<=1;j++)

printf("%5d",b[i][j]);

printf("\n");}}

运行结果如下:

arraya:

123

456

arrayb:

14

25

36

小结

教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操作中的普遍错误.

教学反思

本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。

达到教学目的。

 

 

C语言教案

课题

调试程序

第35、36课时

总序第35、36个教案

课型

新授

编写时间

2014年10月12日

执行时间

2014年10月14日

教学目标

二维数组元素的定义和引用

教学重点

二维数组元素的定义和引用

教学难点

二维数组元素的定义和引用

教学用具

多媒体教学

执教者

雷祥芳

有一个3×4的矩阵,求出其中最大值以及它所在位置。

main()

{inti,j,max,row=0,col=0;

inta[3][4]={{2,14,-6,8},{3,7,9,21},{-9,16,0,5}};

max=a[0][0];

for(i=0;i<=2;i++)

for(j=0;j<=3;j++)

if(a[i][j]>max)

{max=a[i][j];

row=i;col=j;}

printf("max=%d,row=%d,col=%d\n",max,row,col);}

程序的输出结果为:

max=21,row=1,col=3

例5.7某班有20名学生,每名学生有5门课的成绩,分别求出每门课的平均成绩和每个学生的平均成绩。

main()

{inti,j;

floatscore[21][6]={0};

for(i=1;i<=20;i++)

for(j=1;j<=5;j++)

{scanf("%f",&a[i][j]);

score[i][0]+=score[i][j];

score[0][j]+=score[i][j];}

printf("averageofstudentis:

\n");

for(i=1;i<=20;i++)

printf("%d:

%6.2f\n",i,sccore[i][0]/5);

printf("averageofcourseis:

\n");

for(i=1;i<=5;i++)

printf("%d:

%6.2f\n",i,score[0][i]/20);}

小结

教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操作中的普遍错误.

教学反思

本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。

达到教学目的。

 

 

C语言教案

课题

字符数组的定义和引用

第37、38课时

总序第37、38个教案

课型

新授

编写时间

2014年10月15日

执行时间

2014年10月16日

教学目标

字符数组的定义和引用

教学重点

字符数组的定义

教学难点

字符数组的引用

教学用具

多媒体教学

执教者

雷祥芳

一、字符数组的定义

1、一维字符数组的格式为:

类型说明符数组名[常量表达式];

例如:

charstr[10];

定义str为一维字符数组,该数组包含10个元素,最多可以存放10个字符型数据。

2、二维字符数组的格式为:

类型说明符数组名[常量表达式1][常量表达式2];

例如:

chara[3][20];

定义a为二维字符数组,该数组有3行,每行20列,该数组最多可以存放60个字符型数据。

在C语言中,很多情况下字符型与整型是通用的,因此字符型数组也可以这样定义:

intstr[10];

inta[3][20];

注意:

字符型数据在内存中是以ASCII码方式存储的,在字符数组中也是如此。

二、字符数组的初始化

字符数组的初始化方式与其它类型数组的初始化方式类似。

(1)逐个元素赋初值

chars[5]={´C´,´h´,´i´,´n´,´a´};

(2)如果初值的个数多于数组元素的个数,则按语法错误处理。

(3)如果初值的个数少于数组元素的个数,则C编译系统自动将未赋初值的元素定为空字符(即ASCII码为0的字符:

´\0´)。

(4)如果省略数组的长度,则系统会自动根据初值的个数来确定数组的长度。

例如:

charc[]={´H´,´o´,´w´,´´,´a´,´r´,´e´,´´,´y´,´o´,´u´,´?

´};

数组c的长度自动设定为12。

(5)二维数组也可以进行初始化。

三、字符数组的引用

例5.8输出一个字符串。

main()

{charc[10]={´I´,´´,´a´,´m´,´´,´h´,´a´,´p´,´p´,´y´};

inti;

for(i=0;i<10;i++)

printf("%c",c[i]);

printf("\n");}

程序运行结果:

Iamhappy

例5.9输出钻石图形

main()

{charc[5][5]={{´´,´´,´*´},{´´,´*´,´´,´*´},{´*´,´´,´´,´´,´*´},

{´´,´*´,´´,´*´},{´´,´´,´*´}};

inti,j;

for(i=0;i<5;i++)

{for(j=0;j<5;j++)

printf("%c",c[i][j]);

printf("\n");}}

程序的运行结果为:

*

**

**

**

*

小结

教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操作中的普遍错误.

教学反思

本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。

达到教学目的。

 

 

C语言教案

课题

字符串

第39、40课时

总序第39、40个教案

课型

新授

编写时间

2014年10月19日

执行时间

2014年10月20日

教学目标

掌握字符数组的输入与输出

教学重点

字符数组的输入与输出

教学难点

字符数组的输入与输出

教学用具

多媒体教学

执教者

雷祥芳

一、字符串

1.字符串和字符串结束标志

字符串常量是用双引号括起来的一串字符。

C语言系统在处理字符串时,一般会在其末尾自动添加一个´\0´作为结束符。

2.用字符串常量给数组赋初值

可以用字符串常量来使字符数组初始化。

例如:

charc[]={"student"};

也可以省略大括号而直接写成

charc[]="student";

二、字符数组的输入与输出

1.将数组元素逐个输入与输出,即用格式符"%c"输入或输出一个字符。

例5.10从键盘读入一串字符,将其中的大写字母转换成小写字母后输出该字符串。

main()

{chars[80];

inti=0;

for(i=0;i<80;i++)

{scanf("%c",&s[i]);

if(s[i]==´\n´)break;

elseif(s[i]>=´A´&&s[i]<=´Z´)s[i]+=32;}

s[i]=´\0´;

for(i=0;s[i]!

=´\0´;i++)

printf("%c",s[i]);

printf("\n");}

运行该程序两次。

第一次输入:

ProGram↙

程序运行结果为:

program

第二次输入:

HOWDOYOUDO?

程序运行结果为:

howdoyoudo?

2.将字符数组整体输入或输出,即用格式符"%s"控制字符串的输入与输出。

例5.11将上例改写成整体输入输出形式。

main()

{chars[80];

inti;

scanf("%s",s);

for(i=0;s[i]!

=´\0´;i++)

if(s[i]>=´A´&&s[i]<=´Z´)s[i]+=32;

printf("%s",s);}

注意:

(1)用"%s"格式符读入字符串时,scanf函数中的地址项是数组名,不要在数组名前加取地址符号´&´,因为数组名本身就是地址(在后面的内容中将介绍到)。

(2)用"%s"格式符输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素。

如果写成下面的形式是错误的:

printf("%s",s[0]);

(3)以scanf("%s",数组名);形式读入字符串时,遇空格或回车都表示字符串结束,系统只是将第一个空格或回车前的字符置于数组中,例如有如下语句:

chars[13];

scanf("%s",a);

若输入为:

Howareyou?

小结

教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操作中的普遍错误.

教学反思

本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。

达到教学目的。

 

 

C语言教案

课题

字符串处理函数

第41、42课时

总序第41、42个教案

课型

新授

编写时间

2014年10月20日

执行时间

2014年10月21日

教学目标

掌握字符串处理函数的使用

教学重点

记住字符串处理函数

教学难点

字符串处理函数的使用

教学用具

多媒体教学

执教者

雷祥芳

字符串处理函数

在C的库函数中提供了一些字符串处理函数,使用它们可以很方便地处理字符串,如输入、输出、拷贝、连接、比较、测试长度等。

1.字符串输出函数:

puts

格式:

puts(字符数组名)

功能:

将一个字符串输出到终端,字符串中可以包含转义字符。

例如:

chars[]="China\nBeijing";

puts(s);

输出结果是:

China

Beijing

注意:

puts函数会将字符串结束标志’\0’转换成’\n’,即在输出完字符串后换行。

2.字符串读入函数:

gets

格式:

gets(字符数组名)

功能:

从终端读入一个字符串到字符数组。

该函数可以读入空格,遇回车结束输入。

例如有下面程序段:

chars[20];

gets(s);

puts(s);

运行时输入:

Howdoyoudo?

输出结果为:

Howdoyoudo?

3.字符串连接函数:

strcat

格式:

strcat(字符数组1,字符数组2)

功能:

将字符数组2中的字符串连接到字符数组1中的字符串的后面,结果放在字符数组1中。

例如有如下程序段:

chars1[14]="China",s2[]="Beijing";

strcat(s1,s2);

printf("%s",s1);

输出结果为:

ChinaBeijing

说明:

使用strcat函数时,字符数组1应作够大,以便能容纳连接后的新字符串。

4.字符串拷贝(复制)函数:

strcpy

格式:

strcpy(字符数组1,字符数组2)

功能:

将字符数组2中的字符串拷贝到字符数组1中。

例如有下面程序段:

chars1[8],s2[]="China";

strcpy(s1,s2);

puts(s1);

程序段的输出结果是

China

说明:

(1)字符数组1的长度应大于或等于字符数组2的长度,以便容纳被复制的字符串。

(2)字符数组1必须写成数组名的形式(如上例中的s1),字符数组2也可以是一个字符串常量。

例如:

chars1[8];

strcpy(s1,"China");

其结果与上例相同。

(3)执行strcpy函数后,字符数组1中原来的内容将被字符数组2的内容(或字符串)所代替。

(4)不能用赋值语句将一个字符串常量或字符数组直接赋给另一个字符数组。

下面的用法是错误的:

chars1[8],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