收藏 分销(赏)

c语言教案(课堂PPT).ppt

上传人:精**** 文档编号:11421608 上传时间:2025-07-23 格式:PPT 页数:99 大小:279KB 下载积分:18 金币
下载 相关 举报
c语言教案(课堂PPT).ppt_第1页
第1页 / 共99页
c语言教案(课堂PPT).ppt_第2页
第2页 / 共99页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,C,语言程序设计,2013.9,1,第一章,C,语言概述,1.1 语言出现的历史背景:,ALGOL 60,CPL,语言,BCPL,语言,B,语言,C,语言,ANSI C,2,1.2,C,语言的特点:,1.语言简洁,紧凑,使用方便,灵活。,一共有32个关键字,9种控制语句。程序主要用小写字母书写。,2.,运算符丰富(共有34种),位运算,逗号运算符,条件运算符,指针运算等等,C+c max=(ab)?a:b a+=b,3.数据结构丰富(共有34种),整型,实型,字符型,数组,结构体,共用体,枚举,指针等等。,3,4.具有结构化的控制语句。,顺序,选择,循环,函数。,5语法限制不太严格,程序设计自由度大。,变量使用灵活,整型、字符型,逻辑型可以相互通用。放宽了语法检查。,6,中级语言的特性,允许直接访问物理地址,能进行位的操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。且有高级语言的功能,又具有低级语言的功能。,7生成目标代码质量高,执行的效率高。,语法决定编译的速度快,一般只比汇编语言低10%-20%。,4,8.可移植性好。,相对于汇编语言来说,一般不需要修改就可以移植到其它的计算机,及其它的操作系统上去。,5,1.3,简单,C,程序介绍。,例,1,:,main(),printf(“This is a c program.n”);,主函数,在屏幕上显示字符,“,This is a c program.”,并将光标移到下一行显示,6,例,2,:,main(),int a,b,sum;,a=123;b=246;,sum=a+b;,printf(“sum is%dn”,sum);,功能是计算两个数之和,并在屏幕上显示出来,定义变量,为变量赋值,Main(),称为程序首部,两个花括号中的内容为程序体.,Printf(),为屏幕输出函数.其中的“,n”,为转义字符(回车换行),7,例3,int max(int x,int y),int z;,if(xy)z=x;,else z=y;,return(z);,main()/*,求两数之中的大者*/,int a,b,c;,scanf(“%d,%d”,c=max(a,b);,printf(“max=%d”,c);,主函数,返回两个数中,的大者的函数,8,例,4,:,#include ,main(),int add(int x,int y);,int a,b,c;,scanf(“%d%d”,a=abs(a);,b=abs(b);,c=add(a,b);,printf(“|a|+|b|=%dn”,c);,int add(int x,int y),int z;,z=x+y;,return(z);,主函数,求两个数,绝对值之,和的程序.,包含文件,求两个数之,和的函数,9,综上所述:,C,程序是由函数构成的(库函数及自定义函数),一个,C,源程序至少包括一个,main(),函数,也可以包括一个,main(),函数和若干个其他函数构成,。,2.,C,语言函数的组成,函数的首部,int,max (,int,x,int,y),函数类型 函数名 形式参数的名及类型说明,函数体,.(必须用一对花括号括起来.),声明部分(变量及函数的声明,它们在使用前必须进行声明),执行部分(具体操作部分),10,特殊情况:空函数,dump(),C,程序总是重,main(),函数开始执行。,C,程序书写格式自由。,每个语句和数据定义的最后必须有一个分号。,C,语言本身没有输入输出语句。,/*/为注释符。,11,Turbo C,源程序的一般形式为:,包含文件 子函数类型说明 全程变量定义,main(),局部变量定义 ,sub1(),局部变量定义 ,12,sub2(),局部变量定义 .,subN(),局部变量定义 ,13,1.4,C,语言的上机步骤,1.,C,程序的执行过程,总体上分为四个步:编辑编译连接-执行,编辑,输入源程序(代码),F.c,磁盘文件,编译,F.obj,二进制代码(每个模块单独编译),连接,F.exe,可执行文件连接即组装的过程.,执行,结果,14,1.2,TURBO C,集成环境的介绍:,系统安装(如安装在,c:tc,下),执行,turbo c,程序,c:tc,tc,(,出现,Turbo C,集成环境),3.,参看集成开发环境的真实演示,15,教学小结,了解,C,语言的特点.,重点掌握,C,语言源程序的总体结构.,重点掌握,C,语言程序的执行过程.,重点掌握,TURBO,集成环境的介绍,16,练习题:,C,语言以函数为程序的基本单位,有什么好处.,参照例题写一个程序,输出以下信息:,*,Very goodI,*,编写一程序,输入三个数,输出其中的最大者.,17,Main(),printf(“*n”);,printf(“Very good!n”);,printf(“*”);,18,Main()/*,求三个数中最大的并输出*/,int a,b,c,max;,scanf(“%d,%d,%d”,max=a;,If(ab)max=b;,If(maxc)max=c;,Printf(“max=%d”,max);,19,第2章 程序的灵魂-算法,1 程序应包含的两方面的内容,(1)对数据的描述。在程序中要制定数据的类型和数 据的组织形式,即数据结构(,data structure)。,(2),对操作的描述。即操作步骤,也就是算法。,20,2 程序的组成,(2),算法+数据结构+程序设计方法+语言工具和环境=程序,(1)数据结构+算法=程序,21,2.1 算法的概念,1 什么是算法,广义地说,为解决一个问题所采取的方法和步骤,,就称为算法。用计算机解决问题的方法和步骤,就叫,计算机算法。,2 计算机算法的分类,(1)数值运算算法,(2)非数值运算算法,22,2.2 简单算法举例,例 2.1 求 1,2 3 4 5,S1:,使,1,p,S2:,使,2,i,S3:,使,p*i,p,S4:,使,i+1,i,S5:,若,i=80,,则打印,n,i,和,g,i,否则不打印,S3:i+1,i,S4:,如果,i=50,,返回,S2,,继续执行,否则,算,法结束。,24,例2.3 判定20002500年中的每一年是否闰年,将结果输出。,闰年的条件:能被4整除且不能被100整除的年份是闰年,能被100整除又能被400整除的年份是闰年。,S1:2000,y,S2:,若,y,不被4整除,输出,y,不是闰年。转到,s6,S3:,若,y,能被4整除,且不能被100整除,输出,y,是闰年。转到,s6,S4:y,既能被100整除又能被400整除,输出,y,是闰年,转到,s6,S5:,输出,y,不是闰年。,S6:y+1 y,S7:,当,y2500,时算法结束。,25,例 2.4 求 1-1/2+1/3-1/4+1/99-1/100,S1:1,sign,S2:1,sum,S3:2,deno,S4:(-1)*sign,sign,S5:sign*(1/deno),term,S6:sum+term,sum,S7:deno+1,deno,S8:,若,deno=100,返回,S4;,否则算法结束。,26,例 2.5 对一个大于或等于3的正整数,判断它是不是一个素数,S1:,输入,n,的值,S2:2,i,S3:n,被,i,除,得余数,r,S4:,若,r=0,则打印,n“,不是素数”,算法结束。,S5:i+1,i,S6:,若,i=80,i+1=i,i50,结束,打印,n,i,g,i,Y,N,N,Y,30,2.4.3 三种基本结构和改进的流程图,1、传统流程图的弊端,流程线转向无规律,难以阅读,难以修改,2、三种基本结构,(1)顺序结构 (2)选择结构,A,B,p,A,B,a,b,a,b,p,A,a,b,31,(3)循环结构,1 当型循环结构(,while),p,A,成立,a,b,A,p,不成立,成立,a,b,2直到型循环(,until),32,三种基本结构的共同特点,(1)只有一个入口,(2)只有一个出口,(3)结构内的每一部分都有机会被执行到,(4)结构内不存在死循环,结构化算法:由三种基本结构所构成的算法,33,2.4.4 用,N-S,流程图表示算法,N-S,流程图符号,A,B,p,成立,不成立,A,B,当,p,成立,A,直到,p,成立,A,34,1=,i,2=,i,ti=t,i+1=i,直到,I5,打印,t,1=,i,g,i,=80,是,否,打印,n,i,j,i,i+1=i,直到,i50,35,2.4.5 用伪代码表示算法,伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。,如打印,x,的绝对值的算法,If x is positive then,print x,Else,pring -x,36,2.4.6 用计算机语言表示算法,main(),int i,t;,i=1;,i=2,while(i=|&),5、赋值运算符(=),6、条件运算符(?:),71,、逗号运算符(,),、指针运算符(*&),、求字节数运算符(,sizeof),、,强制类型转换运算符 (类型),、分量运算符(.-),、下标运算符(),、其它运算符(如函数运算符);,72,3.8.2 算术运算符和算术表达式,1、基本算术运算符:(+-*/%),例:3+5,X+y X*y 5/3,“/”,两个整数相除结果为整数。自动舍去小数部分。,如:5/3=1,-5/3=-1,“%”为求余运算符,要求两边均为整型量。,如:5%3=2,-5%3=-2,5%(-3)=2,,(-5)%(-3)=-2,73,2、算术表达式和运算符的优先级与结合性。,用算术表达式和括号将运算对象连接起来的,符合,C,语法规则的式子称为算术表达式。,如:,a*b/c-1.5+a,运算的规则为:先算*,/,%后算+,-。同级自左至右结合运算。如:,a-b+c,74,3、强制类型转换运算符。,可以利用强制类型转换将一个表达式的结果转换为所需的类型。,格式为:(类型名)(表达式),如:(,int)(x+y);,(float)a,注意:强制类型转换时,得到一个所需用类型的中间变量,原来的变量的类型未发生改变。,75,如:,main(),float x;,int i;,x=3.6;,i=(int)x;,Printf(“x=%f,i=%d)”,x,i);,结果为:,x=3.600000,i=3,76,4、自增自减运算符,。,“+”“-”,如:+,i(,先加),i+(,后加),i-(,后减)-,i(,先减),i=3,j=+i,则,j=4,j=i+,则,j=3,j=i-,则,j=3,j=-i,则,j=2,77,注意:,1、自增自减只适用于变量,不适用于常量和表达式。,5+(,x+y)+,都是不合法的.,2 +和的结合方向为自右向左。,-,i+,等价于 -(,i+),78,5、有关表达式使用中的问题说明,(1)子表达式的求值顺序各系统不一致,a=f1()+f2();,i=3,(i+)+(i+)+(i+),要得到12,i=3;,a=i+;b=i+;c=i+;,d=a+b+c;,79,(2),j+i,(j+)+i ,j+(+i),(3),printf(“%d,%d”,i,i+),j=i+;,printf(“%d,%d”,j,i),80,3.9 赋值运算符和赋值表达式,1、赋值运算符 “=”,a=3,2、类型转换,(1)实型赋给整型:舍弃小数部分。,j=3.45;,结果是,j=3;,(2),整型赋给实型:值不变,以实型存储。,(3),double,型与,float,型间赋值,(4)字符型赋给整型:与系统有关,81,(5),int,short,long,赋给,char,型:只取低8位,(6)int,型与,long,型间赋值,(7),有符号与无符号间的赋值,不同类型间的赋值的原则是:按存储单元中的存储形式直接传送。,82,3.复合的赋值运算符,+=,-=,*=,/=,%=,=,&=,=,|=,赋值表达式:由赋值运算符将一个变量和一个表达式连接起来的式子。,a=(b=5),a=b=c=5,a=5+(c=6),a=(b=10)/(c=2)a+=a-=a*a (a,的初值为12),printf,(“%d”,a=b);,83,3.10 逗号运算符和逗号表达式,表达式1,表达式2,。,表达式,n,x=(a,=3,6*3),x=a=3,6*3,注意:函数参数中的逗号不是逗号表达式,84,第4章 最简单的C程序设计 -顺序程序设计,4.1,C,语句概述,1、C,程序结构,C,程序可以由若干个源程序文件组成,一个源程序可以由若干个函数和预处理命令以及全局变量声明部分组成,一个函数由数据定义部分和执行语句组成。,85,C,程序,源程序文件1,源程序文件2,源程序文件,n,预处理命令,全局变量声明,函数1,函数,n,函数首部,函数体,局部变量,声明,执行,语句,.,86,2、5类,C,语句,(1)控制语句,if()else,for(),while(),do while(),continue,break,switch,goto,return,87,(2)函数调用语句。,printf(“%d”,a);,(3),表达式语句,a=2;,j=j+1;,j+;,x+y;,(4)空语句 ;,(5)复合语句 ,88,4.2 赋值语句,注意,:“=”是运算符。,赋值表达式的概念是,C,语言独有的特色。,4.3 数据输入输出的概念及在,C,语言中的实现,*由计算机向外部输出设备输出数据叫“输出”。,*从外部设备输入数据叫“输入”。,*C,语言没有输入输出语句。,*使用,C,函数必须用预编译命令包含有关的头文件。,#include ,或,#,include“stdio.h”,89,4.4 字符数据的输入输出,*Putchar(),和,getchar(),函数,Putchar(c),向终端输出一个字符(包括控制字符和转移字符),。,Getchar(),是从终端输入一个字符。无参数。每一次只接收一个字符。,90,注意:1、在使用这两个函数时,应在程序的开头加上包含命令:,#,include“stdio.h”.,2、,在执行,getchar(),函数时,虽然是读入一个字符,但并不是输入一字母,该字母就被送入变量的,而是等到输入完一行后,才将该行的字母送入缓冲区内,然后从缓冲区中取一个字母送给变量。,91,4.5 格式输入与输出,4.5.1,print,函数(格式输出函数),Printf,函数的一般格式,格式:,printf,(,格式控制,输出列表);,格式控制符是以字符串形式描述的。其中包括格式说明和普通字符。,%-0,m.n l h,格式字符,92,2、格式字符,(1)格式字符:指定输出项的数据类型的输出格式。(注意字母的大小写),d(i),十进制整数,x(X),十六进制整数,o,八进制整数,u,不带符号的十进制整数,c,一个字符,s,字符串,e(E),指数形式实数,f,小数形式实数,g(G)e,和,f,中较短的一种,不印无效的0,%百分号本身,93,(2)长度修正符:,l,和,h,l:,对整型指,long,如%,ld%lo,对实型指,double%lf,h:,对整型的格式修正为,short,型。如%,hd%hu,(3)域宽及精度描述:(,m.n),m:,指域宽,,n:,指精度。(默认为6),(4)数0指定数字前的空位是否用0填充。默认为空,(5)负号指定输出项是不否左对齐输出。默认为左对齐。,输出项可以变量,也可以是表达式。用逗号隔开。,94,注意:,1、除,X,E,G,外,其它都用小写。,2、格式控制字符串中可包括转移字符。,3、%号后必须紧跟格式字符,4、%分号的输入%,95,4.5.2,scanf,函数(格式输入函数),1、一般形式,格式:,scanf(,格式控制参数,地址列表),(1)地址参数:,C,语言允许间接访问内存地址。通过地址运算符(&)来完成的。如:&,a&b,代表,a,和,b,变量的首地址。,(2)格式控制参数和输出函数相似。,(3)输入流数据的分隔问题。,96,有下面几种方法:,1、当输入流中数据类型与格式字符中的要求不符合时,就认为这一个数据项结束。,2、,根据格式项中的域宽分隔出数据项。,3、,用分隔符。(空格,换行符,跳格符,用户自定义),(4),抑制符*,按格式读入数据,但是不送入任何变量。,Scanf(“%3d%*4d%f”,97,4、,scanf(),的停止与返回。,当遇到下面的两种情况会停止:,(1)格式参数中的格式项用完-正常结束。,(2)发生格式项与输入项不匹配时-非正常,结束。,Scanf(),函数的返回值为数据成功匹配的项目数。,5、,scanf(),与输入缓冲区。,在输入数据时,不是输入完一个数据项就被送入一个变量,而是在键入一个行字符并按回车时才被输入,这一行字符先被放入缓冲区内,然后从缓冲区内读出数据给每一个变量。,98,4.6 顺序结构程序设计举例,例1:输入三角形的三边长,求三角形的面积。,例2:从键盘输入一个大写字母,要求改用小写输出。,例3:求,a*x*x+b*x+c=0,方程的根。,a、b、c,由键盘输入(假设,b*b-4*a*c0),99,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服