版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程教案课程名称:程序设计基础(C语言)授课对象:本科一年级开课单位:教研室(教学系):课程负责人:2026年3月1日
课程教案首页课程名称程序设计基础(C语言)Programdevelopmentfoundation(Clanguage)课程编码授课学期2025-2026-2考核方式考试学分3授课年级本科一年级专业班级全校非计算机专业学生人数总学时数64线下学时48线上学时16教学目标C语言是在众多高级语言中,是目前为止最为精典,且最经久不衰的语言.它是当今世界最受欢迎的编程语言,连续多年稳居TIOBE世界编程语言排行榜第一。本课程的教学根本目标是培养学生编程的逻辑思维能力,训练学生的程序设计能力,锻炼编写代码的能力以及编程技巧的积累,最终以培养学生的计算思维作为教学的终极目标。从而使学生学会利用程序语言去建模、解决一些本专业、日常生活等方面的事务处理、数据处理和数学计算等问题。同时,学完该课程之后,同学们可以面向全国计算机等级考试二级C科目考试。教学重点1、C语言概述2、C语言基础3、顺序结构程序设计4、选择结构程序设计5、循环结构程序设计6、数组7、函数教学难点C语言基础2、程序基本结构3、数组4、函数5、指针教学内容教学进程1、C语言概述(2学时)2、C语言基础(6学时)3、顺序选择程序设计(2学时)4、选择结构程序设计(8学时)5、循环结构程序设计(8学时)6、数组(8学时)7、函数(8学时)8、指针(8学时)9、结构体、共用体和枚举(6学时)10、文件(4学时)**综合实践项目(4学时)教学方法采用“程序设计基础(C语言)”将“理实一体”和“线上线下”教学方法,通过“线下”的“理实一体”教学模式,将原有在教室的理论课也改到机房上课,这样在老师讲解的同时,学生就能够根据老师的讲解能够立马在开发环境中进行实践;在“线上”不仅为学生们准备了用于自学的视频、文本等资料,为了更公正的反映学生成绩,使用在线上考试系统进行平时测试和期末结课考试,并且,通过线上远程辅导答疑,教师可以随时帮助学生解决在程序设计、调试过程中遇到的问题。教材与参考书教材:1.《程序设计基础(C语言)》第二版微课版,刘颖、李远辉、姚雪梅,人民邮电出版社,2025年9月2、《C语言基础与人工智能实践》数字教材,刘颖、李远辉、姚雪梅,人民邮电出版社,2025年9月参考书:全国计算机等级考试二级C,电子科技大学出版社会,2024年1月课程网站/course-ans/ps2/99746授课单元教案课程单元C语言概述学时2章节第一章专题教学目标设计1、C语言的发展历程2、C语言的特点3、C语言的关键字与标识符4、C语言的简单实例5、集成开发环境教学重点难点及处理教学重点:1、C语言的基本语法符号、标识符的概念2、C语言程序结构,3、C语言程序的编辑、编译、连接和运行过程教学难点:1、C语言程序结构2、C语言程序的编辑、编译、连接和运行过程教学媒体和资源选择硬件环境:连接到Internet的多媒体网络教室(每人一机),大屏幕投影仪,联网智能手机,耳麦,音响设备,激光投影笔等。软件资源:PPT课件、网络教学软件、VC++软件、学习通手机APP、Zoomit板书演示辅助软件等作业课前:请同学们自己在互联网或图书馆进行资料查询:了解目前我国在程序(软件)设计和开发方面的现状;线上提交问卷调查,老师了解学生基础情况。实践及课后:(1)(1)完成VC++2010安装,在环境中熟悉程序编辑-编译-连接-运行全过程;(2)完成课堂测验1和课后作业1(见学习通或数字教材)(3)AI赋能,解锁未来(4)双向对错演示视频教学设计1、C语言的发展(1)C语言的发展源于人们希望用高级语言编写操作系统。(C-BCPL第二字母)ALGOL60(高级语言)->CPL(硬件支持)-BCPC->B->C->标准C->ANSIC->ISOC(2)语言既具有高级语言特性,又具有低级语言特性-中级语言。2、C语言的特点C语言是从ALGOL60、CPL发展而来,既具有一般高级语言特性,又具有低级语言特性。7个特点。C语言的关键字与标识符(1)关键字:有特殊含义和特定用途的标识符。C语言关键字绝大多数是由小写字母构成的字符序列。(2)标识符标识符的概念及其使用规则,包括系统定义的32个关键字。标识符只能由下划线、数字0~9与大小写字母a~z,A~Z构成。TurboC最多识别由32个字符组成的标识符,MicrosoftC最多识别由8个字符组成的标识符。标识符的首个字符必须是字母或下划线,而不能是数字或其它符号。C语言中大小写字母是敏感的,即在标识符中,大写字母和小写字母代表不同的意义。例如:Name和name是两个不同的标识符。标识符不能使用系统的关键字,因为关键字是系统保留的,它们已有特定的含义。系统预定义标识符,如预编译命令名(define、include)、系统函数名(scanf、printf、getchar、putchar)等可作为用户标识符,但建议不作它用。尽量作到“见名知义”,例如max、score等,而不用象abc、x1、y2等标识符。避免使用易混字符,如1、l、i;0、o;2、z等。ANSIC定义的关键字共32个:auto double int struct break elselong switch case enum register typedefchar extern return union const floatshort unsigned continue for signed voiddefaultgoto sizeof volatile do ifwhilestatic *用来对各种用户定义对象如变量、函数、数组、文件等。(3)语句语句是组成程序的基本单位,它能完成特定操作,语句的有机组合能实现指定的计算处理功能。C语言中,每条语句以分号结束。(4)标准库函数标准库函数不是C语言本身的组成部分,它是由C编译系统提供的一些非常有用的功能函数。不同的编译系统提供的库函数有所不同。一般有数学函数、字符函数和字符串函数、输入输出函数、动态分配函数和随机函数等几个大类。4、简单的C语言程序通过简单的C语言程序举例,总结C语言程序的结构。例1:在屏幕上输出一串字符“知识点亮人生,学习成就未来!欢迎进入C语言的世界!”。程序如下:#include<stdio.h>intmain(){printf("知识点亮人生,学习成就未来!欢迎进入C语言的世界!\n");return0;}例2:输入两个整数,求两数之和。程序如下:#include<stdio.h>intmain(){ inta,b,sum; /*定义变量*/ scanf("%d%d",&a,&b); /*输入变量的值*/ sum=a+b; /*求和*/ printf("sum=%d\n",sum); /*输出两数的和值*/ return0;}例3、输入两个整数,求两数之和。(求和功能使用自定义函数完成)#include<stdio.h>intsum_f(intx,inty) /*定义函数sum_f,形式参数x、y为整型*/{ ints; /*定义整型变量s*/ s=x+y; /*将x与y相加求和,并存入变量s之中*/ returns; /*返回,并将s的值作为函数运算结果带回本函数被调用之处*/}intmain(){ inta,b,sum; /*定义变量*/ scanf("%d%d",&a,&b); /*输入变量的值*/ sum=sum_f(a,b); /*调用函数sum_f求出a、b之和,存入变量sum之中*/ printf("sum=%d\n",sum); /*输出两数的和值*/ return0;}总结:C程序由函数构成,函数是C程序的基本单位(1)一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其它函数。(2)被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编写设计的函数。(3)main函数是每个程序执行的起始点。5、集成开发环境(1)主流集成开发环境介绍Code::Blocks是一款免费、跨平台的C/C++集成开发环境,它适合初学者和有一定开发经验的开发者使用,可以方便地构建和运行C语言程序。Eclipse是一款免费、跨平台的集成开发环境,支持多种程序设计语言,它提供了丰富的插件,开发者可以根据需要添加各种功能。Dev-C++是基于Windows系统的适合初学者使用的轻量级C/C++集成开发环境,安装与调试方便,支持多种语言,是适合C语言初学者的集成开发环境。VisualStudio系列是微软公司开发的可视化程序开发工具,支持多种程序设计语言。(2)源程序、目标程序、可执行程序的概念(补充)。(3)C语言程序的实现:编辑、编译、连接、运行6、AI赋能:解锁未来用AI大模型查询常用的AI平台及其特点,以及它们各自具有的独特功能和应用场景。教学反思概念的提出采用启发式教学方法,通过现场演示等方法加以说明、理解和巩固,突出重点;整个内容的安排采用由浅入深的方法,例题的选用采用逐步加深,由概要逐渐细化。授课单元教案课程单元C语言基础学时6章节第二章专题教学目标设计1、C语言的基本数据类型2、常量和变量3、运算符与表达式4、数据类型转换教学重点难点及处理教学重点:1、C语言的基本数据类型2、常量和变量3、运算符与表达式4、数据类型转换教学难点:1、自增、自减运算2、运算符优先级及结合性教学媒体和资源选择硬件环境:连接到Internet的多媒体网络教室(每人一机),大屏幕投影仪,联网智能手机,耳麦,音响设备,激光投影笔等。软件资源:PPT课件、网络教学软件、VC++软件、学习通手机APP、Zoomit板书演示辅助软件等作业课前:预习,完成视频观看2、实践及课后:(1)完成课堂测验2与课后作业2(2)AI(2)AI赋能,解锁未来(3)双向对错演示视频教学设计数据是程序处理的对象,是程序设计中的重要组成部分。C语言为我们提供了丰富的数据类型和运算符及语法规则。1、数据类型整型(整型(int)数据类型基本类型整型单精度型(float)字符型(char)长整型(long)短整型(short)浮点型双精度型(double)枚举类型(enum)共用体类型(union)构造类型结构体类型(struct)数组类型(第6章)空类型(void)指针类型(*)C语言的数据类型(整型、实型、字符型),数据的类型、表示形式和数据表示范围的定义。2、常量(1)常量分类(2)C语言中特殊的字符常量--转义字符。(3)字符串常量的定义和表示形式,以及与字符常量的区别方法。(4)符号常量的概念和定义方法。#definePI3.14159这种常量定义在C语言中被称之为“宏定义”,具体方法将在本书第7章中介绍。例:输入圆的半径,计算周长和面积#definePI3.14159Intmain(){floatr,c,s;scanf("%f",&r);c=2*PI*r;s=PI*r*r;printf("r=%f,c=%f,s=%f\n",r,c,s);}3、变量变量是指以标识符为名字,其值可以改变的量,代表计算机内存中的某一存储空间,该存储空间中存放的数据就是变量的值。分为整型变量、浮点型变量、字符型变量在同一程序块中,变量不能被重复定义。使用变量时必须“先定义,后使用”。4、运算符与表达式(1)算术运算符+:加法/正号;-:减法/负号;*:乘法;/:除法;%:取余或模自增与自减运算符(重点和难点)(2)关系运算符(3)逻辑运算符*所有非零数据皆为真(1)(4)赋值运算符=(数学上的等号),语法形式:<变量>=<表达式>结合性:自右至左;优先级:第14级复合赋值运算符:共10个,由赋值运算符与算术、位运算符组成,复合运算符是一个运算符,但功能上,是两个运算符功能的组合(5)逗号运算符子表达式1,子表达式2,…,子表达式n从左至右依次计算各子表达式的值,表达式的值为最后一个子表达式的值,优先级最低,从左到右结合(6)条件运算符C语言中唯一的一个三目运算符,右结合性,优先级别较低,比赋值运算符和逗号运算符高;当多个条件表达式嵌套使用时,每个后续的“:“总是与前面最近且没有配对的“?“相联系*附录3运算符的优先级与结合性总结:!>算术>关系>&&>||>条件>赋值>逗号5、数据类型转换三种转换方式:自动转换,赋值转换,强制转换6、AI赋能:解锁未来(1)了解C语言在我国大飞机研发上的应用。(2)见教材P25教学反思概念的提出采用启发式教学方法,通过现场程序编制等方法加以说明、理解和巩固,突出重点;整个内容的安排采用由浅入深的方法,例题的选用采用逐级加深难度,针对难点重点特别设计相关例题,帮助学生掌握繁多的基本语法,尽量避免要学生死记硬背。授课单元教案课程单元顺序结构程序设计学时2章节第三章专题教学目标设计1、算法与结构化程序设计方法2、C语言基本语句3、数据的输入与输出4、顺序结构程序设计举例教学重点难点及处理教学重点:程序的灵魂——算法C语言基本语句3、数据的输入与输出教学难点:1、数据的输入与输出2、顺序结构程序设计教学媒体和资源选择硬件环境:连接到Internet的多媒体网络教室(每人一机),大屏幕投影仪,联网智能手机,耳麦,音响设备,激光投影笔等。软件资源:PPT课件、网络教学软件、VC++软件、学习通手机APP、Zoomit板书演示辅助软件等作业1、课前:线上平台完成第三章讲解视频观看,了解本章节需要学习内容。2、实践及课后:(1)课堂测验3与课后作业3(2)AI赋能,解锁未来(3)双向对错演示视频教学设计1、算法的概念和表示方法(流程图的画法)。(1)概念算法是对问题求解过程的操作步骤的描述,是为解决一个或一类问题给出的一个确定的、有限的操作序列;解决一个问题可以用不同的方法和步骤,因而针对同一问题的算法也有多种;问题:找出1到1000之间能被9整除的数(考虑最优算法)算法独立于任何程序设计语言,同一算法可以用不同的程序设计语言来实现,因此,算法才是根本。(2)算法描述:流程图及符号自顶向下、逐步求精、模块化(3)程序的结构例1顺序结构:输入秒数,转化成对应的“小时:分:秒“形式输出例2选择结构:求两个数中的最大数。例3循环结构:计算1+2+3+……+100的和2、C语言基本语句表达式语句:由表达式加上“;”组成的语句称为表达式语句。表达式语句可分为运算符表达式语句和赋值表达式语句,其作用是计算表达式的值或改变变量函数调用语句:函数调用语句是由函数调用表达式后加上“;”组成。C语言有丰富的标准函数库,可提供各类函数供用户调用(参见附录)。标准库函数完成预先设定好的任务,可直接调用,不需要用户再编写程序。控制语句:控制语句用于控制程序流程,以实现程序的各种结构方式。复合语句:把多个语句用“{}”括起来组成的一个语句称为复合语句。空语句:空语句用一个分号表示。3、基本的输入输出处理(1)使用printf()、scanf()函数printf("<格式化字符串>",<参数表>);其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式,称为格式化说明符。scanf("<格式化字符串>",<地址表>);scanf()函数是格式化输入函数,它从标准输入设备(键盘)读取输入的信息。地址表是需要读入的所有变量的地址(关于计算机中的地址概念,详见后续内容),而不是变量本身。这与printf()函数完全不同,要特别注意。教育的本质——利用scanf()与计算机交互(2)使用putchar()和getchar()函数putchar()函数是向标准输出设备输出一个字符,其调用格式为:putchar(ch);其中ch为一个字符变量或常量。putchar()函数的作用等同于printf("%c",ch);getchar()函数是从键盘上读入一个字符,并带回显。它与前面两个函数的区别在于:getchar()函数等待输入直到按回车才结束,回车前的所有输入字符都会逐个显示在屏幕上。但只有第一个字符作为函数的返回值。接受用户从键盘输入字符,并输出。4、顺序结构举例例3、港珠澳大桥是世界上最长的跨海大桥,全长55千米,请输入车辆行驶时速,计算行驶通过港珠澳大桥所用的时间。例4、输入一个华氏温度,输出对应的摄氏温度。输出取1位小数。转换公式为例5、从键盘输入圆半径,求圆的面积和周长,结果保留两位小数例6、输入两个整数a、b,将它们交换,例如a为3,b为5,交换后a为5,b为3。例7、输入三个字符,将它们反向输出。例8、求方程ax2+bx+c=0的根,a,b,c由键盘输入,设b2-4ac>=0。5、AI赋能:解锁未来(1)了解《黑神话:悟空》主要采用的开发语言,了解C与C++的异同。(2)输入三位正整数,反向输出,如:输入356,输出653。教学反思本章涉及大量实作,“理实一体”教学模式下,对每一个演算和知识点推导过程的展示更清晰,每一个知识点结束,即可通过上机即时练习,通过随机选人功能找学生将所写程序通过网络软件如红蜘蛛提交并点评,让学生及时了解自己程序的对错。课堂实施“理论讲解+案例演示+操作实践+课堂小测”四个教学环节,其中“案例演示+操作实践”循环进行,实现理中有实,实中有理。把理论、练习、实践融汇在一个整体中,让理论、实践距离变得更短,激发了学生的主动、积极性,在增强学生的动手能力和解决问题的能力方面得到锻炼和提高。授课单元教案课程单元选择结构程序设计学时8章节第四章专题教学目标设计1、简单选择结构2、多分支选择结构3、选择结构程序设计举例4、智能控制项目实践教学重点难点及处理教学重点:1、if语句、switch语句2、选择结构程序设计的思想方法3、选择结构的嵌套教学难点:选择结构的嵌套智能控制项目实践教学媒体和资源选择硬件环境:连接到Internet的多媒体网络教室(每人一机),大屏幕投影仪,联网智能手机,耳麦,音响设备,激光投影笔等。软件资源:PPT课件、网络教学软件、VC++软件、学习通手机APP、Zoomit板书演示辅助软件等作业1、课前:线上平台完成第四章讲解视频观看,了解本章节需要学习内容。2、实践及课后:(1)课堂测验4与课后作业4(2)AI赋能,解锁未来(3)双向对错演示视频教学设计1、选择结构程序设计(1)单分支if语句格式:if(表达式)语句;功能:首先计算表达式的值。若表达式的值为“真”(非0),则执行语句;若表达式的值为“假”(为0),则直接转到此if语句的下一条语句去执行。例如4.1中:if(a>0)printf("a=%d\n",a);如果a>0为真,则输出a的值,否则执行后面的语句例1、从键盘输入两个整数,输出其中的较小数。例2:小明的姐姐在假日旅行社工作,旅行社为了争取更多的游客,给出优惠措施:团购五人(及以上),团费8折。姐姐请小明帮忙,做一个可以根据输入的人数和团费,计算实际支付团费的程序。小明该怎么写这个程序呢?(2)双分支if语句格式:if(表达式)语句1;else语句2;功能:首先判断表达式的值,若表达式的值为“真”(非0),则执行语句1;否则,执行语句2。例如:if(x>y)printf(“%d”,x);elseprintf(“%d”,y);如果如果x>y为真,则打印x的值,否则x>y为假,执行else语句,打印y值。练习:用双分支if语句形式改写例1例3、判断一个正整数的奇偶性,并输出结果例4、从键盘输入一个两位正整数,判断该数中是否含有数字3,若是输”YES”,否则输出”NO”;(3)多分支if语句if(表达式1)语句1;elseif(表达式2)语句2;……elseif(表达式n)语句n;else语句n+1;例5、输入分数,要求为0~100的整数,输出相应的成绩等级。例6、某购物网站推出以下优惠促销活动:购物满50元,打9折;购物满100元,打8折;购物满200元,打7折;购物满300元,打6折;编程计算当购物满s元时,实际付款额为多少?(4)嵌套if语句C语言中规定:在嵌套if语句中,if和else按照“就近配对”的原则配对,即相距最近且还没有配对的一对if和else首先配对。例7、对于任意的整数,判断其能否被3整除同时被5或者7整除,若成立输出”YES”,否则输出“NO”。(5)switch语句switch(表达式){case常量1:语句1;[break;]case常量2:语句2;[break;]……case常量n:语句n;[break;]default:语句n+1;}switch语句尤其擅长处理一些分支较多且很有规律的精确匹配问题,代码描述起来不仅方便而且直观例8:给定月份,求该月共有多少天(假设2月都为28天)。注意:多分支if结构和switch结构都可以用来解决多分支问题,两个语句使用原则如下:多分支if语句的条件表达式比较直接,switch语句表达式需要构造。多分支if语句适用于模糊条件匹配,如要判断一个值是否处在某个区间;而switch适用于精确匹配。分支较少时,if效率比switch高;分支较多且取值有规律时,适合采用switch。switch的效率一般比if要高,switch的表达式只计算一次巩固:用双分支if语句从键盘输入一个三位正整数,判断该数中是否含有数字5或者7,若是输出”YES”,否则输出”NO。假设该数为num个位:num%10百位:num/100十位:(num-百位*100)/10多分支if练习:公用电话收费标准如下,通话时间在3分钟以内,收费0.5元;3分钟以上,则每超过1分钟加收0.15元。编写程序,计算某人通话S分钟,应缴多少电话费。多分支练习(if和switch):从键盘任意输入一个字符C,编程判断该字符是数字字符,大写字符,小写字母,空格,还是其他字符;If嵌套实现:编程输入三个整数,输出其中的最小值。分析:先将a和b比较,如果条件为真(非0),再将a和c比较;如果条件为假(0),则将b和c比较。计算函数分析:根据输入的x值,先分成x>0和x≤0,再区分x是<0,还是=0;switch实现:现在学生档案中经常采用等级评价,于是李老师想将百分制成绩转化为等级。李老师的成绩单上的成绩都是整数,他约定等级与百分制之间的对应关系如下:A:90~100B:80~89C:60~79D:0~59请编程将任意给定的分数转化为等级(优秀、良好、中等、不及格);综合练习:计算市场销售员的工资,工资计算标准见下表:输入一个数字,输出对应星期的英文单词,如输入1,则输出Monday。修改以下代码并正确输出。#include<stdio.h>intmain() { inta; printf("pleaseinputintegernumber:"); scanf("%d",&a); switch(a) { case1:printf("Monday\n"); case2:printf("Tuesday\n"); case3:printf("Wednesday\n"); case4:printf("Thursday\n"); case5:printf("Friday\n"); case6:printf("Saturday\n"); case7:printf("Sunday\n"); default:printf("error\n"); } return0; }2、应用举例3只小猪——输入3只小猪的体重,比较后按从大到小的顺序输出。输入两个操作数和运算符,计算其值。假设两个操作数均为整数且运算符有+、-、*、/。输入某年某月某日,判断这一天是这一年的第几天。自动贩卖机:1、2或3代表不同饮品,显示用户选择了什么饮品。⑤铁路运货的费用与路程s远近有关:不足50公里,每吨每公里1.00元;>=50公里,<100公里,每吨每公里0.90元;>=100公里,<200公里,每吨每公里0.80元;>=200公里,每吨每公里0.70元。计算运货w吨,路程s公里;智能控制项目实践例:智能窗帘自动控制(光线感应)要求:模拟窗帘根据光线强度自动开关:要求用户输入当前光线值(0-100)如果光线值<30,则显示“光线过暗”如果光线值>70,则显示“光线过亮”>=30and<=70,则显示“光线适宜”AI实践:(1)智能饮水机制冷/加热控制(温度感应)(2)智能门锁身份验证控制(密码+指纹)4、AI赋能:解锁未来(1)了解我国航母的发展历程,以及其使用了哪些现代化信息技术。(2)从键盘输入一个小写字母,输出其对应的大写字母。教学反思本章涉及大量实作,“理实一体”教学模式下,对每一个演算和知识点推导过程的展示更清晰,每一个知识点结束,即可通过上机即时练习,通过随机选人功能找学生将所写程序通过网络软件如红蜘蛛提交并点评,让学生及时了解自己程序的对错。课堂实施“理论讲解+案例演示+操作实践+课堂小测”四个教学环节,其中“案例演示+操作实践”循环进行,实现理中有实,实中有理。把理论、练习、实践融汇在一个整体中,让理论、实践距离变得更短,激发了学生的主动、积极性,在增强学生的动手能力和解决问题的能力方面得到锻炼和提高。授课单元教案课程单元循环结构程序设计学时8章节第五章专题教学目标设计实现循环结构的的3种语句循环嵌套改变循环执行状态的语句循环结构程序设计举例智能控制项目实践教学重点难点及处理教学重点:1、while语句、do-while语句、for语句的语法及其应用;2、循环嵌套;3、循环结构程序设计举例;教学难点:for语句的语法及其应用;循环的嵌套;3、循环结构中的穷举法、递推法、迭代法的判断和运用;4、智能控制项目实践教学媒体和资源选择硬件环境:连接到Internet的多媒体网络教室(每人一机),大屏幕投影仪,联网智能手机,耳麦,音响设备,激光投影笔等。软件资源:PPT课件、网络教学软件、VC++软件、学习通手机APP、Zoomit板书演示辅助软件等。作业1、课前:线上平台完成第5章讲解视频观看,了解本章节需要学习内容。2、实践及课后:(1)课堂测验5与课后作业5(2)AI赋能,解锁未来(3)双向对错演示视频教学设计实现循环结构三种语句引例:你看中了一款大概要八千多元的手机,但是你家里面没有给你这个预算。现在有一种“校园贷”,如果贷10000元,签订8个月的偿还期限,日利率只有8‰。你觉得怎么样,想不想了解一下在8个月后需要偿还多少钱?(1)while语句:while(表达式)循环体;例1、分析下列程序段的循环次数例2、编程求1+2+3+…+100例3、输入若干个学生的“C语言”课程成绩,当输入-1时结束,并计算该课程平均分。例4、有一张足够大的纸,其厚度为0.1毫米,请问,将它折叠多少次之后,其厚度将超过珠穆朗玛峰的高度(珠穆朗玛峰的高度为8848.86米)?实训1:从键盘输入n,用while语句求n!(2)do—while语句:do{循环体;}while(表达式);例5:修改例2,用do—while实现。例6:小明看中了一款8000多元的手机,但是他没有这个预算。他发现有一种“校园贷”,如果贷款10000元,8个月后偿还,日利率只有0.8%。他想了解一下在8个月后本金加利息共需要偿还多少钱?用两种语句实现。实训2:改用do…while循环完成:统计从键盘输入的一行字符的个数(以回车键作为输入结束标记)。(3)for语句:for(初始表达式1;条件表达式2;循环表达式3){循环体;}表达式1:用于循环开始前为循环变量设置初始值。表达式2:控制循环执行的条件,决定循环次数。表达式3:循环控制变量修改表达式。注意:for语句中表达式省略的形式随堂练习1,计时完成随堂练习2,计时完成例6、修改例2,用for实现随堂练习2:实训3:求偶数和2+4+6+…+100实训4:求奇数积1*3*5*…*99例7、第33届夏季奥林匹克运动会在法国巴黎举办,请用C语言编程统计一个国家或地区在奥运会上获得的金、银、铜牌数量及总奖牌数量(假设用户会输入一个整数表示奥运会比赛的天数)。例8、裴波那契数列的第1、2项分别为1、1,以后各项的值均是其前两项之和。求前30项裴波那契数例9、计算棋盘上的麦粒。见教材P72实训5、编程求S=1!+2!+3!+…+20!。实训6、一个富翁与一个学者达成换钱的协议。学者说:每一天我都给你10万元,第1天你只需给我1分钱;第2天只需给我2分钱;第3天给我4分钱……你每天给我的钱是前一天的两倍,直到满30天,富翁很高兴,欣然同意了。请编程计算30天后,每人各得多少钱。*三种循环语句比较2、循环嵌套*几种合法嵌套例1、打印九九乘法表例2、打印图形实训7、编程输出5-11图案实训8、编程输出5-12图案3、改变循环执行状态语句(1)break语句——提前终止循环语句形式:break;break语句只能用在switch语句或循环语句中,其作用是跳出switch语句或跳出本层循环,转去执行后面的程序。求300以内能被17整除的最大的数。输出100以内的素数。(2)continue语句——提前结束本次循环语句形式:continue;continue语句可以结束本次循环,即不再执行循环体中continue语句之后的语句,转入下一次循环条件的判断。与执行。例3、求300以内能被17整除的所有整数。(3)goto语句——提前终止多重循环语句形式:goto语句标号;例4、用if和goto语句构成循环,求100以内正整数之和。4、循环结构程序设计举例穷举法穷举法,常常也称之为枚举法。它是指在进行归纳推理时,如果逐个考察了某类事件的所有可能情况,因而得出一般结论,那么这结论是可靠的,这种归纳方法叫做穷举法。穷举法是利用计算机运算速度快、精确度高的特点,对要解决问题的所有可能情况,一个不漏地进行检验,从中找出符合要求的答案,因此穷举法是通过牺牲时间来换取答案的全面性。例1、过年了,外婆给了桐桐100元压岁钱,桐桐想把它兑换成50元、20元、10元的小钞票。请你编写程序,帮桐桐算算共有多少种兑换方案,并输出每一种兑换方案。实训9:百钱买百鸡。每只公鸡5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡,问公鸡、母鸡、小鸡各可买多少只?例2、求水仙花数。实训10:找出2~99中的全部同构数。同构数是这样一组数:它出现在其平方数的右边,例如,5是25(52)右边的数,25是625(252)右边的数,5和25都是同构数。递推法递推法是计算机数值计算中的一个重要方法,它是在已知第一项(或几项)的情况下,要求能得出后面项的值。这种方法的关键是找出递推公式和边界条件。从已知条件出发,逐步推算出要解决的问题的方法称为正推;从问题的结果出发,逐步推算出题目的已知条件,这种递推方法称为逆推。例4、Fibonacci数列中兔子问题:如果第一个月有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,假若兔子都不死,问n个月后兔子总数为多少?例5、猴子吃桃问题:猴子第1天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个;第2天早上将剩下的桃子又吃掉一半,又多吃一个。以后每天早上都吃前一天剩下的一半零一个。到第10天早上想再吃时,只剩下一个桃子。求第一天共摘了多少个桃子?实训11:已知有一批书,每天都卖掉剩下书的一半还多2本,到第8天刚好卖完,请编程计算这批书共有多少本?迭代法迭代法也是计算机数值计算中的一种重要方法,这种方法是在程序中用同一个变量来存放每一次推出来的值,每次循环都执行同一条语句,给同一变量循环用新的值代替旧的值。例6、天天向上的力量。一年365天,以第1天的能力值为基数,记为1.0,当好好学习时能力值相比前一天提高千分之一,当没有好好学习时能力值相比前一天下降千分之一。每天努力和每天放任,一年后的能力值分别是多少呢?例7、使用以下公式计算的值,直到最后一项的绝对值小于1×10-8实训12:如果最后一项的绝对值改为1E-6和1E-8请同学们观察结果:(1)循环体执行多少次(2)结果显示的时间长度实训13:努力的工作日。一年365天,一周5个工作日,如果每个工作日都很努力,能力值每天可以提高1%,周末放纵一下,能力值每天下降1%。编程计算一年后的能力值。随堂练习3:下面程序计算数列之和sum=n-n/2+n/3-n/4+…-n/100,填空完成程序。#include<stdio.h>intmain(){floatsum=0;intn,sign=1,i;printf("请输入整数n:");scanf("%d",&n);for(i=1;i<=100;i++){_____________;_____________;}printf("%.2f",sum);}标记变量法标记变量法指的是在程序设计中用某个变量的取值来对程序运行的状态进行标记。例8、判断一个正整数x是否为素数5、智能控制项目实践例:编写一个C语言程序,模拟智能灯的PWM(脉冲宽度调制)亮度控制逻辑,AI实践:(1)模拟房间恒温系统:设定目标温度26℃,程序循环生成随机当前温度(18-32℃),通过“加热”“制冷”“待机”的选择逻辑,调节温度至目标范围(误差≤0.5℃)。(2)模拟商场自动门:循环检测“是否有人靠近”(用户输入1=有人,0=无人),有人时输出“门开启”并保持3秒,无人时输出“门关闭”,每2秒检测一次。(3)模拟巡线机器人沿黑色轨迹行驶:轨迹分为“直道”“左转”“右转”(用户输入对应编号),机器人根据输入的路径信息,输出对应的行驶指令,循环5次路径判断后结束。6、AI赋能:解锁未来(1)见教材P76,按流程操作,学会举一反三解决其他问题,培养创新思维。(2)参见例5.20及编程题6,按教材P77流程操作,用AI大模型辅助学习。教学反思本章涉及大量实作,“理实一体”教学模式下,对每一个演算和知识点推导过程的展示更清晰,每一个知识点结束,即可通过上机即时练习,通过随机选人功能找学生将所写程序通过网络软件如红蜘蛛提交并点评,让学生及时了解自己程序的对错。课堂实施“理论讲解+案例演示+操作实践+课堂小测”四个教学环节,其中“案例演示+操作实践”循环进行,实现理中有实,实中有理。把理论、练习、实践融汇在一个整体中,让理论、实践距离变得更短,激发了学生的主动、积极性,在增强学生的动手能力和解决问题的能力方面得到锻炼和提高。授课单元教案课程单元数组学时8章节第六章专题教学目标设计1、一维数组2、字符数组与字符串3、数组常用算法4、智能控制项目实践教学重点难点及处理字符数组与字符串的应用数组基本操作:排序及两种排序方法的区别智能控制项目实践教学媒体和资源选择硬件环境:连接到Internet的多媒体网络教室(每人一机),大屏幕投影仪,联网智能手机,耳麦,音响设备,激光投影笔等。软件资源:PPT课件、网络教学软件、VC++软件、学习通手机APP、Zoomit板书演示辅助软件等。作业课前:线上平台完成第六章视频观看,了解本章节学习内容;实践及课后:(1)课堂测验6与课后作业6(2)AI赋能,解锁未来(3)双向对错演示视频教学设计1、数组的概念提出问题:一个班有35个同学,期末考试结束后需要对这个班的C语言考试成绩按照从高到低的顺序进行排序,然后输出。引出概念数组:若干个具有相同数据类型的数据的有序集合数组元素:数组中的每一个数据称为数组元素。数组中的每一个数组元素具有相同的名称,不同的下标,可以作为单个变量使用,所以也称为下标变量。数组的下标:是数组元素位置的一个索引或指示。数组的维数:数组元素下标的个数。根据数组的维数可以将数组分为一维、二维、多维数组。2、一维数组(1)定义类型说明符数组名[常量表达式]随堂练习1(2)引用数组名[下标]随堂练习2例1:将数字1~10存入一个整型数组a中并输出。实训1:在a数组的10个空间里分别输入1-10的数,并倒序输出实训2、在a数组的10个空间里分别输入2~20范围内的偶数,并正序输出。a[i]=(i+1)*2例:程序输出结果是多少?#include<stdio.h>#defineM10intmain(){charabc[M-5];inti;for(i=0;i<M-5;i++)abc[i]='A';printf("charabc[M-5]={");for(i=0;i<M-6;i++)printf("%d,",abc[i]);printf("%d}\n",abc[M-6]);return0;} 随堂练习3(3)初始化类型说明符数组名[常量表达式]={值,值,…值};可以只给部分元素赋初值。例如:inta[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。只能给元素逐个赋值,不能给数组整体赋值。例如:给十个元素全部赋1值,只能写为: inta[10]={1,1,1,1,1,1,1,1,1,1};而不能写为: inta[10]=1;如给全部元素赋值,则在数组说明中,可以不给出数组元素的个数。 例如:inta[5]={1,2,3,4,5};可写为: inta[]={1,2,3,4,5};当数组指定的元素个数小于初值的个数时,作语法错误处理。 例如:inta[4]={1,2,3,4,5};是不合法的。随堂练习4(4)存储一维数组的各元素按下标的顺序依次存储在一片连续的存储空间中。空间的大小与数组类型有关,为元素的个数乘以每一个元素所占的空间。例2、用数组求Fibonacci数列的前20项(每行输出5个数)。例3、统计一个整数中各个数字出现的次数。实训3:用数组实现:输入10个学生成绩,输出高于平均分的成绩
实训4:编程从键盘输入10个整数并保存到数组,输出10个整数中的最大值及其下标、最小值及其下标。
3、二维数组(1)定义类型说明符数组名[常量表达式1][常量表达式2](2)引用数组名[下标1][下标2];(3)初始化分行给多维数组赋值。ints[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};按行连续赋初值。ints[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};对全部元素赋值,可以省略第一维的长度。ints[][4]={1,2,3,4,5,6,7,8,9,10,11,12};可以只对部分元素赋初值,未赋值的元素自动取0值。ints[][4]={{1,2},{5},{9,10}};随堂练习5(4)存储C语言规定,二维数组中的元素在存储时要先存放第一行的数据,再存放第二行的数据等等,每行数据按下标规定的顺序由小到大的存放。随堂练习6例4、第33届夏季奥林匹克运动会,Z国的运动员参与了n(1≤n≤20)天的比赛。用数组编程统计Z国所获得的金、银、铜牌数量及总奖牌数量。例5、求矩阵的转置。实训5、从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。
4、字符数组与字符串(1)定义与初始化char数组名[常量表达式];方式一:逐个为数组中各元素指定初值字符。chara[5]={'C','h','i','n','a'};方式二:用字符串对字符数组进行初始化。chara[]={"China"};chara[]="China"; 在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。随堂练习7随堂练习8(2)输入与输出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论