第2章简单C程序设计_第1页
第2章简单C程序设计_第2页
第2章简单C程序设计_第3页
第2章简单C程序设计_第4页
第2章简单C程序设计_第5页
已阅读5页,还剩185页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022-2-2解析C程序设计(第2版)第2章 简单C程序设计1第2章 简单C程序设计C语言程序设计语言程序设计2解析C程序设计(第2版)第2章 简单C程序设计2022-2-2讲授方法讲授方法解析法解析法u“解析法解析法”是从实际是从实际问题问题入手,剖析求解问题的入手,剖析求解问题的关关键点键点(进行知识的发现),然后结合问题讲解需要(进行知识的发现),然后结合问题讲解需要的知识点,最后给出问题的的知识点,最后给出问题的求解求解办法和实现过程,办法和实现过程,并并举一反三举一反三。u各章节以问题入手,分析并讲述需要的知识点,然各章节以问题入手,分析并讲述需要的知识点,然后再实现该问题,并通过

2、后再实现该问题,并通过思考题思考题延伸知识点或引入延伸知识点或引入新的问题,环环相扣,层层推进,充分体现解析法新的问题,环环相扣,层层推进,充分体现解析法的精髓,达到通俗易懂、由浅入深的效果,举一反的精髓,达到通俗易懂、由浅入深的效果,举一反三,培养迁移知识的能力。三,培养迁移知识的能力。 3解析C程序设计(第2版)第2章 简单C程序设计2022-2-2本章内容本章内容圆周长和面积问题圆周长和面积问题 1大小写字母转换问题大小写字母转换问题2l关键字与表达式关键字与表达式 l基本数据类型基本数据类型 l常量与变量常量与变量 l数据类型转换数据类型转换 l运算符和表达式运算符和表达式lC语句语句

3、 三角形面积问题三角形面积问题3l格式化输入输出格式化输入输出 l预处理预处理C程序结构及书写规则程序结构及书写规则 44解析C程序设计(第2版)第2章 简单C程序设计2022-2-2首先分析第一个首先分析第一个C程序程序#include /*预处理命令预处理命令*/main() /*主函数主函数*/ printf(hello,world!n); /*库函数,输出字符序列库函数,输出字符序列*/问题:问题:(1)这个程序包括哪些组成部分?)这个程序包括哪些组成部分?(2)这里显示的是字符序列,能不能显示数字数据呢?)这里显示的是字符序列,能不能显示数字数据呢?5解析C程序设计(第2版)第2章

4、简单C程序设计2022-2-2第一个第一个C程序的组成程序的组成v预处理预处理v主函数主函数mainmainv注释注释 vC C程序由函数组成:程序由函数组成: 主函数主函数 库函数库函数 自定义函数自定义函数 #include main() /*主函数主函数*/ printf(hello,world!n);6解析C程序设计(第2版)第2章 简单C程序设计2022-2-2主函数组成主函数组成main() ; 函数头函数头函数体函数体C语句语句7解析C程序设计(第2版)第2章 简单C程序设计2022-2-2程序说明程序说明l #include 告诉编译器在本程序中包含标准输告诉编译器在本程序中包

5、含标准输入入/输出库的信息。输出库的信息。printf函数在函数在stdio.h中声明。中声明。 l main表示表示C语言的一个特殊函数,称之为主函数。每个语言的一个特殊函数,称之为主函数。每个C程序都必须有一个且只能有一个主函数,整个程序从主函数程序都必须有一个且只能有一个主函数,整个程序从主函数开始执行,最后结束于主函数。开始执行,最后结束于主函数。main()表示主函数的函数表示主函数的函数头。头。 l “”中的内容是函数体。主函数中的所有操作(或语句)中的内容是函数体。主函数中的所有操作(或语句)都在这一对都在这一对“”之间。本程序的主函数中只有一条函数调之间。本程序的主函数中只有一

6、条函数调用语句。用语句。l “/* */”表示注释,不执行。表示注释,不执行。 8解析C程序设计(第2版)第2章 简单C程序设计2022-2-2问题?问题?v第一个程序显示的是第一个程序显示的是,能不能显示,能不能显示数字数字数据数据呢?呢?vC程序还可以包括哪些内容呢?程序还可以包括哪些内容呢?v下面仿照第一个下面仿照第一个C程序来编写其他程序。程序来编写其他程序。9解析C程序设计(第2版)第2章 简单C程序设计2022-2-2课堂练习课堂练习v仿照仿照C语言第一个程序,编写语言第一个程序,编写C程序在屏幕上直程序在屏幕上直接输出圆的周长和面积。接输出圆的周长和面积。v编写程序输出如下形状的

7、图形:编写程序输出如下形状的图形:* * *10解析C程序设计(第2版)第2章 简单C程序设计2022-2-2问题的提出及分析问题的提出及分析v例例2-12-1仿照仿照C语言第一个程序,编写语言第一个程序,编写C程序在屏幕程序在屏幕上直接输出圆的周长和面积。上直接输出圆的周长和面积。 分析:分析:v要计算圆面积和周长,务必知道圆半径,怎样才要计算圆面积和周长,务必知道圆半径,怎样才能获得呢?能获得呢?v另外,要输出面积和周长(数值数据),该怎么另外,要输出面积和周长(数值数据),该怎么办呢?办呢?11解析C程序设计(第2版)第2章 简单C程序设计2022-2-2问题实现方法问题实现方法1-直接

8、输出圆面积和周长直接输出圆面积和周长#include /* LI2_1.C */#include int main( )printf(circumference = %fn, 2 * 3.14159 * 5.3); /* 输出周长输出周长 */printf(area = %fn, 3.14159 * 5.3 * 5.3); /* 输出面积输出面积 */return 0;12解析C程序设计(第2版)第2章 简单C程序设计2022-2-2C程序的基本组成程序的基本组成v主函数主函数mainmainv标识符、关键字、注释标识符、关键字、注释v基本数据类型基本数据类型v常量与变量常量与变量v基本表达式

9、基本表达式vC C语句语句v格式化输入输出格式化输入输出v预处理命令预处理命令下面围绕问题,分别介绍上述语法知识。下面围绕问题,分别介绍上述语法知识。13解析C程序设计(第2版)第2章 简单C程序设计2022-2-2问题?问题?v前面反复提到标识符、关键字,什么是关键字、前面反复提到标识符、关键字,什么是关键字、标识符呢?标识符呢?14解析C程序设计(第2版)第2章 简单C程序设计2022-2-2涉及到的语法知识涉及到的语法知识-标识符标识符与与关键字关键字v 标识符标识符 标识符是变量,函数,标号等的名字或标记标识符是变量,函数,标号等的名字或标记 两类:两类: 系统定义的标识符,例如:系统

10、定义的标识符,例如:printf、scanf、main等等 用户自己定义的,自己定义标识符时要考虑如下问题:用户自己定义的,自己定义标识符时要考虑如下问题: 只能用字母、只能用字母、 数字和下划线,并且第一个字母只能是字数字和下划线,并且第一个字母只能是字母或下划线;母或下划线; 不能与不能与关键字关键字(系统保留的特殊词汇系统保留的特殊词汇)相同相同; 区分大小写,即区分大小写,即R和和r是两个不同变量。是两个不同变量。 为便于阅读和理解,对象的取名尽可能直观为便于阅读和理解,对象的取名尽可能直观,最好不要用最好不要用系统定义的标识符。系统定义的标识符。v 关键字关键字 我们已经学的有:我们

11、已经学的有:short long int float double char void 15解析C程序设计(第2版)第2章 简单C程序设计2022-2-2关键字与标识符关键字与标识符v 关键字(关键字(Keyword) 又称为保留字,又称为保留字,C语言中预先规定的具有固定含义的一语言中预先规定的具有固定含义的一些单词些单词 如:如:int,float等等 v 标识符(标识符(Identifier) 系统预定义标识符,如:系统预定义标识符,如:main,printf,include,stdio 等等 用户自定义标识符,如:用户自定义标识符,如:r, Add, x, y 等等16解析C程序设计(

12、第2版)第2章 简单C程序设计2022-2-2关键字关键字C C语言中的常用的关键字(附录语言中的常用的关键字(附录B)有以下)有以下32个:个:(1 1)类型名关键字:)类型名关键字:intint、charchar、floatfloat、doubledouble、shortshort、longlong、unsignedunsigned、voidvoid(2 2)存储类别关键字:存储类别关键字:autoauto、 static static、 register register、 extern extern(3 3)控制语句关键字:控制语句关键字:if if 、whilewhile、 do d

13、o 、gotogoto、 break break、 continuecontinue、 for for、 default default、 case case、switch switch 、returnreturn、else else (4 4)自定义类型关键字:自定义类型关键字:structstruct、 union union、 enum enum (5 5)其他关键字:其他关键字:typedeftypedef、 sizeof sizeof 、 signed signed、includeinclude、definedefine另外,另外,Turbo C2.0扩展关键字有:扩展关键字有: a

14、sm,_cs,_ds,_es,_ss,cdecl,far, near,huge,interrupt,pascal17解析C程序设计(第2版)第2章 简单C程序设计2022-2-2标识符标识符v标识符分为:标识符分为: 系统预定义标识符(如系统预定义标识符(如 main、printf 等)等) 用户自定义标识符(如用户自定义标识符(如Add、r、x, y, sum等)等)v在程序中使用的常量、变量、语句标号以及函数的名在程序中使用的常量、变量、语句标号以及函数的名称等统称为标识符(称等统称为标识符(Identifier)v除库函数的函数名、头文件名和预处理命令由系统定除库函数的函数名、头文件名和

15、预处理命令由系统定义外,其余都由用户自定义义外,其余都由用户自定义18解析C程序设计(第2版)第2章 简单C程序设计2022-2-2标识符标识符标识符的命名必须遵守以下原则标识符的命名必须遵守以下原则:(1)不能是)不能是C语言中的关键字,如语言中的关键字,如int,do,for等等。等等。(2)只能由字母,数字,和下划线三种字符组成,且第一)只能由字母,数字,和下划线三种字符组成,且第一个字符必须是字母或下划线。个字符必须是字母或下划线。(3)不要太长。旧的)不要太长。旧的ANSI C规定前规定前6个字符有效;在个字符有效;在IBM-PC的的MSC系统中取系统中取8个字符;个字符;Turbo

16、 C则允许则允许32个字符。个字符。(4)见名知义。区分大小写。)见名知义。区分大小写。 19解析C程序设计(第2版)第2章 简单C程序设计2022-2-2标识符举例标识符举例合法的标识符合法的标识符 不正确的标识符不正确的标识符 smart 5smart smart 5smart _decision bomb? _decision bomb? key_board key.board key_board key.board FLOAT float FLOAT float Year2008 a% Year2008 a%20解析C程序设计(第2版)第2章 简单C程序设计2022-2-2注释符注释符

17、lC C 语言的注释符是以语言的注释符是以“/ /* *”开头并以开头并以“* */”/”结尾的字符序列。在结尾的字符序列。在“/ /* *”和和“* */”/”之间的即为注释。之间的即为注释。l注释在程序中起提示、解释程序的作用。注释可出现在程序中的任何位置。注释在程序中起提示、解释程序的作用。注释可出现在程序中的任何位置。程序编译时,不对注释作任何处理。程序编译时,不对注释作任何处理。l在软件开发过程中,还可以将注释用于程序的调试,暂时屏蔽一些语句。在软件开发过程中,还可以将注释用于程序的调试,暂时屏蔽一些语句。l注释与软件的文档同等重要,要养成使用注释的良好习惯,这对软件的维注释与软件的

18、文档同等重要,要养成使用注释的良好习惯,这对软件的维护相当重要。护相当重要。如:如:/ /* *LI2_1.cLI2_1.c* */ /#include #include void main()void main() printf(area = %fn, 3.14159 printf(area = %fn, 3.14159 * * 5.3 5.3 * * 5.3); / 5.3); /* * 输出面积输出面积 * */ / printf(circumference = %fn,2 printf(circumference = %fn,2 * * 3.14159 3.14159 * * 5.3)

19、;/ 5.3);/* * 输出周长输出周长 * */ / 21解析C程序设计(第2版)第2章 简单C程序设计2022-2-2进一步思考?进一步思考?v如果需要计算多个圆的周长和面积,该怎么修改如果需要计算多个圆的周长和面积,该怎么修改程序?程序?v例例2-2计算两个圆的周长和面积,要求将给定半计算两个圆的周长和面积,要求将给定半径存储起来,并将计算结果输出到屏幕。径存储起来,并将计算结果输出到屏幕。 v利用冯氏计算机存储程序的特点,可将半径用变利用冯氏计算机存储程序的特点,可将半径用变量存储起来、多次使用,还可改变其值,即可解量存储起来、多次使用,还可改变其值,即可解决计算多个的问题。决计算多

20、个的问题。22解析C程序设计(第2版)第2章 简单C程序设计2022-2-2问题的分析问题的分析v甲:请给我计算一下圆的周长和面积。甲:请给我计算一下圆的周长和面积。v乙:请问半径是多少?乙:请问半径是多少?v甲:甲:5.3。v乙:圆的周长乙:圆的周长=2*5.3=33.3 圆的面积圆的面积=*5.3*5.3=88.2523解析C程序设计(第2版)第2章 简单C程序设计2022-2-2问题实现方法问题实现方法2-用变量存储半径再计算用变量存储半径再计算#include void main() float r=5.3; printf(circumference = %fn, 2 * 3.1415

21、9 * r); /* 输出周长输出周长 */printf(area = %fn, 3.14159 * r * r); /* 输出面积输出面积 */ 24解析C程序设计(第2版)第2章 简单C程序设计2022-2-2输入半径输入半径-分析分析v计算机如何区分半径,周长,面积?计算机如何区分半径,周长,面积? 为不同的数据定义不同的为不同的数据定义不同的变量名,变量名,例如:例如:r,circumference,area.v计算机上处理的数据有几种类型?这些数据又计算机上处理的数据有几种类型?这些数据又是什么类型?是什么类型? 三种:三种:整数类型整数类型(int)、实数类型、实数类型(float

22、和和double)、字符类型、字符类型(char),不同类型的数据,不同类型的数据其其编码方式编码方式和和所占空间所占空间不同。不同。 半径等数据都是实数类型半径等数据都是实数类型25解析C程序设计(第2版)第2章 简单C程序设计2022-2-2输入半径输入半径-分析分析v用什么语句实现输入?用什么语句实现输入? 用赋值语句或用赋值语句或scanf()v输入的数据存放在哪?输入的数据存放在哪? 内存内存 系统根据变量的数据类型自动为其分配空间系统根据变量的数据类型自动为其分配空间,并将并将内存地址内存地址与与变量名变量名进行关联。我们根据变进行关联。我们根据变量名使用变量,系统根据其对应的内存

23、地址对量名使用变量,系统根据其对应的内存地址对数据进行读写。数据进行读写。26解析C程序设计(第2版)第2章 简单C程序设计2022-2-2v方法方法2是用赋值语句实现的半径存储:是用赋值语句实现的半径存储:vfloat r;vr=5.3;27解析C程序设计(第2版)第2章 简单C程序设计2022-2-2问题实现方法问题实现方法3计算多个圆面积和周长计算多个圆面积和周长#include int main() float r;r=5.3; printf(circumference = %fn, 2 * 3.14159 * r); /* 输出周长输出周长 */printf(area = %fn,

24、3.14159 * r * r); /* 输出面积输出面积 */ r=7.5; printf(“circumference = %fn”, 2 * 3.14159 * r); /* 输出周长输出周长 */ printf(area = %fn, 3.14159 * r * r); /* 输出面积输出面积 */ return 0;28解析C程序设计(第2版)第2章 简单C程序设计2022-2-2数据类型(数据类型(Data Type)l数据为什么要区分类型?数据为什么要区分类型?例例2-1中中“2 * 3.14159 * 5.3”的的2为整数,为整数, 5.3和和3.14159为实数,其范围不一样

25、为实数,其范围不一样开辟不同的内存空间开辟不同的内存空间可以参加的运算不同可以参加的运算不同在程序中指定数据的类型就是为了明确存储空间的在程序中指定数据的类型就是为了明确存储空间的大小,以便对内存中的数据进行操作大小,以便对内存中的数据进行操作l不同类型的数据代表不同的不同类型的数据代表不同的数据表示形式数据表示形式合法的取值范围合法的取值范围占用内存空间大小占用内存空间大小可参与的运算种类可参与的运算种类 29解析C程序设计(第2版)第2章 简单C程序设计2022-2-2涉及到的语法知识涉及到的语法知识-数据类型数据类型数据类型数据类型基本类型基本类型构造类型构造类型指针类型指针类型空类型空

26、类型整型整型实型(浮点型)实型(浮点型)字符型字符型枚举类型枚举类型数组类型数组类型结构体类型结构体类型共用体类型共用体类型单精度实型单精度实型双精度实型双精度实型基本整型基本整型长整型长整型短整型短整型无符号整型无符号整型30解析C程序设计(第2版)第2章 简单C程序设计2022-2-2基本数据类型基本数据类型v int 整数,在目前绝大多数机器上占整数,在目前绝大多数机器上占4个字节。个字节。TC2中是中是2个字节个字节v float 单精度浮点数,一般是单精度浮点数,一般是4个字节长个字节长v double 双精度浮点数,一般是双精度浮点数,一般是8个字节长个字节长v char 字符,一

27、般是字符,一般是1个字节长个字节长 用来表示用来表示256个个ASCII字符,或者字符,或者0255的整数的整数v 枚举型枚举型enum31解析C程序设计(第2版)第2章 简单C程序设计2022-2-2基本数据类型的分类基本数据类型的分类163204294967295unsigned long类类型型符符号号关键关键字字数的表示范围数的表示范围所占位数所占位数整型整型字符型字符型实型实型有有无无(signed)int16-3276832767(signed)short16-3276832767(signed)long32-21474836482147483647unsigned int0655

28、35unsigned short16065535有有float323.4e-383.4e38有有double641.7e-3081.7e308有有char8-128127无无unsigned char80255说明说明:数据类型所占字节数随机器硬件不同而不同数据类型所占字节数随机器硬件不同而不同,上表以上表以IBM PC机为例。机为例。32解析C程序设计(第2版)第2章 简单C程序设计2022-2-2字符编码字符编码 ACSII码码(American Standard Code for Information Interchange) 128个常用字符,个常用字符,用用7位二进制编码位二进制编

29、码,从,从0到到127 控制字符:控制字符:032,127;普通字符:;普通字符:94个。个。 例如:例如:“a”字符的编码为字符的编码为1100001,对应的十进制数是,对应的十进制数是97; 换行换行 0AH 10 回车回车 0DH 13 空格空格 20H 32 09 30H39H 4857 AZ 41H5AH 6590 az 61H7AH 9712233解析C程序设计(第2版)第2章 简单C程序设计2022-2-2字符编码字符编码v标准的标准的ASCII码是码是0127(7位位)。扩展的。扩展的ASCII码是码是0255(8位位) 。v其中其中0127如附录如附录A,128255是特殊符

30、号是特殊符号如:中文、日文。如:中文、日文。 34解析C程序设计(第2版)第2章 简单C程序设计2022-2-2类型长度类型长度v占字节数随机器不同而不同占字节数随机器不同而不同, ,一般占一一般占一个机器字个机器字vshortintlongshortintlongv可用下面运算可用下面运算测量测量:sizeof(sizeof(数据或数据数据或数据类型符类型符或变量名或变量名) 求出的结果为表达式值所属类型或者类求出的结果为表达式值所属类型或者类型占用的字节数型占用的字节数35解析C程序设计(第2版)第2章 简单C程序设计2022-2-2sizeof的应用的应用 #include void m

31、ain(void)printf(Data type Number of bytesn);printf(- -n);printf(char %dn, sizeof(char);printf(int %dn, sizeof(int);printf(short int %dn, sizeof(short);printf(long int %dn, sizeof(long);printf(float %dn, sizeof(float);printf(double %dn, sizeof(double);36解析C程序设计(第2版)第2章 简单C程序设计2022-2-2数据类型修饰符数据类型修饰符v

32、short short int的简写,短整数,一般的简写,短整数,一般2个字节长。可简写为个字节长。可简写为shortv long long int,长整数,一般是,长整数,一般是4个字节长。通常简写为个字节长。通常简写为long long double,长双精度(高精度)浮点数,一般是,长双精度(高精度)浮点数,一般是10个字节长。个字节长。v signed 用来修饰用来修饰char、int、short和和long,说明他们是,说明他们是有符号有符号的整数的整数(正整数、(正整数、0和负整数)。一般缺省都是有符号的,所以这个修饰符和负整数)。一般缺省都是有符号的,所以这个修饰符通常省略通常省

33、略v unsigned 用来修饰用来修饰char、int、short和和long,说明他们是,说明他们是无符号无符号的整数的整数(正整数和(正整数和0)37解析C程序设计(第2版)第2章 简单C程序设计2022-2-2C语言承认的基本数据类型语言承认的基本数据类型charshort intintlong int38解析C程序设计(第2版)第2章 简单C程序设计2022-2-2数据在内存中的存储格式数据在内存中的存储格式 v 整型(以补码方式存储)整型(以补码方式存储)v 实型(默认为实型(默认为double型,以浮点数指数形式存储)型,以浮点数指数形式存储) N=S2 2j jv 字符型(存放

34、字符型(存放ASCII码值码值 )阶码符号阶码符号阶码的数值阶码的数值尾数符号尾数符号尾数的数值尾数的数值阶码阶码j尾数尾数S39解析C程序设计(第2版)第2章 简单C程序设计2022-2-2如何选择恰当的数据类型?如何选择恰当的数据类型?l 具体问题具体分析,尽量选择取值范围较大些的具体问题具体分析,尽量选择取值范围较大些的数据类型数据类型 1+2+3+ 1!+2!+3!+ 13+23+33+40解析C程序设计(第2版)第2章 简单C程序设计2022-2-2【例例】求两个整数的和。求两个整数的和。#include void main() int a=23,b=45; /* 定义两个整型变量定

35、义两个整型变量 */ printf(sum=%dn, a+b); 其中,其中,“%d”表示按十制整数输出。表示按十制整数输出。41解析C程序设计(第2版)第2章 简单C程序设计2022-2-2问题?问题?v如果我们希望将面积和周长、以及两数和保存起如果我们希望将面积和周长、以及两数和保存起来,应该怎么办?来,应该怎么办?42解析C程序设计(第2版)第2章 简单C程序设计2022-2-2数据的两种形式数据的两种形式v数据的表现形式有两种:数据的表现形式有两种: 常量常量 变量变量v在上述程序中,在上述程序中, 常量(常数):常量(常数):5.3、23、45 变量:变量:r、a、b43解析C程序设

36、计(第2版)第2章 简单C程序设计2022-2-2常量与变量常量与变量l 常量是一种在程序中保持固定类型和固定值的数常量是一种在程序中保持固定类型和固定值的数据。编译系统从数据形式上可以区分(除枚举类据。编译系统从数据形式上可以区分(除枚举类型外)。常量分为:型外)。常量分为: 整型常量整型常量 实型常量实型常量 字符常量字符常量 字符串常量字符串常量 枚举常量枚举常量l 变量是在程序执行过程中可以改变。变量是在程序执行过程中可以改变。44解析C程序设计(第2版)第2章 简单C程序设计2022-2-2涉及到的语法知识涉及到的语法知识-常数常数与与常量常量45解析C程序设计(第2版)第2章 简单

37、C程序设计2022-2-2十进制:以非十进制:以非0数字开头,如:数字开头,如:123,-9八进制:以八进制:以0数字开头,如:数字开头,如:0123,011,067十六进制:以十六进制:以0 x数字开头,如:数字开头,如:0 x123,0 xff定点数形式:必须带小数点,如:定点数形式:必须带小数点,如:123.05,0.9,0.0,-10.5浮点数形式:如:浮点数形式:如:1.23E3,.9e-2,5e2,-8E-4普通字符:如:普通字符:如:a,2,H,&,#,表示字符的,表示字符的ASCII码值码值转义字符:如:转义字符:如:n,167,x1f,a,整型常量整型常量实型常量实型

38、常量字符常量字符常量字符串常量:用双引号引起来,如:字符串常量:用双引号引起来,如:”Hello”,”a”枚举常量(枚举元素):枚举常量(枚举元素):如如enum boxpencil,penenum boxpencil,pen中的中的pencilpencil、penpen值分别为值分别为0 0、1 1常量常量图图2-2 2-2 常量的分类常量的分类46解析C程序设计(第2版)第2章 简单C程序设计2022-2-2整型常量整型常量l 整型常量整型常量 十进制:十进制:18、-31 long int型常量型常量 123l、123L、123456l、123456L unsigned int型常量型常

39、量 123u、 123U 根据实际数据大小确定根据实际数据大小确定int型还是型还是long型型47解析C程序设计(第2版)第2章 简单C程序设计2022-2-2八进制与十六进制常量八进制与十六进制常量l 以数字以数字“0”开始的整型常量是八进制数开始的整型常量是八进制数 022、-037 010和和10大小不一样大小不一样 因为八进制并不常用,所以此种表示法比较少见因为八进制并不常用,所以此种表示法比较少见l 以以“0 x”或者或者“0X”开始的整型常量是十六进制开始的整型常量是十六进制 AF和和af用来表示十进制的用来表示十进制的1015 十六进制的形式比较常用十六进制的形式比较常用 0

40、x12、-0 x1F, -0 x1f48解析C程序设计(第2版)第2章 简单C程序设计2022-2-2整型常量的几种形式整型常量的几种形式v三种形式:三种形式:十进制整数:由数字十进制整数:由数字0 09 9和正负号表示和正负号表示. .如如 123,-456,0123,-456,0八进制整数:由数字八进制整数:由数字0 0开头开头, ,后跟数字后跟数字0 07 7表示表示. .如如0123,0110123,011十六进制整数:由十六进制整数:由0 x0 x开头开头, ,后跟后跟0 09,a9,af,Af,AF F表示表示. . 如如0 x123,0Xff0 x123,0Xff例例 12 与与

41、 12L例例 30000 为为int型型 65536 为为long int 型型v整型常量的类型整型常量的类型根据其值所在范围确定其数据类型根据其值所在范围确定其数据类型在在整常量后加字母整常量后加字母l l或或L L,认为它是认为它是long int 型常量型常量问题:问题:0123 = ( )100 x123 = ( )100Xff = ( )1083291255问题:问题:0123 = ( )100 x123 = ( )100Xff = ( )1049解析C程序设计(第2版)第2章 简单C程序设计2022-2-2实型常量实型常量l 实型常量实型常量 十进制小数形式十进制小数形式 :123

42、.45、456.78 指数形式指数形式 :1e-2、4.5e3 float型常量型常量 123.45f、 456.78F、1e-2f、4.5e3F long double型常量型常量 123.45l、 456.78L、4.5e3L 缺省为缺省为double50解析C程序设计(第2版)第2章 简单C程序设计2022-2-2字符(字符(Character)常量)常量l 字符常量的表示方法字符常量的表示方法 a,A,5,%,$ 单引号内只能有一个字符,除非用单引号内只能有一个字符,除非用“”开头开头l 就是一个普通整数,也可以参与各种数学运算就是一个普通整数,也可以参与各种数学运算 每个字符具有一个

43、每个字符具有一个0255之间的数值,可从之间的数值,可从ASCII表表查出查出 注意:注意:5和整数和整数5的区别的区别 字符的数学运算在密码学内用得比较多字符的数学运算在密码学内用得比较多l 用用“”开头的字符为转义字符开头的字符为转义字符 例如,例如,n,代表,代表1个字符个字符附录附录A51解析C程序设计(第2版)第2章 简单C程序设计2022-2-2字符常量字符常量转义符转义符l 转义字符转义字符 一些特殊字符(无法从键盘输入或者另有它用)用一些特殊字符(无法从键盘输入或者另有它用)用转义字符表示转义字符表示转义字符转义字符含义含义nvradddtbf“xhh转义字符转义字符含义含义换

44、行换行垂直制表垂直制表回车回车响铃响铃单引号单引号3位位8进制数代表的字符进制数代表的字符水平制表水平制表退格退格换页换页反斜线反斜线双引号双引号2位位16进制数代表的字符进制数代表的字符52解析C程序设计(第2版)第2章 简单C程序设计2022-2-2例例2-3 转义符举例转义符举例/*LI2_3.c*/#include void main(void) printf(*ntABC 123n abc 321tbn*n);53解析C程序设计(第2版)第2章 简单C程序设计2022-2-2字符串(字符串(String)常量)常量v 用双引号括住的由用双引号括住的由0个或多个字符组成的字符序列个或多

45、个字符组成的字符序列 I am a string 表示空字符串表示空字符串 转义字符也可以在字符串中使用转义字符也可以在字符串中使用 引号只作为字符串开始和结束的标志引号只作为字符串开始和结束的标志 C语言内部用语言内部用0表示字符串的结束表示字符串的结束 除注释外,是唯一可以出现中文的地方除注释外,是唯一可以出现中文的地方v x和和x是不同的是不同的v 里定义了一系列专门的字符串处理函数里定义了一系列专门的字符串处理函数54解析C程序设计(第2版)第2章 简单C程序设计2022-2-2为什么需要常量?为什么需要常量?v 假如不使用常量,直接使用常数,有什么影响?假如不使用常量,直接使用常数,

46、有什么影响? 程序的可读性变差程序的可读性变差 容易发生书写错误容易发生书写错误 修改麻烦修改麻烦v 常量只能在定义时赋值,以后常量只能在定义时赋值,以后不能不能再改变其值再改变其值 符号常量(宏常量)符号常量(宏常量) 枚举常量枚举常量v 常数、符号常量和枚举常量,都可以用来表示一个永远不会常数、符号常量和枚举常量,都可以用来表示一个永远不会改变的数改变的数 建议不要直接使用常数,而用后二者代替建议不要直接使用常数,而用后二者代替55解析C程序设计(第2版)第2章 简单C程序设计2022-2-2符号常量符号常量v也可以用标识符代表常量,称为符号常量。其定也可以用标识符代表常量,称为符号常量。

47、其定义格式为:义格式为:v#define 符号常量符号常量 常数或字符序列常数或字符序列56解析C程序设计(第2版)第2章 简单C程序设计2022-2-2符号常量符号常量v符号常量符号常量 也称宏常量也称宏常量 一般采用大写字母表示一般采用大写字母表示 不是语句,而是一种编译预处理命令不是语句,而是一种编译预处理命令v宏替换宏替换 使用字符序列替换使用字符序列替换 57解析C程序设计(第2版)第2章 简单C程序设计2022-2-2求圆面积和圆周长另解求圆面积和圆周长另解求圆面积和圆周长求圆面积和圆周长#include #define PI 3.14159#define r 1.5void ma

48、in(void)printf(area = %fn, PI * r * r);printf(circumference = %fn, 2 * PI * r);area = 7.068577circumference = 9.42477058解析C程序设计(第2版)第2章 简单C程序设计2022-2-2源代码源代码#include #define PI 3.14159void main() float r=5.3; printf(area = %fn, PI * r * r); printf(circumference = %fn, 2 * PI * r);59解析C程序设计(第2版)第2章 简

49、单C程序设计2022-2-2枚举(枚举(Enumeration)常量)常量v 枚举即一一列举,枚举类型描述一组有限个整型数据值的集枚举即一一列举,枚举类型描述一组有限个整型数据值的集合。合。v 例子:例子: enum weeks SUN, MON, TUE, WED, THU, FRI, SAT; enum weeks today; enum response no, yes, none; enum response answer; today = TUE; answer = yes; if (answer = yes) printf(Today is Tuesday.n); else pri

50、ntf(Today is NOT Tuesday.n);60解析C程序设计(第2版)第2章 简单C程序设计2022-2-2变量变量l 概念:其值可以改变的量概念:其值可以改变的量l 三要素:变量名、变量值、存储单元三要素:变量名、变量值、存储单元l 使用变量的基本原则使用变量的基本原则 变量必须先定义,后使用变量必须先定义,后使用 所有变量必须在第一条可执行语句前定义所有变量必须在第一条可执行语句前定义l 存储单元的地址使用存储单元的地址使用&获取获取3a变量名变量名变量值变量值存储单元存储单元61解析C程序设计(第2版)第2章 简单C程序设计2022-2-2涉及到的语法知识涉及到的语

51、法知识-变量变量v 使用变量的基本原则使用变量的基本原则 变量必须先定义,后使用,变量必须先定义,后使用,为什么?为什么? 所有变量必须在第一条可执行语句前定义所有变量必须在第一条可执行语句前定义 变量的类型要根据实际情况变量的类型要根据实际情况(数据类型及范围数据类型及范围)设定,设定,否则导致否则导致类型溢出类型溢出和和舍入误差舍入误差。v 一条声明语句可声明若干个同类型的变量一条声明语句可声明若干个同类型的变量v 声明变量,是初始化变量的最好时机声明变量,是初始化变量的最好时机 不被初始化的变量,其值为危险的随机数不被初始化的变量,其值为危险的随机数v 例:例: unsigned int

52、 x, y, sum = 0; char esc = a; float eps = 1.5;62解析C程序设计(第2版)第2章 简单C程序设计2022-2-2a变量名变量名变量值变量值存储地址存储地址3 3200A图图2-4 2-4 变量的三要素变量的三要素63解析C程序设计(第2版)第2章 简单C程序设计2022-2-2定义变量定义变量v变量初始化变量初始化:定义时赋初值定义时赋初值 例例: int a,b,c; float data;决定分配字节数决定分配字节数和数的表示范围和数的表示范围合法标识符合法标识符例例: int a=2,b,c=4; float data=3.67; char

53、ch=A; int x=1,y=1,z=1; int x=y=z=1;v 变量的使用:先定义,后使用变量的使用:先定义,后使用例 int student; stadent=19; /Undefined symbol statent in function main 例例 float a,b,c; c=a%b; /Illegal use of floating point in function main v 变量定义位置:一般放在函数开头变量定义位置:一般放在函数开头main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=

54、%fn”,data);变量定义可执行语句main() int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%fn”,data);编译程序根据变量定义为其编译程序根据变量定义为其分配指定字节的内存单元分配指定字节的内存单元.地址地址int a=1, b=-3,c;abc2字节2字节2字节地址地址地址地址.内存1-3随机数v变量定义的一般格式:变量定义的一般格式: 数据类型数据类型 变量变量1,变量,变量2,变量,变量n;64解析C程序设计(第2版)第2章 简单C程序设计2022-2-2【例例】求两个整数的和。求两个整数的和。#incl

55、ude void main() int a=23,b=45; /* 定义两个整型变量定义两个整型变量 */ int sum; /* 定义存放结果的整型变量定义存放结果的整型变量 */ sum=a+b; /* 赋值语句赋值语句 */ printf(sum=%dn,sum); /* 显示程序运算结果显示程序运算结果 */ 其中,其中,“%d”表示按十制整数输出。表示按十制整数输出。65解析C程序设计(第2版)第2章 简单C程序设计2022-2-2整型变量整型变量例例 int i=10,j,k;int i=10,j,k; j=1; j=1; /* 赋值语句赋值语句 */ k=20; k=20; /*

56、 赋值语句赋值语句 */ printf(“%dn”,sizeof(int); / printf(“%dn”,sizeof(int); /* *结果为?结果为?* */ / printf(“%dn”,sizeof(i); / printf(“%dn”,sizeof(i); /* *结果为?结果为?* */ / printf(“%dn”,sizeof(long); / printf(“%dn”,sizeof(long); /* *结果为?结果为?* */ / printf(“%dn”,sizeof(10L); / printf(“%dn”,sizeof(10L); /* *结果为?结果为?* */

57、 /66解析C程序设计(第2版)第2章 简单C程序设计2022-2-2整型变量分类整型变量分类有符号整型变量有符号整型变量 基本型:一般占基本型:一般占2 2个字节个字节(16(16位位) ),intint 短整型:一般占短整型:一般占2 2个字节个字节(16(16位位) ),short intshort int 长整型:一般占长整型:一般占4 4个字节个字节(32(32位位) ),long intlong int 有符号整型变量使用有符号整型变量使用signedsigned修饰,但缺省的数据类型即表示有符号整型数修饰,但缺省的数据类型即表示有符号整型数据,因此可以省略修饰符据,因此可以省略修

58、饰符signedsigned。无符号整型变量无符号整型变量 无符号基本型:一般占无符号基本型:一般占2 2个字节个字节(16(16位位) ),unsigned intunsigned int 无符号短整型:一般占无符号短整型:一般占2 2个字节个字节(16(16位位) ),unsigned short intunsigned short int 无符号长整型:一般占无符号长整型:一般占4 4个字节个字节(32(32位位) ),unsigned long intunsigned long int11 11 11 11 11 11 11 11unsigned int型:型:最大最大:6553500

59、 00 00 00 00 00 00 00最小最小:001 11 11 11 11 11 11 11int型:最大最大:3276710 00 00 00 00 00 00 00最小最小:-3276867解析C程序设计(第2版)第2章 简单C程序设计2022-2-2整型变量取值范围整型变量取值范围 ANSIANSI标准建议各标准建议各种整型数据所占位数种整型数据所占位数和数值范围如右表所和数值范围如右表所示示(TurboC(TurboC与该表定与该表定义一致义一致) ):注意:注意: 在微机上用在微机上用longlong型可以得到大范围的型可以得到大范围的整数,但同时会降低整数,但同时会降低运算

60、速度,因此除非运算速度,因此除非不得已,不要随便使不得已,不要随便使用用longlong型数据。型数据。类型类型名称名称比特比特数数最小取值范围最小取值范围signed short int有符号短有符号短整型整型16-3276832767 即即-215(215-1)signed int有符号基有符号基本整型本整型16-3276832767 即即-215(215-1)signed long int有符号长有符号长整型整型32-2147483648-2147483647 即即-231(231-1)unsigned short int无符号短无符号短整型整型16065535 即即0(216-1)unsigned int无

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论