C语言概论.pptx
《C语言概论.pptx》由会员分享,可在线阅读,更多相关《C语言概论.pptx(70页珍藏版)》请在咨信网上搜索。
1、课程关键词课程关键词课程关键词课程关键词nC C语言(一种程序设计语言)语言(一种程序设计语言)n用途用途n适用范围适用范围n语法规定语法规定n程序设计(一种能力和思维方式)程序设计(一种能力和思维方式)n基本设计方法基本设计方法n算法概念算法概念n程序调试程序调试课程目标课程目标课程目标课程目标n掌握C语言的基本语法n掌握面向过程程序设计的基本方法n掌握程序调试的基本方法一些观点一些观点一些观点一些观点n正确看待正确看待C,C+,Java等语言:等语言:近年来,有一些面向对象的计算机语言陆续问世,受到欢迎。有些人认为面向过程的C语言已经过时了,不必学了。这是一种误解。n这门课的两个目标:这门
2、课的两个目标:C的语法,程序设计方法,程序调试。的语法,程序设计方法,程序调试。在学校中,学习程序设计课程的目的是掌握设计程序的思路,学会用计算机语言编写程序,以实现所需处理的任务。n算法是灵魂:(文以载道)算法是灵魂:(文以载道)不能设想今后一辈子只使用在学校里学过的某一种语言。但是,无论用哪一种语言进行程序设计,其基本规律是一样的。n程序是调试出来的:程序是调试出来的:程序设计是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行,希望读者一定要重视实践环节,包括编程和上机。n熟悉不同的熟悉不同的IDE(集成开发环境):(集成开发环境):使用哪一种编译系统并不是原则问题,重要
3、的是编程能力的培养。程序编好以后,用哪一种编译系统进行编译都可以。本次课的主要内容本次课的主要内容本次课的主要内容本次课的主要内容n程序设计概述(第二章)nC语言概述(第一章)第二章第二章第二章第二章 程序的灵魂程序的灵魂程序的灵魂程序的灵魂算法算法算法算法n怎样进行程序设计的最基本概念和方法怎样进行程序设计的最基本概念和方法n不仅仅适用于不仅仅适用于c c语言语言n第二章只是一个开始,后面将贯穿整个课程。第二章只是一个开始,后面将贯穿整个课程。第二章第二章第二章第二章 程序的灵魂程序的灵魂程序的灵魂程序的灵魂算法算法算法算法n n2.12.1 算法的概念算法的概念n n2.22.2 简单算法
4、举例(重点)简单算法举例(重点)n n2.32.3 算法的特性算法的特性n n2.42.4 怎样表示一个算法怎样表示一个算法n n2.4.12.4.1用自然语言表示算法用自然语言表示算法n n2.4.22.4.2用流程图表示算法用流程图表示算法n n2.4.32.4.3三种基本结构和改进的流程图三种基本结构和改进的流程图n n2.4.42.4.4用用N-SN-S流程图表示算法流程图表示算法n n2.4.52.4.5用伪代码表示算法用伪代码表示算法n n2.4.62.4.6用计算机语言表示算法用计算机语言表示算法n n2.52.5 结构化程序设计方法结构化程序设计方法程序和算法程序和算法程序和算
5、法程序和算法 n计算机程序(软件/程序)n n是指一组指示计算机每一步动作的指令,通常用某种程序是指一组指示计算机每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。设计语言编写,运行于某种目标体系结构上。n n打个比方,一个程序就像一个用汉语(程序设计语言)写打个比方,一个程序就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序),用于指导懂汉语的人(体系结下的红烧肉菜谱(程序),用于指导懂汉语的人(体系结构)来做这个菜。构)来做这个菜。n nAn organized list of instructions that,when An organized list of
6、instructions that,when executed,causes the computer to behave in a executed,causes the computer to behave in a predetermined manner.Without programs,predetermined manner.Without programs,computers are puters are useless.n程序程序n为了达到某一目标而进行的具体步骤。n程序的两个基本特点:由多个步骤构成,步骤之间有顺序程序和算法程序和算法程序和算法程序和算法 n算法 n为解决一个
7、问题而采取的方法为解决一个问题而采取的方法。n计算机算法:计算机能够执行的算法。计算机算法:计算机能够执行的算法。n计算机算法可分为两大类:计算机算法可分为两大类:n n数值运算算法:求解数值;数值运算算法:求解数值;n n非数值运算算法:事务管理领域。非数值运算算法:事务管理领域。计算机程序计算机程序计算机程序计算机程序 数据结构数据结构数据结构数据结构+算法算法算法算法 n一个程序应包括 n对数据的描述。在程序中要指定数据的类型对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(和数据的组织形式,即数据结构(data data structurestructure)。)。n
8、对操作的描述。即操作步骤,也就是算法对操作的描述。即操作步骤,也就是算法(algorithmalgorithm)。)。n程序=算法+数据结构+程序设计方法+语言工具和环境 n n程序设计方法和程序设计语言的种类程序设计方法和程序设计语言的种类n n结构化程序设计(面向过程)结构化程序设计(面向过程)n n汇编、汇编、c c、pascal pascal n n面向对象程序设计面向对象程序设计n nC C、Java Java、VB VB 机器语言汇编语言高级语言面向过程面向对象CPU指令系统,由0、1序列构成的指令码组成如:10000000 加 10010000 减用助记符号描述的指令系统如 AD
9、D A,B面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象程序设计语言的发展程序设计语言的发展程序设计语言的发展程序设计语言的发展简单算法举例简单算法举例简单算法举例简单算法举例 n【例2.1】求12345。n最原始方法:最原始方法:n n步骤步骤1 1:先求:先求1 12 2,得到结果,得到结果2 2。n n步骤步骤2 2:将步骤:将步骤1 1得到的乘积得到的乘积2 2乘以乘以3 3,得到结果,得到结果6 6。n n步骤步骤3 3:将:将6 6再乘以再乘以4 4,得,得2424。
10、n n步骤步骤4 4:将:将2424再乘以再乘以5 5,得,得120120。简单算法举例简单算法举例简单算法举例简单算法举例n【例2.1】求12345。n改进的算法:改进的算法:n nS1:S1:使使t=1t=1n nS2:S2:使使i=2i=2n nS3:S3:计计算算ti,ti,乘乘积积仍仍然然放放在在在在变变量量t t中中,可可表示为表示为 titit tn nS4:S4:使使i i的值的值+1+1,即,即i+1i+1i in nS5:S5:如如果果i i5,5,返返回回重重新新执执行行步步骤骤S3S3以以及及其其后的后的S4S4和和S5S5;否则,算法结束。否则,算法结束。引入变量t:
11、部分积i:每次要乘的数算法的特性算法的特性算法的特性算法的特性n有穷性:一个算法应包含有限的操作步骤而不能是无限的。n确定性:算法中每一个步骤应当是确定的,而不能是含糊的、模棱两可的。n有零个或多个输入。n有一个或多个输出。n有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果。怎样表示一个算法怎样表示一个算法怎样表示一个算法怎样表示一个算法n用自然语言表示算法n用流程图表示算法n用用N-SN-S流程图表示算法(改进的流出图)流程图表示算法(改进的流出图)n用伪代码表示算法用伪代码表示算法n用计算机语言表示算法用计算机语言表示算法用流程图表示算法用流程图表示算法用流程图表示算法用流程图表
12、示算法n流程图表示算法,直观形象,易于理解。求求求求1234512345的算法的算法的算法的算法n【例2.1】求12345。n nS1:S1:使使t=1t=1n nS2:S2:使使i=2i=2n nS3:S3:计计算算ti,ti,乘乘积积仍仍然然放放在在在在变变量量t t中中,可表示为可表示为 titit tn nS4:S4:使使i i的的值值+1+1,即即i+1i+1i in nS5:S5:如如果果i i5,5,返返回回重重新新执执行行步步骤骤S3S3以以及及其其后后的的S4S4和和S5S5;否否则,算法结束。则,算法结束。求求求求13579111357911求求求求 AnAnn n1 1
13、求求 1/4+1/9+1/16+1/25+1/4+1/9+1/16+1/25+1/n+1/n2 2 (n=2(n=210)10)n n2 2 求求 /4=1-1/3+1/5 -1/7/4=1-1/3+1/5 -1/7 (计算计算5050项)项)n n3 3 求求 AnAn,其中其中a1=1a1=1,a2=1,An=Aa2=1,An=An-1n-1+A+An-2 n-2(n=3(n=310)10)怎样将一个实际问题抽象为计算机可解问题怎样将一个实际问题抽象为计算机可解问题怎样将一个实际问题抽象为计算机可解问题怎样将一个实际问题抽象为计算机可解问题n【例2.2】有50个学生,要求将他们之中成绩在8
14、0分以上者打印出来 n如如果果,n n表表示示学学生生学学号号,n ni i表表示示第第i i个个学学生生学学号号;g g表表示示学学生生成成绩绩,g gi i表表示示第第i i个个学学生生成绩;成绩;n则算法可表示如下:则算法可表示如下:n nS1:1S1:1i(i(处理第处理第1 1个学生个学生)n nS2:S2:如如果果g gi i8080,则则打打印印n ni i和和g gi i,否否则则不不打打印印(处理第(处理第i i个学生)个学生)n nS3:i+1S3:i+1i i(下一个)(下一个)n nS4:S4:若若i i50,50,返回返回S2S2,否则,结束。否则,结束。将例将例将例
15、将例2.22.2的算法用流程图表示的算法用流程图表示的算法用流程图表示的算法用流程图表示练习(使用流程图进行算法设计)练习(使用流程图进行算法设计)练习(使用流程图进行算法设计)练习(使用流程图进行算法设计)n1 1 有两个变量有两个变量A A和和B B,将它们的值交换。将它们的值交换。n2 2 输入输入3 3个整数个整数a,b,c,a,b,c,按由大到小的顺序输按由大到小的顺序输出。出。n3 3 给定一个正整数给定一个正整数MM,判断它是否为素数。判断它是否为素数。n4 4 找出找出100100以内的素数。以内的素数。n5 5 从从1010个数中找出最大的数。个数中找出最大的数。n6 6 在
16、在1010个盒子里放有个盒子里放有1010个有编号的球,将个有编号的球,将球按编号从大到小的顺序重新排列。球按编号从大到小的顺序重新排列。三种基本结构和改进的流程图三种基本结构和改进的流程图三种基本结构和改进的流程图三种基本结构和改进的流程图 n三种基本结构三种基本结构n n顺序结构顺序结构 n n选择结构选择结构 n n循环结构循环结构n三三种种基基本本结结构构的的共共同特点:同特点:n n1)1)只有一个入口;只有一个入口;n n2)2)只有一个出口;只有一个出口;n n3)3)结结构构内内的的每每一一部部分分都都有有机机会会被被执执行行到;到;n n4)4)结结构构内内不不存存在在“死循
17、环死循环”。用用用用N-SN-S流程图表示算法流程图表示算法流程图表示算法流程图表示算法 n顺序结构 n选择结构 n循环结构 流程图流程图流程图流程图 VS.VS.N-SN-S流程图流程图流程图流程图【例】求【例】求【例】求【例】求1234512345用用用用CC语言表示语言表示语言表示语言表示 main()int i,t;t=1;i=2;while(i=5)t=t*i;i=i+1;printf(“%d”,t);t1i2当i5t=t*ii=i+1输出t开始t=1;i=2titi+1ii5输出t结束Y YN N结构化程序设计方法结构化程序设计方法结构化程序设计方法结构化程序设计方法n自顶向下;n
18、逐步细化;n模块化设计;n结构化编码。贪吃蛇贪吃蛇贪吃蛇贪吃蛇n思路:怎样将游戏中的构成元素和一些具体的数联系起来n游戏中的构成元素n边界、果实边界、果实n蛇蛇n n头部头部n n身体身体n运动运动n控制和判断控制和判断一道全国电子设计大赛试题一道全国电子设计大赛试题一道全国电子设计大赛试题一道全国电子设计大赛试题n在一块竖立的木板在一块竖立的木板上有两个滑轮和两上有两个滑轮和两个电机(如图),个电机(如图),通过绳子悬挂一重通过绳子悬挂一重物,在重物上固定物,在重物上固定一铅笔。一铅笔。n通过单片机控制绳通过单片机控制绳子,使重物上的铅子,使重物上的铅笔在木板上画园。笔在木板上画园。n思考:
19、怎样将控制和数对应起来(建模)?思路思路思路思路n1.园的参数方程nX=R*COS(T)+X0X=R*COS(T)+X0nY=R*SIN(T)+Y0Y=R*SIN(T)+Y0n2.X,Y和L1,L2的关系nL1L1SQR(XSQR(X2 2+(90-Y)(90-Y)2 2)nL2L2SQR(100-X)SQR(100-X)2 2 +(90-Y)+(90-Y)2 2)L1L210090(X,Y)本次课的主要内容本次课的主要内容本次课的主要内容本次课的主要内容n程序设计概述nC程序设计语言概述1.1 C语言发展历史1.2 C语言特点1.3 C程序格式和结构特点1.4 C程序上机步骤第一章第一章第一
20、章第一章 C C语言概述语言概述语言概述语言概述*产生背景产生背景*应用需求应用需求:界于汇编和高级语言之间的中级语言界于汇编和高级语言之间的中级语言*产生过程产生过程*时间时间:19721973地点地点:美国贝尔实验室美国贝尔实验室目的目的:UNIX操作系统操作系统设计人设计人:Ken.Thompson和和Dennis.M.Ritchie*C标准标准*标准标准C:K&R合著合著The C Programming Language(Brian W.Kernighan和和Dennis M.Rithchie)1978年年ANSI C:1983年年87 ANSI C:1987年年1990年国际标准的
21、年国际标准的ANSI CC C语言发展过程语言发展过程语言发展过程语言发展过程1960:ALGOL 语言离开硬件远,不适合编写系统软件1963:CPL 语言(剑桥大学)接近硬件1967:BCPL 语言(剑桥大学)简化1970:B语言(Bell实验室)1973:C语言(Bell实验室)改进进一步简化1978:传统C语言1990:ANSI C语言规模庞大K&R著作ISO修订n语言简洁、紧凑、灵活语言简洁、紧凑、灵活n运算符和数据类型丰富运算符和数据类型丰富n程序设计结构化、模块化程序设计结构化、模块化n生成目标代码质量高生成目标代码质量高n可移植性好(较之汇编语言)可移植性好(较之汇编语言)n可以
22、直接操纵硬件可以直接操纵硬件C C语言特点语言特点语言特点语言特点例1.1 第一个程序 Hello,World!main()printf(“Hello,World!”);Hello,World!第一个第一个第一个第一个C C程序程序程序程序n32个关键字个关键字n34种运算符种运算符n5种数据类型种数据类型n9 9种控制语句种控制语句nC程序结构特点程序结构特点nC程序格式特点程序格式特点C C语言基本要素语言基本要素语言基本要素语言基本要素由系统定义,不能重作其它定义的字符串由系统定义,不能重作其它定义的字符串n类型说明符auto char constdouble enum extern f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 概论
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。