版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C 程 序 设 计17 August 2022内容 计算机语言 C语言简介 C语言发展历史 C 语言特点 计算机程序 C语言程序 C语言程序的基本结构 C语言的语句 C语言的字符集和标识符 算法与算法的表示 算法 算法的表示 结构化程序设计方法第1页,共51页。C 程 序 设 计17 August 2022计算机语言定义 为计算机用户设计的用于编制程序的语言工具称为计算机程序设计语言分类机器语言汇编语言高级语言第2页,共51页。C 程 序 设 计17 August 2022计算机语言:机器语言定义 具有固定格式、能完成一系列操作的特定二进制编码。 特点 难于掌握、容易出错,冗长繁琐第3页,共5
2、1页。C 程 序 设 计17 August 2022计算机语言:汇编语言定义 用助记符代替指令的操作码、用数字或符号代替指令中的操作数或操作数存放位置的程序设计语言。 例如:用ADD代替加法指令的二进制代码; 用SUB代替减法指令的二进制代码;特点 易于记忆、便于掌握; 用汇编语言编写的程序需要通过计算机编译程序编译,才能被计算机执行,因而执行效率不如机器语言程序高。第4页,共51页。C 程 序 设 计17 August 2022计算机语言:高级语言定义 机器语言或汇编语言是面向机器的语言,用它们编写程序都离不开具体的计算机指令系统。高级语言则是面向过程的语言,它独立于机器。在高级语言里,操作
3、码与地址都以符号代码或文字形式出现。特点 易于记忆、便于理解和掌握,编写效率高; 用高级语言编写的程序需要通过编译或解释,才能被计算机执行,因而执行效率不如机器语言程序高。第5页,共51页。C 程 序 设 计17 August 2022计算机语言:高级语言种类 BASIC,PASCAL,FORTRAN, COBOL,C,LISP, PROLOG高级语言程序的执行方式编译执行:将源程序先转换成机器语言的目标程序,再将各个目标程序连接成可执行程序。解释执行:用语言的解释程序对源程序进行解释,同时执行。执行过程中不保存解释后的机器代码,下次运行程序需要重新解释。 第6页,共51页。C 程 序 设 计
4、17 August 2022C语言简介:C语言发展历史语言名称诞生年代 制定者 ALGOL 60 1960Peter Naur等13人来自7个不同的国家CPL 1963剑桥大学 BCPL 1967M.Richards B语言 1970-1971K. Thompson C语言 1972-1973D.M.Ritchie 可移植C语言 1977标准C语言 1978B.W.Kernighan, D.M.Ritchie ANSI C语言 1983American National Standard Institute 87 ANSI C 1987American National Standard In
5、stitute ISO C语言 1990International Standard Organnization 第7页,共51页。C 程 序 设 计17 August 2022C语言简介:C语言发展历史语言名称特点 ALGOL 60 面向问题,离硬件远,不适合编写系统软件(Algorithm Language) CPL 比ALGOL60 离硬件近,但规模大,难实现 BCPL 对CPL的简化-Basic Combined Programming Language B语言 更简化的BCPL, 可编写系统软件(UNIX),但过于简单,功能有限 C语言 保持了B和BCPL语言的特点,克服了不足, 编
6、写了UNIX第5,6版 可移植C语言 简化了移植C的工作, 标准C语言 以UNIX第7版的编译程序为基础,The C Programming Language ANSI C语言 考虑了C语言问世以来的发展情况,比标准C有很大发展 87 ANSI C K&G 重新写了书The C Programming Language,提出了新标准 ISO C语言 以87 ANSI C 为标准和基础,诞生了许多C语言系统: Microsoft c、Turbo C、Quick C、Borland C、Visual C、Visual C+ 第8页,共51页。C 程 序 设 计17 August 2022C语言简介
7、:典型的C语言版本目前比较流行的C语言版本 Microsoft C、Visual C、Visual C+ (Microsoft); Turbo C、Borland C、 Borland C+(Borland); 这些C语言分DOS版本、WINDOWS版本; 有面向过程的、也有面向对象的。本课程以Turbo C3.0,Visual c+ 6.0 为编程实践的上机环境。第9页,共51页。C 程 序 设 计17 August 2022C语言简介: C 语言特点1.语言简洁、紧凑、使用方便、灵活32个关键字,9种控制语句,书写自由,接近自然语言 2. 运算符丰富有34种运算符,使用很灵活,可以构造多样
8、表达式 3. 数据类型齐全 标准的和用户定义的数据类型能满足各种编程需要 4. 结构化语言便于编写结构化的程序 第10页,共51页。C 程 序 设 计17 August 2022C语言简介: C 语言特点5.程序执行效率高,可移植性好 比汇编程序执行效率低1020%,基本不需修改即可以移植到其他机器系统 6.比其他高级语言更接近机器语言 C语言是高级语言中的低级语言,能实现汇编语言的大部分功能,可以直接访问物理硬件 7.语法不太规范,自由度大,查错难度大 从这个意义上讲,不是“很好”的教学语言 第11页,共51页。C 程 序 设 计17 August 2022计算机程序程序种类源程序目标程序可
9、执行程序解释程序编译程序程序执行过程 CPU从内存中读出一条指令,通过运算器和控制器执行相应的操作,再读下一条指令,执行相应的操作,重复该过程,直至程序的最后一条指令。第12页,共51页。C 程 序 设 计17 August 2022C语言程序源程序目标程序可执行程序编译程序第13页,共51页。C 程 序 设 计17 August 2022 C语言程序的基本结构 C语言程序示例例1 仅由一个main()函数构成的语言程序。 #include void main() printf(“Hi, it is me- a simple C program!n”);主函数语句:输出语句预处理命令第14页,
10、共51页。C 程 序 设 计17 August 2022C语言程序的基本结构例2#includefloat max(float x, float y);void main() float a, b, c; /*输入3个实数*/ scanf(”%f%f%f”,&a,&b,&c); /*打印最大者*/ printf(”The biggest is %f”, max(max(a,b),c);float max(float x, float y) if (xy ) return (x); else return (y); 输入语句函数注释声明语句if语句第15页,共51页。C 程 序 设 计17 Au
11、gust 2022 C语言程序的基本结构C语言程序是函数的组合体特殊的主函数main()函数 C语言程序必须有且只能有一个名称是main的函数,称为主函数。主函数是整个程序的组织者,它直接或间接协调组织其它函数按照一定的顺序工作,完成整体任务;C语言遵循“先定义后使用”的原则 一般,要使用一个符号,应当在使用前定义它;若主函数在其它函数之前出现,要对后面的函数进行声明;C语言程序从main函数开始执行第16页,共51页。C 程 序 设 计17 August 2022C语言程序的基本结构 从设计C语言源程序到可以执行的程序, 通常要经过以下几步:编辑编译连接执行第17页,共51页。C 程 序 设
12、 计17 August 2022 C语言的函数直观描述 函数好比一个加工处理器,可以接收需要处理的数据,也可以输出要求的处理结果,其形象图如下:输入:参数函数输出:函数类型第18页,共51页。C 程 序 设 计17 August 2022 C语言的函数函数的一般格式 函数类型 函数名称(函数参数) 函数体:由声明、语句以及注释组成;void main() printf(”Hi, it is me- a simple C program!n”);第19页,共51页。C 程 序 设 计17 August 2022 C语言的函数函数的例子 void main() printf(”a simple C
13、 program!n”);float max(float x, float y) if (xy ) return (x); else return (y); 第20页,共51页。C 程 序 设 计17 August 2022C语言的函数函数由语句构成每条语句须以分号“;”结束 一行可以包含一条语句或多条语句;多行一条语句()注释有两种形式 /* */:用于一段注释;可出现在引号外、空格可出现的任何位置; / :用于一行注释; 注释不是程序的必要部分,其存在与否不影响程序的编译和执行。但注释可增强程序的可读性。C语言绝大部分功能通过函数实现 C语言一般都提供了常见功能的函数;使用这些函数,要在m
14、ain函数前面出现包含这些函数的头文件;比如#include包含scanf、printf等I/O函数;#include包含sin、log、sqrt等数学函数第21页,共51页。C 程 序 设 计17 August 2022C语言的语句按形式分类控制语句 (1)选择结构控制语句: if-else, switch (2)循环结构控制语句:do-while,for, while (3)其它控制语句:goto, return,break, continue 表达式语句表达式语句由表达式后加一个分号构成;表达式语句的特例是函数调用语句.例如:scanf(“%f%f%f”,&a,&b,&c); print
15、f(“%f”, max(max(a,b),c);第22页,共51页。C 程 序 设 计17 August 2022C语言的语句按语句数目分类简单语句:单条语句;只由一个分号构成的语句称为空语句。复合语句:由大括号括起来的一组简单语句构成的语句组。 注意: (1)复合语句在地位上与单条语句相同,但复合语句最后没有分号; (2)复合语句可以嵌套,即复合语句中可出现复合语句;void main() int a,b,c; a=1;b=3;c=3; printf(“%d”,a+b+c);复合语句第23页,共51页。C 程 序 设 计17 August 2022C的字符集和标识符C语言的标识符和运算符是组
16、成C语句的基本单位。C语言的字符集是构成标识符和运算符的基本单位。第24页,共51页。C 程 序 设 计17 August 2022ASCII码:American Standard Code for Information Interchange第25页,共51页。C 程 序 设 计17 August 2022C的字符集 C语言的字符集C语言字符集是ASCII码字符集的子集,主要包括:(1) 26个英文字母(区分大小写)(2) 10个数字(09)(3)下划线以及专用符号(+ - * / % 等)。 关于ASCII码字符集基本知识:(1)26个英文大写字母连续排列;(2)26个英文小写字母连续排
17、列;(3)10个数字(09)连续排列;(4)每个字符有唯一一个序号相对应; 第26页,共51页。C 程 序 设 计17 August 2022C的标识符 标识符由C语言字符组成 C语言标识符构建规则: 注意: (1) C语言的标识符区分大、小写字母; (2) 标识符的长度依编译系统的不同而不同。由字母或下划线开头,字母、数字和下划线的组合第27页,共51页。C 程 序 设 计17 August 2022C的标识符例 标识符举例合法的标识符: a, A, A10, A_2, store, price, Student_no, is_zero, _pdf不合法的标识符: 2, 2a, a-2, a
18、+2, *3a, “this” 第28页,共51页。C 程 序 设 计17 August 2022C的标识符:关键字(保留字) 关键字(保留字)是C语言专用的标识符,用户不能赋予新的含义而用作自己的标识符(共有32个):autobreakcasechar constcontinuedefaultdodouble elseenumexternfloatfor goto if intlongregister returnshortsignedsizeofstatic structswitch typedef unionunsigned voidvolatilewhile第29页,共51页。C 程
19、序 设 计17 August 2022C的标识符:预定义标识符 预定义标识符是赋予指定含义的标识符,这些含义通常符合习惯用法。例如:sin,tan,log等都与数学中的含义相同; fclose, fopen用于文件的关闭、打开。这些预定义标识符的数量随系统的不同而不同。预定义标识符与关键字不同,用户可以赋予新的含义,但不提倡这样做。 第30页,共51页。C 程 序 设 计17 August 2022C的标识符:用户定义标识符 用户安照自己的意愿和需要定义的标识符用户定义标识符的基本原则例判别下面的字符序列是否是合法的标识符: p2p, ,, sin, Int, INT, sin, a2, a*
20、b(1)符合标识符号的组成规则;(2)绝对避免和关键字重名;(3)尽量避免和预定义标识符重名;第31页,共51页。C 程 序 设 计17 August 2022C的标识符例3标识符sin,cos被重命名,程序正确;若把它们改为int,for,编译时会出错。#include#includedouble sin(double x) return 2*x; void main() float cos=2; printf(%.2f,sin(1);第32页,共51页。C 程 序 设 计17 August 2022算法与算法的表示编写程序时,必须明确如下3个方面: 1已知的要处理的数据对象数据结构 2要求
21、得到的结果及形式 3从已知出发求得结果所采取的方法和步骤算法数据结构和算法根据结果和形式确定,所得结果和形式是数据结构和算法的必然产物。计算机程序是数据结构之上的算法,即: 程序 = 数据结构 + 算法计算机算法可以分为两大类: 数值算法和非数值算法。 第33页,共51页。C 程 序 设 计17 August 2022 算法的例子例4 任意给定正整数n,求数列 1,-1/2,1/3,-1/4,前n项的和。分析:处理对象正负项交替出现,后一项的分母比前一项的分母大1的数列;求前n项的和。算法:令sum 代表要求的和,且sum初始值为0;则sum 是逐项求出数列的每一项后,加到sum上的结果。令i
22、tem代表第k项(从1开始),则当k为奇数时,item为正,否则为负。让k按1递增,当k变到n的时候,sum就是所求的结果。据此可以设计如下算法:第34页,共51页。C 程 序 设 计17 August 2022 算法的例子 (1)读入整数n (2)sum=0 (3)k=1 (4)若k为奇数,item=1/k;否则item=-1/k (5)sum=sum+item (6)k递增1:k=k+1 (7)如果k不大于n,则继续(4)(6); 否则结束,输出结果 第35页,共51页。C 程 序 设 计17 August 2022 算法的特点1有穷性:算法应当在有限步结束2确定性:算法的每一步都应当是清
23、晰明确的3有效性:算法应能有效运行并给出预期结果4. 有输出:算法应当有一个或多个输出。 第36页,共51页。C 程 序 设 计17 August 2022 算法的表示自然语言表示法 用自然语言把算法表达、叙述出来。此方法因自然语言含义的不准确而不准确,因此不能在计算机上实现。 计算机语言表示法 用语言严格按照其语法写出算法对应的程序,这是我们编程的目标。但一下子直接写出算法的计算机语言程序往往比较困难,需要有个过渡。下面的几种方法可以理解为从自然语言到计算机语言的过渡表示方法 第37页,共51页。C 程 序 设 计17 August 2022 算法的表示流程图表示法流程图是一种用图形直观表示
24、算法操作的算法表示方法。常用的图形是由美国国家标准化协会(ANSI)制定并得到公认的。主要有以下几种: 起止框输入输出框处理框判断框流程线第38页,共51页。C 程 序 设 计17 August 2022 算法的表示上面例子的流程图YNYN开始读入nsum=0k=1item=1/kk是奇数item= -1/ksum=sum+itemk=k+1kn ?结束第39页,共51页。C 程 序 设 计17 August 2022 算法的表示采用基本结构的改进流程图 在流程图表示方法中,流程线的使用没有任何限制,从而会导致流程走向的任意性,降低可读性。 1966年Bohra和Jacopini 提出了以下5
25、种改进的基本结构:(1)顺序结构 (2)双分支选择结构 (3)单分支选择结构 (4)当型循环结构 (5)直到型循环结构 第40页,共51页。C 程 序 设 计17 August 2022 算法的表示5种改进的基本结构的结构图AB顺序结构ABp双分支选择结构pA单分支选择结构NYpA当型循环结构YNAp直到型循环结构第41页,共51页。C 程 序 设 计17 August 2022 算法的表示5种基本结构的特点:(1)只有一个入口和一个出口(2) 结构内每个部分都能得到执行且没有死循环重要结论:(1)由5种基本结构顺序组成的算法结构,可以解决任何复杂的问题。(2)由5种基本结构顺序组成的算法称为
26、结构化的算法 第42页,共51页。C 程 序 设 计17 August 2022 算法的表示 N-S流程图表示法 没有流程线的结构化流程图称为N-S流程图。上面5种基本结构对应的N-S基本结构图为:顺序结构选择结构当型循环结构直到型循环结构N-S流程图表示的算法显然是结构化算法 当P成立 A B 直到P成立 A A B P N Y A B第43页,共51页。C 程 序 设 计17 August 2022算法的表示 k是奇数 N Yitem=-1/k item=1/ksum=sum+itemk=k+1 读入n Sum=0 K=1直到kn例4的N-S流程图为第44页,共51页。C 程 序 设 计17 August 2022算法的表示例5判断素数的N-S流程图第45页,共51页。C 程 序 设 计17 August 2022 算法的表示伪代码表示法 流程图的优点是直观准确,但突出的缺点是难以绘画,且不便于修改。伪代码表示法克服了这些缺点。伪代码表示法是介于自然语言表示法和计算机语言表示法之间的一种表示方法。它的写法如同写文章,自上而下,方便自如。例4的伪代码表示法如下 第46页,共51页。C 程 序 设 计17
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个体化:肺癌靶向护理查房:老年体弱患者
- 2026年渝中区南岸区中小学编制教师招聘笔试参考题库及答案详解
- 2026年和田地区中小学编制教师招聘笔试备考试题及答案详解
- 2026年郑州市金水区中小学编制教师招聘笔试参考试题及答案详解
- 2026年连云港市海州区事业编单位人员招聘笔试备考试题及答案详解
- 2026年泸州市纳溪区事业编单位人员招聘笔试备考试题及答案详解
- 2026年鹰潭市月湖区中小学编制教师招聘笔试模拟试题及答案详解
- 2026年宜昌市虎亭区中小学编制教师招聘考试参考题库及答案详解
- 2026年昆明市官渡区中小学编制教师招聘考试备考题库及答案详解
- 2026年江苏省中小学编制教师招聘笔试参考试题及答案详解
- 2026浙教版七年级下册数学知识点归纳总结
- 2026贵阳市护士招聘笔试题及答案
- 2026年手术室护理实践指南试题及答案
- 2026年派驻纪检监察组工作总结和工作计划计划(2篇)
- 2026年4月18日衢州市属事业单位选调笔试真题及答案深度解析
- 电镀实验室安全管理制度
- 2025 年中级注册安全工程师《专业实务-其他安全》考试真题答案及详细解析
- 2025年国企经营计划岗位笔试题目及答案
- 2025越南河内房地产市场行业市场现状供需分析及投资评估规划分析研究报告
- 妊娠合并糖尿病酮症酸中毒的抢救与血糖管理策略
- 老年结婚协议书模板
评论
0/150
提交评论