当前位置:首页 » 编程语言 » c语言程序教案

c语言程序教案

发布时间: 2022-06-15 01:26:52

1. 求c语言说课稿

《C语言程序设计》说课教案

授课班级:07应用电子

授课课时:2课时

授课地点:计算机实验室

课题 制作数字电子时钟―――循环嵌套

一、教学目标

1、通过本次课教学,学生能进一步理解顺序、分支和循环三种基本结构,特别是While、Do-While、for三种循环循环语句的使用;

2、掌握循环嵌套概念;

3、掌握多种循环程序设计方法并根据任务要求 “制作数字电子时钟”;

4、通过本次任务,了解gotoxy()和Clrscr()函数的作用,并掌握这两个函数在实际应用程序中的使用方法。

5、技能目标:培养学生逻辑思维能力、综合运用知识的能力和自主学习能力;

二、教材分析

选用教材为李志球、刘昊编着的《C语言程序设计教程》(第二版),该教材由电子工业出版社出版,教材特点如下:

1、在内容上体现科学性、时代性、实用性,编排上面向应用,理论与实践有机结合;

2、采用任务驱动、项目教学等教学手段,全书围绕项目“学生成绩管理系统”作为案例,贯穿整个课程进行难点讲解,以实际应用作为突破口,使学生能够真实体验到知识的实际应用,提高兴趣,促进理解;教学与项目开发融为一体,浅显易懂,符合高职学生认知规律。

3、实验实训环节结合教学内容,实验项目丰富。课程设计中案例学生熟悉。

本节课教学内容参考教材第4章的4.4节:循环嵌套。

三、学生分析

07应用电子是普招类(高中毕业生)学生,它们高中期间文化基础较扎实,但计算机专业知识薄弱,C语言程序设计是他们学习的第一门计算机语言类课程,开始学习时较困难,但入门提高较快。本次课的教学内容中循环嵌套概念他们很容易理解,简单的多重循环编程对他们不难,但循环嵌套在实际应用中的编程较为困难,如本次课的任务“制作数字电子时钟”牵涉许多知识,如屏幕定位、输入初始时间等。

另外,高职学生对于上机实际操作要比学习理论知识更为有兴趣;简单的实验项目都能完成,但解决实际应用问题的能力也较差。因此,在教学中通过演示让学生有感性认识,提高学习兴趣;通过提出问题让学生讨论议一议,主动思考如何解决;通过一个教学任务让学生动手做一做。

四、教学重点、难点及解决办法

1、本次课教学重点

1)循环嵌套概念;

2)gotoxy()和Clrscr()函数使用方法;

3)循环嵌套结构程序设计方法及实际应用。

在教学过程的叙述中,要抓住教学的重点、最能体现教学理念的内容和最能展示教学艺术的环节,作较为详细的叙述。

2、本次课教学难点

1)循环嵌套编程

2)算法分析及程序结构

3)编程完成“制作数字电子时钟”

3、难点解决办法

1)通过演示让学生有感性认识,并从for语句基本语法入手,逐步引入循环嵌套概念,弱化实用性不强的细节;

2)围绕任务“制作数字电子时钟”程进行难点讲解,以实际应用作为突破口,使学生能理解循环嵌套在实际中的应用,提高学习兴趣;

3)针对难点设置上机实际操作内容,进一步掌握循环嵌套程序设计方法。

4)在实验实训过程中布置任务项目,通过实践环节进一步理解和掌握重点难点,达到学习目的。

五、教学理念、方法及手段

本次课采用理(论)实(践)一体化教学理念通过任务驱动(项目教学)、讲练结合等教学手段。

1、任务驱动:通过“制作数字电子时钟”这一任务,掌握循环嵌套程序设计认方法。并掌握相应知识点,突出重点,分解难点。

2、讲练结合:授课地点为计算机实验室,采用边讲边练的教学互动形式。教学过程中,适当安排学生在计算机上进行进行实际程序设计,通过运行调试自己设计的程序,让学生亲自观察和体验程序设计的成功感受,加深知识的理解。

六、教学设计(时间分配)

1、任务提出,演示成果程序,明确目标,提出要求。(2分钟)

(1)演示成果程序,在屏幕固定位置显示“制作数字电子时钟”。

(2)任务分析:完成本次课的任务所需知识―――三种基本程序设计结构。

2、知识回顾(2分钟)

循环结构概念、三种循环语句(while、do-while、for)、当型和直到型循环、重点语句for语句应用、注意事项。

3、上机实训1(2分钟)

简单程序:用for语句编程,实现在屏幕上显示0、1、2……59。

(上机技能训练的操作、指导、辅导过程,以学生实际操作动手为主,教师进行辅导指导、师生共同探讨完成,应充分体现学生的主体地位)

思考提问:如何让0-59重复变化,以接近实际生活中秒的变化情况。

4、导入新课(6分钟)

(1)通过练习1,分析在屏幕上显示秒的变化程序中存在的问题。一是数字“0-59”以滚动卷屏方式显示;二是每个数字显示速度太快,如何实现以实际一秒时间显示一个数。

第一个问题使用gotoxy()函数或clrscr()函数解决;第二个问题在程序中每显示一秒后都设置一个时间延迟,时间延迟用方法空循环结构实现,它的位置在循环内屏幕每显示一个数值后。通过讲解解决第二个问题的程序结构,引入本次课新知识―――循环嵌套概念。

for(s=0;s<=59;s++)

{printf("\%2d",s);

for (i=1;i<=200000000;i++); }

(2)循环嵌套概念、结构和程序设计时注意事项。

5、上机实训2(5分钟)

使用循环嵌套结构编程,在屏幕固定位置能以分秒变化的时钟:

10:11

编程和上机操作时要理解两点:一是gotoxy()函数的使用,二是空循环实现延时循环终值的调试,以接近实际生活中时间变化。

本部分内容所用到知识是本次课的核心,是基本的能力目标,所以教学时要以重点内容处理。

6、程序设计讲解(4分钟)

编程完成本次课任务,制作一个带有时、分、秒变化的数字电子时钟。(四重循环)。

(1)算法分析

(2)定义变量及类型

(3)程序结构设计

(3)源程序核心结构编程

7、上机实训3(5分钟)

(1)调试程序时要注意观察程序运行情况,调整空循环变量i的终值,尽量与实际运转时间一致。计算机运行速度越快,则这个数值越大。

(2)本程序需运行24小时才能结束,如果要停止程序运行,可以按Ctrl-C或连续按两次Ctrl-Break强制中断程序运行。

(3)修改变量i类型,将它定义为整形后再次运行程序,观察运行结果,分析程序出错原因,提醒以后编程时注意。

8、提出问题,任务完善―――源程序提高与扩展 之一(4分钟)

前面的程序每次运行都从0点0分0秒开始,不能从当前实际时间开始运行。解决问题的办法可以在程序第一次循环开始时输入一次当前实际时间。为了只在开始运行时设置一次初始时间,可以引入一个逻辑变量first,其初始值为0 ,输入初始时间后,将其值置为非0。在后面程序运行中,通过if语句控制不再需要输入初始时间。

9、上机实训4(5分钟)

上机修改程序,使数字电子钟能从指定时间(输入初始时间)开始运转。

10、思考和作业(5分钟)

(1)源程序提高与扩展 之二:本程序只能运行24小时,请同学们将程序进一步改进,使它能显示年、月、日、星期、时、分、秒等数据的电子钟。

(2)“九九乘法表”。

10、课堂小结及作业(5分钟)

11、Question & Answer(1-2分钟)

七、学法指导

1、鼓励学生自主探索和合作交流。引导学生自主地从事观察、分析、交流等活动,使学生形成对计算机语言知识有效的学习策略。

2、鼓励与提倡解决问题的多样性,引导学生在与他人的交流中去选择合适的策略,丰富自己的思维方式,获得成功的体验和不同的发展。

3、引导学生将所学计算机知识应用到其他学科中去,使学生觉得计算机有很用,同时也培养了学生逻辑思维能力。

2. 求冒泡排序C语言的教案,完整版!高分

#include<stdio.h>
void main()
{
int i,j,p,q,s,a[10];
printf("\n input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++){
p=i;q=a[i];
for(j=i+1;j<10;j++)
if(q<a[j]) { p=j;q=a[j]; }
if(i!=p)
{s=a[i];
a[i]=a[p];
a[p]=s; }
printf("%d",a[i]);
}
}
______
本例程序中用了两个并列的for循环语句,在第二个for 语句中又嵌套了一个循环语句。第一个for语句用于输入10个元素的初值。第二个for语句用于排序。本程序的排序采用逐个比较的方法进行。在i次循环时,把第一个元素的下标i赋于p,而把该下标变量值a[i]赋于q。然后进入小循环,从a[i+1]起到最后一个元素止逐个与a[i]作比较,有比a[i]大者则将其下标送p,元素值送q。一次循环结束后,p即为最大元素的下标,q则为该元素值。若此时i≠p,说明p,q值均已不是进入小循环之前所赋之值,则交换a[i]和a[p]之值。 此时a[i]为已排序完毕的元素。输出该值之后转入下一次循环。对i+1以后各个元素排序。

3. C语言程序设计

5.3 if语句
用if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。C语言的if语句有三种基本形式。
5.3.1 if语句的三种形式
1. 第一种形式为基本形式:if
if(表达式) 语句
其语义是:如果表达式的值为真,则执行其后的语句, 否则不执行该语句。其过程可表示为下图。

【例5.3】
main(){
int a,b,max;
printf("\n input two numbers: ");
scanf("%d%d",&a,&b);
max=a;
if (max<b) max=b;
printf("max=%d",max);
}

本例程序中,输入两个数a,b。把a先赋予变量max,再用if语句判别max和b的大小,如max小于b,则把b赋予max。因此max中总是大数,最后输出max的值。
2. 第二种形式为: if-else
if(表达式)
语句1;
else
语句2;
其语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。
其执行过程可表示为下图。

【例5.4】
main(){
int a, b;
printf("input two numbers: ");
scanf("%d%d",&a,&b);
if(a>b)
printf("max=%d\n",a);
else
printf("max=%d\n",b);
}

输入两个整数,输出其中的大数。
改用if-else语句判别a,b的大小,若a大,则输出a,否则输出b。
3. 第三种形式为if-else-if形式
前二种形式的if语句一般都用于两个分支的情况。 当有多个分支选择时,可采用if-else-if语句,其一般形式为:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;

else if(表达式m)
语句m;
else
语句n;
其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。 if-else-if语句的执行过程如图3—3所示。

【例5.5】
#include"stdio.h"
main(){
char c;
printf("input a character: ");
c=getchar();
if(c<32)
printf("This is a control character\n");
elseif(c>='0'&&c<='9')
printf("This is a digit\n");
elseif(c>='A'&&c<='Z')
printf("This is a capital letter\n");
elseif(c>='a'&&c<='z')
printf("This is a small letter\n");
else
printf("This is an other character\n");
}

本例要求判别键盘输入字符的类别。可以根据输入字符的ASCII码来判别类型。由ASCII码表可知ASCII值小于32的为控制字符。 在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母, 在“a”和“z”之间为小写字母,其余则为其它字符。 这是一个多分
支选择的问题,用if-else-if语句编程,判断输入字符ASCII码所在的范围,分别给出不同的输出。例如输入为“g”,输出显示它为小写字符。
4. 在使用if语句中还应注意以下问题:
1) 在三种形式的if语句中,在if关键字之后均为表达式。 该表达式通常是逻辑表达式或关系表达式, 但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。
例如:
if(a=5) 语句;
if(b) 语句;
都是允许的。只要表达式的值为非0,即为“真”。
如在:
if(a=5)…;
中表达式的值永远为非0,所以其后的语句总是要执行的,当然这种情况在程序中不一定会出现,但在语法上是合法的。
又如,有程序段:
if(a=b)
printf("%d",a);
else
printf("a=0");
本语句的语义是,把b值赋予a,如为非0则输出该值,否则输出“a=0”字符串。这种用法在程序中是经常出现的。
2) 在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。
3) 在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。但要注意的是在}之后不能再加分号。
例如:
if(a>b)
{a++;
b++;}
else
{a=0;
b=10;}
5.3.2 if语句的嵌套
当if语句中的执行语句又是if语句时,则构成了if 语句嵌套的情形。
其一般形式可表示如下:
if(表达式)
if语句;
或者为
if(表达式)
if语句;
else
if语句;
在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多个else重叠的情况,这时要特别注意if和else的配对问题。
例如:
if(表达式1)
if(表达式2)
语句1;
else
语句2;
其中的else究竟是与哪一个if配对呢?
应该理解为:
if(表达式1)
if(表达式2)
语句1;
else
语句2;
还是应理解为:
if(表达式1)
if(表达式2)
语句1;
else
语句2;
为了避免这种二义性,C语言规定,else 总是与它前面最近的if配对,因此对上述例子应按前一种情况理解。
【例5.6】
main(){
int a,b;
printf("please input A,B: ");
scanf("%d%d",&a,&b);
if(a!=b)
if(a>b) printf("A>B\n");
else printf("A<B\n");
else printf("A=B\n");
}

比较两个数的大小关系。
本例中用了if语句的嵌套结构。采用嵌套结构实质上是为了进行多分支选择,实际上有三种选择即A>B、A<B或A=B。这种问题用if-else-if语句也可以完成。而且程序更加清晰。因此,在一般情况下较少使用if语句的嵌套结构。以使程序更便于阅读理解。
【例5.7】
main(){
int a,b;
printf("please input A,B: ");
scanf("%d%d",&a,&b);
if(a==b) printf("A=B\n");
else if(a>b) printf("A>B\n");
else printf("A<B\n");
}

4. C语言求编程教学

先贴代码,有兴趣的话可以看看下面的原理。

#include<reg52.h>

#defineCO_12_MHZ
/*
*Timing50milliseconds
*/
#defineTH_VALUE(0x3c)
#defineTL_VALUE(0xb0)

#if(definedCO_12_MHZ)
#defineTIME_3_SECOND(60)
#elif(definedCO_6_MHZ)
#defineTIME_3_SECOND(30)
#endif

sbitled=P0^0;
intflag=0;

voidtime_3_second(void)interrupt1{

TH0=TH_VALUE;/**/
TL0=TL_VALUE;/**/
if(++flag==TIME_3_SECOND){
led=~led;
flag=0;
}
}

intmain(void){

led=1;
TMOD=0x01;/*Selectionmode1*/
TH0=TH_VALUE;/*Settimeconstantforhigh8bit*/
TL0=TL_VALUE;/*Settimeconstantforlow8bit*/
TR0=1;/*StartupT0*/
ET0=1;/*EnableT0interrupt*/
EA=1;/*EnableCPUinterrupt*/

while(1);

return0;
}

根据公式 t = Tc * (2^L - TC), t为需要定时的时间,L是计数长度,根据选择定时的模式而定,Tc为机器周期,所以Tc=12/Fosc, Fosc为晶振频率,TC是需要求的值;那么就有:

TC = 2^L - (Fosc * t)/12;

我的板子晶振为12Mhz,所以选择模式1定时方式,最长定时时间为65.536ms,那么一次定时显然不够,所以每次定时到了之后flag加1,直到flag等于60(s = 60 * 50ms)。如果晶振是6Mhz,也是一样的方法计算,但是6Mhz的晶振在模式1下的最长定时时间为131.072ms。这里为了方便,如果晶振为6Mhz,那么选择定时100ms,这样刚好TC都为0x3cb0。如果你的板子为6Mhz,那么只需要把 #define CO_12_MHZ 改成 #define CO_6_MHZ 即可。有用请点一下采纳,为了回答这个问题我又重新去翻以前的书来看。

5. 求《C语言程序设计》(谭浩强主编 第三版 清华大学出版社)的教学视频下载

链接:

提取码: 58zn

C语言程序设计:

6. C语言全套教学视频

C语言程序设计

提取码:8uar复制这段内容后打开网络网盘手机APP,操作更方便哦!

若资源有问题欢迎追问~

7. c语言入门教学

楼主,你可以去编程入门网,那里有挺多知识点的,很多语言都有,很适合初学者,你也可以去CSDN,那里有很多源代码提供下载,也有论坛,呵呵,你也不要忽视网络贴吧,知道,贴吧是学习很多课本没有东西的地方,知道,你需要看解决答案,这样很有收获,你也可以去中国编程网,不过,我觉得一楼也是有道理的,看看书掌握知识点,网上我觉得主要还是提高的地方哦……呵呵……关于怎么学,我是这么过来的,每看一节书,做一节课后习题,其实初学主要还是学习语法和算法(解决问题的方法),多上机自己写程序,写不出来看答案的算法,自己再写一边,关键这个阶段还是积累为主,基本知识学好了,可以学深入编程,不过你需要有熟悉的语法,可以写一些小程序:学生成绩管理系统等等,就过关了,然后可以学习链表,图像编程,等等高级编程……呵呵……努力一定有回报的……加油吧…

8. c语言程序设计(1) 小学生计算机辅助教学系统

right_prompt()
{
intx;

x=rand()%4+1;
switch(x){
case1:
printf("VeryGood! ");
break;
case2:
printf("Excellent! ");
break;
case3:
printf("Nicework! ");
break;
case4:
printf("Keepupthegoodwork! ");
break
}
}

wrong_prompt()
{
intx;

x=rand()%4+1;
switch(x){
case1:
printf("No.Pleasetryagain. ");
break;
case2:
printf("Wrong.Tryoncemore. ");
break;
case3:
printf("Don’tgiveup! ");
break;
case4:
printf("Notcorrect.Keeptrying. ");
break;
}
}

热点内容
行李箱的密码锁如何更改密码 发布:2025-04-10 02:15:35 浏览:402
我的世界怎样把人踢出服务器 发布:2025-04-10 02:14:05 浏览:230
网页指令脚本 发布:2025-04-10 02:14:03 浏览:60
超可爱解压笔 发布:2025-04-10 02:08:17 浏览:442
安卓如何打开自动备份 发布:2025-04-10 02:07:34 浏览:372
数据编译文件是什么意思 发布:2025-04-10 01:58:42 浏览:605
安卓cleo怎么用 发布:2025-04-10 01:57:16 浏览:226
为什么要多次编译 发布:2025-04-10 01:57:10 浏览:724
配置管理需要培训哪些 发布:2025-04-10 01:55:43 浏览:676
刷了鸿蒙系统如何还原到安卓系统 发布:2025-04-10 01:47:16 浏览:556