第02章数据类型~输入输出精选文档.ppt
第02章数据类型输入输出本讲稿第一页,共六十六页第第章章2 2数据类型、运算符、表达式、赋值数据类型、运算符、表达式、赋值语句、输入输出语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 变量初始化和赋值语句 数据输出 数据输入 程序实例【例2.1】C语言的一个简单例子。#include main()int a,b,sum;printf(”Enter two numbers:”);scanf(”%d%d”,&a,&b);sum=a+b+6;printf(”The sum is%dn”,sum);本讲稿第二页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 其中:int是关键词,sum是标识符,6是数字常量,“Enter two numbers”是字符串常量,+是运算符,(是分隔符。本讲稿第三页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 关键字:auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 注:(1)关键字在一门语言中具有特殊含义,用户不能另作它用。(2)准关键字:也有固定含义,如:库函数名、预处理命令,用户可作它用,但将失去原先含义,不建议这么做。本讲稿第四页,共六十六页第第章章2 2数据类型、运算符、表达式、赋值数据类型、运算符、表达式、赋值语句、输入输出语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 标识符:是用户自行定义的符号,用来标识常量、变量、函数、标号等。命名规则:命名规则:命名规则:命名规则:由字母或下划线开头,后跟零个或多个字母、下划线和数字的符号序列。1、不能是、不能是C的关键字的关键字2、第一个字符必须是字母或下划线、第一个字符必须是字母或下划线3、中间不能有空格。、中间不能有空格。4、长度一般不超过、长度一般不超过32个字符。个字符。5、大小写敏感。、大小写敏感。6、标识符命名应该遵循见名知义的原则、标识符命名应该遵循见名知义的原则。MyAge,myage*所有标识符必须先定义/说明而后使用 本讲稿第五页,共六十六页第第章章2 2数据类型、运算符、表达式、赋值数据类型、运算符、表达式、赋值语句、输入输出语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 分隔符:()*.:=;#分隔符用于分隔各种词法记号。本讲稿第六页,共六十六页第第章章2 2数据类型、运算符、表达式、赋值数据类型、运算符、表达式、赋值语句、输入输出语句、输入输出2.2.1 整型2.2.2 浮点型2.2 2.2 数据类型数据类型2.2.3 字符型C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 本讲稿第七页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 1.数据结构:数据的组织形式。不同语言所允许定义和使用的数据结构是不同的。2.处理同一类问题,如果数据结构不同,算法也会不同,应当综合考虑算法和数据结构。3.C语言的数据结构是以数据类型形式出现的。4.C语言的数据类型:本讲稿第八页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 本讲稿第九页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 基本型基本型基本型基本型:int短整型短整型短整型短整型:short int或short长整型长整型长整型长整型:long int或long无符号无符号无符号无符号:无符号型的整数必须是正数或零。无符号型又可细分为:无符号整型:unsigned int 无符号短整型:unsigned short 无符号长整型:unsigned long本讲稿第十页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 数据类型所占位数数的范围 int short long unsigned unsigned short unsigned long161632161632-3276832767-3276832767-2147483648 2147483648065 535065 53504 294 967 295整型的表示范围:整型的表示范围:整型的表示范围:整型的表示范围:本讲稿第十一页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 表示实型数据单精度:单精度:单精度:单精度:float双精度:双精度:双精度:双精度:double长双精度:长双精度:长双精度:长双精度:long double浮点型的表示范围:浮点型的表示范围:浮点型的表示范围:浮点型的表示范围:数据类型 有效数字 所占位数 数的绝对值范围 float 673210-381038double15166410-30810308本讲稿第十二页,共六十六页第第章章2 2数据类型、运算符、表达式、赋值数据类型、运算符、表达式、赋值语句、输入输出语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 字符型:字符型:字符型:字符型:char 一般用8位来存放一个字符 存放的是该字符的ASCII码值(即整数)可把字符型看作一种特殊的整型,事实上,字符型数据和整型数据之间经常混合使用。本讲稿第十三页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出2.3.1 常量2.3.2 变量2.3 2.3 常量和变量常量和变量C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 本讲稿第十四页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 常量:指在程序运行过程中,其值不能被改变的量。整型常量:由一个或多个数字组成,可以带正负号。其中以数字0开头的为八进制数,以0 x或0X开头的为十六进制数,否则就是十进制数。下列常量都是合法常量:32767 -314 0 0516 017 0 x1c0d 0 x4600在整型常数后跟有l或L时,表示该整型常量是长整型常量。49876L 0X4F8DAL 本讲稿第十五页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 整型数据的溢出 不同的数据类型具有不同的取值范围,当在计算中超出其取值范围时叫溢出。C语言中,当发生溢出时,系统并不报错,当超过上界时,从下界开始计数,当超出下界时,从上界开始往下计数。本讲稿第十六页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 浮点常量:表示有十进制形式和指数形式两种下列常量都是合法的浮点常量:3.14 -9.568 1.5E5 2.9E-7注意:(1)指数形式的浮点常量E或e前面必须有数字,E后面必须为整数。因此,E8、6E7.8都不是合法的浮点常量。(2)规范化的指数形式:e之前的小数部分中,小数点左边有且只有一位非0数字,计算机输出的指数形式的实数均为规范化的指数形式。本讲稿第十七页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 字符型常量:用单引号括起来的单一字符如S、s,它们分别代表大小写字母s。一个字符常量的值就是该字符的ASCII码值,如2的值就是50。本讲稿第十八页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 特殊形式的字符型常量(转义字符)030代表ASCII码为8进制数30的字符,即,而 x16代表ASCII码值为16进制16的字符,即。字 符 形 式含 义ntvbrfxhhddd换行横向跳格(Tab)竖向跳格退格回车换行但不回车反斜杠单引号1到2位16进制数所代表的字符1到3位8进制数所代表的字符本讲稿第十九页,共六十六页第第章章2 2数据类型、运算符、表达式、赋值数据类型、运算符、表达式、赋值语句、输入输出语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 字符串常量:双引号括起来的零个、一个或 多个字符序列,如”I am a student”。编译程序自动地在每一个字符串末尾添 加串结束符 0,上述字符在内存中如下:I amastudent0本讲稿第二十页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 变量:其值可以改变,用标识符来标识,在使用之前必须加以说明。变量的特性:变量的特性:变量的特性:变量的特性:每个变量由标识符标识,变量按变量名存取。每个变量都有自己的类型。在任一时刻,一个变量只有唯一确定的值,当一个变量被重新赋值后,就用新值代替了内存单元中的旧值。变量中的值可通过变量名多次被引用。变量说明的目的是为变量分配存储单元,并规定存储数据的类型,以保证程序中变量名使用得正确,检查该变量所进行的运算是否合法。本讲稿第二十一页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 变量示意图:变量示意图:125a变量名变量值存储单元本讲稿第二十二页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 变量的说明形式:变量的说明形式:变量的说明形式:变量的说明形式:,;例如:int i;/*i为整型变量*/short c,d,e;/*c,d,e为短整型*/unsigned long p,g;/*p,g为无符号长整型*/float x,y;/*x,y为单精度型*/double z;/*z为双精度型*/char ch1,ch2;/*ch1,ch2为字符型*/本讲稿第二十三页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出2.4.1 算术运算符和算术表达式2.4.2 关系运算符和关系表达式2.4 2.4 运算符和表达式运算符和表达式2.4.3 逻辑运算符和逻辑表达式2.4.4 赋值运算符和赋值表达式2.4.5 类型转换C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 本讲稿第二十四页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 算术运算符:包括+、-、*、/、%、+、-+(加或正号)(加或正号)(减或负号)(减或负号)*(乘)(乘)/(除)(除)%(求余)(求余)v两个整数相除的结果为整数(舍去小数部分),两个整数相除的结果为整数(舍去小数部分),若除数或被除数中有一个为负值,则舍入方向在若除数或被除数中有一个为负值,则舍入方向在Turbo C中为向零取整。中为向零取整。v对求余对求余%运算,两侧均应为整型数。若除数或被除运算,两侧均应为整型数。若除数或被除数中有一个为负值,或两个均为负值,则其结果为它数中有一个为负值,或两个均为负值,则其结果为它们的绝对值相除所得余数,符号取被除数的符号。们的绝对值相除所得余数,符号取被除数的符号。v算术运算(除算术运算(除%运算)的两个数中有一个为实运算)的两个数中有一个为实数,则结果为数,则结果为double型。型。本讲稿第二十五页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 如:6/4=1;6/4.0=1.5;6%4=2;算术表达式:用算术运算符和括号将运算对象连接起算术表达式:用算术运算符和括号将运算对象连接起来,符合来,符合C语法规则的式子。语法规则的式子。优先级:优先级:高高 低低+(正正)-(负负)*/%+-本讲稿第二十六页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 下面是由算术运算符构成的算术表达式:下面是由算术运算符构成的算术表达式:2*3.14*r(5+6)/2.0-u*v+p%q注:注:A)同一级运算符按结合性(结合方向)处理。)同一级运算符按结合性(结合方向)处理。所谓结合性,就是指运算符是先与左边的运所谓结合性,就是指运算符是先与左边的运算分量运算,还是先与右边的运算分量运算。算分量运算,还是先与右边的运算分量运算。前者称为左结合,后者称为右结合。前者称为左结合,后者称为右结合。B)对算术运算符结合方向为从左至右。)对算术运算符结合方向为从左至右。C)若出现括号,括号内优先处理。)若出现括号,括号内优先处理。D)C语言中的所有运算符的优先级和结合性语言中的所有运算符的优先级和结合性见附录见附录2。本讲稿第二十七页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 增一(自增)运算符增一(自增)运算符增一(自增)运算符增一(自增)运算符 +和减一(自减)运算符和减一(自减)运算符和减一(自减)运算符和减一(自减)运算符-+i,-i:在使用i之前,先使i的值增/减1i+,i-:在使用i之后,使i的值增/减1若i的值为8,则:j=+i :先使i的值加1,变为9,然后再送给j,因此,j的值为9j=i+:先将i的值送给j,这样,j的值为8,然后i值再加1,变为9。本讲稿第二十八页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 注:注:1)+、-运算符只能用于变量,而不运算符只能用于变量,而不能用于常量或表达式。能用于常量或表达式。2)+、-运算符的结合方向为自右至运算符的结合方向为自右至左。左。3)i+,+i通常用在循环语句中,使循环通常用在循环语句中,使循环变量值改变;它们作为一单独语句使用时,变量值改变;它们作为一单独语句使用时,效果是一样的。效果是一样的。本讲稿第二十九页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 关系运算符:(小于小于)(小于或等于小于或等于)(大于大于)=!=(大于或等于大于或等于)(等于等于)(不等于不等于)例:i5 ch=z i=count time!=p+q在C语言中用整型量替代了逻辑量。本讲稿第三十页,共六十六页第第章章2 2数据类型、运算符、表达式、赋值数据类型、运算符、表达式、赋值语句、输入输出语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 优先级:=!=低低=高高 注:注:v同级运算符的结合方向为自左至右。同级运算符的结合方向为自左至右。v关系运算符优先级低于算术运算符,高于赋值运算符。关系运算符优先级低于算术运算符,高于赋值运算符。例:例:c a+b c(a+b)a=bc a=(bc a=(bc)本讲稿第三十一页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 关系表达式:用关系运算符将两个表达式连接关系表达式:用关系运算符将两个表达式连接起来的式子。起来的式子。例:例:ab,a+bc+d,(a=3)(b=5)ab)(b5 的值为的值为0 6*32*7 的值为的值为1 121=1 的值为的值为1本讲稿第三十二页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 逻辑运算符:&、|、!!逻辑非(逻辑非(NOT)&逻辑与(逻辑与(AND)|逻辑或(逻辑或(OR)优先级高低 结合方向为自左至右结合方向为自左至右逻辑运算符逻辑运算符&和和|低于关系运算符;低于关系运算符;!高于算术运算符!高于算术运算符本讲稿第三十三页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 逻辑运算符的运算规则(真值表):&若左右两个操作数均为非零,则返回值 为非零,否则返回值为假。|若左右两个操作数有一个为非零,则 返回值为非零,否则返回零。!把非零操作数转换为零,而把零 操作数转换为非零。逻辑表达式:在C 语言中,参加逻辑运算的可以是关系表达式(实际参加运算的是1和0),也可以是其它量,C规定0代表假值,非0代表真值。例:ab&cd x=1|!b !(sex=M&age3&2|83)&2)|(8(4-(!0)在实际的逻辑运算中,可以不必计算每一个运算符,只有在必须计算下一个运算符才能求出表达式的值时,才计算该运算符。(原因:对|运算只要有一个操作数为真,其结果即为真,对&运算,只要有一个操作数为假,其结果即为假。)例:a&b&c 只需判断出a、b、c中有一个为假,最终结果即为假;本讲稿第三十五页,共六十六页第第章章2 2数据类型、运算符、表达式、赋值数据类型、运算符、表达式、赋值语句、输入输出语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 赋值运算符:=赋值表达式:由赋值运算符组成的表达式 一般形式为:复合运算符:在=之前加上某些特定运算符 如:+=,-=,*=,/=%=&=|=举例:i+=j+8 等价于 i=i+(j+8)x*=3 等价于 x=x*3 p%=2 等价于 p=p%2 本讲稿第三十六页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 赋值表达式的求解过程:赋值表达式的求解过程:将赋值运算符右侧的“表达式”的值赋给左侧的变量,整个赋值表达式的值就是被赋值的变量的值。例:例:a=5 (a的值为5,整个赋值表达式的值也是5)a=6*3 a=b=5 (等价于a=(b=5))注:注:v赋值表达式的结合方向为自右至左。赋值表达式可包含复合的赋值运算符。例:a+=a-=a*a (等价于a=a-a*a;a=a+a)v赋值表达式后面不能加分号,加了分号就变成了语句。本讲稿第三十七页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 条件表达式:一般形式?:含义:首先计算的值,若为非零,则表达式的值为,否则表达式的值为。举例:max=(ab)?a:b /*将a、b两数中的较大值送给max*/本讲稿第三十八页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 逗号运算符:,逗号表达式:一般形式为:,逗号表达式的求解过程:先求解表达式1,再求解表达式2,整个逗号表达式的值是表达式2的值。如:a=3*8,a+2,先求a=3*8,得24,然后求解a+2,得26,故表达式的值为26。本讲稿第三十九页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 v逗号表达式的优先级为最低,结合方向为自左逗号表达式的优先级为最低,结合方向为自左至右。至右。例:若例:若a原值为原值为4,a=3*5,a*4 (逗号表达式的值为(逗号表达式的值为60,a=15)a=(3*5,a*4)(逗号表达式的值为逗号表达式的值为16,a=16)v逗号表达式的目的是分别得到各个表达式的值。逗号表达式的目的是分别得到各个表达式的值。v逗号表达式的更一般形式:表达式逗号表达式的更一般形式:表达式1,表达式,表达式2,表达式,表达式3,求解过程为自左至右顺序求解各个表达求解过程为自左至右顺序求解各个表达式的值,整个逗号表达式的值是最后一个表达式的值,整个逗号表达式的值是最后一个表达式的值。式的值。本讲稿第四十页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 整型、字符型、实型数据之间可整型、字符型、实型数据之间可以混合运算,在进行运算之前,不同以混合运算,在进行运算之前,不同类型的数据要先转换成同一类型,类类型的数据要先转换成同一类型,类型转换由系统自动进行。型转换由系统自动进行。本讲稿第四十一页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 转换规则:double float 高高longunsigned 低低int char,short 表示必定的转换 表示运算对象不同类型时的转换本讲稿第四十二页,共六十六页第第章章2 2数据类型、运算符、表达式、赋值数据类型、运算符、表达式、赋值语句、输入输出语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 类型自动转换:当赋值表达式左边变量的数据类型级别高于右边表达式的级别时,仍按上述规则转换,否则,就要把右边高级别表达式的数据类型转换成左边低级别变量的数据类型。在多数情况下,系统能自动进行类型转换,但有时在特殊运算要求下或系统不能进行自动转换的情况下,必须由程序员进行强制类型转换。本讲稿第四十三页,共六十六页第第章章2 2数据类型、运算符、表达式、赋值数据类型、运算符、表达式、赋值语句、输入输出语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 强制类型转换:其一般形式是:()例如:(float)i (int)(f1-f2)说明:如 i 是整型,则(float)i 是 float型,但i 仍保留为整型。本讲稿第四十四页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 注:注:强制类型转换并不改变变量原来的数据强制类型转换并不改变变量原来的数据类型(系统产生一个中间变量)类型(系统产生一个中间变量)强制类型转换主要用在系统不能进行自动类强制类型转换主要用在系统不能进行自动类型转换时。型转换时。例:int x=9,y=4;x/y 与 x/(float)y 的值不同 强制类型转换运算符优先级高于算术运算符。强制类型转换运算符优先级高于算术运算符。本讲稿第四十五页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出2.5.1 变量初始化2.5.2 赋值语句2.5 2.5 变量初始化和赋值语句变量初始化和赋值语句C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 本讲稿第四十六页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 允许在说明变量的同时对其初始化例如:int sum=0;/*sum的类型为 整型,初始值为0*/float pi=3.1416;char c=w;也可对被说明变量的一部分初始化,如:int i,sum=0,j;本讲稿第四十七页,共六十六页第第章章2 2数据类型、运算符、表达式、赋值数据类型、运算符、表达式、赋值语句、输入输出语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 数据输出 数据输入 程序实例 变量初始化和赋值语句 赋值语句:由赋值表达式加上一个分号组成,如:sum=a+b;而 sum=a+b 则是一个赋值表达式下列语句都是赋值语句:x=0.3;y=z=-1;y=y*(z+1);注:赋值语句和赋值表达式均可为变量赋值,但多数情注:赋值语句和赋值表达式均可为变量赋值,但多数情况下,可使用赋值表达式的地方却不可以使用赋值语句。况下,可使用赋值表达式的地方却不可以使用赋值语句。本讲稿第四十八页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 变量初始化和赋值语句 数据输出 数据输入 程序实例(一)格式输出函数printf 格式:printf(控制字符串,参数1,参数2,)控制字符串:用双引号括起来的字符串 包括两种信息:1格式说明:由“%”和转换字符(又叫格式控制符)组成,作用是将输出的数据转换为指定的格式。2普通字符:即按照原样输出的字符,用于数据分隔或数据说明。本讲稿第四十九页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 变量初始化和赋值语句 数据输出 数据输入 程序实例 转换字符及其含义:d将参数以十进制数形式输出。o将参数以无正负号的八进制数形式输出。x将参数以无正负号的十六进制数形式输出。u将参数以无正负号的十进制数形式输出。c将参数以单个字符形式输出。s将参数以字符串形式输出,直到串结束符(0)或者达到精度说明的长度。e将参数以浮点数指数形式输出,小数位数由精度说明决定,缺省值为5。f将参数以浮点数小数形式输出,小数位数由精度说明决定,缺省值为6。g使用%e或%f,哪个输出宽度稍短就使用哪个,不输出小数位后面无意义的0。注:各参数用逗号分隔,可以是常量、变量、表达式,其类型和顺序都必须与格式说明一一对应。本讲稿第五十页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 变量初始化和赋值语句 数据输出 数据输入 程序实例 格式说明归纳如图:其中-、0、m、n、1都是可以缺省的。本讲稿第五十一页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 变量初始化和赋值语句 数据输出 数据输入 程序实例【例2.2】整型数据的输出。#include main()int a=12;long b=2269978;printf(a=%d,a=%6d,a=%-6d,a=%06dn,a,a,a,a);printf(b=%8ldn,b);printf(%d,%o,%x,%un,a,a,a,a);printf(n);本讲稿第五十二页,共六十六页第第章章2 2数据类型、运算符、表达式、赋值数据类型、运算符、表达式、赋值语句、输入输出语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 变量初始化和赋值语句 数据输出 数据输入 程序实例 输出结果为:a=12,a=12,a=12 ,a=000012 b=2269978 12,14,c,12 本讲稿第五十三页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 变量初始化和赋值语句 数据输出 数据输入 程序实例【例2.3】浮点数的输出。main()float x=1234.567;double y=1234.5678;printf(%f,%fn,x,y);printf(%8.3f,%10.3fn,x,y);printf(%en,x);本讲稿第五十四页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 变量初始化和赋值语句 数据输出 数据输入 程序实例【例2.4】字符的输出。#include main()char c=W;int i=87;printf(%c,%dn,c,c);printf(%d,%cn,i,i);printf(%-5c,%5cn,c,c);本讲稿第五十五页,共六十六页第第章章2 2数据类型、运算符、表达式、数据类型、运算符、表达式、赋值语句、输入输出赋值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 变量初始化和赋值语句 数据输出 数据输入 程序实例 输出结果为:W,87 87,W W ,W 本讲稿第五十六页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 变量初始化和赋值语句 数据输出 数据输入 程序实例(二)putchar函数:格式:putchar(c)功能:输出字符变量c的值 注:输出项可以是字符常量、字符型变量、整型变量或转义字符、表达式。(只能有一个)例:a=65;b=A;putchar(a);putchar(a+1);putchar(b);putchar(n);putchar(101);本讲稿第五十七页,共六十六页第第章章2 2数据类型、运算符、表达式、赋数据类型、运算符、表达式、赋值语句、输入输出值语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 变量初始化和赋值语句 数据输出 数据输入 程序实例(一)scanf函数:格式:scanf(控制字符串,参数1,参数2,)控制字符串:可包含空格、制表符或换行 1普通字符:在输入中输入与这些字符相同的字符 2格式说明:由字符%开始,到转换字符结束 控制字符串含义与控制字符串含义与printf()函数类似。该函数的功能()函数类似。该函数的功能是从终端得到数据赋予相应的参数(地址列表中的变量)。是从终端得到数据赋予相应的参数(地址列表中的变量)。例:scanf(“%d%f%u”,&a,&b,&c);本讲稿第五十八页,共六十六页第第章章2 2数据类型、运算符、表达式、赋值数据类型、运算符、表达式、赋值语句、输入输出语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 变量初始化和赋值语句 数据输出 数据输入 程序实例 注:注:(1)参数列表必须是由若干个地址组成的表列,可以是变量的地址、字符串的首地址。“&”是地址运算符,代表变量的地址。(2)格式说明格式控制含义与printf()函数类似。(3)用“%d%d%d”形式时(两个格式说明之间没有其它字符时),输入的数据可用一个或多个空格间隔,也可以用回车键、Tab键分隔。(4)格式控制中若定义了宽度,则只取宽度定义的长度的数据,下一项将紧跟取数据。(对整型、字符型有效),对实数不能规定精度(不报错,但取数据错误)(5)转换(格式)字符前可加修饰符l或h,l表示长整型或双精度型,h表示短整型。本讲稿第五十九页,共六十六页第第章章2 2数据类型、运算符、表达式、赋值数据类型、运算符、表达式、赋值语句、输入输出语句、输入输出C语言的词法单位数据类型 常量和变量 运算符和表达式 变量初始化和赋值语句 数据输出 数据输入 程序实例(6)格式控制中还有其它普通字符,则输入数据时应按顺序原样