(中职)编程语言基础——C语言模块2教学课件.ppt
-
资源ID:90571972
资源大小:1.69MB
全文页数:91页
- 资源格式: PPT
下载积分:30金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
(中职)编程语言基础——C语言模块2教学课件.ppt
YCF正版可修改PPT(中职)编程语言基础C语言模块2教学课件模块模块2基本数据类型与基本数据类型与顺序程序设计顺序程序设计任务任务1 常量和变量常量和变量任务任务2 C语言的基本数据类语言的基本数据类任务任务3 C语言的运算符和表达式语言的运算符和表达式任务任务4 赋值语句赋值语句任务任务5 数据的输入数据的输入任务任务6 数据的输出数据的输出任务任务7 常用的数学函数常用的数学函数任务任务8 结构化程序设计结构化程序设计任务任务1常量和变量常量和变量2.1.1 普通常量普通常量在程序的运行过程中,其值不发生改变的量称为常量。在程序的运行过程中,其值不发生改变的量称为常量。c语言语言中的常量包括普通常量和由中的常量包括普通常量和由#define所定义的符号常量。所定义的符号常量。普通常量普通常量:普通常量又可分为整型常量、字符常量、字符串常普通常量又可分为整型常量、字符常量、字符串常量和实型常量。普通常量从其字面形式即可判断。量和实型常量。普通常量从其字面形式即可判断。整型常量即整常数,由一个或多个数字组成,可以带正负号。整型常量即整常数,由一个或多个数字组成,可以带正负号。其中以数字其中以数字0开头的为八进制数,以开头的为八进制数,以ox或或0X开头的为十六进开头的为十六进制数,其他则为十进制数。制数,其他则为十进制数。下一页返回任务任务1常量和变量常量和变量。下列常量都是合法常量。下列常量都是合法常量:327 -314 0 057 0 x4c7d 0X5700在整型常数后跟有字母在整型常数后跟有字母1或或L时,表示该整型常量是长整型常时,表示该整型常量是长整型常量,如量,如:574L 0X5F9DATC语言还允许一种特殊形式的字符常量,就是以语言还允许一种特殊形式的字符常量,就是以“”开头的开头的字符序列,如字符序列,如n表示一个换行符。表示一个换行符。上一页返回下一页任务任务1常量和变量常量和变量2.1.2 符号常量符号常量符号常量符号常量:也可以用一个标识符代表一个常量,这种用标识符也可以用一个标识符代表一个常量,这种用标识符代表的常量称为符号常量。此时,符号就像是常量的别名。代表的常量称为符号常量。此时,符号就像是常量的别名。1.定义格式定义格式符号常量由宏定义命令符号常量由宏定义命令#define语句进行定义,它的一般形语句进行定义,它的一般形式为式为:#define 标识符标识符 字符串字符串2.应用实例应用实例3.符号常量用途符号常量用途在程序中使用符号常量,其具有以下优点。在程序中使用符号常量,其具有以下优点。(1)含义清楚。含义清楚。(2)修改方便。修改方便。上一页返回下一页任务任务1常量和变量常量和变量2.1.3 变量变量变量是指程序运行过程中其值可变的量,用于存放原始数据、变量是指程序运行过程中其值可变的量,用于存放原始数据、运算的中间结果以及最终结果。变量含有两部分运算的中间结果以及最终结果。变量含有两部分:变量名和变变量名和变量值。用户通过变量名来引用变量的值。量值。用户通过变量名来引用变量的值。C语言中所有的变量语言中所有的变量都需先定义、后使用,即先定义变量的存储类型和数据类型,都需先定义、后使用,即先定义变量的存储类型和数据类型,以便编译系统在内存的相应区域分配相应数目的连续字节以便编译系统在内存的相应区域分配相应数目的连续字节(内内存单元存单元)给该变量存放变量值。变量定义的一般格式为给该变量存放变量值。变量定义的一般格式为:上一页返回下一页任务任务1常量和变量常量和变量若有语句若有语句:int x=5;则在内存中会有如则在内存中会有如图图2-1的结果。的结果。1.变量的数据类型变量的数据类型C语言中变量的数据类型有简单和复合两大类,复合类型在后语言中变量的数据类型有简单和复合两大类,复合类型在后面介绍,本节主要介绍简单类型。简单类型主要有整型、字面介绍,本节主要介绍简单类型。简单类型主要有整型、字符型和实型符型和实型(也称作浮点型也称作浮点型)。(1)实型变量可用于存放特别大和特别小的数。如阶乘值往实型变量可用于存放特别大和特别小的数。如阶乘值往往很大,可以考虑用实型变量存放。实型变量存储数据时会往很大,可以考虑用实型变量存放。实型变量存储数据时会有一定误差,所以只看前面的有效位数,如果有有一定误差,所以只看前面的有效位数,如果有7位有效数字位有效数字的话,就是前的话,就是前7位数字是准确的,后面的数字都是随机数。关位数字是准确的,后面的数字都是随机数。关于实型变量的详细说明如于实型变量的详细说明如表表2-1所示。所示。上一页返回下一页任务任务1常量和变量常量和变量定义实型变量的方法与整型变量类似,例如定义实型变量的方法与整型变量类似,例如:(2)字符型变量用来存放字符,系统为字符型变量分配字符型变量用来存放字符,系统为字符型变量分配1个字个字节,用类型关键字节,用类型关键字char进行定义。例如进行定义。例如:上一页返回下一页任务任务1常量和变量常量和变量2.变量初始化变量初始化变量在定义的同时被赋予一个值称为变量的初始化。变量在定义的同时被赋予一个值称为变量的初始化。表示定义表示定义X和和s为整型变量,其中为整型变量,其中s初始化为初始化为0,x未赋值,其值未赋值,其值不确定。变量初始化与先定义、再赋值是等价的。不确定。变量初始化与先定义、再赋值是等价的。上一页返回任务任务2 C语言的基本数据类型语言的基本数据类型2.2.1 Turbo C 2.0常用标准数据类常用标准数据类型型在计算机中进行处理的信息都可以表达为数据的形式。这里在计算机中进行处理的信息都可以表达为数据的形式。这里的数据不仅包括熟知的数学运算中的数据,还包括声音、图的数据不仅包括熟知的数学运算中的数据,还包括声音、图像等复杂信息。像等复杂信息。数据在计算机中进行处理时,首先必须解决的问题是数据在数据在计算机中进行处理时,首先必须解决的问题是数据在存储器里的存储问题。存储器里的存储问题。读者可以思考如下两个问题。读者可以思考如下两个问题。由于计算机的内存大小有限,怎样存储更加节约存储空间由于计算机的内存大小有限,怎样存储更加节约存储空间?怎样存储便于数据的查找怎样存储便于数据的查找?为了便于为了便于C语言的数据处理,合理地使用存储空间,将数据划语言的数据处理,合理地使用存储空间,将数据划分为不同的类型,进行分类处理。分为不同的类型,进行分类处理。C语言的数据类型如语言的数据类型如表表2-3所示。所示。上一页返回下一页任务任务2 C语言的基本数据类型语言的基本数据类型2.2.2 整型数据整型数据整型数据可分为整型数据可分为4种种:基本型、短整型、长整型和无符号型。基本型、短整型、长整型和无符号型。基本型以基本型以int表示。表示。短整型以短整型以short int或或short表示。表示。长整型以长整型以long int或或long表示。表示。无符号型的整数必须是正数或零。无符号型又可细分为无符无符号型的整数必须是正数或零。无符号型又可细分为无符号整型、无符号短整型和无符号长整型,分别以号整型、无符号短整型和无符号长整型,分别以unsigned int,unsigned short和和unsigned long表示。表示。各种类型的数据所占的内存因计算机而异。在各种类型的数据所占的内存因计算机而异。在PC上,各种类上,各种类型的数据所占的位数和数的范围如型的数据所占的位数和数的范围如表表2-4所示。所示。上一页返回下一页任务任务2 C语言的基本数据类型语言的基本数据类型int类型表示数的范围是类型表示数的范围是:long类型表示数的范围是类型表示数的范围是:如果在如果在int或或long前面加上关键字前面加上关键字unsigned,则定义的是,则定义的是无符号的整型数。无符号的整型数。上一页返回下一页任务任务2 C语言的基本数据类型语言的基本数据类型1.整型常量整型常量整型常量就是整常数。整型常量就是整常数。在在C语言中,使用的整常数有八进制、十六进制和十进制三种。语言中,使用的整常数有八进制、十六进制和十进制三种。(1)十进制整常数十进制整常数十进制整常数没有前缀,其数码为十进制整常数没有前缀,其数码为09(2)八进制整常数八进制整常数八进制整常数必须以八进制整常数必须以0开头,即以开头,即以0作为八进制数的前缀。数作为八进制数的前缀。数码取值为码取值为07。八进制数通常是无符号数。八进制数通常是无符号数。上一页返回下一页任务任务2 C语言的基本数据类型语言的基本数据类型(3)十六进制整常数十六进制整常数十十六六进进制制整整常常数数的的前前缀缀为为0X或或0 x。其其数数码码取取值值为为09、AF或或af。十六进制数通常是无符号数。十六进制数通常是无符号数。2.整型变量整型变量整型变量中存放的是整数,以二进制数据形式存放。根据变整型变量中存放的是整数,以二进制数据形式存放。根据变量存储单元最高位是否作为符号位,分为有符号整型量存储单元最高位是否作为符号位,分为有符号整型(signed)和无符号整型和无符号整型(unsigned)。有符号整型可以表。有符号整型可以表示示0、正数和负数,而无符号整型只能表示、正数和负数,而无符号整型只能表示0和正数,但表示和正数,但表示正数的范围扩大了一倍。常用的整型变量有基本型正数的范围扩大了一倍。常用的整型变量有基本型(int.,短短整型整型(short int)和长整型和长整型(long int),它们又各分为有符,它们又各分为有符号型和无符号型,如号型和无符号型,如表表2-5所示。所示。上一页返回下一页任务任务2 C语言的基本数据类型语言的基本数据类型2.2.3 浮点型数据浮点型数据 C语言中的主要浮点类型分为单精度和双精度浮点型两种,语言中的主要浮点类型分为单精度和双精度浮点型两种,以双精度为主。整数也可以用浮点数来表示,但必须在整数以双精度为主。整数也可以用浮点数来表示,但必须在整数的后面加一个小数点。注意,在数据中,的后面加一个小数点。注意,在数据中,1和和1.0是两种不是两种不同类型的数,同类型的数,1是整数,而是整数,而1.0则是双精度浮点数。则是双精度浮点数。在该例中,在该例中,x为单精度变量,为单精度变量,y为双精度变量,第三行赋给变为双精度变量,第三行赋给变量量x的值为的值为9位,超过了其有效数位范围,最后两位丢失,但位,超过了其有效数位范围,最后两位丢失,但进行了四舍五入,进行了四舍五入,x的实际值是的实际值是123456.8。而。而v的有效数的有效数位是位是15位,所以能够接收上面所有的位,所以能够接收上面所有的9位数字。位数字。上一页返回下一页任务任务2 C语言的基本数据类型语言的基本数据类型2.2.4 字符型数据字符型数据整型和浮点型是数值型数据的类型,但在解决实际问题时并整型和浮点型是数值型数据的类型,但在解决实际问题时并不是所有问题都是数值型,更多情况是处理文本信息,那么不是所有问题都是数值型,更多情况是处理文本信息,那么要处理这样的问题就要借助于字符型数据。字符型数据可以要处理这样的问题就要借助于字符型数据。字符型数据可以用来表征英文字母、各种符号、汉字。用来表征英文字母、各种符号、汉字。1个字符型数据只占用个字符型数据只占用1个字节个字节(8位位)的内存单元,而一个字节能表示整数的范围是的内存单元,而一个字节能表示整数的范围是0 255 1.字符常量字符常量字符常数是用单引号引起来的单个字符,如字符常数是用单引号引起来的单个字符,如a,b,$,9,等等。经常使用的这类字符如等等。经常使用的这类字符如表表2-6所示。所示。上一页返回下一页任务任务2 C语言的基本数据类型语言的基本数据类型这种扩展表示法看上去好像两个字符,但实际上只起一个字这种扩展表示法看上去好像两个字符,但实际上只起一个字符的作用,如符的作用,如0和和0是不同的,是不同的,0表示的是字符表示的是字符0,而而0表示的是字符表示的是字符NULL,即,即ASCII码值为码值为0的控制字的控制字符,即空操作。符,即空操作。上一页返回下一页任务任务2 C语言的基本数据类型语言的基本数据类型2.字符变量及分类字符变量及分类一个字符变量用来存放一个字符,在内存中占一个字节。实一个字符变量用来存放一个字符,在内存中占一个字节。实际上,将一个字符常数赋给一个字符变量,并不是把该字符际上,将一个字符常数赋给一个字符变量,并不是把该字符本身放到内存单元中去,而是将该字符的本身放到内存单元中去,而是将该字符的ASCII代码放到存代码放到存储单元中。因此,字符型数据也可以像整型数据那样使用,储单元中。因此,字符型数据也可以像整型数据那样使用,它可以用来表示一些特定范围内的整常数。字符变量通常也它可以用来表示一些特定范围内的整常数。字符变量通常也分为两类分为两类:一般字符类型一般字符类型(char)和无符号字符类型和无符号字符类型(unsigned char)。运行在。运行在IBM-PC及其兼容机上的字符及其兼容机上的字符数据的字节长度和取值如数据的字节长度和取值如表表2-7所示。所示。上一页返回下一页任务任务2 C语言的基本数据类型语言的基本数据类型上一页返回下一页任务任务2 C语言的基本数据类型语言的基本数据类型上一页返回下一页任务任务2 C语言的基本数据类型语言的基本数据类型3.字符串字符串在使用字符型数据时,经常遇到的不是单个字符,而是字符在使用字符型数据时,经常遇到的不是单个字符,而是字符串。在串。在C语言中,字符串常量用双引号括起来,如语言中,字符串常量用双引号括起来,如“BASIC”,“How are your”等。不要把字符常量与字符串等。不要把字符常量与字符串常量混淆起来。例如,我们定义常量混淆起来。例如,我们定义c为字符变量,那么,为字符变量,那么,”c=a”;是合法的赋值语句,而是合法的赋值语句,而”c=“a”是非法的。是非法的。该语句在编译时,将留出该语句在编译时,将留出6个字符的空间,但它只能存储个字符的空间,但它只能存储5个有效的字符,即从个有效的字符,即从str0存到存到str4,str5要放一个要放一个字符串的终止符字符串的终止符0。0是一个空操作字符,系统本身自是一个空操作字符,系统本身自动加上的,输出时只作判断字符串结束的标志,并不显示。动加上的,输出时只作判断字符串结束的标志,并不显示。上一页返回下一页任务任务2 C语言的基本数据类型语言的基本数据类型上一页返回下一页任务任务2 C语言的基本数据类型语言的基本数据类型字符型指针变量可按下列形式定义字符型指针变量可按下列形式定义:char*a;上一页返回下一页任务任务2 C语言的基本数据类型语言的基本数据类型2.2.5 基本数据类型的转换基本数据类型的转换1.自动转换自动转换整型、单精度型、双精度型、字符型数据可以混合运算,但整型、单精度型、双精度型、字符型数据可以混合运算,但在运算时,不同类型的数据须先转换成同一类型,转换规则在运算时,不同类型的数据须先转换成同一类型,转换规则如如图图2-3所示。所示。上一页返回下一页任务任务2 C语言的基本数据类型语言的基本数据类型2.强制转换强制转换当自动转换不能实现时,可以用强制类型转换,其一般形式当自动转换不能实现时,可以用强制类型转换,其一般形式为为:(类型名类型名)(表达式表达式)功能功能:把表达式结果的类型转换为圆括号中的数据类型。注意,把表达式结果的类型转换为圆括号中的数据类型。注意,类型名必须用括号类型名必须用括号()括起来。表达式一般用括号括起来。表达式一般用括号()括起来,括起来,但单个变量可以不用括号括起来。如但单个变量可以不用括号括起来。如:上一页返回任务任务3 C语言的运算符和表达式语言的运算符和表达式2.3.1 算术运算符和算术表达式算术运算符和算术表达式1.算术运算符算术运算符C语言的运算符范围很宽,把除了控制语句和输入输出以外的语言的运算符范围很宽,把除了控制语句和输入输出以外的几乎所有的基本操作都作为运算符处理,例如将符号几乎所有的基本操作都作为运算符处理,例如将符号“=”作作为赋值运算符,方括号作为下标运算符等。为赋值运算符,方括号作为下标运算符等。C的运算符有以下的运算符有以下几类。几类。返回下一页任务任务3 C语言的运算符和表达式语言的运算符和表达式基本的算术运算符见基本的算术运算符见表表2-8所示。所示。注意以下几点。注意以下几点。(1)两个整数相除结果仍旧是整数,若除不尽,则舍去小数,两个整数相除结果仍旧是整数,若除不尽,则舍去小数,例如例如3/2结果是结果是1,不是,不是1.5,也不是,也不是2。又如。又如1/2结果是结果是0,想要得到,想要得到0.5的结果,可以用的结果,可以用1.0/2 0(2)%”运算符要求两侧数据必须是整型,运算结果是两数运算符要求两侧数据必须是整型,运算结果是两数相除后的余数。例如相除后的余数。例如3%2结果是结果是1。如果参加算术运算的。如果参加算术运算的两个数中有一个是实数,则运算结果为两个数中有一个是实数,则运算结果为double型。型。上一页返回下一页任务任务3 C语言的运算符和表达式语言的运算符和表达式2.算术表达式算术表达式用算术运算符将操作对象连接起来的表达式称为算术表达式。用算术运算符将操作对象连接起来的表达式称为算术表达式。例如,例如,(x+y)*8/2等是算术表达式。等是算术表达式。上一页返回下一页任务任务3 C语言的运算符和表达式语言的运算符和表达式上一页返回下一页任务任务3 C语言的运算符和表达式语言的运算符和表达式3.算术表达式和运算符的优先级与结合性算术表达式和运算符的优先级与结合性用算术运算符和括号将运算对象用算术运算符和括号将运算对象(也称操作数也称操作数)连接起来的、符合连接起来的、符合C语言语法规则的式子称为语言语法规则的式子称为C算术表达式。运算对象包括常量、算术表达式。运算对象包括常量、变量、函数等。变量、函数等。C语言规定了运算符的优先级和结合性。在表达式求值时,先按语言规定了运算符的优先级和结合性。在表达式求值时,先按运算符的优先级别高低次序执行,例如先乘除后加减。运算符的优先级别高低次序执行,例如先乘除后加减。C规定了各种运算符的结合方向规定了各种运算符的结合方向(结合性结合性),算术运算符的结合方,算术运算符的结合方向为向为“自左至右自左至右”,即先左后右。,即先左后右。“自左至右的结合方向自左至右的结合方向”又称又称“左结合性左结合性”,即运算对象先与左面的运算符结合。以后可以看,即运算对象先与左面的运算符结合。以后可以看到有些运算符的结合方向为到有些运算符的结合方向为“自右至左自右至左”,即右结合性,即右结合性(例如赋例如赋值运算符值运算符)。如果一个运算符的两侧的数据类型不同,则会先自。如果一个运算符的两侧的数据类型不同,则会先自动进行类型转换,使二者具有同一种类型,然后再进行运算。动进行类型转换,使二者具有同一种类型,然后再进行运算。上一页返回下一页任务任务3 C语言的运算符和表达式语言的运算符和表达式此强调一下自增、自减运算符的作用和用法。自增、自减运此强调一下自增、自减运算符的作用和用法。自增、自减运算符的作用是使变量的值增算符的作用是使变量的值增1或减或减1,主要有以下几形式。,主要有以下几形式。上一页返回下一页任务任务3 C语言的运算符和表达式语言的运算符和表达式注意以下注意以下2点。点。(1)自增运算符自增运算符(+)和自减运算符和自减运算符(-),只能用于变量,只能用于变量,而不能用于常量和表达式,如而不能用于常量和表达式,如5+和和(a+b)+都是不合法都是不合法的。的。+和和-结合方向是结合方向是“自右至左自右至左”。(2)自增自增(减减)运算符常用在循环语句中,使循环变量自动加运算符常用在循环语句中,使循环变量自动加(减减)1,也可用于指针变量,使指针指向下一个地址。,也可用于指针变量,使指针指向下一个地址。上一页返回下一页任务任务3 C语言的运算符和表达式语言的运算符和表达式2.3.2 关系运算符和关系表达式关系运算符和关系表达式1.关系运算符关系运算符关系运算符有关系运算符有“”、“”、“=”和和“=”和和“!=”,主要是比较两个操作数的大小是否相等。关系运算符的,主要是比较两个操作数的大小是否相等。关系运算符的优先级低于算术运算符,高于赋值运算符。优先级低于算术运算符,高于赋值运算符。2.关系表达式关系表达式用关系运算符将两个表达式用关系运算符将两个表达式(可以是算术表达式、关系表达式、可以是算术表达式、关系表达式、逻辑表达式、赋值表达式、字符表达式逻辑表达式、赋值表达式、字符表达式)连接起来的式子,称连接起来的式子,称为关系表达式。为关系表达式。上一页返回下一页任务任务3 C语言的运算符和表达式语言的运算符和表达式2.3.3 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式1.逻辑运算符逻辑运算符逻辑运算符有三种逻辑运算符有三种:逻辑非逻辑非“!”、逻辑与、逻辑与“&”和逻辑或和逻辑或“|”,优先级从高到低为,优先级从高到低为“!”、“&”、“|”。其中。其中“&”和和“|”的优先级低于关系运算符,的优先级低于关系运算符,“!”的优先级高的优先级高于算术运算符。于算术运算符。逻辑运算的真值表如逻辑运算的真值表如表表2-9所示。所示。上一页返回下一页任务任务3 C语言的运算符和表达式语言的运算符和表达式2.逻辑表达式逻辑表达式 用逻辑运算符将关系表达式或逻辑量接起来的式子就是逻辑用逻辑运算符将关系表达式或逻辑量接起来的式子就是逻辑 表达式,逻辑表达式的结果值应该是一个逻辑量表达式,逻辑表达式的结果值应该是一个逻辑量“真真”或或“假假”。C语言编译系统在给出逻辑运算结果时,以数值语言编译系统在给出逻辑运算结果时,以数值1代表代表“真真”,以,以0代表代表“假假”,但在判断一个量是否为,但在判断一个量是否为“真真”时,时,以以0代表代表“假假”,以非,以非0代表代表“真真”。即作为条件时将一个非。即作为条件时将一个非零的数值认作为零的数值认作为“真真”;作为结果时用数值作为结果时用数值“1”作为作为“真真”。举例如下。举例如下。上一页返回下一页任务任务3 C语言的运算符和表达式语言的运算符和表达式2.3.4 逗号运算符和逗号表达式逗号运算符和逗号表达式在在c语言中,逗号可以作为一种运算符,用逗号把多个表达式语言中,逗号可以作为一种运算符,用逗号把多个表达式连接起来形成逗号表达式。如连接起来形成逗号表达式。如:1+1,1+2。逗号表达式的。逗号表达式的一般形式为一般形式为:表达式表达式1,表达式,表达式2,.,表达式,表达式n运算时,先计算表达式运算时,先计算表达式1,然后表达式,然后表达式2,.最后计算表达最后计算表达式式n,整个逗号表达式的值是表达式,整个逗号表达式的值是表达式n的值。上例逗号表达式的值。上例逗号表达式“1+1,1+2”得值为得值为3。上一页返回下一页任务任务3 C语言的运算符和表达式语言的运算符和表达式2.3.5 条件运算符和条件表达式条件运算符和条件表达式1.条件运算符条件运算符若若if语句中,在表达式为语句中,在表达式为“真真”或或“假假”时都只执行其中一时都只执行其中一个赋值语句给同一个变量赋值,则可以用简单的条件运算符个赋值语句给同一个变量赋值,则可以用简单的条件运算符来处理。例如,若有以下来处理。例如,若有以下if语句语句:条件表达式的一般形式为条件表达式的一般形式为:表达式表达式1?表达式表达式2:表达式表达式3上一页返回下一页任务任务3 C语言的运算符和表达式语言的运算符和表达式1.条件表达式条件表达式在条件表达式中,表达式在条件表达式中,表达式1的类型可以与表达式的类型可以与表达式2和表达式和表达式3的类型不同。的类型不同。上一页返回下一页任务任务3 C语言的运算符和表达式语言的运算符和表达式上一页返回下一页任务任务3 C语言的运算符和表达式语言的运算符和表达式2.3.6 赋赋值运算符及斌值表达式值运算符及斌值表达式1.赋值运算符赋值运算符赋值符号赋值符号“=”就是赋值运算符,它的作用是将一个数据赋给就是赋值运算符,它的作用是将一个数据赋给一个变量。如一个变量。如“a=10”的作用是执行一次赋值操作的作用是执行一次赋值操作(或称赋值或称赋值运算运算),把常量,把常量10赋给变量赋给变量a。也可以将一个表达式的值赋给。也可以将一个表达式的值赋给一个变量,如一个变量,如a=3*4-1,该操作执行后,该操作执行后a的值为的值为11。2.复合赋值运算符复合赋值运算符在赋值运算符在赋值运算符“=”之前加上其他运算符,可以构成复合赋值之前加上其他运算符,可以构成复合赋值运算符。如果在运算符。如果在“=”前加上一个前加上一个“+”运算符就成了复合运运算符就成了复合运算符算符“+=”。例如。例如:上一页返回下一页任务任务3 C语言的运算符和表达式语言的运算符和表达式注意以下几个问题。注意以下几个问题。(1)如果赋值号右边是包含若干项的表达式,则相当于它有如果赋值号右边是包含若干项的表达式,则相当于它有括号,例如,括号,例如,b*=c+6等价于等价于b=b*(c+6)。(2)凡是二元凡是二元(二目二目)运算符,都可以与赋值运算符一起组合运算符,都可以与赋值运算符一起组合成复合赋值运算符。成复合赋值运算符。(3)C语言采用这种复合运算符,一是为了简化程序,使程序语言采用这种复合运算符,一是为了简化程序,使程序精炼,二是为了提高编译效率。精炼,二是为了提高编译效率。上一页返回下一页任务任务3 C语言的运算符和表达式语言的运算符和表达式3.赋值表达式赋值表达式由赋值运算符将一个变量和一个表达式连接起来的式子称为由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式赋值表达式”,它的一般形式为,它的一般形式为:上一页返回任务任务4赋值语句赋值语句2.4.1 赋值语句的格式与功能赋值语句的格式与功能赋值语句是赋值语句是c语言中最基本的计算成分,它是由赋值表达式加语言中最基本的计算成分,它是由赋值表达式加上分号构成的表达式语句。赋值语句最简单的形式是上分号构成的表达式语句。赋值语句最简单的形式是:变量变量=表达式表达式;它的意义是将赋值运算符右侧的它的意义是将赋值运算符右侧的“表达式表达式”的值赋给左侧的的值赋给左侧的变量。变量。赋值表达式也可以包含复合的赋值运算符,若赋值表达式也可以包含复合的赋值运算符,若a初值为初值为15,表达式表达式a+=a-=a*a的值为的值为-420。该表达式的求解步骤如。该表达式的求解步骤如下。下。返回下一页任务任务4赋值语句赋值语句另外,由于另外,由于C语言中还有一些复合赋值运算符语言中还有一些复合赋值运算符:算术赋值运算算术赋值运算符、位操作赋值运算符以及自增符、位操作赋值运算符以及自增(加加1)运算符运算符+,自减,自减(减减1)运算符运算符-,因此,下列语句均为赋值语句,它们均可以作,因此,下列语句均为赋值语句,它们均可以作为一个单独的语句在程序中出现。为一个单独的语句在程序中出现。上一页返回下一页任务任务4赋值语句赋值语句2.4.2 赋值语句中的类型转换赋值语句中的类型转换当赋值语句当赋值语句(或赋值运算表达式或赋值运算表达式)中,中,“=”左边变量与右边表左边变量与右边表达式的数据类型不一致时,达式的数据类型不一致时,c编译系统会自动实现数据类型的编译系统会自动实现数据类型的转换,转换的原则是,将赋值号右边的表达式值的类型转换转换,转换的原则是,将赋值号右边的表达式值的类型转换成与左边变量相同的类型后再赋值。例如成与左边变量相同的类型后再赋值。例如:上一页返回下一页任务任务4赋值语句赋值语句上一页返回任务任务5数据的输入数据的输入2.5.1 scanf函数函数scanf函数称为格式输入函数,即按用户指定的格式从键盘函数称为格式输入函数,即按用户指定的格式从键盘把数据输入到指定的变量之中。把数据输入到指定的变量之中。1.scanf函数的一般形式函数的一般形式scanf函数是一个标准库函数,它的函数原型在头文件函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。与中。与printf函数相同,函数相同,C语言也允许在使用语言也允许在使用scanf函数之前不必包含函数之前不必包含stdio.h文件。文件。scanf函数的一般函数的一般形式为形式为:返回下一页任务任务5数据的输入数据的输入应该把变量的值和变量的地址这两个不同的概念区别开来。应该把变量的值和变量的地址这两个不同的概念区别开来。变量的地址是变量的地址是C编译系统分配的,用户不必关心具体的地址是编译系统分配的,用户不必关心具体的地址是多少。变量的地址和变量值的关系如下多少。变量的地址和变量值的关系如下:如在程序中有赋值语如在程序中有赋值语句句a=67,则,则a为变量名,为变量名,67是变量的值,是变量的值,&a是变量是变量a的的地址。地址。注意,在赋值表达式中给变量赋值,赋值号左边是变量名,注意,在赋值表达式中给变量赋值,赋值号左边是变量名,不能写地址,而不能写地址,而scanf函数在本质上也是给变量赋值,但要函数在本质上也是给变量赋值,但要求写变量的地址,如求写变量的地址,如&a。这两者在形式上是不同的。这两者在形式上是不同的。&是一是一个取地址运算符,个取地址运算符,&a是一个表达式,其功能是求变量的地址。是一个表达式,其功能是求变量的地址。下面看一个简单的例题。下面看一个简单的例题。上一页返回下一页任务任务5数据的输入数据的输入上一页返回下一页任务任务5数据的输入数据的输入2.格式字符串格式字符串格式字符串的一般形式为格式字符串的一般形式为:其中,有方括号其中,有方括号的项为任选项。各项的意义如下。的项为任选项。各项的意义如下。类型类型:表示输入数据的类型,其格式符和意义如表示输入数据的类型,其格式符和意义如表表2-10所示。所示。*符符:用以表示该输入项读入后不赋予相应的变量,即跳过该用以表示该输入项读入后不赋予相应的变量,即跳过该输入值。输入值。宽度宽度:用十进制整数指定输入的宽度用十进制整数指定输入的宽度(即字符数即字符数)。长度长度:长度格式符为长度格式符为1和和h,1表示输入长整型数据表示输入长整型数据(如如%1d)和双精度浮点数和双精度浮点数(如如%1f)。h表示输入短整型数据。表示输入短整型数据。上一页返回下一页任务任务5数据的输入数据的输入3.使用说明使用说明(1)scanf函函数数中中没没有有精精度度控控制制.scanf(“%5.2f”,&a);是非法的。不能企图用此语句输入小数为是非法的。不能企图用此语句输入小数为2位的实数。位的实数。(2)scanf中要求给出变量地址,如果给出变量名则会出错。中要求给出变量地址,如果给出变量名则会出错。(3)在输入多个数值数据时,若格式控制串中没有非格式字在输入多个数值数据时,若格式控制串中没有非格式字符做输入数据之间的间隔,则可用空格、符做输入数据之间的间隔,则可用空格、Tab或或Enter键做键做间隔。间隔。(4)在输入字符数据时,若格式控制串中无非格式字符,则在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。认为所有输入的字符均为有效字符。上一页返回下一页任务任务5数据的输入数据的输入上一页返回下一页任务任务5数据的输入数据的输入(5)如果格式控制串中有非格式字符,则输入时也要输入该如果格式控制串中有非格式字符,则输入时也要输入该非格式字符。非格式字符。(6)当输入的数据与输出的类型不一致时,虽然编译能够通当输入的数据与输出的类型不一致时,虽然编译能够通过,但结果不正确。过,但结果不正确。上一页返回下一页任务任务5数据的输入数据的输入上一页返回下一页任务任务5数据的输入数据的输入上一页返回下一页任务任务5数据的输入数据的输入2.5.2 getchar函数函数getcha:函数的功能是从键盘上输入一个字符。其一般形式函数的功能是从键盘上输入一个字符。其一般形式为为:getchai();上一页返回下一页任务任务5数据的输入数据的输入使用使用getcha:函数还应注意以下几个问题。函数还应注意以下几个问题。(1)getcha:函数只能接收单个字符,输入数字也按字符处函数只能接收单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符。理。输入多于一个字符时,只接收第一个字符。(2)使用本函数前必须包含文件使用本函数前必须包含文件”stdio.h“。(3)在在TC屏幕下运行含本函数程序时,将退出屏幕下运行含本函数程序时,将退出TC屏幕,进入屏幕,进入用户屏幕等待用户输入用户屏幕等待用户输入;输入完毕再返回输入完毕再返回TC屏幕。屏幕。上一页返回任务任务6数据的输出数据的输出2.6.1 printf函数调用的一般形式函数调用的一般形式printf函数是一个标准库函数,它的函数原型在头文件函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用中。但作为一个特例,不要求在使用printf函函数之前必须包含数之前必须包含stdio.h文件。文件。printf函数调用的一般形式函数调用的一般形式为为:上一页返回下一页任务任务6数据的输出数据的输出2.6.2 有关说明有关说明(1)格式控制字符串可以包括格式控制字符串可以包括:“格式转换说明符格式转换说明符”,用于,用于规定相应输出项内容的输出格式,格式字符串是以规定相应输出项内容的输出格式,格式字符串是以%开头的开头的字符串,在字符串,在%后面跟有各种格式字符,以说明输出数据的类后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如型、形式、长度、小数位数等。如“%d”表示按十进制整型表示按十进制整型输出,输出,”%1d”表示按十进制长整型输出,表示按十进制长整型输出,”%c”表示按字表示按字符型输出符型输出;“转义字符转义字符”,用于输出所代表的控制代码或特,用于输出所代表的控制代码或特殊字符殊字符;“普通字符普通字符”,要求原样输出的字符,在显示中起,要求原样输出的字符,在显示中起提示作用。提示作用。(2)输出表列中给出了各个输出项,可以是变量和表达式,输出表列中给出了各个输出项,可以是变量和表达式,输出项之间用逗号分隔。要求格式字符串和各输出项在数量输出项之间用逗号分隔。要求格式字符串和各输出项在数量和类型上应该一一对应。和类型上应该一一对应。上一页返回下一页任务任务6数据的输出数据的输出上一页返回下一页任务任务6数据的输出数据的输出2.6.3 格式转换说明符格式转换说明符一般情况下,每个格式说明都是以字符一般情况下,每个格式说明都是以字符%开始,以转换字符结开始,以转换字符结束的,在束的,在%和转换字符之间可以有以下符号或数据。和转换字符之间可以有以下符号或数据。(1)减号减号-:它表示输出项在其数据宽度内左对齐,无减号则为右它表示输出项在其数据宽度内左对齐,无减号则为右对齐。对齐。(2)数字数字0:对数值型数据,在其左边有对数值型数据,在其左边有0而不是用空格来填充,而不是用空格来填充,使之达到指定或默认的数据宽度。使之达到指定或默认的数据宽度。上一页返回下一页任务任务6数据的输出数据的输出(3)正整数正整数m(数据宽度数据宽度):它指出最小的数据宽度,输出的数它指出最小的数据宽度,输出的数据至少以这个宽度输出。若宽度不够实际数据输出,则以实据至少以这个宽度输出。若宽度不够实际数据输出,则以实际宽度为准。若输出的数据项,其字符数比数据宽度小,就际宽度为准。若输出的数据项,其字符数比数据宽度小,就在左边添加字符在左边添加字符(若给出左对齐的标志符,则在右边添加字符若给出左对齐的标志符,则在右边添加字符),使之达到数据宽度。通常添加的字符为空格,若格式说明,使之达到数据宽度。通常添加的字符为空格,若格式说明中有前置中有前置0,且输出的是数值型数据,则添加的字符为,且输出的是数值型数据,则添加的字符为0。(4)英文句号英文句