C语言程序设计教案.docx
《C语言程序设计教案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教案.docx(36页珍藏版)》请在冰豆网上搜索。
C语言程序设计教案
盛年不重来,一日难再晨。
及时宜自勉,岁月不待人。
C语言概述
【教学目的】1)了解C的发展
2)熟悉C的特点
【教学重点】C语言的特点
(难点)
【教学方法】例举法,推导法,归纳法
【课时计划】2课时
【授课时间】2005-11-1
【教学过程】
导言
程序的目的是处理数据,所以设计程序首先的知道这门语言可以处理什么样的数据
新课内容
一、C语言的历史及其特征
二、简单C语言的程序实例
#include“stdio.h”
main()
{inta,b,sum;
printf(“entertwonumbers:
”);
scanf(“%d%d”,&a,&b);
sum=a+b+6;
printf(“%d”,sum);
}
三、编辑、编译、连接、运行一个C语言程序
四、C语言的特点
【课堂练习】
1。
C语言规定,必须以()作为主函数名。
A.stdioB.functionC.includeD.main
2.C程序的基本构成单位是()。
A.子程序B.函数C.过程D.函数和过程
【小结】
总结:
C语言特点
【课后作业】7页2
【板书设计】
一、C语言的历史及其特征
二、简单C语言的程序实例
#include“stdio.h”
main()
{inta,b,sum;
printf(“entertwonumbers:
”);
scanf(“%d%d”,&a,&b);
sum=a+b+6;
printf(“%d”,sum);
}
三、编辑、编译、连接、运行一个C语言程序
四、C语言的特点
【教学后记】
学生听课认真,积极回答老师提出的问题。
课堂教学效果很好,能够按时完成课堂练习题。
对软件开发这个专业很有信心。
数据类型
【教学目的】1)常量.变量概念简要介绍
2)详细介绍,三种类型的常量.变量的使用规则,占内存大小及范围
【教学重点】变量的使用
【教学难点】变量占内存空间大小
【授课时间】2005-11-2
【课时计划】2课时
【教学方法】举例法
【教学过程】
导言
程序=数据结构+算法+程设方法+语言工具
新课内容
一、数据类型分类
1.基本类型
2.构选类型
3.指针类型
4.空类型
二、常量、变量
1、常量、符号常量
(1)定义:
其值不改变
(2)分类
a.整型:
2,0,-1
b.实型:
2.2,-3.4
c.字符:
‘a’,’c’
2、变量
(1)定义:
值可以改变
(2)组成因素
inta=20;
变量名:
a变量值:
20
(3)标识符
a.定义:
标识符,变量名,函数名,数组名等;
b.规则:
已字母下划线打头
c.长度:
ANSIC不限
TURBOC限32个字符
(4)使用:
先定义后使用
三、数据
1、整型数据
。
整型常量表示方法
a.十进制123,-123
b.八进制o35,o27
c.十六进制oxA3,ox12
。
整型变量
a.形式:
2进制
a.分类:
int2b
shortint2b
longint4b
b.定义
inta,b
unsignedintc,d;
longe,f,
。
整型、常量类型
2、实型数据
。
表示方法
123,123.0,0.0
。
实型变量
float4b
double8b
longdouble16b
。
类型double类型
floata;
doubleb;
b=1234.789
a=123456.789
3、字符数据
。
字符常量
。
一般字符
例子:
“b”,”c”,”1”,’!
’
。
特殊字符常量
说明:
以\开头的
。
字符变量
。
定义
charc1,c2;
c1=’A’;c2=’b’
。
举例
输出:
a,A
97,65
。
字符串变量
1.定义:
例“123”,“A”
2.以字符’\0’结束标志
。
变量赋值
1.定义变量同时赋值
例:
inta=978;
float=b=98.67;
char=c=’c’;
2.定义变量一部分赋值
例:
inta,b,c=91;
3.几个变量同时赋值
例:
inta=b=c=d=97;
【课堂练习】
1、main()
{floata,b;
a=123456.789e+6;
b=a+30
printf(“%f”,b)
}
2、main()
{charc1,c2;
c1=97;c2=65;
printf(“%c,%c\n”,c1,c2);
printf(“%d,%c/n”,c1,c2);
【课后作业】26页3、9、10
【小结】
注意特殊字符常量、符号常量、变量在内存的存储形式
【板书设计】
一、数据类型分类
二、常量、变量
1、常量、符号常量
2、变量
三、数据
1、整型数据
2、实型数据
3、字符数据
。
字符串变量
。
变量赋值
【教学后记】
本次课内容充实,知识点多,所讲内容,学生都能听懂,但运用不够熟练,需要多做练习,以巩固加深。
运算符与表达式
【教学目的】1.了解理解运算符
2.运用算术运算符及使用
【授课重点】表达式的使用
【授课难点】I++与++I的区别
【教学方法】举例法、分析法
【授课时间】2005-11-3
【课时计划】2课时
【教学过程】
导言
运算量+运算量
1+2
新课内容
一各数值数据的混合运算
1.总则:
自动转换同类型
2.规则:
(1)float->double
char,shor->int
(2)可直/间转换
int->ussigned->long->double
二算术运算符,表达式
1.运算符
(1)算术
(2)位&!
~^
(3)条件 ?
:
(4)指针 &*
2.算术运算符,表达式
(1)基本算术运算符 + — * /
(2)运算符优先级
a.*/->+-
b.同级,运算符结合
c.强制类型转换
形式:
(类型名)(表达式)
例子:
main()
{floatx;
inty;
x=8.56;
y=(int)x;
printf(“x=%f,y=%d”,x,y);
d.自增,自减运算
I++=>1)I,2)I=I+1;
++I=>1)I=I+1,2)I
三、数据输入和数据输出
a)数据输出:
命令格式:
printf(控制字符串,参数1,参数2,……)
例如:
main()
{floatx=1234.565;
inty=234;
charc=’a’;
printf(“%f,%d,%c”,x,y,c);}
b)数据输入:
命令个是:
scanf(控制字符串,参数1,参数2,……)
例如:
main()
{floatx
inty;
charc;
scanf(“%f,%d,%c”,x,y,c);
}
【课堂练习】
分析程序的输出结果:
main()
{
inti=2;
i+=i-=i+i;
printf(“%d\n”,i);
}
【小结】
数据类型必须掌握整型、浮点型、字符型,还要掌握各种运算符之间的区别与联系。
【课后总结】
提纲
一、各种数据数据类型自动转换规则
二、算术运算符及表达式
1、自增i++与++i区别
1、运算符优先级结合性
2、强制类型转换运算符
【课后作业】26页3
【教学后记】
学生听课认真,没有人开小差。
能跟上老师的思路,积极思考问题。
所讲内容都能听懂,但个别容易出错的地方还有待加强。
顺序结构(数据的输入和输出)
【教学目的】使学生明白现实世界程序的顺序处理
【教学重点】理解顺序结构
【教学难点】变量占内存空间大小
【教学方法】讲授课
【教学日期】2005-11-7
【课时计划】2课时
【教学过程】
导言:
举例引出程序思想
新课内容:
一、基本结构
1.顺序结构A->B
2.选择结构A->B或A->C之中选择
3.循环结构WHILE()~~
DO~~WHILE()
二、数据输入输出语句
1.输入输出:
用函数实现
2.使用库函数“I#INCLUDE”
3.常用函数(I/0)
(1)字符数据的I/0
A.putchar(c)字符输出
putchar(‘\’)
putchar(‘\r’)
B.getchra()字符输入
(2)格式输入/输出
A.printf(格式控制,输出列表)
(1)%d十进制
例:
intI=123;
printf(“%d”,I)123
printf(“%2d,%4d”,I,I)123,123
(2)%0八进制
例:
intI=-2;
printf(“%d,%0”,I,I);I=-2I=177776
(3)%x十六进制
ffff
(4)%u输出无符号整型
unsignedinga=65535
(5)%c输出一个字符printf(“%c”,c)
printf(“%d”,c);
(6)%s输出字符串
printf(“%s”,”hello”);
printf(“%s”,”youaregoods”)
(7)%f输出实数
floatI,j
printf(“%f”,11111.1111+33333.3333)44444.4444
(8)%e指数输出
intI
I=123.456;
Printf(“%e”,I)l.234560e+002
Bscanf输入函数
(1)形式:
scanf(格式控制,地址列表)
(2)例子:
intI
scanf(“%d”,&I);
请你输入整性数据
三、C语句
1.控制语句
(1)if()~~else条件语句
(2)for()~~~循环语句
(3)while()~~循环语句
(4)do~while()循环语句
(5)cotinue循环语句
(6)break终止语句
(7)switch分支语句
(8)goto转向语句
(9)return返回语句
2.函数调用
printf()scanf()
3.表达式语句
4.空语句;
5.复合语句{}
【课堂练习】
1.输入三角形边求三角形的面积
2.从键盘输入一小写字符转化成大写字符
3.求:
ax+bx+c=0的根
【小结】
一、各种数据数据类型自动转换规则
二、算术运算符及表达式
1、自增i++与++i区别
3、运算符优先级结合性
4、强制类型转换运算符
【课后作业】34页10、11、12
【教学后记】
上课纪律很好,所有学生都能认真听课。
所讲知识都能听懂,练习能按时完成且正确率高。
对于自加、自减的综合运用,还有些学生容易出错。
下次课再强调一下。
分支结构(ifswitch语句)
【教学目的】1)使学生能熟练运用简单的语句进行顺序结构程序设计
2)运用单分支条件语句进行判定结构程序设计
3)运用双分支条件语句进行判定结构程序设计
4)运用多分支条件语句进行判定结构程序设计
【教学重点】条件语句的应用
【教学难点】条件语句的熟练使用
【教学方法】讲授课
【教学日期】2005-11-8
【课时计划】4课时
【教学过程】
导言:
我们利用简单语句可以进行程序设计,但只是简单程序设计。
在设计程序时经常会遇到根据某些情况进行选择操作,这样就得用判断语句。
新课内容:
一、语句的分类
1.表达式语句
2.空语句
3.复合语句
4.函数调用语句
5.控制语句
二、if语句
1.If语句的一般形式
命令格式:
if(条件)语句1
[else语句2]
例如:
#include”stdio.h”
main()
{inta,b,s1,s2;
printf(“请输入两个整数a,b:
”);
scanf(“%d,%d”,&a,&b);
s1=a+b;
s2=a*b;
if(s1>s2)
printf(“a与b的和大于a与b的积”);
else
printf(“a与b的积大于等于a与b的和”);
}
2.If语句中的复合语句
如果两个分支中需要执行的语句不止一条,必须用“{}”括起来。
例如:
#include”stdio.h”
main()
{floata,b,u,v,s,r;
printf(“请输入两个整数a,b:
”);
scanf(“%d,%d”,&a,&b);
if(s1>s2)
{r=a*a-b*b;
s=a/b;
}
else
{r=b*b-a*a;
s=a/b+4;
}
u=(r+s)*(r+s);
v=u*(r+s);
printf(“u=%f,v=%f”,u,v);
}
3.较复杂的条件表达式
4.If语句的嵌套
了解if语句的嵌套规则
例如:
输入a,b两个数,比较并输出结果。
Main()
{inta,b;
printf(“pleaseinputtwointeger”);
scanf(“%d,%d”,&a,&b);
if(a)b)printf(“a)b”);
elseif(a
elseprintf(“a=b”);
}
5.Switch语句
1)语句的格式
switch(表达式)
{case常量表达式1:
语句序列1;
case常量表达式2:
语句序列2;
……
……
……
case常量表达式n:
语句序列n;
default:
语句序列n+1;
}
2)例如:
2000年元旦是星期六,求出2000年的任何一个日期是星期几
【课堂练习】50页1、2、4
【小结】
这节课主要掌握以下内容
1)运用单分支条件语句进行判定结构程序设计
2)运用双分支条件语句进行判定结构程序设计
3)运用多分支条件语句进行判定结构程序设计
【课后作业】50页5
【教学后记】
学生听课认真,能积极思考问题,回答老师提问,听课教学效果好!
对于语法格式都能掌握,但还需做大量练习巩固。
循环语句的使用
【教学目的】1)掌握while语句的使用
2)掌握while语句的结构
3)掌握for语句的使用和结构
【教学重点】1)掌握while语句的使用
2)掌握while语句的结构
3)掌握for语句的使用和结构
【教学难点】循环语句的使用和执行过程
【课程类型】讲授课
【教学日期】2005-11-10
【课时计划】2课时
【教学过程】
导言:
如果在设计程序时有些语句需进行重复执行才能完成的就的使用循环结构。
新课内容:
一、while语句
1.语句的结构
while(表达式)循环语句;
2.功能:
但条件表达式为真时执行循环语句,当条件表达式为假时跳过循环语句,执行循环语句的下一条语句。
3.例1:
计算1+2+3+……+100
main()
{intsum=0,i=1;
while(i<=100)
{sum+=i;
i++;
}
printf(“%d”,sum);
}
例2:
计算从10到10000之间的10的幂的平方根
4.练习输入一组数据,以0作为结束标志,计算这批数的平均值,并分别统计其中的正整数和负整数的个数
二、for语句
1.语句的结构
for(表达式1;表达式2;表达式3)循环语句;
2.功能:
但条件表达式2为真时执行循环语句,当执行完循环语句后执行表达式3,直到条件表达式2为假时跳过循环语句,执行循环语句的下一条语句。
3.例1:
计算1+2+3+……+100
main()
{intsum,i;
for(sum=0,i=1;i<=100;i++)
sum+=i;
printf(“%d”,sum);
}
例2:
计算从10到10000之间的10的幂的平方根
三、比较两种循环的特点
1.执行过程
2.适用的地方
【课堂练习】找出在1000以内能被2,3,5整除的数
【小结】这节课主要掌握以下内容:
while语句的使用和while语句的结构,for语句的使用方法和结构及两种循环的特点
【课后作业】64页2、5、6、7、8
【教学后记】
学生认课认真,通过课堂练习掌握了循环语句的语法格式和简单应用。
涉及复杂算法应用时就有些吃力。
解决方法:
上机练习时督促学生认真完成课后作业题,把书上相关例题,再研究一遍。
do—while语句及循环嵌套
【教学目的】1)掌握do—while循环语句的方法和结构,能够灵活应用循环语句。
2)循环的嵌套
【教学重点】能够灵活应用循环语句及循环的嵌套。
【教学难点】能够灵活应用循环语句。
【课时计划】2课时
【教学日期】2005-11-14
【教学方法】讲授课
【教学过程】
导言:
提问上节课的循环语句。
新课内容:
一、do—while语句
1)语句的结构
do循环语句;while(表达式);
2)功能:
但条件表达式为真时执行循环语句,当条件表达式为假时跳过循环语句,执行循环语句的下一条语句。
3)例1:
计算1+2+3+……+100
main()
{intsum=0,i=1;
do
{sum+=i;
i++;
}
while(i<=100)
printf(“%d”,sum);
}
例2:
计算从10到10000之间的10的幂的平方根
4)练习:
用迭代公式求整数a的平方根。
二、循环语句的嵌套
1.在一个循环内可以包含另一个循环,称为循环的嵌套
2.例:
求整数2——100中的素数。
main()
{int,i,n,num;
for(n=3;num=0;n<=100;n++)
{i=2;
while(i<&&n%i!
=0)
i++;
if(i=n){
printf(“%d”,n);
num++;}
}
printf(“%d”,num);
}
3.例2:
打印小九九表(打印格式如下)
1
24
369
三、几种循环的比较
四、break、continue、goto语句
【小结】这节课重要的内容是循环的嵌套,这是个难点。
【课堂练习】
1、输出100~200中不能被7整除的数
2、输出1~20中能被3整除的数,并求出他们的和
3、求出100~200中的全部素数。
【教学后记】
前三个知识点学生能很快掌握,但素数的判断、运用就不太理解,通过两个例子的讲解,基本理解了素数判断的方法和程序实现。
以后再讲素数时应先讲两个简单例子,在学生理解的基础上,然后再扩展。
Break和Continue应用举例
【教学目的】为了使学生能够很好的掌握循环,对这章节进行练习
【教学重点】熟练掌握循环语句
【教学难点】熟练掌握循环语句
【教学方法】讲授课
【教学日期】2005-11-16
【课时计划】2课时
【教学过程】
导言:
循环是程序设计中比较难理解的一部分,也是比较重要的内容。
新课内容:
五、例题讲解
1.最大公约数和最小公倍数
main()
{intr,m,n,temp,gec,lcm;
printf(“pleaseinputm,n:
”);
scanf(“%d,%d“,&m,&n);
lcm=m;
while(m%n!
=0)
{r=m%n;
m=n;
n=r;
}
gce=n;
lcm=lcm/gcd;
printf(“gcd=%d,lcm=%d”,gcd,lcm);
}
2.打印指定月份的日历
3.用二分法求方程的根。
求方程x3+4x2+x+1=0在[-5,5]之间的近似根
六、课堂练习:
1.输出1900——2000年中所有的润年。
每输出三个年号换一行
main()
{inti,n=;
printf(“打印润年”);
for(i=1990;i<=2000;i++)
{if(i%4==0&&i%100!
=0||i%400==0)
n++;
if(n%3==0)printf(“\n”);
printf(“%d”,i);
}
}
2.计算并输出一个整数各位数字之和。
如5331,各位之和是5+3+3+1=12。
【课堂练习】见上
【小结】理解if的嵌套使用方法,灵活使用swich语句
【课后作业】
64页9,10
【教学后记】
学生听课认真,对所讲内容都能掌握。
课堂练习能按时正确完成。
一维数组、二维数组
【教学目的】1)理解构造类型的特性。
2)掌握数组定义的格式及数据的应用方法
3)综合运用数组。
【教学重点】综合运用数组。
【教学难点】综合运用数组。
【教学方法】讲授课
【教学日期】2005-11-18
【课时计划】2课时
【教学过程】
导言:
我们应用每一个变量都的一一定义如果想一次定已多个变量这时就的使用数组。
新课内容:
一、数组类型的定义
类型名数组名[下标]
特点:
可以定义多个分量,但这些分量只能存储同一个类型的数据。
二、数组分量的引用
例如:
inta[10]-----定义一个有10个分量的数组
分量的引用a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a[0]
三、一维数组的应用
例1:
把1到10这10个数存入数组变量,并反向输出
main()
{inta[10],i;
for(I=0;I<=9;I++)
a[I]=I+1;
for(I=9;I>=0;I--)
printf(“%d”,a[I]);
}
例2:
从键盘输入字符,记下“a”到“z”这些小写字母出现的次数,当输入!
号时结束输入。
Main()
{intI,a[26];
charch;
for(I=0;I<26;I++)
a[I]=0;
while(ch!
=‘!
’)
{scanf(“%c”,&ch);
if(ch>=’a’&&ch<=’z’)
a[I]=a[ch-97]+1;
}
for(I=0;I<26;I++)
printf(“%d,a[I])
}
四、二维数组的定义
类型名数组名[常量表达式1][常量表达式2]
特点:
可以定义多个