C语言程序设计讲稿.docx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C语言程序设计讲稿.docx》由用户(hhsmd)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 讲稿
- 资源描述:
-
1、C语言程序设计讲稿116 / 118 目 录第一讲 C语言概述1第二讲 C语言程序介绍2第三讲 算法8第四讲 数据类型(1)20第五讲 数据类型(2)21第六讲 运算符和表达式(1)22第七讲 运算符和表达式(2)23第八讲 输入输出函数及顺序结构24第九讲 选择结构程序设计(1)25第十讲 选择结构程序设计(2)26第十一讲 循环结构(1)27第十二讲 循环结构(2)28第十三讲 习题课29第十四讲 一维数组的定义和使用29第十五讲 二维数组30第十六讲 字符数组和字符串31第十七讲 函数(1)32第十八讲 函数(2)33第十九讲 习题课&文件34第二十讲 结构体和共用体35第二十一讲 C语
2、言屏幕操作函数36第二十二讲 C语言实现图形动画效果37第一讲 C语言概述学时:2学时授课形式:多媒体讲解+实例程序演示教学目标:对C程序有一个初步的认识;了解C语言的发展;掌握C语言的特点。主要内容及时间安排(课堂90分钟,80分钟讲课,10分钟总结):(1)C语言程序设计课程介绍:包括课程标准、课堂要求、学习方法等(20分钟);(2)实例演示+编译环境简介:4个实例(包括科学计算、数据排序查找、小型应用系统、图形动画效果),每个实例使用一种编译环境,在观看实例效果的同时简单了解C语言编译运行环境(20分钟);(3)C语言发展简史(包括计算机语言的进化、C语言的发展等)(10分钟);(4)C
3、语言特点介绍:包括和其他语言相比的优点、简单介绍数据类型、关键字、流控结构等(30分钟);(5)总结本节课程的主要内容,布置课后练习题。(10分钟);重点:C语言特点中的数据类型、关键字和流控语句简介教学内容细节:具体内容参加幻灯片。第二讲 C语言程序介绍学时:2学时授课形式:板书+多媒体+实例程序演示教学目标:了解C语言的语法及结构;掌握C语言的编写流程;熟悉C语言的编译环境VC+6.0。主要内容及时间安排(课堂90分钟,80分钟讲课,5分钟复习,5分钟总结):(1)以提问的方式复习上节课的内容(5分钟);(2)通过实例编写简单程序(先用多媒体展示第一个实例程序,要求学生了解一般C程序的编写
4、流程,然后在编译环境演示程序执行过程,总结C语言程序的基本结构和语法要求)(15分钟);(3)通过实例演示程序的运算功能(先用多媒体展示编写程序,一一讲解给学生,要求学生具有变量需要先定义的理念,然后在编译环境进行实例程序演示,掌握具有输入函数的C语言程序的运行过程)(15分钟);(4)通过上述实例,利用板式总结C语言的编写和编译过程(借助VC+6.0来展示C语言的编写和执行过程)(10分钟);(5)C语言结构特点总结(C语言由函数构成、书写格式自由、输入输出由函数实现、语句结束要有分号、main函数是函数开始和结束之处等)(20分钟);(6)C语言上机编译环境介绍(主要介绍TC、VC+、Ra
5、rnu_C V1.0三个编译环境,主推Rarnu_C V1.0编译环境)(20分钟);(7)总结本节课程的主要内容并布置课后练习题(5分钟);重点:C语言的程序结构、C语言语法细节、C语言编译过程、C语言运行环境等;难点:C语言语法细节和程序结构。教学内容细节:一、通过提问的方式复习上节课程的主要内容。二、实例演示(1) 实例1-1 简单输出:#include /*包含文件 */ main() /*程序从函数main开始执行*/ /*在屏幕上输出引号内内容*/ printf(I am a programmer,I like C!); /*函数main结束*/程序说明:l main函数表示主函数
6、,每个程序必须有且只能有一个main函数,函数体(功能语句)放在内。l printf是C语言的输出函数,它的作用是将“”中的内容原样输出。l 其中“n”是换行符。l 以/*和*/括起来的是注释,程序运行期间是不执行的只是增加程序的可读性。(2) 实例1-2 简单计算:/*求两个数的和*/ #include /*包含文件*/ main() /*主函数*/ int a,b,sum; /*定义局部变量*/ scanf(%d,%d,&a,&b);/*输入两个整数值放到a、b变量中*/ sum=a+b; /*将ab的和送入sum中*/ printf(sum=%d,sum); /*输出ab的和sum*/
7、程序说明:l 本实例的功能是实现两个数相加;l scanf函数的作用是输入两个整数;l 具有变量定义的C语言函数的书写顺序应该是:先写预处理命令,然后是函数名;然后是函数体,函数体中应先写变量定义,在写功能语句。l 为了增加程序的可读性应适当加上注释,和printf提示。三、C语言的编写流程四、C语言结构特点总结(1)一个C程序可以由多个函数构成,但是只能有一个main函数,程序从main函数开始,然后通过函数调用完成部分功能,最后以main函数结束;(2)主函数或子函数的函数体必须用一对括起来,函数体中主要是程序的功能语句,这种功能语句由两部分组成:声明部分和执行部分;(3)每一条语句由分号
8、结束,程序书写格式自由,一行可以写多句,一句可以写多行,但分行时注意不能将字符串整体分开;(4)C语言大小写敏感,大小写不能混用;一般程序语句用小写字母,符号常量用大写 ;程序要有适当的注释语句,提高程序的可读性,注意注释语句不能嵌套;(5)C语言中的变量必须先定义后使用;(6)#include是预处理命令,用于将或”中包括的文件中的内容读到命令所在处;每个include的后面只能跟一个文件,如果想将多个文件包含到指定位置,可以通过多个include实现。五、优秀的程序员应具备的基本素质(1)具有良好的编程习惯(2)使用TAB缩进(3)对齐(4)有足够的注释(5)有合适的空行六、上机环境使用介
9、绍重点介绍上机环境VC+6.0的使用方法,包括:程序编辑、程序编译、程序改错、程序保存、程序运行等。第三讲 算法学时:2学时授课形式:板书+多媒体讲解教学目标:掌握算法的概念、掌握典型算法的设计、熟练掌握算法表示方法中程序流程图和N-S图。主要内容及时间安排(课堂90分钟,80分钟讲课,5分钟复习,5分钟总结):(1) 复习上节课的主要知识点(5分钟);(2) 算法和程序的关系(5分钟);(3)算法的概念及算法优劣比较举例(什么是算法,连加算法优劣比较、算法的分类)(10分钟);(4)简单算法举例(设计5个例子,从易到难)(40分钟);(5)算法的特性(有穷性、确定性、有零个或多个输入、有一个
10、或多个输出、有效性)(10分钟);(6)算法的表示方法(重点介绍流程图和N-S图)(10分钟);(7)结构化程序设计方法(简单介绍结构化程序设计方法的基本思路)(5分钟);(8)总结和布置课后练习题(课后题2.4、2.5,下一节讲解数据类型相关知识)(5分钟)重点:算法的概念、算法的特性、设计算法的意义、算法的表示方法难点:算法的表示方法教学内容细节:一、 以提问的方式复习上节课的主要知识点。二、 算法和程序的关系程序=数据结构+算法数据结构对数据的描述;算法对操作的描述。简单举例进行说明。三、算法概念及算法优劣比较算法:解决问题的步骤。不是只有数值运算问题才有算法,好多非数值运算问题也是有算
11、法的。数值运算问题的算法主要是求数值的结,比如求连加和,非数值算法主要应用在事务管理领域(图书检索、人事管理等)。在进行数值运算或解决非数值算法时有时需要考虑算法的优劣,比如连加和,可以从1一直加到100,也可以采用首尾相加,在相乘的形式。当然所用的步骤是不同的。对于数学中的一些常用算法,比如求绝对值,求平方根,等等经常用到,人们就把它们写成程序模块的形式,用户什么时候需要就可以进行调用了,非常方便,常用的数值运算函数都包含在math.h文件中。例3-1:计算输入整数的平方根,如果输入的是负数,则先求它的绝对值,在求平方根:#include #include void main() int a
12、; double s; printf(input the a:); scanf(%d,&a); a=fabs(a); /*如果a是负数,求a的绝对值,再放到a中,fabs是求绝对值的函数,是将小括号中的数的绝对值求出来*/ s=sqrt(a); /*sqrt为求平方根函数*/ printf(%d the sqrt=%f,a,s); 四、算法举例(将算法的各种表示方法放到算法举例中,学生接受起来效果会好一些)介绍几个典型算法:每一个算法都有多种描述方式,下面主要介绍自然语言表示法、流程图表示法、N-S图表示法。流程图的基本符号及含义:起止框输入输出框处理框判断框流程线或连接点(1)计算1*2*3
13、*4*5自然语言表示法繁琐的算法 将第二个数和第一个数相乘,得到的积和第三个数相乘,依此方法一直乘到5。当要进行连乘的数比较多时,这种方法显然不适用。改进的算法 开辟两个空间p和i,一个放计算之后的积,一个放被乘数,上面的算法进行改造后如下:(S1表示第一步,S2表示第二步,依此类推)S1:1=p,2=iS2:计算p*i的积,结果仍然放在p中,即p*i=pS3:i的值增1,即i+1=iS4:如果i没有超过5,则继续执行S2、S3、S5,否则,算法结束,p中的数据就是连乘积。开始1=p,2=iP*i=pi+1=i结束ip,2=ip*i=pi+1=i直到i5输出p习题:计算1+3+5+7+9的和,
14、用流程图和N-S图表示此算法。(2)有50个学生,输出80分以上的学生学号和成绩为了表示方便,用n表示学生学号,ni表示第i个学生学号,用g表示学生成绩,gi表示第i个学生成绩,则算法如下:自然语言表示法:S1:1=iS2:如果gi80,则输出ni和gi,否则不输出;S3:i+1=IS4:如果iigi=80i+1=i输出nigi直到i50NY流程图表示法:开始1=ii+1=i结束gi=80NY输出nigii50NY习题:有50个学生,找出50个学生中分数为90的学生学号。用流程图和N-S 表示此算法。(3)判断某一年份是否是闰年判断某一年份是闰年的条件是:(1)能被4整除,但是不能被100整除
15、,则这一年份是闰年;(2)能被100整除,又能被400整除的,则这一年份是闰年;其他的年份都不是闰年,假设用一个空间y来存放被校验的年份,则算法描述如下:自然语言表示法:S1:输入年份=yS2:若y能被4整除,但不能被100整除,则输出y是闰年,算法结束;否则,执行S3;S3:若y能被100整除,也能被400整除,则输出y是闰年,算法结束;否则,执行S4;S4:输出y不是闰年,算法结束。流程图表示法:开始结束Yy不能被4整除输出y是闰年y不能被100整除NYNY输出y是闰年输出y不是闰年y不能被400整除输出y不是闰年N输入年份=yN-S图表示法:输入年份=yy/4的余数为0输出y不是闰年输出
16、y不是闰年NYNYy/100余数不为0NYy/400余数不为0输出y是闰年输出y是闰年习题:输出某一年份段内(比如1000-3000之间,包括1000和3000)的所有闰年。(4)求一个数列的值1-1/2+1/3-1/4+1/5+1/99-1/100注意数列的规律,分子都是1,分母是从1开始,每次递增1,一直到100,第一项符号位正,第二位符号位负,依此规律交替正负,首先必须开辟两个空间,一个为sum放计算结果,然后是i,每次被加数的分母;其次为了表示符号位交替变化,在开辟一个空间t存放符号,如果是正号则t为1,符号t为-1。算法表示如下:自然语言表示法:S1:0.0=sum,1.0=i;1=
17、t;S2:t*1/i+sum=sumS3:-t=t;i+1=iS4:如果isum,1.0=i,1=tt*1/i+sum=sum-t=t,i+1=i直到i100输出sum开始0.0=sum,1.0=i,1=tt*1/i+sum=sum-t=t,i+1=i结束inS2:2=iS4:n除以i,得余数rS5:如果r不为0,则i+1=i,否则,输出n不是素数,算法结束S6:如果in,则返回S4,否则,输出n是素数,算法结束。考虑是否非要做到i=n-1,是不是可以做到iw,2=in/i的余数=r结束r=0?YN输入待判断数=n输出n不是素数W=0和iiNY输出n是素数1=wNw=0?流程图表示法:开始2=
18、in/i的余数=r结束r=0?YN输入待判断数=n输出n不是素数iiNY输出n是素数N-S图表示法:输入待判断数=nn/i的余数=rr=01=w输出n是素数0=w,2=ii+1=i直到i或w=1YNw=0YN输出n不是素数习题:输出100-200之间的所有素数。五、总结三种程序流程结构(顺序、选择和循环,给出图形表示)循环结构NpAYpAB选择结构YNAB顺序结构通过上面几个例子,我们可以看到,算法在执行的过程中基本只有三种模式,(1)从上到下依次执行下来,中间没有任何分叉,(2)在执行过程中,根据条件成立和否产生了不同的操作;(3)当某一条件成立时,反复做相同的操作。这就是我们结构化程序设计
19、的三种基本流控结构:顺序,分支和循环,下面给出这三种基本流控结构的流程图和N-S图表示。流程图表示方法:N-S表示方法:循环体当p成立循环体直到p成立循环结构选择结构pNYAAB顺序结构六、算法的特性算法共有五个特性:有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性;有穷性:一个算法的步骤必须是有限的;确定性:算法中的每个步骤必须是确定的,不能是含糊不清的,不能有歧义;输入:算法运行时有时需要外部输入的信息;输出:算法的最终目的是求解和输出;有效性:算法的每个步骤都能有效的执行,并得到确定的结果。七、结构化程序设计思想结构化程序设计强调的是程序设计风格和程序结构的规范化,提倡清晰的结
20、构,编程的基本要求是“清晰第一、效率第二”。结构化程序设计风格需要经过以下几个步骤进行:(1)自顶向下(2)逐步细化(3)模块化设计(4)结构化编码(利用现有的流控语句进行编码设计)八、总结和布置课后练习题(5分钟)第四讲 数据类型(1)学时:2学时授课形式:板书+多媒体讲解+实例程序演示教学目标:掌握各种数据类型的关键字,掌握各种数据类型在计算机中所占的存储空间,常量及变量的定义形式,针对各种数据类型printf的格式控制输出。主要内容及时间安排(课堂90分钟,80分钟讲课,5分钟复习,5分钟总结):(1)以提问的方式复习上节课的主要知识点(5分钟);(2)C语言的各种数据类型简介(基本类型
展开阅读全文