《C语言设计初步》PPT课件.ppt

上传人:za****8 文档编号:15261447 上传时间:2020-08-06 格式:PPT 页数:52 大小:1.44MB
收藏 版权申诉 举报 下载
《C语言设计初步》PPT课件.ppt_第1页
第1页 / 共52页
《C语言设计初步》PPT课件.ppt_第2页
第2页 / 共52页
《C语言设计初步》PPT课件.ppt_第3页
第3页 / 共52页
资源描述:

《《C语言设计初步》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《C语言设计初步》PPT课件.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 来完成。,返回,连接:作用是将一个

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

4、字、存储类型关键字和其它关键字四类。 (1)数据类型关键字(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, vol

5、atile p351,9种控制语句: if( )else for( ) while( ) dowhile( ) continue break switch goto return,C语言程序设计 第一章 C语言概述,34种运算符: 算术运算符:+ - * / % + - 关系运算符: = != 逻辑运算符:! sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(“%dn”,sum); ,优秀程序员的素质之一: 使用TAB缩进 对齐 有足够的注释 有合适的空行,结构特点 函数与主函数 程序由一个或多个函数组成 必须有且只能有一个主函

6、数main() 程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。 程序语句 C程序由语句组成 用“;”作为语句终止符 注释 /* */为注释,不能嵌套 不产生编译代码,例: /*This is the main /* of example1.1*/ */,编译预处理命令,C语言程序设计 第一章 C语言概述,1.4 C程序的上机步骤 C程序开发步骤,file.exe,C语言程序设计 第一章 C语言概述,程序代码的录入, 生成源程序*.c,语法分析查错,翻译 生成目标程序*.obj,与其它目标程序或库 链接装配,生成可执行 程序*.exe,进入Turbo C D:TCTC.

7、exe 主控菜单 文件操作FILE :New Load Save Write to 编辑操作EDIT:插入/修改 块 查找/替换 编译链接COMPILE LINK MAKE 执行RUN 退出Turbo C Alt +x Alt+F ,Q 帮助Help F1 Ctrl+F1,C语言程序设计 第一章 C语言概述,基本操作: F10-调用主菜单 F2-存盘 F3-打开 Ctrl+F9-Run Alt+F5-User Screen,常用热键,文本编辑: -移动光标 PgUp,PgDn-上下翻页 Ctrl+PgUp,Ctrl+PgDn-文件首尾 Home End Ddelete Insert Bkspa

8、ce,窗口操作: 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 回车 (若启动菜单未出现,可重新启动后按F8),方法2:在Windows98下运行,依次打开“我的电脑”、C盘、prog、tc 文件夹,双击“ tc.exe

9、”文件; 或者切换到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),在此输入路径、文件名, 也可直接回车进入TC当前目录、 显示所有C语言源程序,再选择,打开磁盘中的源

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

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

12、ib文件中。 、自定义函数:因为库函数的个数及功能是很有限的,故语言也允许程序员根据程序的功能来定义一些函数。,返回,例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(0

15、.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仅在当前目录下进行。,返回,、语句 f

16、loat x; 是个变量申明语句。 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的值。而是字

18、符x。,返回,1.3 自定义C函数,例1.3 求三个数的平均值。 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) /*将结果带回到调用函数的调用点*/

19、 程序运行见(103.c),说明: 1、a=3.5;这一行是对三个变量分别赋值,不能写成3.5=a;这种样式。 、average是个自定义的函数名,函数名中间不能有空格。名字应力求简洁且意义明确。 、aver=average(a,b,c); 是个函数调用语句,即主函数调用自定义函数vaerage。自定义函数average是被调用函数。调用时,需知道average这个函数的定义部分在内存中的存放位置。故你必需写出自定义函数的代码。(右方框中),返回,、事实上,存放在内存中的函数代码要占若干个字节(称作存放区间)。把这个区间的第一个字节的编号称作函数的地址,这个地址就是用函数名来保存的。 、函数的

20、原形有两种写法。允许用传统格式和现代格式来书写。 float average( x, y,z) float x,y,z; 这是用传统格式。 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的数据类型是否一致,若不一致,编辑系统提示出错

21、。 a,b,c被称作实参(保存具体的数),x,y z这被称作形参(大小由对应的实参值而定)。 把这种实参之值传给形参的数据传送方式称作“值传递”。 、中没有号和号,应用号和来替代。即应写成m*m。 、return aver;这个语句表示程序流程转向到调用函数的调用点。并从被调用函数向调用函数的调用点带回了一个aver的值。 、事实上,被调用语句的定义部分可以放在调用语句的前面或后在。 从例3可知:对自定义函数的处理应有申明部分,调用部分,定义部分“三部曲”。,返回,main() float average();/自定义函数在后时应申明自定义函数*/ float a,b,c,ave; scanf

22、(“%f,%f,%f”, /*程序运行见(104.c),float average(x,y,z) /*定义函数*/ float x,y,z; float aver ; aver=(x+y+z)/3; return (aver) ; main()/* 在主函数中省略了自己定义函数的申明*/ float a,b,c,ave; scanf(“%f,%f,%f”, ,执行时从主函数第一个语句开始执行。到执行主函数的最后一个语句后结束。,例1.4 求任意三个数的平均值,返回,上面的例 1.3的程序有个不好之处就是只能求固定的三个数的平均值。也就是它对a,b,c三个数赋值时采用的是“=”,事实上,C还有向

23、变量赋任意值的“格式输入函数”,即scanf函数。scan是“扫描”的意思,意即检查屏幕上有什么,那么,执行这个函数时出现黑色的屏幕,等待用户输入数字,遇回车符系统认为输入结束。 如:scanf(%d,%d,%d,这个变量定义语句形成的。 当用户输入13,56,78系统将13送入内存中第 scanf(%f%f, 程序运行见(105a.c),注: if( 表达式) 语句1 ; else 语句2; 是个选择结构语句。下面是它的流程图,ab,y,语句1,n,语句2,返回,下面是采用自定义函数的程序代码: void max2( float x,float y) /*采用现代风格给出自定义函数的原型*/

24、 /*因这个函数的功能仅是打印数据,函数类型应为void型*/ if(xy) printf(%f,x); else printf(%f,y); return ; /*这个语句可以省略*/ main() float a,b; /*自定义函数在main函数之前时,函数申明部分可省*/ scanf(%f%f, /*程序运行见(105b.c)*/,返回,下面是采用另一种算法并采用自定义函数的程序代码 float max2( float x, float y) /*采用现代风格给出自定义函数的原型,并要求这个函数运算的结果为两个数字中的大者*/ float z; if(xy) z=x; else z=y

25、; 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%d%d%d, /*程序运行见(106a.c)*/,返回,下面是另一种算法的程序代码(106b.c): main() int sum, i; i=0; sum=0; i

26、=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; printf(%d,sum); /*程序运行见(106c.c)*/,y,返回,法四、用自定义函数的程序代码为(106d.c) i

27、nt 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“” 语句。 一般地,若要使用自定义函数,则应有函数申明函数调用函数定义三步曲。 当自定义函数定义在调用语句之前时,自定义函数的申明部分可省。 当自定义函数的结果是 字符型或整数型时,其申明部分和定义部分的函数类型可省,甚至不论它位于调用函的前或后,申明部分是可省的。 自定义函数的原型有传统写法和现代写法两种方式。 任何数据应由变量来存储。在向变量写数据或从变量读数据之前,务必先定义变量(建立变量)。,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!