收藏 分销(赏)

c语言(概述-算法)-(课堂PPT).ppt

上传人:丰**** 文档编号:5438794 上传时间:2024-11-02 格式:PPT 页数:53 大小:1.14MB
下载 相关 举报
c语言(概述-算法)-(课堂PPT).ppt_第1页
第1页 / 共53页
c语言(概述-算法)-(课堂PPT).ppt_第2页
第2页 / 共53页
c语言(概述-算法)-(课堂PPT).ppt_第3页
第3页 / 共53页
c语言(概述-算法)-(课堂PPT).ppt_第4页
第4页 / 共53页
c语言(概述-算法)-(课堂PPT).ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、第一堂课第一堂课C C语言程序设计语言程序设计第第1 1页页 共共5353页页 第一章第一章C C语言程序设计语言程序设计第第2 2页页 共共5353页页 l l 本章要点n n C C C C语言的特点语言的特点语言的特点语言的特点n n C C C C语言的发展历史语言的发展历史语言的发展历史语言的发展历史n n C C C C程序的结构程序的结构程序的结构程序的结构n n 在计算机上运行在计算机上运行在计算机上运行在计算机上运行C C C C程序的方法程序的方法程序的方法程序的方法 C C语言程序设计语言程序设计第第3 3页页 共共5353页页 1.1 1.1 语言的发展历史语言的发展历

2、史C C语言是国际上广泛流行的高级语言。语言是国际上广泛流行的高级语言。19631963年年,剑桥剑桥,CPL,CPL语言语言,更近硬件更近硬件,但规模大但规模大,难以实现难以实现.19671967年年,剑桥剑桥,Martin Richards,Martin Richards,简化简化,BCPL,BCPL语言语言.19701970年年,美国贝尔实验室美国贝尔实验室,Ken Thompson,Ken Thompson,简化简化,B,B语言语言,写写第一个第一个UNIXUNIX系统系统.1972197219731973年年,贝尔实验室贝尔实验室,D.M.Ritchie,B,D.M.Ritchie,

3、B语言基础上语言基础上,设计出设计出C C语言语言,克服克服B B语言的过于简单、功能有限的不足语言的过于简单、功能有限的不足.19731973年年,K.ThompsonK.Thompson和和D.M.RitchieD.M.Ritchie合作将合作将UNIXUNIX的的90%90%以以上用上用C C改写改写.19781978年年以后以后,C,C语言已先后移植到大、中、小、微型机上语言已先后移植到大、中、小、微型机上已独立于已独立于UNIXUNIX和和PDPPDP,得以广泛应用。,得以广泛应用。第第4 4页页 共共5353页页 Dennis MDennis MRitchieRitchie:196

4、71967年加入贝年加入贝尔实验室。他和尔实验室。他和Ken LKen LThompsonThompson两两人共同设计并实现了人共同设计并实现了C C语言语言,改变了改变了程序设计语言发展的轨迹,是程序设程序设计语言发展的轨迹,是程序设计语言发展过程中的一个重要里程碑。计语言发展过程中的一个重要里程碑。与此同时,他们两人还设计并实现了与此同时,他们两人还设计并实现了UNIXUNIX操作系统。正是由于这两项巨大操作系统。正是由于这两项巨大贡献,贡献,Dennis MDennis MRitchieRitchie于于19831983年年获得了计算机界的最高奖获得了计算机界的最高奖图灵奖。图灵奖。此

5、外,他还获得了此外,他还获得了ACMACM、IEEEIEEE、贝尔、贝尔实验室等授予的多种奖项。实验室等授予的多种奖项。第第5 5页页 共共5353页页 Brian WBrian WKernighanKernighan:是:是贝尔实贝尔实验室计算科学研究中心高级研究验室计算科学研究中心高级研究人员,著名的计算机科学家。他人员,著名的计算机科学家。他参加了参加了UNIXUNIX系统、系统、C C语言、语言、AWKAWK语语言和许多其他系统的开发,同时言和许多其他系统的开发,同时出版了许多在计算机领域具有影出版了许多在计算机领域具有影响的著作。响的著作。第第6 6页页 共共5353页页 C C语言

6、的产生和地位语言的产生和地位原书名:原书名:TheCProgrammingLanguage作者:作者:(美)(美)BrianW.Kernighan,DennisM.Ritchie本书原著即为本书原著即为C C语言的设计者之一语言的设计者之一Dennis MDennis MRitchieRitchie和著名和著名的计算机科学家的计算机科学家Brian WBrian WKernighanKernighan合著的合著的 一本介绍一本介绍C C语言语言的权威经典著作。的权威经典著作。C语言已经成为全球程序员的公共语言,并由此诞生了两个新的主流语言C+与Java,它们都建立在C语言的语法和基本结构的基础

7、上。现在世界上的许多软件都是在C语及其衍生的各种语言的基础上开发出来的。第第7 7页页 共共5353页页 1.2 1.2 语言的特点语言的特点为什么学习为什么学习C C语言?语言?l可进行内存物理地址访问,具有汇编语言的特点可进行内存物理地址访问,具有汇编语言的特点l控制流程结构化,以函数为基本结构进行流程控制控制流程结构化,以函数为基本结构进行流程控制l语言简洁灵活,有语言简洁灵活,有语言简洁灵活,有语言简洁灵活,有3232个关键字和个关键字和个关键字和个关键字和9 9种控制语句种控制语句种控制语句种控制语句l具有构造数据类型的能力,数据结构系统化具有构造数据类型的能力,数据结构系统化l语言

8、表达能力强:语言表达能力强:语言表达能力强:语言表达能力强:3434种运算符种运算符种运算符种运算符l 程序运行效率高,易读性、可移植性好程序运行效率高,易读性、可移植性好程序运行效率高,易读性、可移植性好程序运行效率高,易读性、可移植性好l 语法检查不够严格,对数组下标越界不做检查语法检查不够严格,对数组下标越界不做检查语法检查不够严格,对数组下标越界不做检查语法检查不够严格,对数组下标越界不做检查第第8 8页页 共共5353页页 1 1.3 C3 C语言程序的组成结构语言程序的组成结构例例1:/*显示显示“Howareyou!”*/#include main()printf(How are

9、 you!);程序运行结果是输出程序运行结果是输出:How How are you!are you!第第9 9页页 共共5353页页 例例例例 22求两数之和求两数之和求两数之和求两数之和#include stdio.h#include main()main()/*/*求两数之和求两数之和求两数之和求两数之和*/int a,b,sum int a,b,sum;/*/*定义变量为整型定义变量为整型定义变量为整型定义变量为整型*/a=123;a=123;/*/*变量赋值变量赋值变量赋值变量赋值*/b=456;b=456;sum=a+b sum=a+b;/*/*求和求和求和求和 */printf(s

10、um printf(sum is%d is%dn,sumn,sum););说明:说明:说明:说明:/*/表示注释。注释只是给人看的,对编译和运行不起作用。所以可以用汉字或英文字符表示,可以出现在一行中的最右侧,也可以单独成为一行。输出一行信息:输出一行信息:sum is 579sum is 579第第1010页页 共共5353页页 例例3:从键盘输入两个整数,并显示这两个整数之和。从键盘输入两个整数,并显示这两个整数之和。int ADDxy(int a,int b)int c;c=a+b;return(c);main()int x,y,z;scanf(“%d%d”,&x,&y);z=ADDxy

11、(x,y);printf(“sum=%dn”,z);主函数子函数程序运行情况如下程序运行情况如下:8 5 8 5 sum=13 sum=13 第第1111页页 共共5353页页 C C程序的基本结构小结:程序的基本结构小结:(1)C(1)C程序是由函数构成的程序是由函数构成的,程序容易实现模块化。程序容易实现模块化。main()/*主函数说明主函数说明*/变量定义变量定义 /*主函数体主函数体*/执行语句组执行语句组 子函数名子函数名1(参数参数)/*子子函数函数说明说明*/变量定义变量定义 /*子函数体子函数体*/执行语句组执行语句组 子函数名子函数名2(参数参数)/*子函数说明子函数说明*

12、/变量定义变量定义 /*子函数体子函数体*/执行语句组执行语句组 第第1212页页 共共5353页页 (2)(2)一个函数由两部分组成一个函数由两部分组成:函数的首部:函数的首部:例例3 3中的中的AddxyAddxy函数首部函数首部 int Addxy(int x,int y)函数体:函数体:花括号内的部分。若一个函数有多个花花括号内的部分。若一个函数有多个花括号括号,则最外层的一对花括号为函数体的范围。则最外层的一对花括号为函数体的范围。(3)C(3)C程序总是从程序总是从mainmain函数开始执行的函数开始执行的,与与mainmain函数函数的位置无关。的位置无关。(4)C(4)C程序

13、书写格式自由程序书写格式自由,一行内可以写几个语句一行内可以写几个语句,一个语句可以分写在多行上,一个语句可以分写在多行上,C C程序没有行号。程序没有行号。第第1313页页 共共5353页页 (5)(5)每个语句和数据声明的最后必须有一个分号。每个语句和数据声明的最后必须有一个分号。(6)C(6)C语言本身没有输入输出语句。输入和输出的操作语言本身没有输入输出语句。输入和输出的操作是由库函数是由库函数scanfscanf和和printfprintf等函数来完成的等函数来完成的(7)(7)在在C C语言中,大小写字母是有区别的。(语言中,大小写字母是有区别的。(C C语言习语言习惯用小写字母)

14、惯用小写字母)(8)(8)书写程序时,最好使用规范的缩进格式的形式。书写程序时,最好使用规范的缩进格式的形式。(9)C(9)C程序注释程序注释/*/*/*/可以写在程序的任何位置上可以写在程序的任何位置上第第1414页页 共共5353页页 1 1.4 运行程序的步骤和方法运行程序的步骤和方法1.1.运行程序的步骤运行程序的步骤运行程序的步骤运行程序的步骤上机输入、编辑源程序上机输入、编辑源程序对源程序进行编译对源程序进行编译与库函数连接与库函数连接运行目标程序运行目标程序第第1515页页 共共5353页页 2.程序的开发环境程序的开发环境l 目前使用的大多数目前使用的大多数C C编译系统编译系

15、统都是集成环境的。都是集成环境的。可以用不同的编译系统对可以用不同的编译系统对C C程序进行操作程序进行操作l 常用的有常用的有Turbo C 2.0Turbo C 2.0、Turbo C+3.0Turbo C+3.0、Visual C+Visual C+等等 l Turbo C+3.0Turbo C+3.0:是一个集成环境,它具有方便、是一个集成环境,它具有方便、直观和易用的界面,虽然它也是直观和易用的界面,虽然它也是DOSDOS环境下的集成环境下的集成环境,但是可以把执行文件环境,但是可以把执行文件tc.exetc.exe生成快捷方式生成快捷方式放在放在WindowsWindows桌面上,

16、可以支持鼠标操作。桌面上,可以支持鼠标操作。l Visual C+6.0Visual C+6.0:可视化面向对象开发环境,可视化面向对象开发环境,可以用可以用Visual C+Visual C+对对C C程序进行编译。程序进行编译。第第1616页页 共共5353页页 1.5 1.5 从三个方面学习语言从三个方面学习语言1.1.学习学习C C语言的语法语言的语法 数据表达:数据表达:变量定义、正确书写表达式变量定义、正确书写表达式 流程控制:流程控制:if(ab)x=a;else x=b;sum=0;i=1;while(i=5)sum=sum+i;i=i+1;for(i=1;sum=0;i=80

17、输出输出gii+1ii50结束结束成立成立不成立不成立不成立不成立成立成立传统流程图用流传统流程图用流程线指出各框的程线指出各框的执行顺序,对流执行顺序,对流程线的使用没有程线的使用没有严格限制。严格限制。第第3939页页 共共5353页页 传统流程图的流程可以是:缺点:缺点:使用者可以毫不受限制地使流程随意地转向,使用者可以毫不受限制地使流程随意地转向,使流程图变得毫无规律,难以阅读、修改,使算法的使流程图变得毫无规律,难以阅读、修改,使算法的可靠性和可维护性难以保证。可靠性和可维护性难以保证。解决办法:解决办法:必须限制箭头的滥用,即不允许无规律地必须限制箭头的滥用,即不允许无规律地使流程

18、随意转向,只能顺序的进行下去。使流程随意转向,只能顺序的进行下去。第第4040页页 共共5353页页 (3 3)N NS S流程图流程图N-SN-S流程图流程图 由美国学者由美国学者I.I.N Nassiassi和和B.B.S Shneidermanhneiderman提出提出表表示算法的图形工具。基本单元是矩形框示算法的图形工具。基本单元是矩形框,用不同用不同的形状线分割的形状线分割,表示三种结构。只有一个入口表示三种结构。只有一个入口,一一个出口个出口,没有流程线。没有流程线。N-SN-S图的优点图的优点 比文字描述直观、形象、比文字描述直观、形象、易于理解;比传易于理解;比传统流程图紧凑

19、易画。尤其是它废除了流程线,整统流程图紧凑易画。尤其是它废除了流程线,整个算法结构是由各个基本结构按顺序组成的,个算法结构是由各个基本结构按顺序组成的,N-N-S-S流程图中的上下顺序就是执行时的顺序。流程图中的上下顺序就是执行时的顺序。第第4141页页 共共5353页页 三种基本程序结构的三种基本程序结构的N NS S流程图流程图条件条件TF语句1 语句22.2.选择结构选择结构语句1语句21.1.顺序结构顺序结构3.3.循环结构循环结构 循环体循环体循环体循环体当满足条件时当满足条件时直到条件成立直到条件成立循环结构一循环结构一循环结构二循环结构二第第4242页页 共共5353页页 0t,

20、0ii+1it+it直到直到i 100输出输出t的值的值传统流程图与传统流程图与N-SN-S流程图的比较流程图的比较i 100NY开始开始0t,0ii+1it+it输出输出t的值的值结束结束例例1 1:1+2+3+1+2+3+加到加到100100为止为止第第4343页页 共共5353页页 例:例:打印打印5050名学名学生中成绩高于生中成绩高于8080分的学号和分的学号和成绩用成绩用N-SN-S图表图表示。示。第第4444页页 共共5353页页 1.1.枚举法(穷举法)枚举法(穷举法)特点特点:算法简单,容易理解,运算量大。算法简单,容易理解,运算量大。基本思想:基本思想:根据题目的部分条件确

21、定答案的大致范根据题目的部分条件确定答案的大致范围,然后在此范围内对所有可能的情况逐围,然后在此范围内对所有可能的情况逐一验证,直到所有情况均通过验证。若某一验证,直到所有情况均通过验证。若某个情况符合题目条件,则为本题的一个答个情况符合题目条件,则为本题的一个答案;若全部情况验证完后均不符合题目的案;若全部情况验证完后均不符合题目的条件,则问题无解。条件,则问题无解。2.3 2.3 几种常用算法介绍几种常用算法介绍第第4545页页 共共5353页页 如:如:百元买百鸡问题。假定小鸡每只百元买百鸡问题。假定小鸡每只0.50.5元,公鸡元,公鸡每只每只2 2元,母鸡每只元,母鸡每只3 3元。现在

22、有元。现在有100100元钱要求元钱要求买买100100只鸡,问共有几种购鸡方案?只鸡,问共有几种购鸡方案?根据题目设母鸡、公鸡、小鸡各为根据题目设母鸡、公鸡、小鸡各为x,y,zx,y,z只,只,列出方程为:列出方程为:x+y+zx+y+z=100=100,3x+2y+0.5z=1003x+2y+0.5z=100利用穷举法,将各种可能的组合一一测试,利用穷举法,将各种可能的组合一一测试,输出符合条件的组合。即在各个变量的取值范输出符合条件的组合。即在各个变量的取值范围内不断变化围内不断变化x,y,zx,y,z的值,穷举的值,穷举x,y,zx,y,z全部可能全部可能的组合,若满足方程组则是一组解

23、。的组合,若满足方程组则是一组解。第第4646页页 共共5353页页#include stdio.hmain()int x,y,z;printf(母鸡母鸡 公鸡公鸡 小鸡小鸡);for(x=0;x=33;x+)for(y=0;y=1;i-)x=(x+1)*2;printf(第第%d 天的桃子数为:天的桃子数为:%d只只,i,x);printf(n);小猴吃桃子源程序:小猴吃桃子源程序:第第5050页页 共共5353页页 3.3.求最大值、最小值问题求最大值、最小值问题 采用如同打擂台的方法。采用如同打擂台的方法。在在n n个数中,先假设第一个数为最大值,成个数中,先假设第一个数为最大值,成为擂

24、主,依次同第为擂主,依次同第2 2,3 3,n n个数据逐一比个数据逐一比较,一旦某个数大,马上替换擂主;所有值比较,一旦某个数大,马上替换擂主;所有值比较完,最大值也就获得。较完,最大值也就获得。求最小值问题则先假设第一个数为最小值求最小值问题则先假设第一个数为最小值。如对输入的若干个学生成绩,求出最高分。如对输入的若干个学生成绩,求出最高分。第第5151页页 共共5353页页 2.4 2.4 结构化程序设计方法结构化程序设计方法 结构化程序设计方法是公认的面向过结构化程序设计方法是公认的面向过程编程应遵循的基本方法和原则。结构化程编程应遵循的基本方法和原则。结构化程序设计方法主要包括:程序设计方法主要包括:只采用三种基本的程序控制结构来编制只采用三种基本的程序控制结构来编制程序,从而使程序具有良好的结构;程序,从而使程序具有良好的结构;程序设计自顶而下;程序设计自顶而下;用结构化程序设计流程图表示算法。用结构化程序设计流程图表示算法。第第5252页页 共共5353页页 课程小结课程小结C语言的特点语言的特点C程序的结构程序的结构算法初步算法初步第第5353页页 共共5353页页

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服