C语言程序设计课件.ppt
《C语言程序设计课件.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计课件.ppt(158页珍藏版)》请在咨信网上搜索。
1、2024/3/11周一1武汉理工大学计算机学院武汉理工大学计算机学院授课教师授课教师:王红霞王红霞C语言程序设计2024/3/11周一2选用教材与参考书n n主教科书主教科书主教科书主教科书顾治华、陈天煌等顾治华、陈天煌等C C C C语言程序设计语言程序设计语言程序设计语言程序设计机械工业出版社机械工业出版社机械工业出版社机械工业出版社 2007.22007.2n n参考教材参考教材参考教材参考教材 顾治华、陈天煌等顾治华、陈天煌等顾治华、陈天煌等顾治华、陈天煌等C C C C语言程序设计语言程序设计语言程序设计语言程序设计 实验实验实验实验指导指导指导指导 机械工业出版社机械工业出版社机械
2、工业出版社机械工业出版社 2007.22007.22007.22007.2n n参考书参考书参考书参考书 谭浩强谭浩强C C C C语言程序设计语言程序设计语言程序设计语言程序设计 清华大学出版清华大学出版清华大学出版清华大学出版社社社社2024/3/11周一3课程内容第一章 C语言程序设计概述 第二章 算法及算法设计简介 第三章 数据描述与基本操作第四章 选择结构程序设计 第五章 循环结构程序设计 第六章 数组与指针第七章 函数与模块化程序设计方法2024/3/11周一4第一章第一章 C C语言程序设计基础语言程序设计基础1.1 1.1 程序与程序设计程序与程序设计1.2 C.2 C语言简介
3、语言简介1.3 1.3 简单的简单的C语言程序语言程序1.4 C1.4 C语言程序的上机步骤语言程序的上机步骤1.5 C1.5 C语言的基本词法语言的基本词法1.6 C1.6 C语语言程序的基本言程序的基本结结构构2024/3/11周一5程序与计算机语言程序与计算机语言程序是存放在计算机中的操作指令的集合。用程序设计语言安排好的处理问题的步骤称为计算机程序用程序设计语言编制一个能完成某项任务的计算机程序的过程叫做计算机程序设计。程序设计=数据结构+算法+程序设计方法+编程语言程序设计的关键:必须掌握一种程序设计语言。掌握程序设计的逻辑思维。2024/3/11周一6 程序设计过程程序设计过程(1
4、)问题的提出,要达到的要求;(2)确定数据结构和所采用的算法;(3)编制程序;(4)调试程序;(5)整理并写出文档;2024/3/11周一7C语言的特点(1)语言简洁、紧凑,使用方便、灵活。C语言一共只有32个关键字,主要用小写字母表示。(2)比其他高级语言更接近硬件,比低级语言更接近算法。程序易编、易读、易查错、易修改,兼有高级语言和低级语言的优点。(3)数据类型和运算符十分丰富,程序设计和算法描述更为简单和方便。(4)语法结构十分简单,语句数目少,简单易学。2024/3/11周一8(6)它是一种模块化的程序设计语言,适合大型软件的研制和调试。(5)它是一种结构化程序设计语言,提供了完整的程
5、序控制语句(选择语句和循环语句),很适合结构化的程序设计方法。(7)生成目标代码质量高,程序执行效率高。(8)用c语言写的程序可移植性好。(9)它提供了大量的库函数以供调用,简化了程序设计工作。2024/3/11周一9C语言程序的结构1)C语言是结构化的程序设计语言。2)C语言是模块化的程序设计语言,程序是由函数构成的。一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数。因此,函数是C程序的基本单位。3)一个函数由两部分组成:函数的首部,函数的第一行。包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。函数体,即函数首部下面的大括弧.内的部分。如果一个函
6、数内有多个括弧,则最外层的一对为函数的范围。函数体一般包括:声明部分声明部分:在这部分中定义所用到的变量。执行部分执行部分:由若干个语句组成。2024/3/11周一10(4)一个C程序总是从main函数开始的,而不论main函数在整个程序中的位置如何(main函数可以放在程序最前头,也可以放在程序最后,或在一些函数之前,在另一些函数之后)。(5)C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。(6)每个语句和数据定义的最后必须有一个分号。分号是C语句的必要组成部分。分号不可少。(7)C语言本身没有输入输出语句。输入输出的操作是由库函数scanf和printf等函数来完成的。
7、(8)可以用/*/对C程序中的任何部分作注释。2024/3/11周一11简单的C语言程序示例例一main()printf(“ThisisaCprogram.n”);本程序的作用是输出以下一行信息:ThisisaCprogram.2024/3/11周一12例二main()inta,b,sum;/*这是定义变量*/a=123;b=456;/*以下3行为C语句*/sum=a+b;printf(“sumis%dn”,sum);程序的运行结果:Sumis5792024/3/11周一13例三/*example1.3输入两个数,求其中较大的数*/#includeintmax(intx,inty)/*被调用函
8、数*/intz;if(xy)z=x;elsez=y;return(z);/*将z的值返回,通过max带回调用处*/main()/*主函数*/inta,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“max=%dn”,c);运行结果:4,6max=62024/3/11周一14C程序的上机步骤 开始编辑编译有错?执行连接结果正确结束可执行目标程序f.exe源程序f.c目标程序f.obj库函数和其他目标程序YesNoYesNo2024/3/11周一15C语言的基本词法标识符定定义义:在程序中使用的变量名、函数名、标号等统称为 标识符。除库函数的函数名由系统定义
9、外,其余的都由用户自己定义。命命名名规规则则:标识符只能是字母(AZ,az)、数字(09)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。例如例如:以下标识符是合法的:a,x,x3,BOOK_1,sum5,_x7。以下标识符是非法的:3s,s*T,-3x,bowy-1,M.D.John,ab。2024/3/11周一16(1)标准C不限制标识符的长度,但它受各种版本的C语言编 译系统限制,同时也受到具体机器的限制。Turbo C规定标识符的长度为32。一般情况下,标识符的长度不要超过8个字符。(2)在标识符中,大小写是有区别的。例如SUM和sum是两个 不同的标识符。变量名应尽量
10、使用小写字母,以增加程序的可读性。(3)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便于阅读理解,做到“顾名思义”。在C语言中,所有的变量都是先定义后应用,使用没有定义的变量名被认为是“非法”的。在使用标识符时还必须注意以下几点:在使用标识符时还必须注意以下几点:2024/3/11周一17C语言的基本词法关键字关键字定定义义:关键字是由语言规定的具有特定意义的字符串,通常也称为保保留留字字。用户定义的标识符不应该与关键字相同。分类分类:语言的关键字分为以下3类:(1)类型说明符 用于定义和说明变量、函数或其它数据结构的类型。如int,doubl
11、e,float,long,short,auto,signed,static,struct,unsigned,char,enum,extern,register和union等。2024/3/11周一18(2)语句定义符用于表示一个语句的功能。如条件语句的语句定义符if else,循环语句的语句定义符do,while,for等。(3)预处理命令字用于表示一个预处理命令,使用时前面要加“”。如include,define,ifdef,endif等。关键字后必须有空格、圆括号、尖括号、双引号等分隔符,否则与其它字符一起组成新的标识符。2024/3/11周一19C语言的基本词法其它其它运算符运算符语言中
12、含有相当丰富的运算符。运算符与变量,函数一起组成表达式,表示各种运算功能。运算符由一个或多个字符组成。分隔符分隔符在语言中采用的分隔符有逗号和空格两种。逗号主要是用在类型说明和函数参数表中分隔各个变量。空格多用于语句各单词之间作间隔符。常量常量C语言中使用的常量可分为数字常量、字符常量、字符串常量、符号常量、转义字符等多种。2024/3/11周一20语言的字符集语言的字符集(1)字母 小写字母az共26个,大写字 母AZ共26个。(2)数字09共10个。(3)空格符、制表符、换行符等统称为空白符。(4)标点和特殊字符2024/3/11周一21C语言程序设计的基本结构(1)顺序结构ABab202
13、4/3/11周一22(2)选择结构,或称分支结构此结构中必包含一个判断框。根据给定的条件P是否成立而选择执行A框或B框abBAp不成立成立2024/3/11周一23(3)循环结构,它又称为重复结构,即反复执行某一部分的操作。又两类循环结构:(a)当型(while型)循环结构它的功能是判断当前给定的条件p1成立时,执行A框操作,执行完A后,再判断条件p1是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次p1条件不成立为止,此时不执行A框,而从b点脱离循环结构。ap1TFAb2024/3/11周一24(b)直到型(Until型)循环结构它的功能是先执行A框,然后判断给定的p2条件是否
14、成立,如果p2条件不成立,则再执行A,然后再对p2条件作判断,如果p2条件仍然不成立,又执行A如此反复执行A,直到给定的p2条件成立为止,此时不再执行A,从b点脱离本循环结构。aAFTbp22024/3/11周一25本章课堂练习 (1)以下说法中正确的是().A)C语言程序总是从第一个函数开始执行 B)在C语言程序中,要调用的函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行 D)C语言程序中的main()函数必须放在程序的开始部分2024/3/11周一26解答:C解释:C语言程序总是从main()函数开始执行,而不论其在程序中的位置。当主函数执行完毕时,亦即程序执
15、行完毕。除main函数外,其它函数都是在执行main函数时被调用执行的。在C语言中,函数不允许嵌套定义。习惯上,将主函数main()放在最前头,但并不是必须的。2024/3/11周一27(2)以下叙述不正确的是A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面2024/3/11周一28解答:D解释:凡是用“/*”和“*/”括起来的文字,都是注释。其出现的位置可以任意。2024/3/11周一29(3)下列标识符中,合法的变量名有:A)a.b B)$888 C)A1 D)3x56 2024/3
16、/11周一30解答:C解释:变量名只能由字母、数字和下划线三种字符所组成,且第一个字符必须为字母或下划线。C语言的关键字不能用作变量名。另外,C语言对英文字母的大小写敏感,即同一字母的大小写,被认为是两个不同的字符。习惯上,变量名和函数名中的英文字母用小写,以增加可读性。2024/3/11周一31 第二章 算法及算法设计简介2.1 2.1 算法的概念算法的概念2.2 2.2 算法的设计与表达算法的设计与表达2.3 2.3 简单的算法实例简单的算法实例2.4 2.4 结构化程序设计方法简介结构化程序设计方法简介2024/3/11周一32算法的概念算法的概念任何一个程序应包含的如下两方面的内容:(
17、1)对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(datastructure).(2)对操作的描述。即操作步骤,也就是算法(algorithm)。著名计算机科学家沃思(NikiklausWirth)提出公式数据结构算法程序算法:算法:是对解决某个问题的方法步骤的描述。程序:程序:从计算机角度来说,程序是用某种计算机能理解并执行的计算机语言描述解决问题的方法和步骤。2024/3/11周一33实际上,一个程序除了以上两个主要要素之外,还应当采用结构化程序设计方法进行程序设计,并且用某一种计算机语言表示。因此,可以这样表示:程序算法数据结构程序设计方法语言工具和环境在这4个方面
18、中,算法是灵魂,数据结构是加工对象,语言是工具,编程需要采用合适的算法。算法是解决“做什么”和“怎么做”的问题。2024/3/11周一34算法的表示算法的表示 1、用自然语言表示算法采用汉语、英语或其它语言来描述解决问题的方法和步骤。由于自然语言容易出现“歧义性”,且描述问题的文字冗长,因此一般很少使用自然语言来描述算法。2024/3/11周一35例例1:有有50个学生个学生,要求将他们之中成绩在,要求将他们之中成绩在80分以上者打印出来。用分以上者打印出来。用n表示学号,表示学号,n1代代表第一个学生学号,表第一个学生学号,ni代表第代表第i个学生学号。用个学生学号。用g代表学生成绩,代表学
19、生成绩,gi代表第代表第i个学生成绩个学生成绩,算法可表示如下:,算法可表示如下:S1:1iS2:读入学号读入学号ni和成绩和成绩giS3:如果如果gi 80,则打印,则打印ni和和gi,否则不打印,否则不打印S4:i+1iS5:如果如果i 50,返回返回S2,继续执行;继续执行;否则,算法结否则,算法结束。束。2024/3/11周一36起止框输入/输出框判断框处理框流程线2、用流程图表示算法(1)常用的流程图符号2024/3/11周一37上例用流程图表示:(1)流程图表示算法的优点:表示算法直观形象,比较清楚地显示出各个框之间的逻辑关系。简单,易于掌握。流程图2024/3/11周一383、用
20、NS图表示算法1973年美国学者I.Nassi和B.Shneiderman提出了一种新的流程图形式。在这种流程图中,完全去掉了带箭头的流程线。全部算法写在一个矩形框内,在该框内还可以包含其他的从属于它的框。这种流程图又称NS结构化流程图。NS流程图用以下的流程图符号:(1)顺序结构:AB2024/3/11周一39(2)选择结构:P成立不成立AB(3)循环结构:当p1成立A当型循环结构直到p1成立A直到型循环结构用以上3种NS流程图中的基本框,可以组成复杂的NS流程图,以表示算法2024/3/11周一40上例用NS图表示:用NS表示算法如图1=i输入ni,gigi80是否输出ni,gii+1=i
21、直到i502024/3/11周一414、用伪码表示算法伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。它不用图形符号,因此书写方便,格式紧凑,也比较好懂,便于向计算机语言算法(即程序)过渡。例有50个学生,要求将他们之中成绩在80分以上者打印出来。用n表示学生学号,n1表示第一个学生学号,ni表示第i个学生学号。用g表示学生成绩,gi表示第i个学生成绩。2024/3/11周一42BEGIN(算法开始算法开始)1=iWhileiiEND(算法结束)(算法结束)用伪代码表示算法如下:2024/3/11周一435、用计算机语言表示算法设计算法的目的是为了实现算法。因此,不仅要考虑如何设
22、计一个算法,也要考虑如何实现一个算法。我们的任务是用计算机解题,也就是要用计算机实现算法。计算机是无法识别流程图和伪代码的。只有用计算机语言编写的程序才能被计算机执行(当然还要经过编译成目标程序才能被计算机识别和执行)。因此,在用流程图或伪代码描述出一个算法后,还要将它转换成计算机语言程序。2024/3/11周一44例:有50个学生,要求将他们之中成绩在80分以上者打印出来。用n表示学生学号,n1表示第一个学生学号,ni表示第i个学生学号。用g表示学生成绩,gi表示第i个学生成绩。C语言程序如下:main()intg50,n50,i;for(i=0;i50;i+)scanf(“%d,%d”,&
23、ni,&gi);for(i=0;i=80)printf(“%6d,%3dn”,ni,gi);2024/3/11周一45例例2:对一个大于或等于:对一个大于或等于3的正整数,判断它是不是一个素数。的正整数,判断它是不是一个素数。方法:将方法:将n(其中其中n 3)作为被除数,作为被除数,将将2到(到(n-1)各个整数轮流作为除数,如各个整数轮流作为除数,如果都不能被整除,则果都不能被整除,则n为素数。为素数。简单的算法实例简单的算法实例2024/3/11周一46算法表示如下:算法表示如下:S1:输入:输入n的值的值S2:2i(i作为除数)作为除数)S3:n被被i除,得余数除,得余数rS4:如果如
24、果r等于等于0,表示表示n能能被被i整除,则打印整除,则打印n“不是素数不是素数”,算法,算法结束;否则执行结束;否则执行S5S5:i+1iS6:如果如果i n-1,返回返回S3;否则,打印;否则,打印n“是素数是素数”,算法结束。,算法结束。2024/3/11周一47S1:1signS2:1sumS3:2denoS4:(-1)*signsignS5:sign*(1/deno)termS6:sum+termsumS7:deno+1denoS8:若若deno 100返回返回S4;否则算法结束。;否则算法结束。例3:求1-1/2+1/31/4+1/991/100。2024/3/11周一48结构化程
25、序设计方法简介 1、三种基本结构回顾(1)顺序结构ABab2024/3/11周一49(2)选择结构,或称分支结构abBAp不成立成立2024/3/11周一50(3)循环结构,它又称为重复结构,即反复执行某一部分的操作。又两类循环结构:(a)当型(while型)循环结构ap1TFAb2024/3/11周一51(b)直到型(Until型)循环结构aAFTbp22024/3/11周一522、结构化程序所谓结构化程序,就是仅仅使用顺序、选择、循环等三种基本结构所构造的程序。3、结构化程序设计方法结构化程序设计方法的基本思想是,把一个复杂问题的求解过程分阶段进行。每个阶段的问题都控制在人们容易理解和处理
- 配套讲稿:
如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。