武汉理工大学C语言课件c第一章新

上传人:痛*** 文档编号:241552649 上传时间:2024-07-03 格式:PPT 页数:51 大小:646KB
返回 下载 相关 举报
武汉理工大学C语言课件c第一章新_第1页
第1页 / 共51页
武汉理工大学C语言课件c第一章新_第2页
第2页 / 共51页
武汉理工大学C语言课件c第一章新_第3页
第3页 / 共51页
点击查看更多>>
资源描述
2024/7/31C语言程序设计教程2024/7/32关于本课程的教学安排本课程的教学目的:通过对C语言的学习,掌握使用计算机编程语言解决实际问题的基本理论、方法、技巧、以及常用的算法。本课程的教学安排:理论教学38学时,实验教学22学时。参考书:C语言程序设计谭浩强著ThinkinginC+机械工业出版社ComputerConcepts4thedtion机械工业出版社2024/7/33Lets continue ourC language journey !2024/7/34lThe strategy of learning C is a step-by-step approach,firstlaying a sound foundation on programming concepts,flow of control,and functions.lThe fundamentals of C programming is a stepping stone that will prepare you to embark on the journey of learning C+and JAVA.2024/7/35lYou will begin to learn how to write simple C programs with primitive data types,control statements,functions,and arrays.lProgramming Exercises at the end of each chapter provide you with opportunities to apply the skills on your own.2024/7/36The trick of learning programming is practice,practice,and practice.2024/7/37第一章 C语言程序设计基础知识1.1概述1.1.1信息的表示1.数制十进制:日常使用的数制。二进制、八进制、十六进制:计算机中使用的数制。2024/7/38不同数制间的转换:二、八、十六进制转换成十进制的方法是二、八、十六进制转换成十进制的方法是 -按位权法展开。例:二进制转换成八、十六进制的方法是二进制转换成八、十六进制的方法是 -分组法(三位、四位一组)。例:八、十六进制转换成二进制的方法是八、十六进制转换成二进制的方法是 -直接法(直接将八、十六进制数字符号转换成二进制数字符号)。例:十进制转换成二、八、十六进制间的方法是十进制转换成二、八、十六进制间的方法是 -整数部分除法取余,小数部分乘法取整。例:(101.01)2=122+021+120+02-1+12-2=(5.25)10小数点位置小数点位置(1a.2)16=1161+10160+216-1=(26.125)10小数点位置小数点位置(1010111.011)2=(001010111.011)2=(127.3)8(1010111.011)2=(01010111.0110)2=(57.6)16转换时应注意:分别对整数和小数部分进行分组。整数部分:从小数点开始,向左三位(四位)一组,不够三位(四位)时,高位充零。小数部分:从小数点开始,向右三位(四位)一组,不够三位(四位)时,低位充零。最后将各组数据转换成相应数制的符号即可。(a5)16=(10100101)2建议:二、八、十六进制间的转换应利用二进制作为过渡,这样做来得简单。例:求(a5)16的八进制表示。(a5)16=(10100101)2=(010100101)2=(245)80.1252=0.25.0最高位2024/7/39(28.125)10对应的二进制数是(11100.001)2。整数部分:28小数部分:0.125余数整数2.0最低位14282.072.132.11最高位0.1252=0.25.0最高位0.252=0.5.00.52=1.0.1最低位2024/7/310 数据数据数值数据:二进制非数值数据:编码非数值数据:编码定点法定点法浮点法浮点法西文:西文:ASCII,BCDASCII,BCD汉字:汉字:国标码国标码图形图形有符定点有符定点无符定点无符定点2.数据的编码通常在计算机中用8个、16个、32个.等固定个数的二进制位来表示某一个数据。计算机中常见的数据分为两种即数值数据和非数值数据。2024/7/311数值型数据:数值型数据:通常在计算机中用通常在计算机中用8个、个、16个、个、32个二进制位来表示数值型数据。个二进制位来表示数值型数据。小数点的位置总是小数点的位置总是隐含的隐含的,以节省空间。但小数点的位置可以是,以节省空间。但小数点的位置可以是固定固定的或可变的的或可变的。前者称为定点数,后者称为浮点数。前者称为定点数,后者称为浮点数。(1)定点数定点数(在计算机中整数是按定点数格式存放的)(在计算机中整数是按定点数格式存放的)定点数分为定点数分为:有符定点数(有符定点数(signed)无符定点数无符定点数(unsigned)。浮点数浮点数(在计算机中小数是按浮点数格式存放的)(在计算机中小数是按浮点数格式存放的)2024/7/312有符定点整数dsdndn-1dn-2.d1符号位数值部分小数点无符定点整数dndn-1dn-2.d1数值部分小数点2024/7/313浮点数(在计算机中小数是按浮点数格式存放的)浮点数格式如下:Jsjnjn-1.j2j1dsdmdm-1.d2d1阶符阶码数符尾数2024/7/314字符型数据:字符型数据:常用的英文编码有常用的英文编码有ASCII码、码、BCD码码 ASCII 码码ASCII码码是是英英文文American Standard Code for Information Interchange(美国信息交换标准编码)的缩写(美国信息交换标准编码)的缩写。该编码已经国际标准化组织所采纳。该编码已经国际标准化组织所采纳。目目前前国国际际上上流流行行的的是是ASCII编编码码的的七七位位版版本本,即即用用一一个个字字节节的的低七位表示一个字符,高位充零低七位表示一个字符,高位充零。七七个个二二进进制制位位可可表表示示128种种状状态态,故故可可用用来来表表示示128个个不不同同的的字字符符,在在ASCII编编码码的的七七位位版版本本中中表表示示的的33个个通通用用控控制制字字符符、95个个可可打打印印显显示示的的字字符符(其其中中10个个数数字字、52个个大大小小写写英英文文字字母母、33个标点符号和运算符号)。个标点符号和运算符号)。ASCII编码表(见附录编码表(见附录I)2024/7/315字符型数据:字符型数据:常用的中文编码常用的中文编码有国家标准汉字编码有国家标准汉字编码(GB码码)GB2312-80(国家标准汉字编码)是常用的汉字(国家标准汉字编码)是常用的汉字编码标准,它收录了编码标准,它收录了6763个常用汉字。国标码使用连个常用汉字。国标码使用连续的两个字节(十六位二进制位)表示一个汉字。续的两个字节(十六位二进制位)表示一个汉字。根据这些汉根据这些汉 字字 使用频率的高低,分成两部分:使用频率的高低,分成两部分:一级汉字共一级汉字共 37 55个,即最常用的汉字。个,即最常用的汉字。二级汉字共二级汉字共3008个,为次常用的汉字。个,为次常用的汉字。GB2312-80还收录了一些数字符号、图形符号、还收录了一些数字符号、图形符号、外文字母等外文字母等。2024/7/316数值数据的编码方法:前面讨论的是数值数据在计算机中的存放格式,下面讨论对数值数据进行编码的方法。原码表示法:(假定用八个二进制位表示)a=+51(a)2=(+00110011)2则a原=00110011a=-127(a)2=(-01111111)2则a原=11111111原码表示法在八个二进制位中的表示范围:-127a+127+0原=00000000-0原=10000000 要点:要点:最高位作为符号位,若正数,则最高位是最高位作为符号位,若正数,则最高位是0,若负数,若负数,则最高位是则最高位是1。2024/7/317反码表示法:(假定用八个二进制位表示)通过一个二进制整数的原码得到所谓反码:当a为正数时,a原=a反,当a为负数时,则保持a原的符号位不变,其余各个二进制位逐位取反,即0变1,1变0。如:a=+51a原=00110011则a反=a原=00110011a=-51a原=10110011则a反=11001100反码表示法在八个二进制位中的表示范围:-127a+127+0反=00000000-0反=11111111 要点:要点:由原码得到反码。若正数,则反码与原码相同,若负数,由原码得到反码。若正数,则反码与原码相同,若负数,则最高位不变,其余逐位取反。则最高位不变,其余逐位取反。2024/7/318补码表示法:(假定用八个二进制位表示)通过一个二进制整数的反码得到所谓补码:当a0时,a补=a反,当a0时,则a补=a反+1,如:a=+51a原=00110011则a补=a反=a原=00110011a=-51a原=10110011a反=11001100则a补=a反+1=11001101补码表示法在八个二进制位中的表示范围:-128a+127+0补=00000000-128补=10000000 要点:要点:由反码得到补码。若正数,则反码与补码相同,若负数,由反码得到补码。若正数,则反码与补码相同,若负数,则补码等于反码加则补码等于反码加1。在补码表示法中,0的表示是唯一的,而最小值可达-128。2024/7/319在上述介绍当中我们是以八位二进制位为例,同样,我们可以将其推广到十六位,三十二位等二进制位中去,需要注意的是数值范围将发生变化。思考:思考:以上介绍的原码、反码、补码都是有符定点整数的编码方式,若以八位二进制位表示无符定点整数,则其范围是0到255。在在Turbo C中:中:有符整数有符整数是按有符定点整数格式的补码表示的,无符整数无符整数是按无符定点整数格式表示的。2024/7/320补码的加、减法补码的加、减法补码的加法公式是:a补+b补=a+b补补码的减法公式是:a-b补=a补-b补=a补+-b补例1.1:a=1110=00001011原,b=510=00000101原,求a+b。因为a补=00001011,b补=00000101补码a+b补=00010000补a+b反=00010000反a+b原=00010000原=16102024/7/321一、负整数的原码与补码的快速转换:一、负整数的原码与补码的快速转换:从左到右;从左到右;见见0不变、见第一个不变、见第一个1也不变;也不变;其余位依次取反;其余位依次取反;最高位不变最高位不变二、整数的原、反、补码相同。2024/7/322例1.2:-a=-1110=10001011原,b=510=00000101原,求b-a。因为-a补=11110101,b补=00000101补码b-a补=b补+-a补=11111010补b-a反=11111001反b-a原=10000110原=-6102024/7/323关于字符编码方法:关于字符编码方法:要注意要注意ASCII码和国标码应用对象的不同,码和国标码应用对象的不同,ASCII码用来码用来对英文字符编码而国标码用来对汉字进行编码。对英文字符编码而国标码用来对汉字进行编码。ASCII码使用码使用一个字节(八位二进制位),国标码使用两个字节(十六位一个字节(八位二进制位),国标码使用两个字节(十六位二进制位)。二进制位)。GB2312-80规定了用连续的两个字节来表示一个汉字,并规定了用连续的两个字节来表示一个汉字,并且只用各个字节的低且只用各个字节的低7位,最高位未定义。这样以来就有可能位,最高位未定义。这样以来就有可能与与ASCII码字符产生冲突,码字符产生冲突,就单个字节来说,两种编码方式都就单个字节来说,两种编码方式都只用到字节的低七位,只用到字节的低七位,ASCII码规定高位充零,而国标码对高码规定高位充零,而国标码对高位未定义位未定义,因此,对单个字节而言,不能确定它到底是一个,因此,对单个字节而言,不能确定它到底是一个ASCII码字符还是一个汉字的一部分(低字节或高字节)。于码字符还是一个汉字的一部分(低字节或高字节)。于是有很多为了解决这类问题的方案应运而生,变形国标码就是有很多为了解决这类问题的方案应运而生,变形国标码就是其中之一,并且得到了广泛的应用。它的主要特点是将国是其中之一,并且得到了广泛的应用。它的主要特点是将国标码编码的各个字节的最高位置标码编码的各个字节的最高位置1,以达到区别于,以达到区别于ASCII编码编码的目的。的目的。2024/7/324如何理解存储在计算机中的信息 计算机中各种信息都是以二进制形式存在,有的是数值,计算机中各种信息都是以二进制形式存在,有的是数值,有的是有的是ASCII码字符,有的是汉字,码字符,有的是汉字,如何区分它们呢?如何区分它们呢?这实际这实际上取决于我们(或者程序)上取决于我们(或者程序)按照何种规则判读它们按照何种规则判读它们,例如:对,例如:对于机器内存中连续两个字节,它们的低七位内容分别为于机器内存中连续两个字节,它们的低七位内容分别为0110000和和0100001,如果它们的最高位均为,如果它们的最高位均为1,则表示汉字,则表示汉字“啊啊”,如果均为,如果均为0则表示为两个则表示为两个ASCII码字符码字符“0”和和“!”。当然,我们还可根据不同的数值编码规则将它们判读成不同的当然,我们还可根据不同的数值编码规则将它们判读成不同的数值。数值。2024/7/3251.1.2计算机系统的基本组成计算机系统的基本组成一个完整的计算机系统是由硬件系统和软件系统两大部分组成。硬件系统:是构成计算机系统的各种物理设备的总称,是计算机系统的物质基础,它由运算器、控制器、存储器、输入设备和输出设备组成;软件系统:是为运行、管理和维护计算机而编制的程序和各种文档的总和。2024/7/326计计算算机机系系统统硬硬件件系系统统软软件件系系统统主主机机外外设设系系统统软软件件应应用用软软件件中央处理器(中央处理器(CPU)内存储器内存储器运算器(运算器(ALU)控制器(控制器(CU)只读存储器只读存储器(ROM)随机存储器随机存储器(RAM)外部存储器外部存储器(辅助存储器)辅助存储器)输入设备输入设备输出设备输出设备操作系统操作系统编译系统编译系统数据库管理系统数据库管理系统实用程序实用程序专用应用软件专用应用软件通用应用软件通用应用软件图图1-42024/7/3271.硬件系统计算机硬件主要由中央处理器、主存储器、辅助存储器、输入设备、输出设备等组成。(1)中央处理器(CPU)CPU的作用是不断的从内存中取指令并执行指令。CPU的指令控制部件负责解释并执行各条指令,在内部进行算术运算、逻辑运算,对外部按指令要求与内存、接口设备交换信息,协调整个计算机系统的工作。2024/7/328(2)主存储器(MainMemory)主主存存储储器器又又称称为为内内存存储储器器,简简称称内内存存,用用来来存存放放当当前前运运行行的的程程序序和和数数据据。根根据据其其工工作作方方式式和和读读写写功功能能的的不不同同,内内存存可可分分为:只读存储器和随机存储器。为:只读存储器和随机存储器。只读存储器(只读存储器(ROM):):ROM(Read Only Memory)随机存储器(随机存储器(RAM):):RAM(Random Access Memory)有以下两个特点:有以下两个特点:一是随机存取信息,二是具有一是随机存取信息,二是具有“挥发性挥发性”。(3)辅助存储器(AuxiliaryMemory)主主存存储储器器速速度度快快但但价价格格昂昂贵贵,因因而而容容量量受受到到限限制制,且且断断电电后后即即“挥挥发发”,所所以以计计算算机机采采用用了了大大容容量量的的辅辅助助存存储储器器,如如磁磁带带、磁磁盘盘、光光盘盘等等。辅辅助助存存储储器器只只能能与与主主存存储储器器交交换换信信息息,是是主主存存储储器器的的扩扩充充。它它与与主主存存储储器器一一起起构构成成计计算算机机存存储储体体系系中中的的一个重要组成部分。一个重要组成部分。2024/7/329存储器容量单位在在存存储储器器中中,存存储储器器最最小小单单位位是是存存储储位位(Bit),由由若若干干个个存存储储位位组组成成一一个个存存储储单单元元,如如八八个个二二进进制制位位组组成成一一个个字字节节存存储单元(储单元(Byte),然后再由许多个存储单元组成存储器。),然后再由许多个存储单元组成存储器。为为了了区区分分不不同同的的存存储储单单元元,必必须须将将它它们们逐逐一一编编号号,该该编编号称为存储单元的地址。通过地址,可以访问各个存储单元。号称为存储单元的地址。通过地址,可以访问各个存储单元。一一个个存存储储器器中中包包含含的的存存储储单单元元的的总总数数通通常常称称为为该该存存储储器器的存储容量。存储容量的换算关系如下:的存储容量。存储容量的换算关系如下:1Byte=8Bits1KB=1024Bytes=210Bytes1MB=1024KB=220Bytes1GB=1024MB=230Bytes1TB=1024GB=240Bytes2024/7/330(4)输入输入/输出设备输出设备 输入设备是向计算机输入数据、信息的设备的总称。它将输入设备是向计算机输入数据、信息的设备的总称。它将计算机程序、文本信息、多媒体信息以及各种数据转换成计算计算机程序、文本信息、多媒体信息以及各种数据转换成计算机能处理的数据形式并输送到计算机。常见的输入设备有键盘、机能处理的数据形式并输送到计算机。常见的输入设备有键盘、鼠标、扫描仪等。输出设备是能将计算机处理好的信息转换成鼠标、扫描仪等。输出设备是能将计算机处理好的信息转换成文本、图形、多媒体等形式并输出的设备。常见的输出设备有文本、图形、多媒体等形式并输出的设备。常见的输出设备有显示器、打印机、绘图仪等。显示器、打印机、绘图仪等。2024/7/3312.软件系统计算机只有配备了软件系统才能进行工作。一计算机只有配备了软件系统才能进行工作。一台计算机能否发挥其应有的作用,实现硬件系统所能台计算机能否发挥其应有的作用,实现硬件系统所能完成的信息处理功能,取决于软件系统的优良与否。完成的信息处理功能,取决于软件系统的优良与否。软件一般指计算机运行所需的各种程序、数据以软件一般指计算机运行所需的各种程序、数据以及相关的文档。及相关的文档。软件系统软件系统由由系统软件系统软件和和应用软件应用软件两大两大部分组成。系统软件是用来对计算机进行管理、控制部分组成。系统软件是用来对计算机进行管理、控制和维护,以及支持应用程序的运行的软件的集合。应和维护,以及支持应用程序的运行的软件的集合。应用软件是在系统软件的支持下为解决各类实际问题而用软件是在系统软件的支持下为解决各类实际问题而设计开发的软件(程序)。设计开发的软件(程序)。2024/7/332(1)系统软件系统软件用于管理计算机资源,分配和协调计算机各部件工作,提高计算机的使用效率,方便用户使用计算机。系统软件包括以下四大类:操作系统:编译系统:实用程序:数据库管理系统:2024/7/333(2)应用软件应用软件是用户或软件开发人员在系统软件的支持下,为解决各类实际问题而设计、开发的软件,它包括通用应用软件即软件包和专用应用软件即用户应用软件。通用应用软件是指由软件公司专业人员为解决通用性问题而设计的软件,以供用户选择实用。这类软件很多如:Office2000(办公自动化)、Access97(数据库)、SAS(统计分析系统)等。专用应用软件是指用户为了解决特定问题自己或委托他人研制开发的软件。如工资管理系统等。2024/7/334需要注意的是:需要注意的是:1)内存和外存在计算机系统中的作用,以及他们之间的关内存和外存在计算机系统中的作用,以及他们之间的关系。系。2)存储器的容量单位和地址的概念存储器的容量单位和地址的概念:存储器最小单位是存:存储器最小单位是存储位(储位(Bit),由若干个),由若干个Bit成一个存储单元,如八个二进成一个存储单元,如八个二进制位组成一个字节存储单元(制位组成一个字节存储单元(Byte),然后再由许多个存),然后再由许多个存储单元组成存储器。储单元组成存储器。l 为为了了区区分分不不同同的的存存储储单单元元,必必须须将将它它们们逐逐一一编编号号,该该编编号号称称为为存存储储单单元元的的地地址址。通通过过地地址址,可可以以访访问问各各个个存存储储单元。单元。l 一一个个存存储储器器中中包包含含的的存存储储单单元元的的总总数数通通常常称称为为该该存存储储器的存储容量。存储容量的换算关系如下:器的存储容量。存储容量的换算关系如下:l1Byte=8Bitsl1KB=1024Bytes=210Bytes1MB=1024KB=220Bytesl1GB=1024MB=230Bytes1TB=1024GB=240Bytes2024/7/3353.计算机语言 所所谓谓计计算算机机语语言言是是人人类类为为了了有有效效地地与与计计算算机机进进行行信信息息的的传传递递、沟沟通通,并并且且能能让让计计算算机机按按照照人人类类的的意意志志进进行行工工作作而而开开发发出出的的一一种种语语言言。人人类类使使用用它它描描述述解解决决问问题题一一系系列列步步骤骤,计计算算机机能能够识别并执行它,以达到解决问题的目的。够识别并执行它,以达到解决问题的目的。(1)机器语言)机器语言 (2)汇编语言)汇编语言 (3)高级语言)高级语言 在此,请注意,计算机只能识别并执行二进制机器指令的在此,请注意,计算机只能识别并执行二进制机器指令的特点并被有改变。要想计算机执行汇编程序或者高级语言程序特点并被有改变。要想计算机执行汇编程序或者高级语言程序就必须将该程序就必须将该程序“转换转换”(编译或解释)成机器指令程序,方(编译或解释)成机器指令程序,方可执行。可执行。2024/7/3364.翻译方式 编编译译程程序序或或解解释释程程序序对对高高级级语语言言程程序序(或或汇汇编编语语言言程程序序)进进行行“翻翻译译”处处理理,使使它它成成为为机机器器指指令令程程序序,才才能能提提交交计计算算机机执行。执行。其其核核心心是是将将高高级级语语言言(或或汇汇编编语语言言)转转换换成成“机机器器指指令令程程序序”。下面分别介绍这两种处理方式。下面分别介绍这两种处理方式。(1)解释方式)解释方式 使用解释程序(使用解释程序(Interpreter)将高级语言程序的语句逐条)将高级语言程序的语句逐条“翻译翻译”成机器指令并逐条提交计算机执行,直至程序结束(如成机器指令并逐条提交计算机执行,直至程序结束(如图图1-5所示)所示)。2024/7/337(2)编译方式所所 谓谓 编编 译译 方方 式式 是是 分分 两两 步步 进进 行行 的的 首首 先先 通通 过过 编编 译译 程程 序序(Compiler)对对整整个个高高级级语语言言程程序序进进行行编编译译,它它包包括括翻翻译译和和查查错错(词词法法分分析析、语语法法和和语语义义分分析析、生生成成和和优优化化目目标标程程序序)。出出现现错错误误时时,停停止止编编译译,报报告告错错误误,不不生生成成目目标标程程序序,待待修修改改源源程程序序后后,再再进进行行编编译译,直直到到最最终终得得到到正正确确的的目目标标程程序序。然然后后使使用用链链接接程程序序(Linker)对对目目标标程程序序进进行行链链接接,得得到到可可执执行行的的程程序,这时才能将可执行程序提交计算机执行(如图序,这时才能将可执行程序提交计算机执行(如图1-6所示)所示)Turbo c 是以编译方式进行工作的。是以编译方式进行工作的。2024/7/3381.2算法及其表示算法及其表示1.2.1算法的概念和特点算法的概念和特点我们在使用计算机解决实际问题的时候,通常按如下步骤进行:我们在使用计算机解决实际问题的时候,通常按如下步骤进行:1.分析问题,找出解决问题的分析问题,找出解决问题的模型模型。2.根据模型,设计出适合计算机特点的处理方法即根据模型,设计出适合计算机特点的处理方法即算法算法。3.选择适合的计算机语言,进行选择适合的计算机语言,进行编程以实现编程以实现算法。算法。4.上机上机编辑、调试、运行编辑、调试、运行所编制的程序,得到结果。所编制的程序,得到结果。5.对结果进行对结果进行分析,整理分析,整理出文字材料即文档。出文字材料即文档。2024/7/339一个合理的算法具有以下特点:一个合理的算法具有以下特点:1.有有穷穷性性:一一个个算算法法应应该该是是“有有限限”个个步步骤骤的的,而而不不能能是是“无无限限“个个步步骤骤的的。也也就就是是说说经经过过有有限限个个步步骤骤的的处处理理以以后后,算算法法应该结束。应该结束。2.确确定定性性:算算法法中中的的每每一一个个步步骤骤的的含含义义都都是是确确定定的的、唯唯一一的的,不能具有其他的含义或可被理解成其他的含义。不能具有其他的含义或可被理解成其他的含义。3.有有输输入入:可可有有零零个个或或多多个个输输入入。输输入入是是用用来来在在一一个个算算法法的的执执行行过过程程中中,向向它它提提供供处处理理对对象象(数数据据)或或控控制制算算法法执执行行过过程程的信息的。的信息的。4.有有输输出出:可可有有一一个个或或多多个个输输出出。它它是是算算法法执执行行的的结结果果的的输输出。没有输出的算法是一个无效的算法。出。没有输出的算法是一个无效的算法。5.有效性:有效性:算法的每一步骤都可有效地执行。算法的每一步骤都可有效地执行。2024/7/3401.2.2如何表示一个算法如何表示一个算法表表示示一一个个算算法法的的方方法法很很多多,如如自自然然语语言言法法、传传统统流流程程图图法法、N-S流流程程图图法法、伪伪代代码码法法等等,理理论论上上都都可可用用来来表表示示算算法法,但但是是效率上有很大差异。效率上有很大差异。例如:例如:M=5!,要求!,要求M 的值。的值。自然语言法描述算法如下自然语言法描述算法如下:设定变量设定变量M,M置初值为置初值为1,设定变量,设定变量I,置初值为,置初值为1。如果如果I的值小于的值小于6,则执行,则执行,否则执行,否则执行。将将M乘乘以以I并并置置于于M中中存存放放,将将I中中的的值值加加1并并置置于于I中中存存放放,再执行再执行。将将M中的值输出。中的值输出。用传统流程图法描述算法如图用传统流程图法描述算法如图1-7所示:所示:用用N-S流程图描述算法如图流程图描述算法如图1-8所示:所示:2024/7/341结构化程序设计 人们经过长期的实践,不断地总结经验,提出了结构化程序设人们经过长期的实践,不断地总结经验,提出了结构化程序设计方法,将算法的描述归纳为三种基本结构的顺序组合,即计方法,将算法的描述归纳为三种基本结构的顺序组合,即顺序结顺序结构、选择结构、循环结构构、选择结构、循环结构。它们的共同特点是:只有一个入口,只有一个出口,每个基本它们的共同特点是:只有一个入口,只有一个出口,每个基本结构中的每一部分都有机会被执行,结构内部不存在死循环。结构中的每一部分都有机会被执行,结构内部不存在死循环。使用三种基本结构描述的算法是结构化的算法,按照结构化算使用三种基本结构描述的算法是结构化的算法,按照结构化算法编写出来的程序具有良好的可读性和可维护性。法编写出来的程序具有良好的可读性和可维护性。需要说明的是传统流程图使用几何图形、流程线、文字说明(见表1-1)来描述一个算法,美国学者I.Nassi和B.Shneidermen提出了用N-S流程图又称盒图(三种基本结构对照表见表1-2)描述算法的方法。2024/7/3422024/7/3431.3 C语言基本知识语言基本知识1.3.1 C语言的发展历史及特点语言的发展历史及特点 1.C语言程序结构紧凑、语言简洁。语言程序结构紧凑、语言简洁。2.C语言的数据类型丰富。语言的数据类型丰富。3.C语言的运算符丰富,有多达语言的运算符丰富,有多达44种运算符,(见附录种运算符,(见附录III)。)。4.C语言是一种结构化程序设计语言。语言是一种结构化程序设计语言。5.C语语言言是是处处于于汇汇编编语语言言和和高高级级语语言言之之间间的的程程序序设设计计语语言言,即中级语言。即中级语言。6.C语言可移植性好语言可移植性好 7.C语言的语法限制不太严格。语言的语法限制不太严格。2024/7/3441.3.2 C语言的标识符与关键字语言的标识符与关键字 在在C语语言言程程序序中中,标标识识符符和和关关键键字字都都属属于于程程序序的的基基本本语语法法单单位。正确地使用标识符和关键字对于程序的编制是至关重要的。位。正确地使用标识符和关键字对于程序的编制是至关重要的。1.标识符标识符 标标识识符符一一般般是是指指用用户户或或系系统统定定义义的的符符号号名名、变变量量名名、数数组组名名、类类型型名名、函函数数名名、文文件件名名等等。C语语言言规规定定标标识识符符由由字字母母、数数字字、下下划划线线组组成成,必必须须以以字字母母或或下下划划线线开开头头。大大写写字字母母小小写写字字母母被被认认为为是是不不同同的的字字符符,在在标标识识符符中中不不能能含含有有其其它它字字符符,也也不不能能跨跨行书写。例如,行书写。例如,合法的标识符如下:合法的标识符如下:a_1 name _x123 worker World_1 _Wolf 非法的标识符如下:非法的标识符如下:1abc name,1 x 123n&a12 To-me date.1Turbo C规规定定标标识识符符长长度度不不超超过过32个个字字符符,超超过过32个个字字符符的的部部分无效。分无效。2024/7/345用户在定义标识符的时候应注意:不要与系统预定义的标识符或关键字相同。如:用户不要定义printf作为用户标识符,因为系统已经将其预先定义为格式输出函数的标识符,以免引起冲突。尽可能直观地定义标识符,也就是说,从所定义的标识符的字面上就能够了解其含义,以方便以后的使用。2024/7/3462.关键字C C语言中的关键字又称保留字,它是由语言中的关键字又称保留字,它是由C C的编译程序的编译程序预定义的、具有特定含义的单词,用户不可将其定义成预定义的、具有特定含义的单词,用户不可将其定义成自己的标识符使用。自己的标识符使用。C C的关键字有以下的关键字有以下3232个:个:auto break case char const auto break case char const continue default do double elsecontinue default do double elseenum cxtern float for gotoenum cxtern float for gotoif int long register returnif int long register returnshort signed sizeof static structshort signed sizeof static structswitch typedef union unsigned voidswitch typedef union unsigned voidvolatile whilevolatile while 2024/7/3471.3.3 C语言的基本结构语言的基本结构1.C语言程序由一个或多个函数组成,其中有且只有一个主函数,名为main()。2.函数由函数说明和函数体组成。其中函数名命名应符合标识符的规定,函数体应以花括弧“”开始,并以“”结束。3.函数体由C语言的“语句”组成,每条语句必须以“;”结尾。4.C语言程序的语句书写格式自由,一行内可以写一条或多条语句,也可将一条语句写在多行上,但关键字、标识符、字符串作为一个整体不能分写在两行上。5.在C语言程序中,可以在任何位置成对地使用/*和*/对程序进行注释,注释的作用是利用文字信息对程序进行说明或注解,以便人们在阅读程序时理解程序的功能,注释部分在程序的运行时不执行。例1.32024/7/348在屏幕上显示“Hello,C!”字符串。main()/*主函数*/*函数体开始*/printf(Hello,C!);/*在屏幕上显示字符串*/*函数体结束*/2024/7/349main()/*主函数*/*主函数体开始*/inta,b,c;/*定义三个整型变量名*/printf(“Hello,C!”);/*屏幕输出字符串*/scanf(“%d%d”,&a,&b);/*从键盘输入两个数,分别给a和b这两个变量*/c=add(a,b);/*调用用户定义的函数add,并将函数值置于变量c中*/printf(“%dn”,c);/*屏幕输出变量c的值*/*主函数体结束*/add(a,b)/*用户自定义标识符add作为函数名,有两个参数a和b*/*用户自定义函数的函数体*/inty;/*定义一个整型变量名y*/y=a+b;/*将a+b的值置于y中*/returny;/*将y的值返回*/*用户自定义函数的函数体结束*/2024/7/350加强对C语言程序基本结构的理解,对今后的学习会有很大帮助。建议:建议:初学者除了注意对书本知识的学习以外,要多观察、多思考、多做自己的“作品”(不在于复杂程度,只要是自己的)、多做上机练习,坚持一段时间,培养起自己的兴趣,有了兴趣就意味着成功的开始。习题1一、二、三(4.5.)2024/7/351Turbo C 集成环境的使用
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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