收藏 分销(赏)

c语言程序设计全套电子教案整套教学教程.ppt

上传人:精**** 文档编号:10251510 上传时间:2025-04-30 格式:PPT 页数:822 大小:4.45MB
下载 相关 举报
c语言程序设计全套电子教案整套教学教程.ppt_第1页
第1页 / 共822页
c语言程序设计全套电子教案整套教学教程.ppt_第2页
第2页 / 共822页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,C语言程序设计(第2版),前言,自从现代电子计算机在1946年诞生以来,计算机在人类的日常生活中扮演越来越重要的角色,把计算机应用于解决实际生活问题也逐渐成为现代人的一项重要技能。掌握计算机的基本知识和使用技能,学习用计算机语言编写小型应用软件,进而较深入地学习和运用计算机知识是驾驭计算机的几个重要阶段。,计算机语言经历了从低级到高级的多个发展阶段。在众多的计算机语言中,C语言以其灵活和实用性受到广大计算机应用人员的喜爱。当今流行的Windows、Unix、Linux等各种操作系统都支持用C语言进行软件开发。,下一页,返回,前言,C语言不仅为计算机专业人员所使用和喜爱,近年来,许多计算机应用人员也开始喜爱和使用C语言。实践证明,它是一种很好的程序设计语言。,C语言对一般初学者来说,规则较多,使用太灵活,不易掌握,学习会有一定的困难;而且C语言的应用范围越来越大,所涉及的知识也在不断地增加。基于此,我们编写了C语言教程,主要是为满足初学者的需要,同时,对C语言所涉及的深入技术也做了一定介绍。此书既可作为C语言的教程,也可作为工具书以备编程时参考。,上一页,下一页,返回,前言,本教材对C语言的精华部分作了较为细致的介绍。我们还针对目前高等院校和社会上举办的各种计算机等级考试,精心组织了教材的内容。在教材的第1章,介绍了C语言的基础知识、基本概念以及常用的开发环境Turbo C的使用;第2章讲解了数据类型、运算符和表达式;第3章讲解了顺序结构程序设计;第4章讲解了选择结构程序设计;第5章讲解了循环结构程序设计;第6章讲解了数组的各种使用方法;第7章讲解了函数的使用方法;第8章讲解了指针的使用方法;第9章讲解了结构体与共同体;第10章讲解了文件的各种操作。,本书内容翔实,结构紧凑,覆盖知识面广泛,适合作为教材使用,同时也是一本很好的自学教材。由于编写时间较为仓促,书中难免会有疏漏和不足之处,恳请广大读者提出宝贵意见。,上一页,下一页,返回,目录,第1章概述,第2章数据类型、运算符和表达式,第3章顺序程序设计,第4章选择结构程序设计,第5章循环结构程序设计,第6章数组,第7章函数,上一页,下一页,返回,目录,第8章 编译预处理,第9章 指针,第10章结构体与共用体,第11章文件,第12章C语言项目实训,上一页,返回,第1章概述,1.1语言概述,1.2简单的程序介绍,1.3程序的上机步骤,1.1语言概述,1.1.1C语言简介,C语言是一种通用的、结构化的程序设计语言。无论是系统软件还是应用软件都可以很方便地使用C语言。,C语言是由美国贝尔实验室的D.M.Ritchie于1972年在B语言的基础上设计出来的。它既保持了B语言精练和接近硬件的特点,又克服了B语言过于简单和数据无类型等不足。不过最初的C语言只是为描述和实现UNIX操作系统而提供的一种工具语言,并主要在贝尔实验室内部使用。1977年出现了不依赖于具体机器的C语言编译文本可移植C语言编译程序。C语言因此具有的良好的可移植性,使UNIX操作系统迅速在各种机器上运行,并与此相辅相成,也使C语言得到了迅速推广和广泛应用。1978年以后,C语言已完全独立于UNIX,先后移植到大、中、小和微型计算机上,成为计算机程序设计语言的主流语种。,下一页,返回,1.1语言概述,1.1.2C语言的特点,C语言已成为国内外广泛使用的一种计算机语言,它具有很多突出的优点。C语言的主要特点有以下几个方面。,1.C语言简洁、紧凑,C语言一共只有32个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。,2.C语言是一种结构化程序设计语言,C语言的主要结构成分是函数,函数允许一个程序中的各任务分别定义和编码,使程序模块化。C语言还提供了多种结构化的控制语句,如用于循环的for、while和do-while语句,用于判定的if-else、switch语句等,十分便于采用自顶向下、逐步细化的结构化程序设计技术。因此,用C语言编制的程序容易理解、便于维护。,上一页,下一页,返回,1.1语言概述,3.具有丰富的数据类型,C语言具有现代语言的各种数据类型。C语言的基本数据类型有整型(int)、浮点型(float)和字符型(char)。在此基础上按层次可产生各种构造类型,如数组、指针、结构体和共用体等。同时还提供了用户自定义数据类型。用这些数据类型可以实现复杂的数据结构,如栈、链表和树等。,4.提供了丰富的运算符和运算能力,在C语言中除了一般高级语言使用的算术运算及逻辑运算功能外,还具有独特的以二进制位(bit)为单位的位与、位或、位非以及移位操作等运算。并且C语言具有如a+、b-等单项运算和+=、-=等复合运算功能。,上一页,下一页,返回,1.1语言概述,5.可以直接对硬件进行操作,C语言因为能进行位(bit)操作,所以能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此C语言既具有高级语言的功能,又具有低级语言的许多功能,可用来写系统软件。,6.移植性好,用C语言编写的程序可移植性好,基本上不做修改就能用于各种型号的计算机和各种操作系统,C语言的优点很多,但也有一些不足。如语法限制不太严格、类型检验太弱和不同类型数据转换比较随便,这就要求程序员对程序设计的方法和技巧更熟练,以保证程序的正确性。,上一页,返回,1.2简单的C程序介绍,用C语言编写的源程序,简称C程序。C程序是一种函数结构,一般由一个或若干个函数组成,其中必有一个名为main()的主函数,程序的执行就是从这里开始的。,例1-1编写一求任意两个整数的和的C程序。,#includestdio.h,main()/*主函数首部*/,int integer1,integer2,sum;/*定义3个整型变量*/,scanf(%d,%d,/*读入两个整数*/,sum=integer1+integer2;/*求和*/,printf(Sum is%dn,sum);/*输出所求的和*/*函数体结束*/,下一页,返回,1.2简单的C程序介绍,下面来分析本程序的结构:,#include是编译预处理命令。由双引号括起来的stdio.h称做为“头文件”,在“stdio.h”文件中定义了I/O库所用到的某些宏和变量,其作用是将由双引号(或尖括号)括起来的文件中的内容,读入到此命令的位置处。在使用C语言的输入/输出库函数时,一般需要使用#include命令将“stdio.h”包含到源文件中。,main()为主函数名,花括号 部分构成主函数的函数体。,语句int integer1,integer2,sum;是变量的定义部分,说明变量integer1,integer2,sum为3个整型变量,可以用来存放整型数据。,上一页,下一页,返回,1.2简单的C程序介绍,scanf功能是调用系统提供的标准库函数读入变量integer1和integer2的值。,printf功能是调用系统提供的标准库函数输出计算结果sum的值。,例1-2阅读并分析下面的程序。,main()/*主函数*/,int a,b,c;/*声明部分,定义变量*/,scanf(%d,%d,/*输入变量a和b的值*/,c=max(a,b);/*调用max函数,将得到的值赋给c*/,printf(max=%d,c);/*输出c的值*/,上一页,下一页,返回,1.2简单的C程序介绍,int max(int x,int y)/*定义max函数,函数值为整型,形式参数x,y为整型*/,int z;/*max函数中的声明部分,定义本函数中用到的变量z为整型*/,if(xy)z=x;,else z=y;,return(z);/*将z的值返回,通过max带回调用处*/,上一页,下一页,返回,1.2简单的C程序介绍,下面来分析一下本程序的程序结构:,本程序包括两个函数:主函数main和被调用的函数max。max函数的作用是将x和y中较大者的值赋给变量z。return语句将z的值返回给主调函数main。返回值是通过函数名max带回到main函数的调用处。main函数中的scanf是“输入函数”的名字(scanf和printf都是C系统提供的标准输入输出函数)。程序中scanf函数的作用是输入a和b的值。&a和&b中的“&”的含义是“取地址”,此scanf函数的作用是将两个数值分别输入到变量a和b的地址所标志的单元中,也就是输入给变量a和b。这种形式是与其他语言不同的。它相当于BASIC语言中的INPUT a,b或PASCAL语言中的Read(a,b)。&a和&b前面的“%d,%d”的含义与前相同,只是现在用于“输入”。它指定输入的两个数据按十进制整数形式输入。,上一页,下一页,返回,1.2简单的C程序介绍,main函数中第4行为调用max函数,在调用时将实际参数a和b的值分别传送给max函数中的形式参数x和y。经过执行max函数得到一个返回值(即max函数中变量z的值),把这个值赋给变量c,然后输出c的值。printf函数中双引号内的“max=%d”,在输出时,其中“%d”将由c的值取代之,“max=”原样输出。程序运行情况如下:,8,5(输入8和5给a和b),max=8(输出c的值),上一页,下一页,返回,1.2简单的C程序介绍,通过以上两个例子,可以看到C程序结构具有以下特点:,1.C程序是由函数构成的,一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数。因此,函数是C程序的基本单位。被调用的函数可以是系统提供的库函数(例如printf和scanf函数),也可以是用户根据需要自己编制设计的函数(例如,例1-2中的max函数)。C的函数相当于其他语言中的子程序,用函数来实现特定的功能。程序中的全部工作都是由各个函数分别完成的。编写C程序就是编写一个个函数。C的函数库十分丰富,ANSI C建议的标准库函数中包括100多个函数,Turbo C和MS C 4.0提供300多个库函数(参见附录2)。,C的这种特点使得实现程序的模块化很容易。,上一页,下一页,返回,1.2简单的C程序介绍,2.一个函数由两部分组成,(1)函数的首部,函数的首部,即函数的第1行。包括函数名、函数类型、函数属性、函数参数(形参)名和参数类型。,例如,例1-2中的max函数的首部为,一个函数名后面必须跟一对圆括弧,函数参数可以没有,如main()。,(2)函数体,函数体,即函数首部下面的大括弧内的部分。若一个函数内有多个大括弧,则最外层的一对 为函数体的范围。注意:必须配对使用。,函数体一般包含变量定义和执行语句两部分。,上一页,下一页,返回,1.2简单的C程序介绍,3.main()函数,C程序必须有main()函数,习惯上称其为主函数。C语言程序运行时,总是从main()函数开始,并且在main()函数中结束。main()函数可以放在整个程序的任意位置,通常我们总是把main()函数放在程序中其他函数的前面。,4.C程序书写格式自由,C程序没有行号,书写格式自由,一行内可写多条语句,且语句中的空格和回车符均可忽略不计。一个语句也可以写在多行上,用“”作续行符。,上一页,下一页,返回,1.2简单的C程序介绍,5.C程序中的每个语句后必须有一个分号,分号“;”是C语句的一部分。例如:sum=a+b;分号必不可少,即便是程序的最后一个语句也应包含分号。,6.C语言本身没有输入输出语句,输入和输出的操作是由库函数scanf()和printf()等函数来完成的。C语言对输入输出实行“函数化”。,7.可以在C程序的任何部分加注释,以提高程序的可读性,注释使程序变得清晰,能帮助我们阅读和理解程序。给程序加注释是一个良好的编程习惯。C语言注释部分由“/*”开始,至“*/”结束。注释应括在/*/之间,/和*之间不允许留有空格。注释部分允许出现在程序中的任何位置上。注释可为若干行,但不允许嵌套。,上一页,返回,1.3C程序的上机步骤,前面介绍了两例用C语言编写的程序。所谓程序,就是一组计算机能识别和执行的指令。每一条指令使计算机执行特定的操作。程序可以用高级语言(例如QBASIC、FORTRAN、PASCAL和C等)编写。用高级语言编写的程序称为“源程序”。从根本上说,计算机只能识别和执行由0和1组成的二进制的指令,而不能识别和执行用高级语言写的指令。为了使计算机能执行高级语言源程序,必须先用一种称为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”,再将该目标程序与系统的函数库和其他目标程序连接起来,形成可执行的目标程序。,下一页,返回,1.3C程序的上机步骤,在编好一个C源程序后,该怎样上机运行呢?在纸上写好一个程序后,要经过以下几个步骤:,上机输入与编辑源程序。,对源程序进行编译。,与库函数连接。,运行目标程序。,以上过程如,图1-1,所示。其中实线表示操作流程,虚线表示文件的输入输出。例如,编辑后得到一个源程序文件f.c,然后在进行编译时再将源程序文件f.c输入,经过编译得到目标程序文件f.obj,再将目标程序文件f.obj输入内存,与系统提供的库函数等连接,得到可执行的目标程序文件f.exe,最后把f.exe调入内存并使其运行。,上一页,下一页,返回,1.3C程序的上机步骤,在了解了C语言的初步知识后,大家最好上机运行一个C程序,以建立对C程序的初步认识。,下面就Turbo C环境下如何运行一个C的源程序作具体介绍。,1.3.1Turbo C(TC)集成开发环境,Turbo C由美国 Borland公司推出,是在微机上广泛使用的编译程序。它集源程序编辑、编译、调试和运行于一体,具有使用简单、方便、运行速度快、效率高和功能强等特点。,在Windows 操作系统下启动Turbo C软件后,屏幕上出现的是一个对话框,如,图1-2,所示。利用Enter键空格键可以将Turbo C全屏显示,屏幕上分别是主菜单、状态行、编辑窗口和功能键提示行,如,图1-3,所示。,上一页,下一页,返回,1.3C程序的上机步骤,1.Turbo C主菜单的介绍,Turbo C的主菜单共有8个菜单项:,(1)File(文件),主要用于对文件的操作。,(2)Edit(编辑),建立、编辑源文件。,进入Turbo C全屏编辑状态。在程序中按F10键或按Alt键+主菜单项的首字母可返回主菜单;在主菜单中按Esc键或E键,即可返回编辑状态。,上一页,下一页,返回,1.3C程序的上机步骤,(3)Run(运行),控制运行程序。,(4)Compile(编译),编译、生成目标及可执行文件。,(5)Project(项目),可选择编辑器任选项及定义宏,也可以记录Include及Library文件目录,保存编译任选项和从配置文件加载任选。,(6)Options(选择项),该菜单含有控制集成工作环境的设置。,上一页,下一页,返回,1.3C程序的上机步骤,(7)Debug(调试),检查、改变变量的值,查找函数,程序运行时查看调用栈。,(8)Break/Watch(控制断点和监视表达式),增加、删除、编辑监视表达式及设置、清除、执行至断点。,2.编辑窗口的介绍,为了进入编辑窗口,用F10键激活主菜单,然后将光标移到Edit菜单,再回车;或在主菜单里的任意位置直接按E键即可。,上一页,下一页,返回,1.3C程序的上机步骤,(1)状态行,编辑窗口的顶端为状态行,其中:,Line n:光标在文件的第n行。,Col n:光标在文件的第n列。,Insert:表示编辑状态处于“插入”状态。用键盘上的Insert键可以实现“插入”与“改写”状态的转换。,C:NOMAME.C:显示当前正在编辑的源程序名。对于源程序没作保存的都显示为“NONAME.C”,若用F2键或用File/Save命令则可以将源程序保存命名。,上一页,下一页,返回,1.3C程序的上机步骤,(2)功能键提示行,Turbo C屏幕底端所显示的为功能键提示行,其中:,F1:打开一个帮助窗口,给出有关Turbo C编辑命令的信息。,F5:扩大编辑窗口到整个屏幕。再按一次F5键又回到原状态。,F6:从一个活动窗口切换到另一活动窗口。,F7:在调试模式下一次执行程序的一行,跟踪进函数内部。,F8:在调试模式下一次执行程序的一行,不跟踪进函数内部。,F9:编译连接成.exe文件。,F10:从编辑窗口激活主菜单,或从任何菜单激活编辑窗口。,上一页,下一页,返回,1.3C程序的上机步骤,1.3.2C语言程序的上机步骤,其具体步骤如下:,1.建立C源程序,激活主菜单,选择并执行File/New命令,如,图1-4,所示。,激活主菜单,选择并执行File/Save命令或直接键入F2键,如,图1-5,所示。将“NONAME.C”修改为用户所建的源程序文件名。,2.保存C源程序,激活主菜单,选择并执行Compile/Make EXE File命令或直接键入F9键,则Turbo C将自动完成对当前正在编辑的源程序进行编译、连接并生成可执行文件(.EXE)。,上一页,下一页,返回,1.3C程序的上机步骤,3.编译、连接源程序,激活主菜单,选择并执行Compile/Make EXE File命令或直接键入F9键,则Turbo C将自动完成对当前正在编辑的源程序进行编译、连接并生成可执行文件(.EXE)。,如果源程序有语法错误,此时按任意键激活屏幕下端的消息窗口(Message),显示出错信息,亮块显示在第1条消息上。这时编辑窗口也有一条亮块,表明错误在此位置或就在邻近位置。按回车键后,即可修改相应的错误。但有时即使源程序没有一处语法错误,可编译、连接却不能通过,而是出现“Unable to open the file COS.OBJ”的错误提示。这主要是因为包含文件目录“Include directories”和库文件目录“Library directories”的设置有错引起的。其解决办法是按实际安装Turbo C的路径,重新设置。具体操作如下:,上一页,下一页,返回,1.3C程序的上机步骤,在Turbo C环境下按F10键,激活主菜单,选取Options/Directories命令,按回车键,打开相应的窗口,如,图1-6,所示。,将黑块移到“Include directories:”选项上,按回车键,系统弹出包含当前文件路径的编辑窗口,重新输入包含文件的实际所在的盘符和路径,然后按回车键即可。,将黑块移到“Library directories:”选项上,按回车键,系统弹出当前库文件所在目录的编辑窗口。用修改“Include directories:”项相同的方法,将其改为正确的盘符和路径。,将黑块移到“Output directories:”选项上,按回车键,将其改正。,上一页,下一页,返回,1.3C程序的上机步骤,再移动黑块到“Turbo C directories:”选项上,将Turbo C文件所在的目录和路径修改正确。,按Esc键返回Options菜单,再执行Save options命令,将所设置的内容保存。,返回子菜单,再按Esc键,则返回原编辑窗口。,4.执行程序,利用快捷键Ctrl+F9或选择Run/Run命令,按回车键,即可运行程序。若程序没有输入函数语句,则立即返回编辑窗口;若程序有输入函数语句,则输入相关数据按回车键返回。,上一页,下一页,返回,1.3C程序的上机步骤,5.查看结果,利用快捷键Alt+F5或选择Run/User screen命令,即可显示程序的结果。查看结果后,可按任意键返回编辑窗口。,若发现有逻辑错误,则需要重新编辑修改;然后重新按上述步骤执行,直至运行结果无误。,以上步骤是运行一个完整C语言源程序的过程,当需要重新编辑下一个源程序时,只需选择File/New命令即可。,上一页,返回,图1-1上机运行的步骤,返回,图1-2Turbo C对话框,返回,图1-3Turbo C窗口,返回,图1-4建立C源程序,返回,图 1-5保存C源程序,返回,图1-6“Options/Directories”命令,返回,第2章数据类型、运算符和表达式,2.1数据类型,2.2C语言的基本符号,2.3常量与变量,2.4运算符与表达式,2.1数据类型,数据是程序处理的对象。C语言在程序处理数据之前,要求数据具有明确的数据类型。数据类型是指数据的内部表示形式,体现的是数据的操作属性,对具有不同数据类型的数据可进行不同的操作。用户在程序设计过程中所使用的每个数据都要根据其不同的用途赋以不同的类型,一个数据只能有一种类型。每种数据类型都由两方面组成,即数据的存储方式和对该类型的数据的运算方式。,数据类型一般具有以下基本含义:,数据类型规定了一个以值为其元素的集合,即规定该类型中数据的定义域。例如double表明计算机能够计算的所有实数;逻辑类型的数据取值范围是非“真”即“假”。,下一页,返回,2.1数据类型,数据类型定义了一个运算集,即不同类型的数据拥有不同的运算关系。例如,对数值类型数据可进行算术运算,对逻辑类型数据可进行逻辑关系运算。,数据类型定义了数据在计算机内的存储以及在书写中的表示方式。例如整型占用计算机一个字长,而空类型的长度为零。,C语言规定任何数据都必须有明确的数据类型。C语言提供了5种基本数据类型:字符型(char)、整型(int)、单精度实型(float)、双精度实型(double)和空类型(void),以及6种聚合类型:数组、指针、结构体、公用体(联合)、位域和枚举类型。实际上较为复杂的数据结构或类型是由基本数据类型按照某种方式组合而成的。,上一页,返回,2.2C语言的基本符号,2.2.1基本符号集,C语言的基本符号集是ASCII字符集,参见本书的附录1。它由以下几部分组成:,阿拉伯数字10个:0、1、2、3、8和9。,大小写英文字母各26个:A、B、C、Z、a、b、c、y和z。,下划线:_。,特殊符号,主要是指运算符和操作符。相关内容我们将在以后介绍。,下一页,返回,2.2C语言的基本符号,2.2.2标识符,标识符是一个字符序列。C语言的标识符可分为用户标识符、保留字和预定义标识符3类,有些教材称保留字为“关键字”。标识符的作用是作为常量、变量、函数和类型的名称。,1.用户标识符,用户可以根据需要对C程序中用到的变量、符号常量、用户函数或文件指针进行命名,形成用户标识符,这类标识符的构成规则如下:,由英文字母、数字和下划线组成,且第1个字符不能是数字,必须是字母或下划线。,例如:a、_A、aBc、xlz和y_3都是合法的标识符,而123、3_ab、#abc、!45和a*bc都是非法标识符。,上一页,下一页,返回,2.2C语言的基本符号,大、小写英文字母的含义不同。比如SUM、Sum和sum代表3个不同的标识符,这一点一定要注意。,C语言本身并没有要求标识符的长度,不同的C编译系统允许包含的字符个数有所不同。通常可以识别前面8个字符,但在任何机器上,所能识别的标识符的长度总是有限的,有些系统可以识别长达31个字符的标识符(如VAX-11 VMSC),而有些系统只能识别8个字符长度的标识符。这意味着即使第9个字符不同,只要前8个字符一样,系统也认为是同一个标识符,如:Category1和Category2表示同一个标识符。因此,为了避免出错和增加可移植性,标识符最好前8个字符有所区别。,上一页,下一页,返回,2.2C语言的基本符号,用户定义标识符时,应当尽量遵循“简洁明了”和“见名知意”的原则。一个写得好的程序,标识符的选择应尽量反映出所代表对象的实际意思。如表示“年”可以用year,表示“长度”可以用length,表示加数的“和”可以用sum等,这样增加了标识符的可读性,使程序更加清晰。,例2-1指出以下各标识符组中合法的用户标识符。,上一页,下一页,返回,2.2C语言的基本符号,分析:C语言规定用户标识符可以由26个英文字母(大写或小写)、数字(09)和下划线(_)组成,且第1个必须是字母或下划线。对于第1组选择项,由于A.和D.中分别包含有非法的标识符字符(#和*),而C.中又使用了关键字void,因此都不是合法的用户标识符;答案B.中虽然使用了预定义标识符scanf,但它不是关键字,C语言语法允许将预定义标识符作为用户标识符使用,因此编译时并不报错,只是这样会使其失去原来的特定含义,所以虽然合法但不提倡。故第1组中B.是正确答案。同理第2组中D.是正确答案,第3组中A.是正确答案。在第2组的D.答案中有INT为大写而不是关键字,因为C语言中大小写字母是不一样的字符。,上一页,下一页,返回,2.2C语言的基本符号,2.保留字,保留字是C语言编译系统固有的、用作语句名和类型名的标识符。C语言共有32个保留字,每个保留字在C程序中都代表着某一固定含义,所有保留字都要用小写英文字母表示,且这些保留字都不允许作为用户标识符使用。,描述数据类型定义:typedef,void。,描述存储类型:auto,extern,register,static和volatile。,描述数据类型:char,const,double,float,int,long,short,signed,struct,union,unsigned和enum。,描述语句:break,case,continue,default,do,else,for,goto,if,return,sizeof,switch和while。,上一页,下一页,返回,2.2C语言的基本符号,3.预定义标识符,这些标识符在C语言中都具有特定含义,如C语言提供的编译处理预命令#define和#include。C语言语法允许用户把这类标识符作其他用途,但这将使这些预定义标识符失去系统规定的原意。鉴于目前各种计算机系统的C语言已经把这类标识符作为统一的编译预处理中的专用命令名使用,因此为了避免误解,建议用户不要把这些预定义标识符另作它用或将它们重新定义。,上一页,返回,2.3常量与变量,C语言中的各类数据类型都有常量和变量之分。常量用来表示数据的值。变量不但表示数据的值,也可用来存放数据。,2.3.1常量,所谓常量,就是在程序运行过程中其值不改变的量。如:21、x、123.23、3.14e、3和“china”等。常量也有数据类型,根据常量的不同取值形式,C语言将常量分为5种:整型常量、实型常量、字符型常量、字符串常量和符号型常量。,1.整型常量,通常情况下,整型常量有4种表示形式:即二进制、八进制、十进制和十六进制。,下一页,返回,2.3常量与变量,(1)二进制整数表示,一个二进制数有两个特点:,它有两个不同的数码符号,即:0和1。,它是逢二进位的。如:10101、1010等都是二进制数。,通常,任意一个二进制整数M,都可以表示为:,其中i表示数的某一位,Mi表示第i位的数码,它可以是0、1中的任意一个,n为整数M的位数。式中2就称为计数制底数(或称为基数),所以这是二进制整数。,上一页,下一页,返回,2.3常量与变量,例2-2将二进制数10101转换成十进制数。,转换过程如下:,(10101),2,=12,4,+02,3,+12,2,+02,1,+12,0,=(21),10,(2)八进制整数表示,一个八进制数也有两个特点:,它有8个不同的数码符号,即:0、1、2、3、6和7;,它是逢八进位的。在C语言中,以0开头。如:0123、056等都是八进制整数。,上一页,下一页,返回,2.3常量与变量,通常,任意一个八进制整数B,都可以表示为:,其中i表示数的某一位,Bi表示第i位的数码,它可以是07中的任意一个,n为整数B的位数,式中的8就是基数,故称八进制整数。,例2-3将八进制数372换成十进制数。,转换过程如下:,(372),8,=38,2,+78,1,+28,0,=(250),10,(3)十进制整数表示,一个十进制数有两个特点:,它有10个不同的数码符号,即:0、1、2、3、8和9;,它是逢十进位的。如:123、456等都是十进制整数。,上一页,下一页,返回,2.3常量与变量,通常,任意一个十进制整数A,都可以表示为:,其中i表示数的某一位,Ai表示第i位的数码,它可以是09中的任意一个,n为整数A的位数,式中10就是基数,所以这是十进制整数。,(4)十六进制整数表示,类似于十进制、八进制有两个主要特点:,它有16个不同的数码符号,即:09和A、B、C、D、E和F。,它是逢十六进位的,在C语言中,以0X开头。如:0X123、0X18等都是十六进制整数。,上一页,下一页,返回,2.3常量与变量,通常,任意一个十六进制数C,都可以表示为:,其中i表示数的某一位,Ci表示第i位的数码,它可以是0F中的任意一个,n为整数C的位数,式中以16为基数,故称十六进制整数。,例2-4将十六进制数123转换成十进制数。,转换过程如下:,(123),16,=116,2,+216,1,+316,0,=(291),10,上一页,下一页,返回,2.3常量与变量,(5)十进制整数转换成非十进制数,通常,十进制整数转换成非十进制整数,采用“整除基数倒序取余数”的方法,即用十进制数不断除以相应的基数(如2、8和16)直至商为0为止。将所得余数,依次倒序排列,即可得到转换后的数制。,例2-5将十进制数的96转换成二进制数。,转换过程如下:,所以与十进制96等值的二进制数是1100000。,上一页,下一页,返回,2.3常量与变量,例2-6将十进制数的215转换成八进制数。,转换过程如下:,所以与十进制215等值的八进制数是327。,上一页,下一页,返回,2.3常量与变量,例2-7将十进制数1234转换成十六进制数。,转换过程如下:,所以与十进制1234等值的十六进制数是4D2。,上一页,下一页,返回,2.3常量与变量,在C语言中整型常量不管是十进制、八进制或十六进制,它的数值范围为-2,15,2,15,-1。整型常量一般在微型机中占两个字节。,为了扩大整型数据的数值范围,C语言还提供了一种“长整型常量”,它的数值范围是-2,31,2,31,-1,在微型机中占4个字节,但长整型数值后面通常要加“L”或“l”。例如,123L,78L等是长整型数。因此对于超出基本整型的数据,可使用长整型表示。,上一页,下一页,返回,2.3常量与变量,2.实型常量,实型常量又称为“浮点数”,有两种表示形式:,(1)十进制小数表示形式,它是由数字和小数点组成,如:0.35,-0.56等都是十进制小数形式。,(2)指数表示形式,它是由尾数、字母e(或E)和指数3部分组成,如:123e3或123E3均表示12310,3,。但需要注意的是:,尾数必须存在,即e(或E)之前必须有数字。,指数必须是整数。,上一页,下一页,返回,2.3常量与变量,一个实数既可以用十进制小数表示,也可以用指数形式表示,甚至可以有多种指数表示形式,例如1234.56可以表示为1.23456e3、12.3456e2和0.123456e4等多种形式。但所有这些表示形式中,只有1.23456e3是“规范化指数形式”,即在尾数中,小数点左边只有一个非零数字,一般地在C程序中一个实数在用指数形式输出时,都是按规范化形式输出的。实型常量通常在微型机中占4个字节。,3.字符型常量,字符型常量是用单引号括起来的一个字符,通常在微型机中占一个字节,如 a、*、A 和 3 等都是字符型常量。需要注意的是:C语言中,字符区分大小写,且空格也是一个字符。,上一页,下一页,返回,2.3常量与变量,例2-8指出下面不合法的常量。,分析:从上面的4个选项可以看出A.和C.是字符常量,选项A.是一个普通的八进制转义字符,ASCII码值是2,C.仅由两个连续的单引号组成,不是正确的字符常量,不过,Turbo C 2.0之前的C语言版本不能检测出此类错误。B.和D.是字符串常量,由于C语言中允许空字符串,B.是正确的。D.初看起来像是一个八进制的转义序列,但其中的数字8超出了八进制的范围,所以D.是不合法的常量。,除了上述形式字符常量外,C还允许用一种特殊形式的字符常量,就是以反斜杠“”开头的字符序列,由于该形式将反斜杠后面的字符序列转换成另外的含义,故称之为转义符。下,表2-1,所示的是常用转义字符。,上一页,下一页,返回,2.3常量与变量,注意:“A”和 A 表示的含义是不同的,“A”为字符串常量,而 A 是字符常量。字符 234 的值为(234)8156,不是234。字符 x34 的值为(34)1652,不是34。,在C语言中,字符是按其所对应的ASCII码值来存储的,一个字符占一个字节。例如字符 A:,字符常量是由单引号引起的一个字符,同时该字符常量也可以用整数来表示(ASCII码值)。故其输出形式有两种,既可以输出字符本身,也可输出其ASCII码值。,上一页,下一页,返回,2.3常量与变量,例2-9写出下面程序的输出结果。,#include,main(),char ch=A;/*定义ch为字符变量,同时赋初值A*/,printf(c,%d,%o,ch,ch,ch);/*分别以字符,十进制,八进制形式输出ch*/,运行结果为:,A,65,101,上一页,下一页,返回,2.3常量与变量,4.字符串常量,字符串常量就是用一对双引号括起来的若干字符序列。如:“china”、“c programn”、“ok!”和“a”等都是字符串常量。,一个字符串中所含字符的个数称为该字符串的长度,例如:TURBO和TABC的长度分别是5和6,但它们在微机中所占字节数分别是6和7。在C语言中字符串在微机中所占的字节数不等于字符串的长度是因为C规定:在每一个字符串的结尾系统都将自动加上一个0字符(字符串结束标志),以此判断字符串是否结束。0是一个ASCII码为0的“空操作符”,是系统自动加上的一个不可显示的字符。因此字符串常量A和字符常量A有区别,尽管都只显示一个字符,但实际上,前者包含两个字符 A 和 0 ,而后者只有一个字符 A。它们在微机中所占字节数也不同,前者占两个字节,后者只占一个字节。,上一页,下一页,返回,2.3常量与变量,5.符号型常量,常量既可以用我们上述介绍过的几种书写形式,也可以用一个特定的符号来表示一个常量。我们称之为符号常量。其定义的一般形式如下:,#define 符号常量 常量,例2-10写出下面程序的运行结果。,#definePI3.1415926,main(),float c,s,r;,r=1.0;,c=2*PI*r;,s=PI*r*r;,printf(c=%5.3f,s=%5.3f,c,s);,上一页,下一页,返回,2.3常量与变量,上述程序的执行结果为:,c=6.283,s=3.142,其中用#define命令行定义符号PI代表3.1415926,此后凡是在本程序中出现的PI符号均代表
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

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

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

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

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服