韶关市高级技工学校C语言概述【教学目的】使学生对计算机语言有一定的认识,激发学生学习程序设计的兴趣。【教学重点】程序设计中的若干术语。【教学难点】理解程序设计中的若干术语。【教学方法】讲授式、讨论式、案例分析式。【新课内容】1、计算机语言2、计算机程序设计什么是程序?为了解决某一特定问题用某一种计算机语言编写的指令序列称为程序。什么是程序设计?程序是程序设计的结果,在执行程序前必须先排定程序,排定以时间为进程必须完成的各种操作叫程序设计。用高级语言进行程序设计时要注意以下三个概念:语法,每种计算机语言都有自己的语法规则。语义,即某一语法成分的含义。语用,即正确使用语言。3、C语言的由来规模较大,难以实现无数据类型接近硬件,但过于简单,功能有限用其编写了UNIX操作系统功能更强大,面向对象功能更强大,面向对象4、C语言的特点语言简洁、紧凑,使用灵活运算符丰富丰富的数据类型结构化的控制语句语法限制不严格能进行位操作语言生成的代码质量高可移植性好具有预处理功能5、简单C程序介绍main(){inta,b,sum;韶关市高级技工学校a=123;b=456;sum=a+b;printf(Sumis%d\n,sum);}intmax(intx,inty){intz;if(x=y)z=x;elsez=y;return(z);}main(){inta,b,c;scanf(%d%d,&a,&b);c=max(a,b);printf(”max=%d\n,c);}6、作业说明C语言的由来。算法【教学目的】使学生对计算机算法有一定的认识,激发学生学习程序设计的兴趣。【教学重点】NS图的基本知识【教学难点】算法的特性与设计【教学方法】讲授式、讨论式、案例分析式。【新课内容】1、算法的概念广义地说,为解决一个问题采取的方法和步骤。计算机算法分类数值算法求方程的根求函数的定积分非数值算法图书检索人事管理2、简单算法举例求闰年的算法求素数的算法3、算法的特性韶关市高级技工学校有穷性算法要包含有限的步骤确定性每一步必须明确有零个或多个输入需要从外界获取必要的信息有一个或多个输出需要把求得得解进行输出有效性每一步都能有效地执行4、算法的表示方法设计算法自然语言传统流程图改进的流程图N-S图(盒图)伪代码实现算法计算机语言传统流程图优点:描绘直观,容易掌握缺点:对流程线没有严格控制三种基本结构N-S图(盒图)I.Nassi和B.Shneiderman提出取消流程线,不能任意转移控制使用N-S符号设计出来的程序必然是结构化程序容易表示嵌套关系容易确定局部和全局数据的作用域N-S的基本符号3.6PDL(过程设计语言—伪码)用结构化程序设计语言的语法控制框架,在内部却可灵活使用自然语言来表示各种操作比流程图更灵活,可以使用普通的正文编辑程序进行修改可以作为注释直接插在源程序中,提高文档质量有自动处理程序存在,可以自动生成程序代码缺点:不如图形工具直观BEGINinputm,nifmnexchangemandnm%nr韶关市高级技工学校whiler≠0{nmrnm%nr}printnEND计算机语言BEGINinputm,nifmnexchangemandnm%nrwhiler≠0{nmrnm%nr}printnENDmain(){intm,n,r,t;scanf(“%d,%d”,&m,&n);if(mn){t=m;m=n;n=t;}r=m%n;while(r!=0){m=n;n=r;r=m%n;}printf(“n=%d”,n);}4、结构化程序设计方法原理:用三种基本控制结构,通过组合和嵌套可实现任何单入口、单出口的程序。方法:自顶向下逐步细化模块化5、作业画简单程序的NS图和PDL代码。数据类型【教学目的】使学生对程序设计数据类型的较全面而深入的掌握。【教学重点】韶关市高级技工学校数据类型的存储空间、长度【教学难点】常量与变量的概念【教学方法】讲授式、讨论式、读书指导案例分析式。【新课内容】1、基本类型整型字符型实型(浮点型)单精度、双精度构造类型数组类型结构体类型共用体类型指针类型空类型2、常量与变量符号常量用一个标识符代表一个常量#definePI3.14159main(){floatr,s,area;scanf(%f,&r);s=2*PI*r;area=PI*r*r;printf(s=%7.2f,area=%7.2f,s,area);}变量的概念程序运行过程中其值可以改变的量,系统为程序中的每一个变量开辟一个存储单元,如:main(){inta,b;a=2;printf(a=%d\n,a);b=4;printf(“b=%d\n,b);}变量名标识符:用来标识变量名、符号常量名、数组名、函数名、文件名的有效字符序列。关键字预定义标识符用户定义标识符字母或下划线开头,后跟字母、数字和下划线组成。韶关市高级技工学校变量要先定义后使用3、整型常量三种形式表示:十进制:如123-600八进制:以0开始,如0123十六进制:以0x开始,如0x123main(){inta=0123;printf(“a=%d\n”,a);}整型变量分类int整型shortint(或short)短整型longint(或long)长整型unsignedint无符号整型unsignedshort无符号短整型unsignedlong无符号长整型各类型数据长度、取值范围所占位数取值范围int16-32768~32767short16-32768~32767long32-21亿~21亿unsignedint160~65535unsignedshort160~65535unsignedlong320~42亿4、整型变量的定义所有的变量需先定义类型inta,b,c;/*指定a,b,c为整型变量*/unsignedcount;/*指定lower为无符号整型变量*/longs;有些变量可以预先设置初值:inta=0,b,c;/*指定a,b,c为整型变量,a的初值为0*/inta=0,b=0,c=0;/*指定a,b,c为整型变量,a、b、c的初值为0*/5、整型数据的溢出main(){inta,b;a=32767;b=a+1;printf(“%d,%d\n”,a,b);}韶关市高级技工学校main(){inta=70000;printf(“a=%d\n”,a);}整型常量的类型main(){unsigneda;a=-1u;printf(“a=%u\n”,a);}6、作业计算正方形面积浮点等数据类型【教学目的】使学生对程序设计数据类型的较全面而深入的掌握。【教学重点】数据类型的存储空间、长度【教学难点】常量与变量的概念【教学方法】讲授式、讨论式、读书指导案例分析式。【新课内容】1、实型常量小数形式:如123.0.1230.012.5指数形式:如123e2123E2main(){floata;a=123e3;printf(“a=%e\n”,a);}实型变量1、分类所占位数取值范围float单精度32-3.4*10-38~3.4*1038double双精度64-1.7*10-308~1.7*10308longdouble长双精度128-1.2*10-4932~1.2*1049322、变量的定义韶关市高级技工学校floatx,y;/*指定x,y为单精度实型变量*/doublez;/*指定z为双精度实型变量*/3、字符型常量单引号括起来的一个字符。如:'a'字符常量可以象整数一样参与运算。字符常量还有另外一种形式——转义字符形式。转义字符功能转义字符功能\a响铃\\反斜杠字符\b退一格\'单引号字符\f走纸换页\双引号字符\n换行\?问号\r回车\ooo1~3位8进制数代表的字符\t横向跳格\xhh1~2位16进制数代表的字符4、字符变量变量的定义charc1,c2;/*指定c1,c2为字符型变量*/2、字符型数据的存储以ASCII码存储,存储形式与整型一样,可以和整数进行运算main(){charc1,c2;c1=‘a’;c2=‘b’;c1=c1-32;c2=c2-32;printf(“%c,%c\n”,c1,c2);printf(“%d,%d\n”,c1,c2);}字符数据在内存中的存储形式及使用方法main(){charc1,c2;c1=97;c2=98;printf(“%c,%c\n”,c1,c2);printf(“%d,%d\n”,c1,c2);c2=c2+1;printf(“%c,%d\n”,c2,c2);韶关市高级技工学校5、字符串常量双引号括起来的字符序列。如Howareyou,0等字符串在存储时末尾被自动加上字符'\0'字符常量与只包含一个字符的字符串常量的区别例:不属于字符常量的是‘A’“B”‘\n’‘\x72’例:合法的字符常量是“abc”‘\x43’‘ab’“\0”例:字符串“ab\n\012\\\””的长度是34612变量赋初值例:inta=3;floatb=2.5;charc=‘a’;例:inta,b,c=5;7、作业计算圆的面积,PI=3.14159各类数据间的混合运算【教学目的】掌握各种数据间混合计算类型转换的方法。【教学重点】强制类型转换【教学难点】转换优先级次序【教学方法】讲授式、讨论式、读书指导、案例分析式。【新课内容】1、C语言允许数据值从一种类型转换成另一种类型。在进行运算时,韶关市高级技工学校不同类型的数据要先转换成同一类型,然后进行运算。转换的规则按图所示。高doublefloatlongunsigned低intchar,short说明:横向向左的箭头表示当运算对象为不同类横向向左的箭头表示必定的转换,如字符型(char)数据和短整型(short)数据必定先转换成整型(int),以提高运算精度。纵向的箭头表示当运算对象为不同类型时转换的方向型时转换的方向。数据总是由低级别向高级别转换。算术运算符和算术表达式基本算术运算符运算符的优先级和结合性自增、自减运算符算术运算符+(加法运算或正号运算符)-(减法运算或负号运算符)*(乘法运算符)/(除法运算符)%(求余运算符,或称模运算符)例:5%3结果:22、运算符的优先级和结合性算术表达式用算术运算符和括号将运算量连接起来的式子称为算术表达式。运算符有优先级和结合性在求表达式的值时,要按照优先级的高低依次计算如果运算符两侧优先级相同,则按规定的结合方向进行。结合性例:main(){intm=7,n=5;floata=49,b=10,x;x=m/2+n*a/b+1/2;printf(“x=%f\n”,x);}3、C语言提供一种“强制类型转换”运算符,将一个类型的变量强制转换为另一种类型。一般形式为:(类型标识符)(表达式)例如:k=(int)((int)x+(float)i)/*得到整型数*/韶关市高级技工学校(float)(x=85)/*得实型单精度数*/例:main(){floatx=3.6;inta;a=(int)x;printf(“x=%f,a=%d\n”,x,a);}例:main(){floatx=2.6,y=3.5,z;inta;z=(int)x+y;a=(int)(x+y);printf(“z=%f,a=%d\n”,a,z);}4、作业P663.93.10各运算符【教学目的】掌握各种运算符的使用方法。【教学重点】++与――运算符的使用【教学难点】复合赋值运算符【教学方法】讲授式、讨论式、读书指导、案例分析式。【新课内容】1、自增、自减运算符++运算符的作用是使变量的值增1。--运算符的作用是使变量的值减1。常见的用法有:++i,--i在使用i前,使i的值加(减)1i++,i--在使用i后,使i的值加(减)1已知i=5(1)j=i++;例i=3;j=-i++;注意:1)、自增和自减运算符只能用于变量,表达式(x+y)++是不合法的。韶关市高级技工学校2)、自增和自减运算符的结合方向是“自右向左”。如表达式-i++等价于-(i++)。3)、(i++)+(i++)+(i++)结果?4)、(++i)+(+