第一章C语言设计初步.ppt

上传人:sccc 文档编号:4873356 上传时间:2023-05-20 格式:PPT 页数:52 大小:1.44MB
返回 下载 相关 举报
第一章C语言设计初步.ppt_第1页
第1页 / 共52页
第一章C语言设计初步.ppt_第2页
第2页 / 共52页
第一章C语言设计初步.ppt_第3页
第3页 / 共52页
第一章C语言设计初步.ppt_第4页
第4页 / 共52页
第一章C语言设计初步.ppt_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《第一章C语言设计初步.ppt》由会员分享,可在线阅读,更多相关《第一章C语言设计初步.ppt(52页珍藏版)》请在三一办公上搜索。

1、C语言教学课件,制作:朱成彪 2004,第一章 C语言初步设计第二章 数据描述与基本操作第三章 C语言的流程设计第四章 模块化设计第五章 数组第六章 指针第七章 结构体、共用体和枚举类型数据,目 录,第一章 C语言初步,1.1.1 程序设计语言的发展(一)机器语言:用几个字节来表示一条指令,且采用二进制表示。格式为:操作码+操作数。特点:是面向机器的编程,编程复杂,但程序的运行效序高。(二)汇编语言(ASM 和MASM)将机器语言的指令用一些助记符来表示,源程序是ASCII代码文件,在程序运行前应将源程序文件编译成二进制的可执行文件。特点:也是面向机器的编程,编程仍然较复杂。机器语言和汇编语言

2、属于低级语言,能直接操作硬件,高级语言,C语言的特点,1.1.2 程序设计语言的支持环境操作系统是程序设计的最重要的支持环境,另外还要有在操作系统基础上安装的语言编译系统(语言以Turbo C为最常见)。,1.1.3 源程序的编缉编译连接和运行编辑:作用是根据程序所要解决的问题写出ASCII代码的源程序文件 C语言的源程序文件的扩展名是.c,C的源程序一般是在C语言的编辑器中来编写(了解C的安装,设定)编译:作用是将源程序转化成二进制的目标文件。C语言的目标文件的扩展名是.obj,在C的编辑环境下可以按 AltF9 来完成。,返回,连接:作用是将一个工程中的多个目标文件(.obj)和有关的库文

3、件(.lib)连接成一个可执行文件(.exe)。若在编译器中运行当前打开的程序按Ctrl+F9可完成,观看运行结果可按alt+F5来完成。之后,按Esc键可以重新返回到编辑状态。若在DOS命令提示符下运行程序,只要在命令提示符下键入可执行文件的文件基本名即可。,返回,综上:用高级语言编写程序,到程序能执行,应有下面的四个过程:(以C语言为例)编辑(.c源文件)、编译(.obj文件)、连接(.exe文件),运行。,1.3.2 关键字 C语言的关键字共有32个,(由系统定义,不能重作其它定义)根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。(1)数据类型关

4、键字(12个):char,double,float,int,long,short,signed,struct,union,unsigned,void,enum,(2)控制语句关键字(12个):break,case,continue,default,do,else,for,goto,if,return,switch,while(3)存储类型关键字(4个):auto,extern,register,static(4)其它关键字(4个):const,sizeof,typedef,volatilep351,9种控制语句:if()elsefor()while()dowhile()continuebrea

5、kswitchgotoreturn,C语言程序设计 第一章 C语言概述,34种运算符:算术运算符:+-*/%+-关系运算符:=!=逻辑运算符:!&|位运算符:|&赋值运算符:=及其扩展条件运算符:?:逗号运算符:,指针运算符:*&求字节数:sizeof强制类型转换:(类型)分量运算符:.-下标运算符:其它:()-,C语言程序设计 第一章 C语言概述,C语言程序设计 第一章 C语言概述,格式特点习惯用小写字母,大小写敏感不使用行号,无程序行概念可使用空行和空格常用锯齿形书写格式,C语言程序设计 第一章 C语言概述,main().,main()int i,j,sum;sum=0;for(i=1;i

6、10;i+)for(j=1;j10;j+)sum+=i*j;printf(“%dn”,sum);,优秀程序员的素质之一:使用TAB缩进对齐有足够的注释有合适的空行,结构特点函数与主函数程序由一个或多个函数组成必须有且只能有一个主函数main()程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。程序语句C程序由语句组成用“;”作为语句终止符注释/*/为注释,不能嵌套不产生编译代码,例:/*This is the main/*of example1.1*/*/,编译预处理命令,C语言程序设计 第一章 C语言概述,1.4 C程序的上机步骤C程序开发步骤,file.exe,C语言

7、程序设计 第一章 C语言概述,程序代码的录入,生成源程序*.c,语法分析查错,翻译生成目标程序*.obj,与其它目标程序或库链接装配,生成可执行程序*.exe,进入Turbo CD:TCTC.exe主控菜单文件操作FILE:New Load Save Write to编辑操作EDIT:插入/修改 块 查找/替换编译链接COMPILE LINK MAKE执行RUN退出Turbo CAlt+xAlt+F,Q帮助HelpF1Ctrl+F1,C语言程序设计 第一章 C语言概述,基本操作:F10-调用主菜单F2-存盘F3-打开Ctrl+F9-RunAlt+F5-User Screen,常用热键,文本编辑

8、:-移动光标PgUp,PgDn-上下翻页Ctrl+PgUp,Ctrl+PgDn-文件首尾Home End Ddelete Insert Bkspace,窗口操作:F5-窗口缩放F6-窗口切换,C语言程序设计 第一章 C语言概述,常用功能键及其作用见C语言习题集与上机指导P.264,Turbo C 2.0 的用法,(一)启动方法 机房里Turbo C装在 C:progtc(或tc2)文件夹下,方法1:在MS-DOS下运行 开机后,选择Windows98启动菜单中第5项出现DOS命令提示符 C:_输入目录转换命令 cd progtc 回车再输入运行Turbo C的命令 tc 回车(若启动菜单未出现

9、,可重新启动后按F8),方法2:在Windows98下运行,依次打开“我的电脑”、C盘、prog、tc 文件夹,双击“tc.exe”文件;或者切换到MS-DOS方式(点“开始”、“程序”、“MS-DOS方式”),出现DOS提示符后,再按方法1运行tc。,在窗口方式下的Turbo C 界面,(二)文件菜单(File)1.打开文件菜单 Alt+F(或F10、F),Load 打开磁盘中的源文件New 新建源文件Save 保存到磁盘Write to 另存为(可改名及存放位置)Os shell 切换到DOS提示符下,(退出DOS提示符,敲 exit)Quit 退出TC,打开磁盘中的源文件对话框(1),在

10、此输入路径、文件名,也可直接回车进入TC当前目录、显示所有C语言源程序,再选择,打开磁盘中的源文件对话框(2),用光标键选择文件,回车即打开该文件,保存 源文件对话框(保存到磁盘),第一次保存可输入文件名及路径,否则,以系统默认的文件名noname.c 保存在TC当前目录下,另存为对话框(可改名、改存放位置),若要保存到软盘上,可输入:A:filename,切换到DOS提示符下,可执行各种DOS命令,退出DOS提示符,敲 exit回到TC编辑窗口,若文件修改后未存盘,当执行New和 Quit命令时,将会出现此对话框,询问是否保存该文件?,(三)编译(Compile)与运行(Run),敲 Ctr

11、l+F9 键,TC 将执行编译和运行命令,若有错误,将在信息(Message)窗口中显示,根据提示找出错误,修改后再运行,直到结果正确为止。,(四)查看运行结果,敲 Alt+F5 将切换到用户屏幕(User screen),敲任意键又从用户屏幕返回到TC编辑窗口(要祥细了解各菜单作用请看C语言习题集与上机指导P246-P263),1.2 用库函数组装程序,C语言程序是由函数构成的,所谓函数就是指具有一定功能的语句块,用一对 括起来。C语言中的函数有三大类1、main()函数,是程序所必须的。程序总是从这个函数的第一个语句开始执行。它可以使用(俗称调用)其它函数)。2、库函数:C语言向程序员提供

12、了具有特殊功能的函数,函数的代码位于lib子目录下的一些.lib文件中。、自定义函数:因为库函数的个数及功能是很有限的,故语言也允许程序员根据程序的功能来定义一些函数。,返回,例1.1显示programming is fun 的语言程序如下:main()printf(“programming if fun!n”);运行说明:、main 和printf(print function 的简写)都是函数的名字,后面跟有(),一般的,()用于列出函数的参数,在这里,main没有参数(事实上允许main函数可有也可无参数),而printf函数中有一个参数,即“”中的多个字符(俗称字符串)。、通常将称作语

13、句块。紧跟在函数名后面,也称作作函数体,表示该函数要完成的功能(俗称对函数的定义)。由此可见:这里的main函数的定义只是调用了一个库函数printf.,3、printf这个函数的定义在哪?在lib子目录 的某个.lib 文件中定义。故printf是个库函数,可直接调用,不必在此再定义了。只需在调用时在()中代入参数就行,这里的参数是个字符串:“programming if fun!n”。、语言用分号“;”来表示一个语句结束,“;”称作语句的结束标志。、printf的打印过程为,即在当前光标处打印第一个字符,光标向右移一列(每行列),再打印第二个字符。直至“”中的字符打印完毕。在此过程中若光标

14、移动至行尾,光标将会自动移动到下一行的行首。、特别地、printf的函数的参数中有时有个“n”,这不是两个字符,而是表示一个字符,用于强行将光标移动到下一行的行首,打印时并不打印出来。故“n”被称作“换行符”。即“n”的意义并不是它的字面意义了,而是有特殊的意义,C将“”后跟一至几个特别字符称作转义字符(见p24)。想一想下面的句子的作用:printf(“n”);printf(“in nam anstunndent!n”);,返回,例1.2计算一个数的正弦值的语言程序为:include”math.h”main()/*main 函数的定义开始*/float x;/*定义x为实型变量*/x=sin

15、(0.19199);/*调用sin()函数,0.19199是个参数,单位是弧度*/printf(%dn,x);/*打印出x的值*/*main函数的定义结束*/说明:、include“math.h”是个预处理语句,作用为告诉编译器,在本语句的后面会用到math.h中列举的所有数学函数中的一个或几个,在生成.obj文件时,将全部数学函数的执行代码从相关的.lib文件中拷贝进来。2、#include”math.h”可以写成#include“math.h”告诉编译器找math.h应在当前目录和include子目录下进行。告诉编译器找math.h仅在当前目录下进行。,返回,、语句 float x;是个变

16、量申明语句。x 是个变量名,C的关键字“float”放在 x的前面来修饰x,告诉dos系统x 这个变量的类型 是浮点型(实型)。当执行这句时,系统在内存中为这个变量开辟连续的四个字节的存储区间,并将这个变量的初值赋为任意值,变量x从此具有了“生命”。之后,才能在这句以后的语句中使用x这个变量。使用变量有两种方法,向其写入新数字(原值再不存在了)、从中读出数字(原值不变)。注意:“数字要用变量来保存,而变量 先定义,再使用”在C中是个真理。、语句 x=sin(0.19199);中的“=”在C中称作赋值运算符,作用为将它右边的值存入左边的变量中。其右边只能是含有已知的变量或常量的表达式,左边只能是

17、单个变量。错误的写法有:sin(0.19199)=x;或float y;x+y=sin(0.19199);或float y;x=sin(0.19199)+y;结论:“=”左边只能有一个变量,右边只能有已知量。、语句 printf(“%fn”,x);作用是打印出x的值。过程为:从“”中的第一个字符开始打印,%表示要打印出一个数字,f表示这个数字的类型是实型的。(见p7)要打印出哪一个数字呢?“”后的那个变量的值。%f的小数位缺省为6位(第七位四舍五入),故称%f为打印的格式控制字符。结论:printf(“x”);不能打印出x的值。而是字符x。,返回,1.3 自定义C函数,例1.3 求三个数的平均

18、值。main()float a,b,c,ave;a=3.5;b=4.6;c=7.9;ave=average(a,b,c);printf(average=%fn,ave);,下面是自定义函数的代码float average(x,y,z)/*函数的原型*/float x,y,z;/*“”前只能定义形式参数的类型*/float aver;/*中间变量只能定义在函数体内*/aver=(x+y+z)/3;/*C中只能用“/表示和分式*/return(aver)/*将结果带回到调用函数的调用点*/程序运行见(103.c),说明:1、a=3.5;这一行是对三个变量分别赋值,不能写成3.5=a;这种样式。、a

19、verage是个自定义的函数名,函数名中间不能有空格。名字应力求简洁且意义明确。、aver=average(a,b,c);是个函数调用语句,即主函数调用自定义函数vaerage。自定义函数average是被调用函数。调用时,需知道average这个函数的定义部分在内存中的存放位置。故你必需写出自定义函数的代码。(右方框中),返回,、事实上,存放在内存中的函数代码要占若干个字节(称作存放区间)。把这个区间的第一个字节的编号称作函数的地址,这个地址就是用函数名来保存的。、函数的原形有两种写法。允许用传统格式和现代格式来书写。float average(x,y,z)float x,y,z;这是用传统

20、格式。float average(float x,float y,float z)这是用现代格式。不论是用哪种方法来写,x,y,z三者都是形参。6、aver=average(a,b,c);是个函数调用语句,由主函数向自定义函数传递了三个已知的变量,a,b,c。a,b,c 称作实参。并使average这个函数的代码开始运行。、编译调用语句时,系统根据函数的原型检查实参和形参的个数以及a和x、b和y、c和z的数据类型是否一致,若不一致,编辑系统提示出错。a,b,c被称作实参(保存具体的数),x,y z这被称作形参(大小由对应的实参值而定)。把这种实参之值传给形参的数据传送方式称作“值传递”。、中没

21、有号和号,应用号和来替代。即应写成m*m。、return aver;这个语句表示程序流程转向到调用函数的调用点。并从被调用函数向调用函数的调用点带回了一个aver的值。、事实上,被调用语句的定义部分可以放在调用语句的前面或后在。从例3可知:对自定义函数的处理应有申明部分,调用部分,定义部分“三部曲”。,返回,main()float average();/自定义函数在后时应申明自定义函数*/float a,b,c,ave;scanf(“%f,%f,%f”,/*程序运行见(104.c),float average(x,y,z)/*定义函数*/float x,y,z;float aver;aver=

22、(x+y+z)/3;return(aver);main()/*在主函数中省略了自己定义函数的申明*/float a,b,c,ave;scanf(“%f,%f,%f”,执行时从主函数第一个语句开始执行。到执行主函数的最后一个语句后结束。,例1.4 求任意三个数的平均值,返回,上面的例 1.3的程序有个不好之处就是只能求固定的三个数的平均值。也就是它对a,b,c三个数赋值时采用的是“=”,事实上,C还有向变量赋任意值的“格式输入函数”,即scanf函数。scan是“扫描”的意思,意即检查屏幕上有什么,那么,执行这个函数时出现黑色的屏幕,等待用户输入数字,遇回车符系统认为输入结束。如:scanf(%

23、d,%d,%d,这个变量定义语句形成的。当用户输入13,56,78系统将13送入内存中第&a字节处,并按%d中d所 规定的2个字节的区间长度来存放,同理:56,78在内存中也各占2个字节的存储区间,只是起始字节分别为&b和&c,这时,a,b,c也就有了确定的值了。,返回,scanf(%d%d%d,程序运行见(104.c),返回,例1.5 求两个数中的大者 无论是编写什么功能的程序,要注意两个方面的问题:1、根据实际问题应采用几个变量,各是什么类型的?2、分析应采用什么算法?下面是不采用自定义函数的程序代码:main()float a,b;scanf(%f%f,程序运行见(105a.c),注:i

24、f(表达式)语句1;else 语句2;是个选择结构语句。下面是它的流程图,ab,y,语句1,n,语句2,返回,下面是采用自定义函数的程序代码:void max2(float x,float y)/*采用现代风格给出自定义函数的原型*/*因这个函数的功能仅是打印数据,函数类型应为void型*/if(xy)printf(%f,x);else printf(%f,y);return;/*这个语句可以省略*/main()float a,b;/*自定义函数在main函数之前时,函数申明部分可省*/scanf(%f%f,/*程序运行见(105b.c)*/,返回,下面是采用另一种算法并采用自定义函数的程序代

25、码float max2(float x,float y)/*采用现代风格给出自定义函数的原型,并要求这个函数运算的结果为两个数字中的大者*/float z;if(xy)z=x;else z=y;return(z);main()float a,b;float max;scanf(%f%f,/*程序运行见(105c.c)*/,返回,例1.6 求1+2+9+10的值。最笨(也是初学程序的人最容易理解的)的程序代码为(106a.c):main()int a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,s;printf(nEnter 10 values(1-10):);scanf(%d%d

26、%d%d%d,/*程序运行见(106a.c)*/,返回,下面是另一种算法的程序代码(106b.c):main()int sum,i;i=0;sum=0;i=i+1;sum=sum+i;/*从下行起再重复这一行九次,此处用省略号代替,这种算法与高中时数列运算中的递推算法是一样的*/printf(%d,sum);/*程序运行见(106b.c)*/,返回,下面的程序代码采用的是循环算法,代码简洁(106c.c)While循环语句的格式为:While(表达式)一个语句;或while(表达式)语句块main()int i,sum;i=0;sum=0;while(i9)i=i+1;sum=sum+i;pr

27、intf(%d,sum);/*程序运行见(106c.c)*/,y,返回,法四、用自定义函数的程序代码为(106d.c)int signa(int n)int i,sum;sum=i=0;while(i=n-1)i=i+1;sum=sum+i;return sum;main()int n,total;scanf(%d,/*程序运行见(106d.c)*/,返回,小结本章:语言程序是由函数构成的,它有三类函数:main函数库函数自定义函数三个大类。但一个程序中应有且只有一个main函数。调用库函数之前应有与之对应的#include“”语句。一般地,若要使用自定义函数,则应有函数申明函数调用函数定义三步曲。当自定义函数定义在调用语句之前时,自定义函数的申明部分可省。当自定义函数的结果是 字符型或整数型时,其申明部分和定义部分的函数类型可省,甚至不论它位于调用函的前或后,申明部分是可省的。自定义函数的原型有传统写法和现代写法两种方式。任何数据应由变量来存储。在向变量写数据或从变量读数据之前,务必先定义变量(建立变量)。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号