程序设计初步知识ppt课件_第1页
程序设计初步知识ppt课件_第2页
程序设计初步知识ppt课件_第3页
程序设计初步知识ppt课件_第4页
程序设计初步知识ppt课件_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、第第2章章 C程序设计初步知识程序设计初步知识本章要点本章要点:2.1 简单简单C言语程序的构成和格式言语程序的构成和格式2.2 常量、变量和标识符常量、变量和标识符2.3 整型数据整型数据2.4 实型数据实型数据2.5 算术表达式算术表达式 2.5 算术表达式算术表达式2.6 赋值表达式赋值表达式 2.7 自加、自减运算符和逗号运算符自加、自减运算符和逗号运算符2.1 简单C言语程序的构成和格式以下是一个简单求解两数之和的C程序, 程序如下:include “stdio.hmain() int a, b, sum; a=12; b=2; /*给求和的两个数赋值*/ sum=a+b; /*求两

2、数之和放入变量sum*/ printf (“a=%d, b=%d, sum=%dn, a, b, sum); /*输出两数以及它们的和*/以上程序运转结果如下:a=12, b=2, sum=14从以上程序中,可以看到C程序有以下构造特征:1main是主函数名,C言语规定必需用main作为主函数名。其后的“中间可以是空的,但“不能省略。一个C程序可以包含恣意多个不同名的函数,但必需有且只需一个主函数,C程序总是从主函数开场执行。2在函数的起始行后面是函数体,由一对大括号“括起来的语句集合。函数体中普通包含变量定义语句和执行语句。且执行语句必需放在定义语句之后。3每个语句和变量定义的最后必需求有一

3、个分号即使是程序的最后一个语句也应包含分号。分号是C语句的必要组成部分。4C言语用“/*/对程序进展注释。留意“/和“*之间不能有空格。注释可以出如今程序中恣意适宜的地方,必需成对出现,它对程序的运转不起作用,但在注释中可以阐明变量的含义、程度段的功能等。一个好的C程序应有必要的注释,以便阅读。5“ include “stdio.h通常称为命令行,必需用“#号开头,最后不能加“;,由于它不是C程序中的语句。“stdio是系统提供的文件名,该文件中包含着有关输入输出函数的信息,调用不同的库函数,该当包含不同的头文件。重点提示: main是主函数名,C言语规定必需用main作为主函数名。每个语句和

4、变量定义的最后必需求有一个分号,分号是C语句的必要组成部分。 “include “stdio.h是命令行,必需用“#号开头,最后不能加“;,由于它不是C程序中的语句。2.2 常量、变量和标识符2.2.1 标识符和其他高级言语一样,用来标识常量名、变量名、函数名、数组名、类型名、文件名等对象的有效字符序列称为标识符。简单的说,标识符就是一个名字。1标识符的命名规那么1C言语规定标识符只能由字母大小写均可、数字和下划线3种字符组成。2第1个字符必需为字母或下划线。2本卷须知1标识符的命名是区分大小写的,例如NAME、name及Name为3个不同的标识符。习惯上变量名用小写字母表示,符号常量普通运用

5、大写英文字母。2C言语中的关键字是一类特殊的标识符,它们具有特定的含义,已被C言语本身运用,不能用作变量名、常量名、函数名等。3C言语中提供了大量的库函数与头文件,这些库函数名和头文件中定义的一些标识符都统称为预定义标识符。用户定义标识符时应留意防止和预定义标识符重名。3标识符的分类1关键字关键字在程序中代表着固定的含义,不能另作他用。如用来阐明变量类型的标识符char、float以及for、if等都已有专门的用途,它们不能用作变量名或函数名。2预定义标识符预定义标识符在C 言语中也有特定的含义,如库函数的名字和预编译处置命令等。C言语语法允许用户把这类标识符另作他用,但是失去了在系统中规定的

6、原意。为了防止误解,建议用户不要把这些预定义标识符另作它用。3用户标识符由用户根据需求定义的标识符称为用户标识符。普通用来给变量、函数、数组或文件等命名。假设用户标识符与关键字一样,程序会给出出错信息;假设与预定义标识符一样,那么预定义标识符将失去原来的含义。重点提示:标识符的命名规那么:1C言语规定标识符只能由字母大小写均可,但区分大小写、数字和下划线3种字符组成2第1个字符必需为字母或下划线3已被C言语本身运用,不能用作变量名、常量名、函数名等。2.2.2 常量在程序运转过程中,其值不能被改动的量称为常量。C言语中有4中根本常量:整型常量、实型常量、字符常量和字符串常量。此外,C言语中还经

7、常运用两种表现方式不同的常量:本义字符常量和符号常量。1整型常量整型常量也称整数,包括正整数、负整数和零。2实型常量实型常量即实数,又称为浮点数。3字符常量字符常量运用一对单引号括起来的一个字符。如a、B、?等。以下是关于字符常量的几点阐明。1单引号只是作为定界符运用,并不是字符常量的组成部分。2单引号内的字符不允许是单引号或反斜杠。3字符常量具有数值,这个值就是该字符在规定的字符集中的ASCII代码值。4字符常量在机器内以整型常量的方式存放,因此字符常量与整型常量等价。4字符串常量字符串常量是由一对双引号括起来的字符序列,如“hello、“how are you等。C言语中没有专门存放字符串

8、的字符串变量,因此存放时需求放在一个字符型数组中。5本义字符常量 本义字符常量是以一个“开头的字符序列。每个本义字符都有其特定的含义和功能。详细含义将在后面的章节中详细引见。6符号常量C言语中,允许用一个标识符来代表一个常量,即常量可以用“符号来替代,替代常量的符号就称为符号常量。以下是几点阐明:1符号常量在运用之前必需先定义,定义方法为用宏交换“#define使一个标识符与某个常量相对应,其普通方式为:define 标识符 常量表达式。2一个define只能定义一个符号常量。3符号常量定义式的行尾没有分号。2.2.3 变量变量是指在程序运转期间其值可以发生变化的量。一个变量在内存中占据一定的

9、存储单元,在程序中从变量中取值,实践上是经过变量名找到相应的内存地址,从其存储单元中读取数据。变量如常量一样,也分为整型变量,实型变量,字符型变量等。在定义变量的同时要阐明该变量的类型,系统编译时根据变量及其类型为它分配相应数量的存储空间。重点提示:C言语中的根本数据类型有:整型、实型和字符型。2.3 整型数据2.3.1 整型常量1整型常量的表示方式C言语中整型常量有如下三种表示方式:1十进制。用一串延续的数字来表示,如32768,768,0等。2八进制。用数字0开头,各位用07这8个数之一表示,如010,011等。在C程序中不能在一个十进制整数前面加前导零。3十六进制。用0 x或0X开头,各

10、位用09以及AF或af这16个数之一表示,如0 x24B,0X34a等。整型常量又有短整型short int、根本类型 long int和无符号型unsigned的区分。 2.3.2 整型变量整型变量是指值为整数的变量。其命名与标识符的规那么一样。变量一经阐明,在编译时就能为其分配相应的存储单元。整型变量可分为根本型、短整型、长整型和无符号型四种。根本型的整型变量用类型名关键字int进展定义,如 int a; 或 int a, b, c;根本型整型变量在普通微机中占用2个字节的存储单元,该变量中允许存放的数值范围是:3276832767。在程序中定义变量时,编译程序会为相应的变量开辟内存单元,

11、但并没有在该单元中存放任何初值,这时变量中的值是无意义的,即称为变量值“无定义。C言语规定,可以在定义变量的同时给变量赋初值,即变量的初始化。如:main() int a=1, b=4, i=8; 2.3.3 整型数据的分类整型常量与变量有短整型short int、根本整型int、长整型long int和无符号型unsigned,以及有符号型的区分。不同的计算机系统对这几类整型数所占用的字节数和数值范围有不同规定,表2.1列出了微型机中这些类型的整型数所占用的字节数和数值范围。在表示一个长整型常量时,应该在其后面加一字母后缀L或l,如123L,345l等。根本型:以 int 表示 短整型:以

12、short int 或 short 表示 1.类型 长整型:以 long int 或 long 表示 (123l、 123L 无符号根本型(unsigned int) 无符号型 无符号短整型(unsigned short) 无符号长整型(unsigned long)一个无符号整型变量中可以存放的正数的范围比普通整型变量中正数的范围扩展一倍。int i; /* 变量i 的数值范围: -3276832768 */unsigned int j; /* 变量j的数值范围:065535 */2.3.4 整数在内存中的存储方式计算机中最小的存储单位是“位bite,8个二进制位组成一个“字节byte,假设干

13、个字节组成一个“字word。C言语中,一个int整数通常用两个字节存放,其中最高位最左边一位用来存放整数的符号,正整数时最高位为0,负整数时最高位为1。1正整数C言语中,正整数以原码方式存放。如整数5在内存中的二进制码为:0000000000000101。 2负整数C言语中,负整数在内存中是以整数的“补码方式存放。求某个二进制码的补码,步骤如下:1求原码的反码,即将01,102将所得的反码加1,即得原码的补码。3无符号整数无符号整数的最高位不再用来存放整型的符号,因此无符号数不能够是负数。对于无符号整数,最高位最左边一位不再用来存储整数的符号,全部用来存放整数。重点提示:在C言语中,对于有符号

14、整数,用最高位最左边一位用来存储整数的符号,假设是正整数,最高位为0,假设是负数,最高位放置1。对于正整数用“原码方式存放,对于负整数用“补码方式存放。2.4 实型数据2.4.1 实型常量1实型常量的表示方式实型常量又称实数。在C言语中可以有两种表示方式:1小数方式。由整数部分、小数点和小数部分组成。格式如下:整数部分.小数部分,小数点不能省略。如0.78,.897,0.0都是合法实数表示。2指数方式。由尾数部分、字母E或e和指数部分组成,其格式如下:尾数部分E或e指数部分,指数部分只能是整数,且三个组成部分均不能省略。如12.34E+9, 5.453e10是合法的实数表示,假设写成e2、.6

15、E3.5、.e2、e、E等都是不合法的指数方式。留意,在字母E或e的前后以及数字之间不得插入空格。重点提示:尾数部分E或e指数部分,指数部分只能是整数,且三个组成部分均不能省略。2.4.2 实型变量1实型变量是指值为实数的变量。其命名与标识符的规那么一样。2实型变量分为两种类型:1单精度型float,分配4个字节的存储单元,数值范围约为10381038,并提供7位有效位;小于1038的数被处置成零值。2双精度型double,分配8个字节的存储单元,数值范围约为1030810308,并提供1516位的有效位;小于10308的数被处置成零值。在计算机内存中,实数一概是以指数方式存放的,而不是小数的

16、方式。例如: float a; double b; a=123456.789e5 ; b=123456.789 ; 2.5.1 根本的算术运算符C言语中根本的运算符是: +、-、*、/、%。这些运算符需求两个运算对象,称为双目运算符。除求余运算符外,运算对象可以是整型也可以是实型。阐明:1乘号“*不能省略,也不能写成代数式中的“或“2假设双目运算符两边的类型不一致,那么系统将自动按照类型转换规那么使两边类型一致后再进展运算。如一边是实型数,一边是整型数时,系统将自动把整型转换为实型数再进展运算。3求余运算符“%要求参与运算的量必需为整数,且求余的结果符号与被除数一样。如14-3的结果为2,-2

17、1%4的结果为-1。4在C言语中,一切实型数的运算均以双精度方式进展。假设是单精度数,那么在尾数部分补0,使之转化为双精度数。2.5.2 运算符的优先级、综合性和算术表达式在C言语中,常量、变量、函数调用以及按C言语语法规那么用运算符把运算数连起来的式子都是合法的表达式。表达式都有一个值,即运算结果。1算术运算符和圆括号的优先级次序如下:由高低 、 、* 、/ 、% 、 、 2算术运算符和圆括号的结合性以上所列的运算符,只需单目运算符“和“的结合性是从右到左,其他运算符的结合性都是从左到右。如,表达式(4+3)*5/2的运算结果是17,圆括号的优先级要高于乘号和除号;而表达式4+3*5/2的运

18、算结果是11,乘号和除号的优先级要高于加号;表达式3*-4与3*(-4)是等价的,由于单目运算符-“的优先级高于乘号。3算术表达式用算术运算符和括号将运算对象衔接起来的、符合C语法规那么的式子,称C算术表达式。运算对象可以是常量、变量、函数等。关于算术表达式的几点阐明:1在表达式中可以运用多层圆括号,但左右括号必需配对。运算时从内层开场,由内向外依次计算表达式的值。2在求解表达式的值时,假设包含不同优先级的运算符,那么按运算符的优先级别由高到低运转,假设表达式中运算符的级别一样,那么按运算符的结合方向进展。如表达式a+b-c,由于加号和减号的优先级一样,它们的结合性为从左到右,因此先计算a+b

19、,然后把所得的结果减去c。2.5.3 强迫类型转换表达式强迫类型转换表达式的方式: 类型名表达式其中类型名称为强迫类型转换运算符,例如:floatx 将x转换成浮点型double8%3将8%3转换成双精度型重点提示:在求解表达式的值时,假设包含不同优先级的运算符,那么按运算符的优先级别由高到低运转,假设表达式中运算符的级别一样,那么按运算符的结合方向进展。2.6 赋值表达式2.6.1 赋值运算符和赋值表达式1赋值运算符赋值符号“称为简单运算符,其作用是将一个数据或运算表达式的值赋给另一个变量。例如:a5的作用是把5赋给变量a,即把5存入变量a对应的存储单元。关于简单的赋值运算,要留意以下2点:

20、1赋值符“左边必需是变量,右边既可以是常量,变量,也可以是函数调用或表达式。如 z=sqrt(3)+2*c。2赋值符“与数学中的等号“外观一样,但含义、作用不同,如i=i+1,在数学中是不成立的,但在C言语中是正确的。它的含义是将i当前值加1再赋给变量i。2赋值表达式用一个赋值运算符“=将一个变量和一个表达式衔接起来的式子称为赋值表达式。其普通方式为:变量表达式赋值号的左边必需是一个代表某一存储单元的变量名,或代表某存储单元的表达式,赋值运算的功能是先求出右边表达式的值,然后把该值赋给等号左边的变量,即是把数据放入以该变量为标识的存储单元中去。如a=1 b=a /* 是将常量1赋给变量a,再把

21、a中的值赋给变量b,但a中的值不变 */程序中可以多次给一个变量赋值,相应的存储单元当前的数据就是最后一次所赋的那个数据。以下是几点阐明:1赋值表达式右边的“表达式,也可以是一个赋值表达式,即出现多个赋值符号的情况。例如:a=(b=3),它相当于b=3。2赋值表达式中还可以包含复合的赋值运算符,例如:x+=y*=3 也是一个赋值表达式,假设x的初值是5,y的初值是2,那么该赋值表达式运算顺序为:先进展y*=3的运算,再进展x+=6的运算,相当于x=x+6=5+6,因此最后结果是11。3假设在赋值表达式最后加一个分号就构成了语句。4在C言语中规定最左边变量所得到的新值就是赋值表达式的值,如a18

22、,那么阐明该表达式的值为18。5赋值运算符的左边只能是变量,不能是常量或表达式。如a+b=c是不合法的赋值表达式。2.6.2 复合的赋值表达式2.6.2 复合的赋值表达式1复合的赋值运算符在赋值符“之前加上其他运算符,可以构成复合的赋值运算符。例如在“前加上“运算符,就成了复合运算符“。例如有:x+=4 它相当于表达式:x=x+4 即先使x加4,再赋给x。采用这种复合运算符,一是为了简化程序,二是为了提高编译效率,C言语规定可以运用以下10种复合赋值运算符,如下:+=、 =、 *=、 %=、 =、 &=、 =、 =、 |=其中后五种是有关位运算方面的,将在后续章节中引见。留意:复合赋值

23、运算符的优先级与赋值运算符的优先级一样。2复合的赋值表达式如已有变量a,值为3,计算表达式a+=a-=a+a的值。由于赋值运算符与复合的赋值运算符的优先级一样,且运算方向自右向左,所以计算步骤为:1先计算a+a,该表达式值为6。2再计算a-=6,即a=a-6,此时a的值仍为3,所以表达式值为-3。3最后计算a+=-3,即a=a+(-3),此时a的值曾经改动为-3,所以表达式的值为-6。即表达式a+=a-=a+a最终的值为-6,而a最终的值也是-6。2.6.3 赋值运算中的类型转换假设赋值运算符两侧的类型不同,在赋值时系统要自动进展类型转换,转换原那么是不论赋值号两侧类型级别高低如何,一概将赋值号右边的类型转换成左边变量的类型,然后再赋值,详细规定如下:1将实数赋给整型变量时,舍弃实数的小数部分不是四舍五入。例如i是整型变量,那么i2.99;结果i的值为2,在内存中以整数方式存储。2将整数赋给单、双精度变量时,数值不变,但将整数转换成浮点数方式存放到左边的变量中。例如:floa

温馨提示

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

评论

0/150

提交评论