c语言第三章解析课件.ppt

上传人(卖家):晟晟文业 文档编号:4394586 上传时间:2022-12-05 格式:PPT 页数:161 大小:1.03MB
下载 相关 举报
c语言第三章解析课件.ppt_第1页
第1页 / 共161页
c语言第三章解析课件.ppt_第2页
第2页 / 共161页
c语言第三章解析课件.ppt_第3页
第3页 / 共161页
c语言第三章解析课件.ppt_第4页
第4页 / 共161页
c语言第三章解析课件.ppt_第5页
第5页 / 共161页
点击查看更多>>
资源描述

1、3.1 顺序程序设计举例顺序程序设计举例3.2 数据的表现形式及其运算数据的表现形式及其运算3.3 C语句语句3.4 数据的输入输出数据的输入输出3.1顺序程序设计举例顺序程序设计举例 例3.1 有人用温度计测量出用华氏法表示的温度(如 F,今要求把它转换为以摄氏法表示的温度(如 C)。解题思路:找到二者间的转换公式解题思路:找到二者间的转换公式)32(95fcf代表华氏温度,c代表摄氏温度 例3.1 有人用温度计测量出用华氏法表示的温度(如 F,今要求把它转换为以摄氏法表示的温度(如 C)。算法:算法:输入f的值输出c的值)32(95fcN-S图图#include int main()flo

2、at f,c;f=64.0;c=(5.0/9)*(f-32);printf(f=%fnc=%fn,f,c);return 0;定义定义f和和c为单精度浮点型变量为单精度浮点型变量指定指定f的值的值计算计算c的值的值输出输出f和和c的的值值 例3.2 计算存款利息。有1000元,想存一年。有三种方法可选:(1)活期,年利率为r1 (2)一年期定期,年利率为r2 (3)存两次半年定期,年利率为r3 请分别计算出一年后按三种方法所得到的本息和。解题思路:确定计算本息和的公式。从数学知识可知:若存款额为p0,则:活期存款一年后本息和为:p1=p0(1+r1)一年期定期存款,一年后本息和为:p2=p0(

3、1+r2)两次半年定期存款,一年后本息和为:)23+)(123+p0(1=p3rr算法:输入p0,r1,r2,r3的值计算p1=p0(1+r1)计算p2=p0(1+r2)计算p3=p0(1+)(1+)输出p1,p2,p323r23r#include int main()float p0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3;p1=p0*(1+r1);p2=p0*(1+r2);p3=p0*(1+r3/2)*(1+r3/2);printf(”%fn%fn%fn”,p1,p2,p3);return 0;定义变量定义变量同时同时赋予初值赋予初值3.2

4、数据的表现形式及其运算数据的表现形式及其运算3.2.1 常量和变量常量和变量3.2.2 数据类型数据类型3.2.3 整型数据整型数据3.2.4 字符型数据字符型数据3.2.5 浮点型数据浮点型数据3.2.6 怎样确定常量的类型怎样确定常量的类型3.2.7 运算符和表达式运算符和表达式3.2.1 常量和变量常量和变量1.常量:在程序运行过程中,其值不能被改变的量n 整型常量:如1000,12345,0,-345n 实型常量 十进制小数形式:如0.34 -56.79 0.0 指数形式:如12.34e3(代表12.34103)n 字符常量:如?转义字符:如nn 字符串常量:如”boy”n 符号常量:

5、#define PI 3.1416#include int main()float p0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3;p1=p0*(1+r1);p2=p0*(1+r2);p3=p0*(1+r3/2)*(1+r3/2);printf(”%fn%fn%fn”,p1,p2,p3);return 0;转义字符(反斜杠码)是转义字符(反斜杠码)是C语言提供的处理一些特殊字语言提供的处理一些特殊字符(包括一些不可打印字符)方法。重要有如下一些:符(包括一些不可打印字符)方法。重要有如下一些:用反斜杠开头后面跟一个字母代表一个控制字符(不可用反斜杠

6、开头后面跟一个字母代表一个控制字符(不可打印字符);打印字符);用代表字符用代表字符“”,用,用代表撇号字符;代表撇号字符;用后跟用后跟1到到3个八进制数代表个八进制数代表ASCII码为该八进制数的码为该八进制数的字符;字符;用用x后跟后跟1到到2个十六进制数代表个十六进制数代表ASCII码为该十六进码为该十六进制数的字符。制数的字符。转义字符形式转义字符形式意意 义义nn换行换行tt水平制表水平制表vv垂直制表垂直制表bb退格退格rr回车回车ff走纸换页走纸换页aa报警(如铃声)报警(如铃声)反斜杠反斜杠?问号问号“双撇号双撇号单撇号单撇号dddddd1313位八进制常数位八进制常数xhhx

7、hh1212位十六进制常数位十六进制常数#include“stdio.h”Void main()printf(“this is a test of stringr”);printf(“this is a test of stringn”);#include“stdio.h”Void main()printf(“aaaaaaaaaaaaaaaaaan”);printf(“aaataaaaaaan”);#include“stdio.h”Void main()int i;char ch;ch=a;for(i=0;i100;i+)printf(“%dn”,ch);#include int main()

8、float r,l,s;r=12.3;l=2*3.14*r;s=3.14*3.14*r;printf(“r=%f,l=%f,s=%f”,r,l,s);return 0;#include#define PI 3.14int main()float r,l,s;r=12.3;l=2*PI*r;s=PI*PI*r;printf(“r=%f,l=%f,s=%f”,r,l,s);return 0;2.变量变量:在程序运行期间,变量的值是可以改变的在程序运行期间,变量的值是可以改变的变量代表着一个有名字的变量代表着一个有名字的,具有特定属性的一个存储单元具有特定属性的一个存储单元.变量用来存放数据变量用来

9、存放数据,也就是变量的值也就是变量的值,在程序运行期间变在程序运行期间变量的值可以改变量的值可以改变.变量必须变量必须先定义先定义,后使用后使用,定义定义变量变量时指定该变量的时指定该变量的名名字字和和类型类型.int a;a=10;变量名变量名和和变量值变量值是是两个不同的概念两个不同的概念从变量中取值,实际上是通过变量名找到相应的内存从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据地址,从该存储单元中读取数据#include#define PI 3.14int main()float r,l,s;r=12.3;l=2*3.14*r;s=3.14*3.14*r;pr

10、intf(“r=%f,l=%f,s=%f”,r,l,s);return 0;3.常变量常变量:const int a=3;上面的定义表示上面的定义表示a被定义为一个变量,指定其值为被定义为一个变量,指定其值为3,并且在变量的存在期间其值不能改变并且在变量的存在期间其值不能改变.#include int main()const int a=10;printf(“a=%d”,a);return 0;#include int main()const int a=10;printf(“a=%d”,a);a=20;printf(“a=%d”,a);return 0;#include int main()

11、const int a;a=20;printf(“a=%d”,a);return 0;常变量与变量的区别常变量与变量的区别:常变量具有变量的基本属性:有类型,占存储单元,常变量具有变量的基本属性:有类型,占存储单元,只是在其生命期内不允许改变其值。所以说,常变量只是在其生命期内不允许改变其值。所以说,常变量是有名字的不变量。是有名字的不变量。常量是没有名字的不变量常量是没有名字的不变量,有名字就便于在程序中被有名字就便于在程序中被引用。引用。#define Pi 3.1415926const float pi=3.1415926;(1)符号常量符号常量Pi和常变量和常变量pi都代表都代表3.1

12、415926,在程序在程序中都能使用。中都能使用。(2)定义符号常量用定义符号常量用#define指令指令,它是编译指令它是编译指令,它只它只是用符号常量代表一个字符串是用符号常量代表一个字符串,在预编译时仅是进行在预编译时仅是进行字符串的替换字符串的替换,在编译后在编译后,符号常量就不存在了。符号常量就不存在了。(3)常变量需要占用存储单元常变量需要占用存储单元,有变量值有变量值,只是该变量只是该变量的值不能改变的值不能改变。4.标识符标识符:一个对象的名字一个对象的名字在在C语言中用来对变量、符号常量名、函数、数组、语言中用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列统称为标

13、识符。前面例类型等命名的有效字符序列统称为标识符。前面例子中看到的变量子中看到的变量p1,p2,c,f,符号常量名符号常量名PI,PRICE,函,函数名数名printf等都是标识符。等都是标识符。n语言规定标识符只能由语言规定标识符只能由字母字母、数字数字和和下划线下划线3种种字符组成,且字符组成,且第一个字符必须为字母或下划线第一个字符必须为字母或下划线n合法的标识符:合法的标识符:如如sum,average,_total,Class,day,BASIC,li_lingn不合法的标识符不合法的标识符:M.D.John,¥,¥123,33,3D64,ab3.2.2 数据类型数据类型C语言要求在

14、定义所有的变量时都要指定变量的类型语言要求在定义所有的变量时都要指定变量的类型,常量也是区分类型的。,常量也是区分类型的。在数学上,数值是不分类型的,数值的运算是绝对准在数学上,数值是不分类型的,数值的运算是绝对准确的。但在计算机中,数据时存放在存储单元中的,确的。但在计算机中,数据时存放在存储单元中的,它是具体存在的,而且存储单元是由有限的字节构成它是具体存在的,而且存储单元是由有限的字节构成的,每一个存储单元中存放的数据的范围是有限的,的,每一个存储单元中存放的数据的范围是有限的,不可能存放不可能存放“无穷大无穷大”的数,也不可能存放循环小数的数,也不可能存放循环小数。所谓类型,就是对数据

15、分配存储单元的安排所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度,包括存储单元的长度(占多少字节占多少字节)以及数据以及数据的存储形式的存储形式不同的类型分配不同的长度和存储形式不同的类型分配不同的长度和存储形式不同不同printf(“%f”,1.0/3.0)。C C 语语 言言数据类型数据类型基基 本本数据类型数据类型导导 出出数据类型数据类型doubledouble(双精度浮点型)(双精度浮点型)longlong(长整型)(长整型)charchar(字符类型)(字符类型)整整 型型shortshort(短整型)(短整型)intint(整型)(整型)浮点型浮点型floatfloa

16、t(单精度浮点型)(单精度浮点型)long doublelong double(长双精度浮点型)(长双精度浮点型)voidvoid类型类型用户定制类型用户定制类型T T*(指针类型)(指针类型)structstruct(结构体类型)(结构体类型)unionunion(共用体类型)(共用体类型)文件类型文件类型函数类型函数类型构造类型构造类型TT(数组类型)(数组类型)枚举类型枚举类型C语言允许使用的数据类型语言允许使用的数据类型基本类型基本类型n整型类型n基本整型n短整型n长整型n双长整型n字符型n布尔型浮点类型浮点类型n单精度浮点型n双精度浮点型n复数浮点型C语言允许使用的数据类型:n基本类

17、型n枚举类型n空类型n派生类型l指针类型l数组类型l结构体类型l共用体类型l函数类型算术类型算术类型纯量类型纯量类型1.整型数据的分类整型数据的分类(1)最基本的整型类型最基本的整型类型基本整型(int型):占2个或4个字节短整型(short int):VC+6.0中占2个字节长整型(long int):VC+6.0中占4个字节双长整型(long long int):C99新增的int a,b;short int c,d;long int e,f,g;long long int x,y;2.整型变量的符号属性整型变量的符号属性整数在存储单元中的存储是用整数的补码形式来存放.一个正数的补码是此数

18、的二进制形式,如果是负数,则要先求出此数的补码,方法是:先将此数的绝对值写成二进制的形式,然后再对其后的所有各二进制按位取反,再加1.int x;符号位数值位-5的补码的补码5的补码00000000000000005的原码0000000000000101按位取反1111111111111010最后加11111111111111011如果给整型变量分配如果给整型变量分配2个字节个字节,则存储单元中能存则存储单元中能存放的最大值为放的最大值为:最大值0111111111111111215-1=32767最小值1000000000000000-215=-32768(2)短整型短整型(short in

19、t)短整型的类型名为短整型的类型名为short int 或或int。如果用。如果用visual c+6.0的编译系统,则分配给的编译系统,则分配给int数据数据4个字节,短整型个字节,短整型2个字节,存储方式与个字节,存储方式与int型相同。一个短整型变量的范型相同。一个短整型变量的范围是围是-3276832767(3)长整型长整型(long int)长整型的类型名为长整型的类型名为long int。如果用。如果用visual c+6.0的编的编译系统,则分配给译系统,则分配给long int数据数据4个字节,存储方式与个字节,存储方式与int型相同。一个长整型变量的范围是型相同。一个长整型变

20、量的范围是-2147483648 2147483647(4)双长整型双长整型(long long int)双长整型的类型名为双长整型的类型名为long long int。如果用。如果用visual c+6.0的编译系统,则分配给的编译系统,则分配给int数据数据8个字节。个字节。C语言提供了一个测定某一种类型数据所占存储空间语言提供了一个测定某一种类型数据所占存储空间长度的运算符长度的运算符“sizeof”它的格式为:它的格式为:sizeof(类型标识符或数据类型标识符或数据)当不了解所使用的编译器中的某数据类型的宽度时,当不了解所使用的编译器中的某数据类型的宽度时,可以使用这个运算符计算之。

21、可以使用这个运算符计算之。#include stdio.hint main()int x=10;printf(x:%dn,sizeof(x);printf(int:%dn,sizeof(int);printf(10:%dn,sizeof(10);return 0;2 整型变量的符号属性整型变量的符号属性数据长数据长度度(比特比特)取值范围取值范围Signed(有符号有符号)Unsigned(无符号无符号)8-128 1270 25516-32 768 32 7670 65 53532-2 147 483 648 2 147 483 6470 4 294 967 29564-(263-1)263

22、-10 264-1(18 446 744 073 709 551 615)现实应用中,有的数据的范围只有正值,比如学号,年现实应用中,有的数据的范围只有正值,比如学号,年龄、存款额等为了充分利用变量的值的范围,可以将变龄、存款额等为了充分利用变量的值的范围,可以将变量定义为无符号类型。可以在类型修饰符前面加上修饰量定义为无符号类型。可以在类型修饰符前面加上修饰符符unsigned,表示指定的变量是无符号整数类型。表示指定的变量是无符号整数类型。int x;符号位数值位unsinged int x;数值位扩充的整型类型:扩充的整型类型:n有符号基本整型有符号基本整型 signed int;n无符

23、号基本整型无符号基本整型 unsigned int;n有符号短整型有符号短整型 signed short int;n无符号短整型无符号短整型 unsigned short int;n有符号长整型有符号长整型 signed long int;n无符号长整型无符号长整型 unsigned long intn有符号双长整型有符号双长整型 signed long long int;n无符号双长整型无符号双长整型 unsigned long long int注意:注意:(1)只有整型只有整型(包括字符型包括字符型)数据可以加数据可以加signed或或unsigned 修饰修饰符,实型数据不能加。符,实型

24、数据不能加。(2)对于无符号整型数据用对于无符号整型数据用“%u”格式输出,格式输出,%u表示用无符号表示用无符号十进制的数据格式输出。十进制的数据格式输出。3.2.4 字符型数据字符型数据n字符是按其代码字符是按其代码(整数整数)形式存储的形式存储的nC99把字符型数据作为整数类型的一种把字符型数据作为整数类型的一种n字符型数据在使用上有自己的特点字符型数据在使用上有自己的特点1.字符与字符代码字符与字符代码在程序中,字符与字符代码并不时任意写一个字符在程序中,字符与字符代码并不时任意写一个字符程序都能识别。例如圆周率程序都能识别。例如圆周率在现实中用的比较多在现实中用的比较多,但在程序中不

25、能被识别,只能使用系统的字符集,但在程序中不能被识别,只能使用系统的字符集中的字符,目前大多数系统采用中的字符,目前大多数系统采用ASICCASICC字符集。字符集。n字母:A Z,a zn数字:09n专门符号:29个:!”#&()*等n空格符:空格、水平制表符、换行等n不能显示的字符:空(null)字符(以0表示)、警告(以a表示)、退格(以b表示)、回车(以r表示)等字符是以整数形式字符是以整数形式(字符的字符的ASCIIASCII代码代码)存放在内存单存放在内存单元中。元中。大写的字母大写的字母A A的的ASCIIASCII代码是代码是65,65,二进制为二进制为100000110000

26、01。小写的字母小写的字母a a的的ASCIIASCII代码是代码是97,97,二进制为二进制为11000011100001。字符的字符的ASCIIASCII码最多用码最多用7 7个二进制就可以表示个二进制就可以表示,所有的所有的127127个字符都可以用个字符都可以用7 7个二进制位表示。在个二进制位表示。在C C语言中指语言中指定用一个字节存储一个字符定用一个字节存储一个字符,这时字节中的第一位置这时字节中的第一位置为为0.0.0 1 1 0 0 0 0 1a=97字符字符1和整数和整数1是不同的概念是不同的概念:字符1只是代表一个形状为1的符号,在需要时按原样输出,在内存中以ASCII码

27、形式存储,占1个字节0 0 1 1 0 0 0 1 整数1是以整数存储方式(二进制补码方式)存储的,占2个或4个字节0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12.字符变量字符变量用类型符char定义字符变量nchar c=?;系统把系统把“?”的的ASCII代码代码63赋给变量赋给变量cnprintf(”%d%cn”,c,c);输出结果是:输出结果是:63?字符变量可以当整型来使用字符类型的变量字符类型的变量,也可以使用也可以使用signedsigned和和unsignedunsigned来修来修饰饰,允许的值为允许的值为-128127,-128127,但由于字符的代码不可

28、能但由于字符的代码不可能为负值为负值,所以在存储字符时实际上只用到了所以在存储字符时实际上只用到了01270127这这一部分一部分,其第一位都为其第一位都为0 0。如果将一个负整数赋给有符号字符型变量是合法的如果将一个负整数赋给有符号字符型变量是合法的,但它不代表一个字符但它不代表一个字符,而作为一个字节型整型变量存而作为一个字节型整型变量存储负整数。储负整数。unsigned char c=-6;unsigned char c=-6;。3.2.5 浮点型数据浮点型数据浮点型数据是用来表示具有小数点的实数浮点型数据是用来表示具有小数点的实数nfloat型(单精度浮点型)l编译系统为float型

29、变量分配4个字节l数值以规范化的二进制数指数形式存+.3141591数符小数部分指数+0.314159101ndouble型(双精度浮点型)l编译系统为double型变量分配8个字节15位有效数字nlong double(长双精度)型3.2.6 怎样确定常量的类型怎样确定常量的类型#include int main()int a,b,c;float r=123.4;a=123;b=2345;printf(“%d%d”,1234,1234567);return 0;字符常量字符常量:由单撇号括起来的单个字符或转义字符由单撇号括起来的单个字符或转义字符.整型常量整型常量:不带小数点的数值不带小数点

30、的数值系统根据数值的大小确定系统根据数值的大小确定int型型还是还是long型型等等在在Turbo C中,系统为整型数据分配中,系统为整型数据分配2个字节,所以个字节,所以凡是值在凡是值在-3276832767之间的都按之间的都按int 常量处理,如常量处理,如果超过果超过32768,则按,则按long int处理。处理。也可以在一个整数的末尾加大写的也可以在一个整数的末尾加大写的L或小写的或小写的l,表示它表示它是长整型是长整型(long int)。浮点型常量浮点型常量:凡以小数形式或指数形式出现的实数凡以小数形式或指数形式出现的实数C编译系统把浮点型常量都按双精度处理编译系统把浮点型常量都

31、按双精度处理,分配分配8个字节个字节float a=3.1415;在进行编译时,对在进行编译时,对float分配分配4个字节,但对于浮点个字节,但对于浮点型常量型常量3.14159,则按双精度处理,需要分配,则按双精度处理,需要分配 8个个字节,所以编译系统会给出警告错误。字节,所以编译系统会给出警告错误。可以在常量的末尾加专用的字符可以在常量的末尾加专用的字符,强制指定常量的类强制指定常量的类型型,如果加如果加F或或f就表示就表示float型常量型常量,如果加如果加L或或l就表就表示示long double 常量。常量。float a=3.1415f;Long double a=3.1L;可

32、以对一个变量赋值,但不能对一个类型赋值。可以对一个变量赋值,但不能对一个类型赋值。int a;a=3;int=3;3.2.7 运算符和表达式运算符和表达式1.基本的算术运算符基本的算术运算符:n+:正号运算符(单目运算符)n-:负号运算符(单目运算符)n*:乘法运算符n/:除法运算符n%:求余运算符n+:加法运算符n-:减法运算符说明说明n由于键盘没有运算符由于键盘没有运算符,所以用,所以用*代替代替n两个整数相除的结果为整数两个整数相除的结果为整数n由于键盘没有运算符由于键盘没有运算符,所以用,所以用/代替代替如如5/3的结果值为,舍去小数部分的结果值为,舍去小数部分如果除数或被除数中有一个

33、为负值,舍入方向不固定如果除数或被除数中有一个为负值,舍入方向不固定。例如,例如,-5/3,有的系统中得到的结果为,有的系统中得到的结果为-1,在有的系,在有的系统中则得到结果为统中则得到结果为-2VC+采取采取“向零取整向零取整”的方法的方法如如5/3=1,-5/3=-1,取整后向零靠拢,取整后向零靠拢n%运算符要求参加运算的运算对象运算符要求参加运算的运算对象(即操作数即操作数)为整为整数,结果也是整数。如数,结果也是整数。如8%3,结果为,结果为22.自增、自减运算符自增、自减运算符:作用是使变量的值或减作用是使变量的值或减+i,-i:在使用在使用i之前,先使之前,先使i的值加(减)的值

34、加(减)1i+,i-:在使用在使用i之后,使之后,使i的值加(减)的值加(减)1例如:例如:int i=5;i+;y=i;与与int i=5;+i;y=i;两段程序执行的结果两段程序执行的结果i值都为值都为6,y的值也都为的值也都为6。但是把它们引用。但是把它们引用在表达式中就表现出区别了。例如:在表达式中就表现出区别了。例如:int i=5;x=i+;/*相当于相当于 x=i;i=i+1;*/y=i;的执行结果为:的执行结果为:x为为5,y为为6。即后缀方式是。即后缀方式是“先引用后增值先引用后增值”。而。而int i=5;x=+i;/*相当于相当于 x=i=i+1;*/y=i;自增运算符自

35、增运算符(+)和自减运算符和自减运算符(-)只能用于变量只能用于变量,而不能用于常量和表达式而不能用于常量和表达式.5+,(a+b)+.使用使用+和和运算符时运算符时,常常会出现一些人们想不常常会出现一些人们想不到的副作用到的副作用,如如i+j,是理解成是理解成(i+)+j,还是还是i+(+j),所以为了避免歧义性所以为了避免歧义性,加一些括号帮助理解加一些括号帮助理解,如前如前面的表达式可以写成为面的表达式可以写成为(i+)+j.3.算术表达式和运算符的优先级与结合性算术表达式和运算符的优先级与结合性:用算术运算符和括号将运算对象(也称操作数)连接起来的、符合语法规则的式子,称为算术表达式.

36、运算对象包括常量、变量、函数等语言规定了运算符的优先级和结合性运算符结合性:指同一 优先级的运算符在表达式中操作的组织方向,有“自左向右”和“自右向左”两种结合方式.4.不同类型数据间的混合运算不同类型数据间的混合运算:(1)+、-、*、/运算的两个数中有一个数为float或double型,结果是double型。系统将float型数据都先转换为double型,然后进行运算.(2)如果int型与float或double型数据进行运算,先把int型和float型数据转换为double型,然后进行运算,结果是double型.(3)字符型数据与整型数据进行运算,就是把字符的ASCII代码与整型数据进行

37、运算.下面的表达式中,假设i为整数,值为3,f为float型变量,值为2.5,d为double型变量,值为7.5 10+a+i*f-d/3(1)进行10+a的运算,a的值为97,运算的结果为107。(2)由于“*”比“+”的优先级高,先进行i*f的运算,先将i的值与f都转成double型,运算的结果为7.5,double型。(3)整数107与 i*f的积相加。先将107转换成双精度数,相加的结果为114.5,double型。(4)进行d/3的运算,先将3转换成double型,d/3结果为2.5,double型。(5)将10+a+i*f的结果114.5与d/3的商相减,结果为 112.0,dou

38、ble型。例例3.3 给定一个大写字母,要求用小写字给定一个大写字母,要求用小写字母输出。母输出。解题思路:解题思路:关键是找到大、小写字母间的内在联系同一个字母,用小写表示的字符的ASCII代码比用大写表示的字符的ASCII代码大32#include int main()char c1,c2;c1=A;c2=c1+32;printf(%cn,c2);printf(”%dn”,c2);return 0;将字符将字符A的的ASCII代码代码65放到放到c1中中将将65+32的的结果结果放到放到c2中中用字符形式输出用字符形式输出用十进制形式输出用十进制形式输出5.强制类型转换运算符强制类型转换运

39、算符强制类型转换运算符的一般形式为 (类型名)(表达式)n(double)a (将转换成double类型)n(int)(x+y)(将x+y的值转换成int型)n(float)(5%3)(将5%3的值转换成float型)有两种类型转换有两种类型转换n系统自动进行的类型转换n强制类型转换#include stdio.hvoid main()float x,y;int a;x=21.3;y=12.4;a=(int)(x+y);printf(a=%dn,a);6.运算符运算符(1)算术运算符 (+-*/%+-)(2)关系运算符 (!)(3)逻辑运算符 (!|)(4)位运算符 (|)(5)赋值运算符 (

40、及其扩展赋值运算符)(6)条件运算符 (?:)(7)逗号运算符 (,)(8)指针运算符 (*和)(9)求字节数运算符 (sizeof)(10)强制类型转换运算符 ((类型))(11)成员运算符 (.-)(12)下标运算符 ()(13)其他 (如函数调用运算符()前面一部分的内容要求会定义和使前面一部分的内容要求会定义和使用基本的数据类型及其简单的运算用基本的数据类型及其简单的运算。假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比,计算公式如下 P=(1+r)n其中r为增长率,n为年数,p为与现在相比的倍数#include stdio.hvoid mai

41、n()float p,r;r=0.09;p=(1+r)*(1+r)*(1+r)*(1+r)*(1+r)*(1+r)*(1+r)*(1+r)*(1+r)*(1+r);printf(p=%f,p);3.3 C语句语句3.3.1 C语句的作用和分类语句的作用和分类3.3.2 最基本的语句最基本的语句-赋值语句赋值语句3.3.1 C语句的作用和分类语句的作用和分类C语言程序中语言程序中,一个函数包含声明部分和执行部分一个函数包含声明部分和执行部分,执执行部分是由语句组成的行部分是由语句组成的,语句的作用是向计算机系统语句的作用是向计算机系统发出操作指令发出操作指令,要求执行相应的操作。一个要求执行相应

42、的操作。一个C语句经过语句经过编译后产生若干条机器指令。编译后产生若干条机器指令。声明部分不是语句,它不产生机器指令,只是对有关声明部分不是语句,它不产生机器指令,只是对有关数据的声明。数据的声明。语句分为以下语句分为以下5类类:(1)控制语句控制语句:用来完成一定的控制功能。:用来完成一定的控制功能。C语言有语言有9种种控制语句,形式如下:控制语句,形式如下:nif().elsenfor().nwhile()ndo.while()ncontinuenbreaknswitchnreturnngoto(2)函数调用语句函数调用语句:函数调用语句是由一个函数调用加函数调用语句是由一个函数调用加一个

43、分号构成。一个分号构成。printf(“this is a c statementn”);(2)表达式表达式语句语句:表达式调用语句是一个表达式加一个表达式调用语句是一个表达式加一个分号构成。分号构成。a=3a=3;(4)空语句空语句,只有一个分号的语句成为空语句,空语句只有一个分号的语句成为空语句,空语句什么也不做,可以用来作为流程的转向点,也可以用什么也不做,可以用来作为流程的转向点,也可以用来作为循环语句中的循环体。来作为循环语句中的循环体。(5)复合复合语句语句,可以用可以用把一些语句和声明括起来成为把一些语句和声明括起来成为复合语句。复合语句。float pi=3.14,r=2.5,

44、area;area=pi*r*r;printf(“area=%f”,area);可以在复合语句中包含声明部分,可以在复合语句中包含声明部分,C99允许将声明部允许将声明部分放在复合语句中的任何部分,但一般把它放在复合分放在复合语句中的任何部分,但一般把它放在复合语句的开头位置。语句的开头位置。3.3.2 最基本的语句最基本的语句-赋值语句赋值语句n在C程序中,最常用的语句是:l赋值语句l输入输出语句n其中最基本的是赋值语句例例3.4 给出三角形的三边长,求三角形面积。给出三角形的三边长,求三角形面积。解题思路:假设给定的三个边符合构成三角形的条件关键是找到求三角形面积的公式公式为:公式为:)(

45、)(csbsassarea其中s=(a+b+c)/2#include#include int main()double a,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(a=%ftb=%ft%fn,a,b,c);printf(area=%fn,area);return 0;对边长对边长a、b、c赋值赋值计算计算s计算计算area#include#include int main()double a,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)

46、/2;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(a=%ftb=%ft%fn,a,b,c);printf(area=%fn,area);return 0;数学函数,数学函数,计算计算平方根平方根调用数学函数调用数学函数加此行加此行#include#include int main()double a,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(a=%ftb=%ft%fn,a,b,c);printf(area=%fn,area);return 0;转

47、义字符转义字符,使输出位置跳使输出位置跳到下一个到下一个tab位置位置调用数学函数调用数学函数加此行加此行归纳归纳总结:总结:1.赋值运算符赋值运算符n“”是赋值运算符n作用是将一个数据赋给一个变量n也可以将一个表达式的值赋给一个变量int a,b,c,d;a=10;b=20;c=a+b;d=a*b;2.复合的赋值运算符复合的赋值运算符n在赋值符“”之前加上其他运算符,可以构成复合的运算符n 等价于 a*=b+c a=a*b+ca*=(b+c)a=a*(b+c)3.赋值表达式赋值表达式一般形式为一般形式为:变量变量 赋值运算符赋值运算符 表达式表达式对赋值表达式求解的过程:对赋值表达式求解的过

48、程:n求赋值运算符求赋值运算符右侧右侧的的“表达式表达式”的值的值n赋给赋值运算符赋给赋值运算符左侧左侧的变量的变量赋值表达式赋值表达式“a=3*5”的值为的值为15,对表达式求解后,对表达式求解后,变量变量a的值和表达式的值都是的值和表达式的值都是15“a=(b=5)”和和“a=b=5”等等价价“a=b”和和“b=a”含义不同含义不同赋值表达式的例子赋值表达式的例子a=b=c=5a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)分析下面的分析下面的赋值表达式赋值表达式a=(b=3*4)(a=b)=3*4a=(a=b)=3*4a+=a-=a*aprintf(“%d”,a=

49、b);4.赋值过程中的类型转换赋值过程中的类型转换n两侧类型一致两侧类型一致时时,直接赋值,直接赋值int i;i=100;n两侧类型不一致,但都是算术类型时,两侧类型不一致,但都是算术类型时,自动自动将右侧的将右侧的类型转换类型转换为左侧类型后赋值为左侧类型后赋值(1)将浮点型数据将浮点型数据(包括单、双精度包括单、双精度)赋给整型变量时,赋给整型变量时,先对浮点数取整,即舍弃小数部分,然后赋予整型变先对浮点数取整,即舍弃小数部分,然后赋予整型变量。量。int i;i=100.56;(2)将整型数据赋给单、双精度变量时,数值不变,将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到

50、变量中。但以浮点数形式存储到变量中。float f;f=23;double d;d=23;(3)将一个将一个double型数据赋给型数据赋给float变量时,先将双精变量时,先将双精度数转换为单精度,即只取度数转换为单精度,即只取67位有效数字,存储到位有效数字,存储到float型变量的型变量的4个字节中。双精度数值的大小不能超个字节中。双精度数值的大小不能超出出float型变量的数值范围。型变量的数值范围。float f;double d;d=123.456789e100;f=d;将一个将一个float型数据赋给型数据赋给double型变量时,数值不变,型变量时,数值不变,在内存中用在内存中

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(c语言第三章解析课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|