第1章源程序第1章绪论.docx

上传人:夺命阿水 文档编号:488463 上传时间:2023-07-19 格式:DOCX 页数:41 大小:360.25KB
返回 下载 相关 举报
第1章源程序第1章绪论.docx_第1页
第1页 / 共41页
第1章源程序第1章绪论.docx_第2页
第2页 / 共41页
第1章源程序第1章绪论.docx_第3页
第3页 / 共41页
第1章源程序第1章绪论.docx_第4页
第4页 / 共41页
第1章源程序第1章绪论.docx_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《第1章源程序第1章绪论.docx》由会员分享,可在线阅读,更多相关《第1章源程序第1章绪论.docx(41页珍藏版)》请在课桌文档上搜索。

1、第1章绪论1.1最简单的程序第1章源程序计算机领域中的编程语言多种多样,其中C/C+语言是流行时间长、应用面广的程序设计语言。无论学习哪种编程语言,最直接方式是使用该语言进行编程实践。只有通过实际的编程训练,才能验证和深入理解相应的编程知识。因此我们首先看一个最简单的程序,该程序只是在显示屏上以字符方式输出一行文字。【例1-1J在屏幕上输出一行uHelloworldlw为了实现显示一行文字的目标,可以使用不同的编程语言来编程,如我们即将学习的C语言和C+语言。C语言实现的具体代码如下:*CprogramFile:1-1.c*/注释!include包含相应的头文件intmain()定义main函

2、数(printf(Helloworld!,);main函数的语句包含在对花括号之中return0;)返回值C+实现的具体代码如下:/C+program/File:注释finclude包含相应的头文件intmain()定义main函数(std:coutMHelloworld!,;语句包含在一对花括号之中return0;返回值这个程序虽然简单,但对于初学编程的人来说,要实现该程序输出字符串的目标也需要对诸如编辑源程序文件、预处理方式、编译、链接与运行等相关的操作细节有一个较为清晰的理解,掌握了这些操作细节,有利于后续的进一步学习。为了操作方便性,在实际开发中,我们常常选择集成了代码编写、分析、编译

3、与调试、图形界面设计等功能的集成开发环境(integrateddevelopmentenvironment,IDE),如QT、Code:BlocksVisualStudio2019等。该示例程序功能相当简单,虽如此,但也完整地体现了一个C/C+程序的构成部分,具体如下。1 .程序文件名使用任何一个具备文本编辑功能的软件即可输入示例代码,完成后命名一个文件名称进行存储。上面两个文件名称的主要差异表现在扩展名方面,一个是“.c”,另一个是“.cpp”。前者说明在后面编译阶段应使用C语言编译器,C语言编译器只能使用符合C语言规范的特征;而后者说明在编译阶段应使用C+编译器,C+编译器可以使用C语言和

4、C+语言两者的特征。后面的示例代码中未做特殊说明,一般均使用C+语言。2 .注释注释部分是不会执行的,可以自由地在程序中使用注释,以便程序更容易理解,编译器也不会对注释的语句进行编译。C+中有两种注释方法。iiHff是单行注释,单行注释只能注释符号后面的内容,到该行末尾位置结束。“/*/”是多行注释,多行注释将符号“/*”放在将要注释内容的前面,符号“*/”放在将要注释内容的末尾,符号“/*”和“*/”中间的内容作为注释;C语言中只能用此种注释方式。3 .预处理命令C+的程序中带“#”号的命令被称为宏或预处理命令,是指编译器在编译前的预处理阶段进行相关的处理,关于什么是宏定义或预处理命令,会在

5、后面章节中讲到。常见形式为#include,表示包含和引用相应文件。4 .main()函数函数中包含若干语句,以指定要执行的相关操作,这些语句处于一对花括号中,通常称为函数体;而变量常常用来存储处理过程中的数据。在I-LC程序中,我们定义的函数为main(),通常情况下,我们定义函数时,函数的命名没有什么限制,但main()函数是一个特殊的函数,因为在面向过程的编程方式中,每个程序都是从main()函数开始执行,这就意味着,在程序的某个位置必须定义一个main。函数。当然,main。函数通常会调用其他函数来协作完成相关的操作,这些被调用的函数可以来自系统提供的函数库,也可以是程序自行设计和定义

6、的函数,在I-LC示例代码中,我们调用了库函数Printf()来实现字符串的输出;而的代码中,使用流操作符实现字符串输出。main()函数按照定义好的流程执行完成后返回系统,返回时通常也会返回一个特殊的值,用来判断函数执行情况以及返回函数执行结果,示例中的返回值是0,通常代表正常返回。5 .语句从示例代码来看,main()函数是由多条语句定义的。在C/C+中,语句是以分号进行分隔的。一行可以写多个语句,一个语句也可以在多行写出。6 .返回值在C/C+语言中,一个函数完成指定功能后,一般都会返回一个值,以代表特定的状态或需要进行的其他操作。【例1-2从键盘上输入三个整数,求这三个数中的偶数之和。

7、#include包含相应的头文件usingnamespacestd;intis_even(intx)f/自定义判断X是否为偶数的函数tif(x%2=0)return1;/若是偶数返回1elsereturn0;若是奇数返回0intmain()f/定义主函数tinta,b,c,s;s=0;cinabc;从键盘上输入a,b,C的值if(is_even(a)=1)调用is_even()函数判断a是否为偶数,若是做累加s=s+a;if(is_even(b)=1)调用is_even()函数判断b是否为偶数,若是做累加s=s+b;if(is_even(c)=1)调用is_even()函数判断C是否为偶数,若

8、是做累加s=s+c;couts;输出累加后的值return0;主函数返回说明:(1)CCh程序由一个或多个函数组成,如本例中有两个函数:一是is_even(intx),判断X是否为偶数;二是main()函数,是整个程序的入口函数。可以根据需要自行定义一个或多个函数,但任何一个C/C+程序只能有且只有一个main函数。(2)函数is_even(intx)有一个整数返回值,函数功能是判断X是否为一个偶数,若X是偶数,则返回值为1;若X是奇数,则返回值为0。(3)在main函数中调用is_even函数,判断a,b,c三个数是否为偶数,若是进行累加。1.2程序与计算机语言1.2.1 程序什么是程序?简

9、单来说,程序就是计算机为解决某些特定问题所需的指令序列(或符号化语句序列),通常完成某个特定的功能,它是计算机系统的必要组成部分。按照冯诺依曼结构,程序是通过外存来加载到计算机之内的。同时,所有程序都基于机器语言运行,机器语言是一个以二进制数字(0和1)构成的语言。i般地,程序是由高级语言编写,然后再被编译器/解释器转译为机器语言,从而得以执行。有时,也可用汇编语言进行编程,汇编语言在机器语言上进行了改进,以单词代替了。和1的序列,例如以ADD代表相加,MoV代表传递数据等。用高级语言的语句组成的序列通常称为源程序。根据冯诺依曼程序执行原理,源程序不能直接被机器所理解,必须通过编译系统或解释系

10、统进行翻译,转换为计算机能识别的。和1的指令序列机器语言,从而让计算机按预定的步骤执行,这种指令序列称为目标程序。根据将源程序翻译成目标程序的不同方式,程序的执行方式可以划分为编译方式和解释方式。编译方式是将源代码一次性转换成目标代码的过程,如图Ll所示,解释方式是将源代码逐条转换成目标代码,同时逐条运行的过程,如图1.2所示。图1.1编译方式图1.2解释方式由于本书主要讲解使用C/C+语言,而C和C+语言都是编译型语言,因此从代码编写阶段开始,到最终代码运行为止,大体上可分为四个阶段,如图1.3所示。可见,编写一个完整的C/C+程序是一个较为复杂的过程,该过程涉及多个阶段的工作,而每一个阶段

11、又需要完成不同的任务,因此为方便起见,推荐使用IDE,以摒弃繁杂的操作细节,快速进入编程领域。图1.3C/C+编程实践步骤1.2.2 程序设计程序设计就是根据给定问题所提出的任务进行设计,采用计算机语言编写源代码程序及进行调试的过程。程序设计的关键是算法,算法是为解决某个特定问题而采取的确定且有限的步骤,是程序设计的灵魂。算法有5个特性:有穷性、确定性(不能有二义性)、可行性、有O个或多个输入、有一个或多个输出。程序设计包括4个基本步骤:确定数据结构和算法、编码、在计算机上调试程序、整理写出文档资料。1.2.3 程序设计语言程序设计的任务是用计算机懂得的语言编写程序,然后交由计算机去执行。因此

12、,程序设计语言是程序设计必不可少的手段和工具。一般认为,程序设计语言可以分为四大类。1 .面向机器的语言最早出现的程序设计语言是机器语言(往往称为第一代语言),它规定了若干个由。和1组成的指令序列,可以用它们来对计算机发布命令,即指令。这些指令的优点是可以被计算机直接理解和执行,因而速度极快。但是,这种指令系统的缺点也非常明显,它们非常难记忆,也难理解,更难以用来编写复杂的程序。为便于记忆,人们引进一些符号来表示这些指令。如将加法和减法指令分别表示为ADD和SUB。这些符号比单纯的O和1指令序列容易记忆,弥补了机器语言难记、难理解、难编写的缺陷,提高了程序设计的效率和质量。人们把这种改进了的、

13、用符号来描述的指令系统称为汇编语言(常称为第二代语言)。机器语言和汇编语言统称为面向机器的语言,它们的共同特点是针对某种特定的计算机系统而设计的,其指令序列依据不同的中央处理器(CPU)而不同。在同一台计算机上编制的程序在另一台计算机上可能无法运行。它们无法独立于机器而存在,不能保证程序的通用性和可移植性。人们把它们统称为低级语言。2 .面向过程的语言面向过程的语言独立于机器。程序设计者用这样的语言来编写程序,不需要了解计算机的内部结构,而是独立于各机器,可以在不同类型的计算机上运行。人们把它们统称为高级语言。例如BASIC、FORTRAN.Pascal.C语言等。3 .面向对象的语言对于使用

14、过程化的语言编程解题,编写者的经历大多集中在“怎么做”这一-解题过程上,而面向对象的语言编程,人们无须考虑这么多,只需要告诉计算机“做什么”,计算机便会完成具体的解题过程。面向对象语言般是从面向过程的计算机语言上发展起来的。例如,C+是由C语言发展而来的,而DelPhi得益于原来的PaSCal语言。现在常用的面向对象语言有C+、Java、C#、Python等。面向过程语言和面向对象语言都属于第三代语言。编写的程序执行方式为解释型和编译型。如QBASlC程序的执行属于解释型,C/C+、JaVa等的执行属于编译型,现在大多数的编程语言都是编译型的。4 .第四代语言(4GL)这种语言也称为非过程式语

15、言(4GL)。从语言的发展来看,人们不断寻求越来越抽象的形式来表示程序,尽量地把程序员从繁杂的过程性细节中解放出来。第四代语言上升到更高的一个抽象层次,己经不再涉及太多的算法细节,它可以用类自然的语言形式提问。使用最广的第四代语言有数据库查询语言、程序生成器等。所以,一般称第四代语言是面向目标的语言。总之,传统的过程化程序设计语言仍然是程序设计的基础。1.1.1 及其表示1.1.2 算法概念一个程序使用变量或常量表达了相关的处理数据后,一般还需要使用相应的一系列语句对其进行操作和处理,这些语句必须符合合理的次序,程序才能得到正确的、符合预期的结果。人们通常将算法定义为一个有穷的指令集,这些指令

16、为解决某一特定任务规定了一个运算次序,换句话说,算法就是对特定问题求解步骤的一种描述;此外,算法一般具备以下特性。(1)有输入:有。个或多个输入,它们是算法开始前给予算法的量。(2)有输出:有I个或多个输出,输出的量常常是算法处理的结果。(3)确定性:算法的每一步都应确切地、无歧义地定义,即应严格地、清晰地规定需要执行的动作。(4)有穷性:无论什么情况,一个算法都应在执行有穷步之后结束。(5)可行性:算法描述的操作可以通过已经实现的基本运算执行有限次来实现。1.1.3 流程图算法的描述方法很多,通常可使用“自然语言”“伪代码”“传统流程图”或NS图来描述。为了简洁、清晰地描述算法步骤,最常使用

17、传统流程图或NS图。因为一图胜千言,使用特定的图形符号加上相应的说明文字来表示算法思路是一种极好的方法。其优点有:形象直观,各种操作一目了然,不会产生“歧义性”,便于理解,算法出错时容易发现,并可以直接转化为程序。传统流程图的常用符号如图1.4所示。结构化的程序由一些简单、有层次的程序流程架构所组成,其控制结构有三种。1)顺序(SeqUenCe)程序中的各操作是按照它们出现的先后顺序执行的,如图1.5(a)所示。2)选择(SeIeCtiOn)程序的处理步骤出现了分支,需根据某特定条件选择其中的一个分支来执行,如图1.5(b)所示。3)循环(repetition)程序反复执行某个或某些操作,直到

18、某条件为假(或为真)时才可终止循环,如图1.5(c)所示。流程图的常用符号 选择结构图1.4(a)顺序结构顺序结构(b)选择结构直到型循环当型循环(C)循环结构图1.5结构化程序的三种控制结构1.4补充阅读材料1.4.1 计算机的产生与发展计算机(COmPUter)是一种能够进行高速运算,具有存储能力,能按照事先编好的程序控制其操作处理过程的自动电子设备。随着科学技术的迅速发展,计算机的应用越来越广泛,已经成为人们学习、工作和生活的得力助手。其发展主要经历了以下几个阶段。1 .计算机的诞生在人类文明发展历史的长河中,计算工具经历了从简单到复杂、从低级到高级的发展过程。直到20世纪中期,新兴的电

19、子学和深入发展的数学才将第一台电子数字计算机推上了历史舞台。从此人类社会进入了一个全新的历史时期。世界上第一台通用电子计算机ENIAC(electronicnumericalintegratorandcomputer)1946年诞生于美国宾夕法尼亚大学,它的全称为“电子数值积分和计算机”。它是为计算射击弹道而设计的,主要元件是电子管,每秒能完成5000次加法或300多次乘法运算,比当时最快的计算工具快300倍。该机器使用了1500个继电器,18800个电子管,占地170平方米,重达30多吨,耗电150千瓦,耗资40万美元,真可谓“庞然大物”。但是它使科学家们从奴隶般的计算劳动中解放出来,人们公

20、认,它的问世标志着计算机时代的到来,具有划时代的伟大意义。2 .计算机的发展在计算机出现以来的几十年时间里,其发展速度令人咋舌,几乎渗透到了人类社会的各个领域和国民经济的各个行业。从计算机的发展过程来看,大致可分为以下4个阶段。1)第一代计算机(194620世纪50年代末)这一阶段的计算机采用电子管作为计算机的功能单元,通常称为电子管计算机时代。其主要特征是体积大、耗电量大、寿命短、可靠性差、成本高;采用电子射线管、磁鼓存储信息,内存容量小;输入输出设备落后;主要使用机器语言和汇编语言编制程序,主要用于数值计算。2)第二代计算机(1958-1964年)这一阶段的计算机采用晶体管制作其基本逻辑部

21、件,通常称为晶体管计算机时代。其主要特征是体积小、重量轻、成本下降、可靠性和运算速度明显提高;普遍采用磁芯作为主存储器,采用磁盘和磁鼓作为外存储器:在软件方面,开始有了系统软件,提出了操作系统概念,出现了高级程序设计语言(如FoRTRAN等)。计算机以既经济又有效的姿态进入了商用时期。国外的典型机种有IBM7090等,我国有441B等计算机。3)第三代计算机(19641972年)这一阶段的标志是集成电路的开发与元器件的微小型化,通常称为集成电路计算机时代。其主要特征是计算机体积更小、速度更快、价格更加便宜;采用半导体存储器作为主存储器,存储容量和存取速度有了大幅度提高,增加了系统的处理能力;软

22、件系统也有了很大发展,出现了分时操作系统,多用户可共享计算机资源;在程序设计方法上采用了结构化程序设计,为研制更加复杂的软件提供了技术上的保证。这一时期可称为计算机的扩展时期。典型机种在国外有IBM-360,我国有655、709等型计算机。4)第四代计算机(1972年至今)微电子技术的迅速发展是这一时代的技术基础,通常采用大规模、超大规模集成电路。计算机体积更小、重量轻、造价更低,使计算机应用进入了一个全新的时代。典型机种有国外的IBM-370,我国的“银河机”、152机等,这也是微型机的诞生时代。微型计算机,简称微机或者微电脑,其产生和发展完全得益于微电子学及大规模、超大规模集成电路技术的飞

23、速发展。微电子技术可将传统计算机心脏部件中央处理器(CPU)集成在一块芯片上,这样的芯片称为微处理器,是微型计算机的核心部件。自1971年Intel公司制成第一个微处理器以来,就经历了4位(4004,始于1971年)、8位(8080,始于1973年)、16位(8086,始于1978年)和32位(iAPX432,始于1981年)等4代的发展过程(这里的多少位是指计算机的字长,字长是计算机运算部件一次能处理的二进制数据的位数。字长越长,计算机的处理能力就越强)。而后,Intel公司继续推出了新的32位芯片,如80386(1985年)、80486(1989年)、PentiUm(奔腾,1993年),P

24、entiUmn(1997年)、PentiumI11(1999年)等。自20世纪80年代开始,各先进国家都相继研究新一代的计算机,人们普遍认为新一代计算机应该是智能型的,它能模拟人的智能行为,理解人类自然语言,并继续向着微型化、网络化发展。综合起来大概有人工智能计算机、巨型计算机、多处理机、激光计算机、超导计算机、生物晶体计算机(DNA计算机)、量子计算机等研究方向。大体上说,新一代计算机是采用大规模集成电路、非冯诺依曼体系结构、人工神经网络的智能计算机系统。1.4.2计算机组成与工作原理目前计算机种类繁多,在性能规模、处理能力、价格、复杂程度、服务对象以及设计技术等方面都有很大差别,但各种计算

25、机的基本结构都是一样的。1 .计算机系统的构成如今的计算机其准确的称谓应该是电子数字计算机系统。计算机系统、计算机和中央处理器(CPU)是三个不同的概念,是计算机从全局到局部的不同层次。通常所说的计算机实际上是指计算机系统,由硬件系统和软件系统两大部分组成。从硬件方面看,它不仅包含了真正意义上的计算机主机,还包括多种与主机相连的必不可少的外部设备,如键盘、鼠标、显示器等,在没有安装软件之前,计算机称作为“裸机”,它是计算机系统的物质基础。软件是相对于硬件而言的,从狭义的角度上讲,软件是指计算机运行所需要的各种数据和指令的集合;从广义角度上讲,还包括手册、说明书和相关的资料。计算机的硬件系统和软

26、件系统相互依赖,不可分割,如图1.6所示。BFTm机MaAti Ah中央处理aWBMUIlWR91枚non内作wnmm假缘.比OL等Mnr.K奥应用就:应用脚中.语数心、e计算机硬件系统通常由运算器、控制器、存储器、输入设备与输出设备等五大基本部件组成。(1)运算器:是计算机中进行算术运算和逻辑运算的部件,通常由算术逻辑运算部件(ALU)累加器及通用寄存器组成。(2)控制器:用来控制和协调计算机各部件自动、连续地执行各条指令,通常由指令部件、时序部件及操作控制部件组成。运算器和控制器是计算机的核心部件,这两个部分合称为中央处理器(CPU)。(3)存储器:主要功能是用来保存各类程序和数据信息。存

27、储器分为主存储器(内存储器)和辅助存储器。主存储器可分为随机存储器(randomaccessmemory,RAM)和只读存储器(readonlymemory,ROM)o辅助存储器大多采用磁性和光学材料制成,如磁盘、磁带和光盘等。CPU和主存储器组成了计算机的主要部分,简称主机。(4)输入设备:用于从外界将数据、命令输入到计算机的内存,供计算机处理,常用的输入设备有键盘、鼠标、卡片阅读机、光笔等。(5)输出设备:用来将计算机处理后的结果信息转换成外界能够识别和使用的数字、文字、图形、声音、电压等信息形式。常用的输出设备有显示器、打印机、绘图仪、音响设备等。需要说明的是,有些设备既可以作为输入设备

28、,又可以作为输出设备,如硬盘、光盘驱动器、磁带机等。2 .计算机的工作原理计算机的工作过程就是程序的执行过程,程序中的每一个操作步骤都是指示计算机做什么和如何做的命令,这些用以控制计算机、告诉计算机进行怎样操作的命令称为计算机指令。只要这些指令能被计算机理解,则将程序装入计算机并启动该程序后,计算机便能自动按照编写的程序一步一步地取出指令,根据指令的要求控制机器的各个部分运行。这就是计算机的基本工作原理,这一原理最初由美籍匈牙利科学家冯诺依曼(VonNeUmann)提出,故也称为冯诺依曼原理。根据这一工作原理构成的计算机,就称为冯诺依曼结构计算机,其整体工作原理如图1.7所示。图1.7计算机的

29、整体工作原理1)冯诺依曼结构计算机的必备部件可以看出,冯诺依曼结构计算机必须具备如下部件。(1)能把要执行的程序和所需要的数据送至计算机中的存储器并存储起来。(2)需要具有输入程序和数据功能的输入设备。(3)需要能够完成程序中指定的各种算术、逻辑运算和数据传送等数据加工处理的运算器。(4)需要能根据运算的结果和程序的需求控制程序的走向并能根据指令的规定控制计算机各部分协调操作的控制器。(5)需要能按照人们的需求将处理结果输出给操作人员使用的输出设备。2)冯诺依曼结构计算机的工作原理冯诺依曼结构计算机的工作原理重要之处是“程序存储”,即若想让计算机工作就要先把编制好的程序输入到计算机的存储器中存

30、储起来,然后依次取出指令执行。每条指令的执行过程又可以划分为以下4个基本操作。(1)取出指令:从存储器某个地址中取出要执行的指令。(2)分析指令:把取出的指令送到指令译码器中,译出指令对应的操作。(3)执行指令:向各个部件发出控制操作,完成指令要求。(4)为下一条指令做好准备。习题第1章习题具体内容请扫描二维码获取。第1章习题参考答案第2章程序设计基础熊产回2.1 顺序结构程序设计几乎任何编程语言都支持以下三种程序设计结构。第2章源程序(1)顺序结构。(2)选择结构。(3)循环结构。其中顺序结构是程序中各个操作(常常对应的是一系列语句)按照在源代码中的排列顺序,从上到下,依次执行;选择结构是根

31、据特定的条件进行逻辑判断后,再选择符合条件的语句(块)执行,多数情况可以给定多个条件,从而实现分支处理;而循环结构是重复执行某个或某些操作语句,直到某个时刻停止循环。三种结构中顺序结构较为简单,相对而言容易理解,我们首先学习顺序结构。2.1.1 求梯形的面积【例21】已知梯形的上底、下底和高,求该梯形的面积。1)分析在数学中,己知梯形的上底、下底和高的值,则计算面积的公式为:面积=(上底+下底)X高/2在编程中,有三个问题需要解决。(1)如何让计算机知道。解决方法:输入已知信息。(2)如何计算梯形的面积。解决方法:使用数学公式。(3)如何将结果展现出来。解决方法:输出结果。2)求解步骤由此得到

32、求解步骤。输入上底、下底和高=a,b,ho 计算面积:area=(a+b)*h2o 在屏幕上输出计算得到的面积。从求解步骤来看,第、步是从上向下,依次进行处理。显然,在编程时需要定义4个变量,用来存储三个输入值和计算结果。3)实现代码具体代码如下:#includeusingnamespacestd;intmain(void)floata,b,h,area;对应步骤,完成数据的输入CoUt请输入梯形的上底、下底和高:”,cinabh;area=(a+b)*h2;对应步骤,计算梯形面积对应步骤,输出计算结果CoUt”梯形的面积area=,area;coutendl;return0;)在这个示例中,

33、梯形面积的计算是使用多个变量的值,并结合相关的算术运算,使用算术运算符以及与数学公式相似的表达形式来得到最终的计算结果。2.1.2常量与变量一个cc+程序无论代码多少,基本上都是由具备一定功能的函数和代表特定意义的数据两部分组成的。而计算机能够处理整数、实数、字符、图像、声音等各种类型的数据,因此在程序中常使用变量和常量来存储表示数据。在程序运行过程中,变量常常用于存储处理过程中的数据值或计算结果,其存储的数据值可能发生改变,而常量值一旦初始化,就在整个程序运行期间一直保持不变。1 .常量在程序中直接给出的不可改变的量,常称为字面常量(IiteraIConStanl)。在第1章的两个示例代码中

34、,main。函数只是使用不同的语句将字符串常量进行了输出,在这里,字符串常量使用一对双引号进行了界定,输出时直接原样输出。I)整型常量整型常量即平时使用的整数,不过实际使用过程中以不同的表达形式给出,如:256/十进制整数-8932L负十进制长整数,在整数值后面加1或L表示长整数-0126负八进制整数。八进制数以0开头,由。7组成OXFFDD/十六进制整数,以OX或OX开头,由。9、AF或af组成2)实型常量实型常量由整数和小数两部分构成,在实际使用过程中常常采用定点形式或指数形式,如:3.定点形式-5.8E10指数形式表示,等于-5.8X10】。3)逻辑常量逻辑常量仅有IrUe和false两

35、个值,计算机内部常用整数1和O表示。4)字符常量字符常量包括普通字符常量和转义字符常量,通过在字符两边使用单引号表示字符常量,如A9、印等都是一个普通字符常量。5)字符串常量字符串常量是指用双引号引起、由若干个字符组成的序列,可以包含英文字符、转义字符、中文字符等。在使用字符串常量时,应注意以下两点。(1)字符串是以空字符(ASCn码值为0)作为结束符。(2)字符串常量与字符常量是有区别的。”A”表示字符串常量,占两个字节,而A为字符常量,占1个字节。6)符号常量C语言常使用宏替换方式来定义常量标识符,习惯上称为符号常量,通常使用大写字符表示宏名,以区别于变量名,定义形式为:#define标识

36、符字符串如:#definePI3.之后即可直接使用Pl进行表达,在预处理阶段,编译器会使用3.替换PI,这有利于后期维护工作。7)const常量C+中常使用ConSt关键字来定义常量,常常使用初始化语句方式。由于定义形式中有数据类型,其语义更为清晰。定义形式如下:const类型说明符常量标识符=表达式;如:constintDEFAULTSIZE=100;2.变量在实际编程中,更常见的情况是数据随着指令的执行而发生改变,因此变量的正确使用就显得非常重要,而且理解C/C+语言的词法及语法规则,尤其是字符集、关键字、运算符、标识符和分隔符等内容,也是编写程序的重要基础。变量的正确使用常常由三个方面决

37、定:一是变量的正确命名;二是声明其数据类型;三是存储的数据值。在C/C+中,使用标识符来标识不同的变量;而数据类型可使用系统提供的基本数据类型或程序员自行定义的构造类型。最后,变量值的获取方式主要有初始化、赋值、输入或传输等方式。1)字符集字符集(CharaCterSet)是构造程序设计语言基本词法单位的字符的集合。C+语言使用的字符主要为键盘上的字符,包括如下几种字符。(1)26个大写英文字母:AbcdefghijklmnopqrstuvwxyZo(2) 26个小写英文字母:abcdefghijklmnopqrstuvwxyzo(3) 10个数字:123456789Oo(4)其他符号空格。2

38、)标识符标识符(identifier)是数字、下划线、小写及大写拉丁字母和以u及U转义记号指定的Unicode字符(C99起)的任意长度字符序列,用于对变量、函数及自定义数据类型等进行命名,以达到区分的目的。在遵循C/C+语言词法规则的前提下,可由程序员自由命名和定义,但应避免出现歧义性。实际开发经验告诉我们,科学合理地使用标识符,不仅可有效提高程序的可读性,也是一种良好的编程风格。C+语言中的标识符应遵行下面的语法规则。(1)标识符的第一个字符必须是字母或下划线,其余为字母、数字、下划线。例如,birthDay、StudentID等都是合法的标识符。(2)标识符不能与关键字(也称保留字,具体

39、内容详见表2.1)同名,因为保留字是系统预先定义的具有特别用途的标识符,不能重定义它们。(3)标识符中字母的大小写是敏感的(即区分大小写),因此myFile与MyFiIe是两个不同的标识符。(4)标识符不宜过长,也不宜过短,应保持适当的长度,因为一些早期编译器在标识符的有效字符数上面有一定的限制。表2.1C+语言常见的关键字alignascharelsenamespacereturntryalignofchar16tenumnewshorttypedefandchar32texplicitnoexceptsignedtypeidandeqclassexportnotsizeoftypename

40、asmcomplexternnoteqstaticunionatomiccancelconstfalsenullptrstaticassertunsignedatomiccommitconstexprfloatoperatorstaticcastusingatomicnoexceptconstcastfororstructvirtualautocontinuefriendoreqswitchvoidbitanddecltypcgotoprivatesynchronizedvolatilebitordefaultifprotectedtemplatewchartbldeleteinlinepub

41、licthiswhilebreakdointreflexprthreadlocalxorcasedoublelongregisterthrowxoreqcatchdynamiccastmutablereinterpretcasttrue说明:表2.1只包含常见的关键字,并未包含新标准CH20中的新增内容。3)数据类型C+语言提供了基本数据类型和构造数据类型,方便编程使用。(1)基本数据类型。C+语言标准定义了组基本数据类型,分别是字符型、整数型、浮点数型、布尔型(C+语言新增)和空类型,同时系统规定了每种类型数据所占内存空间的最少字节数,即占用位数的最小值。字符型:用关键字Char表示,用于处

42、理现代英语和其他西欧语言中的字符,保存的是该字符的8位ASCn码值,占用一个字节。例如,字母A的ASCIl编码是十六进制数41,字节中保存的值为。整型:用关键字int表示,用于处理整型数。整型分为短整型ShOrt、整型int、长整型(32bit)long和长整型(64bit)kmgIongo实型:用关键字float、double和IOngdOUbIe(C+11新增)表示,用于处理数学中的实数。其中float类型的空间大小为32bit,可表示的浮点数范围是-3.4x103834x1038,能满足一般应用问题的精度要求。而double类型的空间大小是64bit,可表示T.7x103081.7I03

43、08之间的实数,精度小到1.0IO308o逻辑型:也称逻辑值:true和se,分别对应逻辑真和逻辑假,用关键字bool表示。C语言没有逻辑型,常用0值表示逻辑“假”,而用非0值表示逻辑“真”。C同时支持两种方法,推荐使用true和false,含义更清晰。空类型:用关键字Void表示。主要用于声明函数形参和返回类型,以及可指向任何类型的指针。C标准只是规定了各种基本数据类型所分配内存空间的最小值,在不同的编程环境中,分配的空间可以不同。(2)构造数据类型。在实际开发中,基本数据类型可以用来描述一些比较简单的数据。但对于较复杂的数据,难以满足实际需要,此时常常使用自定义的构造数据类型进行描述。例如

44、,在学生信息管理系统的设计中,通常需要管理多个学生的信息,而每个学生又有学号、姓名、邮政编码、家庭地址、联系电话等信息,使用基本数据类型难以描述。C和C+语言支持的构造数据类型主要有数组、指针、结构体等,相关内容详见后面的相关章节。我们可以使用如下语法规则进行变量的定义或声明:存储类别数据类型变量名列表;说明:存储类别为可选项。因为C+新标准中将auto类型的含义进行了重新定义,因此C+语言只有3个关键字,即register、staticextern,用于说明数据的存储类型。V变量名列表是用逗号分隔的多个变量名。变量在定义时,可以进行初始化。4)变量的值变量名在程序中的一个作用是标识所分配的内

45、存单元,程序使用变量名来访问内存空间,进行读写操作。变量名所标记的内存空间在没有赋初始值之前,其中的值是不确定的,使用这些值是导致程序错误的一个重要原因,编译器会对此发出警告。(1)赋值操作。在声明了变量的数据类型之后,使用赋值操作符“=”可以对变量赋值,赋值是指向所标识的内存存储单元进行数据存储操作,该操作具有方向性,其含义是将右边的数据或处理结果保存到左边标识符所标识和对应的存储空间中,进行赋值操作时要注意赋值运算符两边操作数的数据类型保持一致或类型兼容。举例如下:intnuml;doublenum2;numl=10;num2=11.0;(2)初始化语句。该语句的含义和使用都较为简单,在声

46、明变量的时候就给变量一个初始值。举例如下:intnum=10;(3)输入方式。数据的输入与输出是任何编程语言最常见的基本操作,C/C+语言分别使用库函数和流的操作来实现变量的数据输入和输出,在2.1节的示例代码中进行了字符串字面常量的输出操作,而给变量输入数据的操作与输出操作相似,也是使用特定的库函数或流的操作来实现,从而获取相应的数据。关系运算符和 关系表达式逻辑运算符和 逻辑表达式2.1.3运算符与表达式表达式(expression)是由运算符、操作数(OPerand)以及分隔符按一定规则组成的序列。其中的操作数可以是常量或变量,也可以是表达式。1.运算符运算符(OPeratOr)又称操作

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号