《C语言程序设计-第2-讲字符集.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计-第2-讲字符集.ppt(92页珍藏版)》请在三一办公上搜索。
1、C语言程序设计,第二讲,(1)C 文件可以由一个或多个C源程序组成,(2)C 源程序可以由一个或多个函数组成,(3)C 文件有且仅有一个主函数(main函数),(4)C 源程序中用预处理命令调用库函数或其它程序。,(5)每个执行语句以分号结尾。,(6)变量要先定义再应用,上节提要:,(7)一个函数由两部分组成:,函数的说明部分:函数名后有一对圆括号,函 数 体 部 分:花括号+执行语句,(8)C 程序书写区分大小写,(9)printf(“格式化字符串”,参数表)。,(10)可以用/*/或/对C源程序做注解,上节提要:,语言的字符集,每一种可书写的语言,全部可用的字符的集合称为字符集 英语的字符
2、集 a-z 26个字母 阿拉伯数字的字符集为0-9 汉语的字符集(中文字符,太多了)两个或两个以上的字符组合称为词汇。,语言的字符集,语言字符集由字母,数字,空格,标点和特殊字符组成。在字符常量,字符串常量和注释中还可以使用汉字或其它可表示的图形符号。1.字母大小写英文字母 2.数字09 3.空白符 空格符、制表符(t)、换行符(n)等统称为空白符。空白符只在字符常量和字符串常量中起作用。4.标点和特殊字符 标点:冒号,逗号,大中小括号 特殊字符:+-*/%等,一、语言词汇 在语言中使用的词汇分为六类:标识符,关键字,运算符,分隔符,常量,注释符等。1.标识符 在程序中使用的变量名、函数名、标
3、号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。标识符是只能由字母、数字和下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。,由英文字母、数字和下划线组成,大小写敏感不可以是数字开头直观,见名知意,便于记忆和阅读最好使用英文单词或其组合切忌使用汉语拼音 下划线和大小写通常用来增强可读性Variablename(太长,不建议)variable_name(UNIX风格)VariableName,variableName(Windows风格)不允许使用关键字作为标识符的名字 int,float,for,while,if等某些功能的变量采用习惯命名如:for语句所采用的
4、循环变量习惯用i,j,k,标识符命名,在使用标识符时还必须注意以下几点:(1)标准C不限制标识符的长度,但它受各种版本的C 语言编译系统限制,同时也受到具体机器的限制。例如在某版本C 中规定标识符前八位有效,当两个标识符前八位相同时,则被认为是同一个标识符。定义标识符最好不要超过8个。(2)在标识符中,大小写是有区别的。例如BOOK和book 是两个不同的标识符。最好全部用小写(3)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便于阅读理解,作到“顾名思义”。,以下标识符是合法的:a,x,x3,BOOK_1,sum5 以下标识符是非法的:3s 以
5、数字开头 U.S 中间有非法字符.s*T 出现非法字符*-3x 以减号开头 bowy-1 出现非法字符-(减号)Good bye 中间有空格 int 关键字,2.关键字 关键字是由语言规定的具有特定意义的字符串,通常也称为保留字。用户定义的标识符不应与关键字相同。语言的关键字分为以下几类:(1)类型说明符 用于定义、说明变量、函数或其它数据结构的类型。如int,double(2)控制语句符 用于表示一个语句的功能。如if 就是条件语句的语句定义符。,ANSI C一共只有32个关键字,(1)数据类型说明符(12个)长短(单)双正负 long short double unsigned singn
6、ed 无值整型浮点字符(指针)void int float char 联合枚举结构(数组)union struct enum(2)变量类型(4个):外部 静态自动 寄存器 extern static auto register(3)常量(1个):const,(2)程序结构语句定义符(12个)判断:If else循环:for do while 转移:goto跳出:break continue返回:return开关:switch case default,3、其它关键字sizeof 大小typedef类型定义volatile可变的变量,数据为什么要区分类型?不同类型的数据代表不同的数据表示形式合法
7、的取值范围占用内存空间大小可参与的运算种类,数据类型(Data Type),语言的数据类型,数据类型是按被说明变量的性质,表示形式,占据存储空间的多少,构造特点来划分的。在语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。数据类型:基本 构造 空 指针,基本类型,构造类型,指针类型,空类型 void,整型,浮点型(实型),字符型 char,枚举类型 enum,基本整型(singned)int,长整型 long(int),短整型 short(int),数据类型,无符号整型 unsigned(int),单精度实型 float,双精度实型 double,数组类型,结构体类型
8、 struct,联合类型 union,数据类型(Data Type),1、基本数据类型:基本数据类型最主要的特点是,其值不可以再分解为其它类型。也就是说,基本数据类型是自我说明的。2、构造数据类型:构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说,一个构造类型的值可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。在C语言中,构造类型有以下几种:数组类型 结构体类型 联合类型,计算机中的数据单位:b,B,KB,MB,GB,TB,bit,位 bByte,字节 BKilobyte(KB),K Megabyte(MB),兆 MGigaby
9、te(GB),GTerabyte(TB),T,1 TB=1,024 GB,1 GB=1,024 MB,1 MB=1,024 KB,1 KB=1,024 B,1 B=8 b,思考:为什么是1024而不是更容易计算的1000?1024是2的10次方,注意:硬盘的容量计算与此不同,硬盘的1K是1000,思考:为什么是8而不是更直观的10?,int 整数,在目前绝大多数机器上占4个字节。TC2中是2个字节 int a=64;float 浮点数单精度浮点数,一般是4个字节长 float b=64.0;char 字符字符,一般是1个字节长用来表示256个ASCII字符,或者0-255的整数。char=a;
10、,基本数据类型,short int,短整型,2个字节。通常简写为shortlong int,长整型,4个字节。通常简写为longsingle 单精度浮点数 4个字节double 双精度浮点数8个字节long double?signed用来修饰char、int、short和long,说明他们是有符号的整数(正整数、0和负整数)。一般缺省都是有符号的,所以这个修饰符通常省略unsigned用来修饰char、int、short和long,说明他们是无符号的整数(正整数和0),数据类型修饰符,数据的存储形式,计算机中,所有的数据都是以二进制进行存储的。因为用一个两位的十六进制数就可以表示8位的二进制数
11、,为方便阅读,都是以16进制的形式写出。常用字符与ASCII码对应。,使用ULTRAEDIT打开flashfxp.exe文件,进行十六进制编辑:,以13为例:二进制数为:1101int型(2字节,15位有效数字,最高位为符号位):,long int型(4字节,31位有效数字,最高位为符号位):,unsigned int型(2字节,16位有效数字,无符号位):,unsigned long int型(4字节,31位有效数字,无符号位):,整型数据在内存中的存放形式,0D,0D 00,0D,0D 00,Turbo C中各类整型量所分配的内存字节数及数的表示范围。,TC2中int的范围是-327683
12、2767如果我们给它一个小于-32768或者大于32767的数会如何呢?,小蛇能吞下大象吗?,超出取值范围会怎样?,一台安装了Windows 95/98的机器,如果连续运行49.7天没有重新启动,可能死机 原因:Windows自启动时刻起,有一个计数器,记录系统已经运行了多少毫秒。这个计数器是个unsigned long 类型的变量unsigned long 的最大值是:4294967295一天有 24*60*60*1000=86400000毫秒4294967295/86400000=49.71026961805当49.7天的时候,此计数器会溢出,引起死机,溢出(Overflow)造成的危害,
13、2 浮点型数据,浮点型常量的表示方法,两种表示形式,小数指数,0.1231.23e-3,注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数,1e3、1.8e-3、-123e-6、-.1e-3e3、2.1e3.5、.e3、e,3.4 浮点型数据,规范化的指数形式:在字母e(或E)之前的小数部分中,小数点左边 应有一位(且只能有一位)非零的数字.例如:123.456可以表示为:123.456e0,12.3456e1,1.23456e2,0.123456e3,0.0123456e4,0.00123456e 其中的1.23456e3称为“规范化的指数形式”。,3.4 浮点型数据,3.4.2
14、浮点型变量(1)浮点型数据在内存中的存放形式 一个浮点型数据一般在内存中占4个字节(32位)。与整型数据的存储方式不同,浮点型数据是按照指数形式存储的。系统把一个浮点型数据分成小数部分和指数部分,分别存放。指数部分采用规范化的指数形式。,图3-7,计算机中用二进制表示浮点数,使用二进制表示只有0和1,那么对于小数就只能用下面的方式来表示:a12-1+a22-2+a32-3+.+an2-n 其中a1等数可以是0或者1,从理论上将,使用这种表示方法可以表示一个有限的小数。,IEEE 754标准,一个浮点数V 在IEEE 754标准中可以用 V(-1)SM2E 的形式表示在表示浮点数时,每个浮点数均
15、由三部分组成:符号位S,指数部分E和 有效数字 MS=0表示正数,S=1表示负数有效数字M是二进制小数,M的每一位数只能是0或1,以0.75为例 十进制数 0.75=0.5+0.25=1*1/2+1*1/4=1*2-1+1*2-2 写成二进制的格式:0.75 d=1.1*2-1 b,219.125 d=11011011.001 b换算过程:=1*128+1*64+0*32+1*16+1*8+0*4+1*2+1*1+0*0.5+0*0.25+1*0.125=1*27+1*26+0*25+1*24+1*23+0*22+1*21+1*20+0*2-1+0*2-2+1*2-3=1101 1011.00
16、1 b=1.101 1011001*27 b,写成计算机存储的规范格式0 1000 0110 1011 0110 0100 0000 0000 000,符号位 s,正数则 s=0,指数位E:用127代表0,E大于0则为127+E,E小于0则为127-E,省略整数1后得到有效数字(或称尾数),219.125 d=1.101 1011 001 27,类型 位数 数的范围 有效数字float 32-3.410-383.41038 67 位double型 64-1.710-3081.710308 1516位long double 128-1.210-49321.2104932 1819位,浮点型数据的
17、有效位数,(2)浮点型变量的分类 浮点型变量分为单精度(float型)、双精度(double型)和长双精度型(long double)三类形式。,有效数是M(23位)1111 1111 1111 1111 1111 1111 111 B=8388607 D,3.2 常量与变量,3.2.1 常量和符号常量在程序运行过程中,其值不能被改变的量称为常量常量区分为不同的类型:,整型 100,012,0 xFF实型 3.14,1.23E2字符型 a,2,72字符串“a”,“ab”,“1232”符号常量#define PRICE 30,整型常量18、-31长整型常量 123l、123L、123456l、1
18、23456L无符号型常量 123u、123U浮点常量十进制小数形式 123.45、456.78指数形式 1e-2、4.5e3单精度实型常量 123.45f、456.78F、1e-2f、4.5e3F长双精度型常量 123.45l、456.78L、1e-2l、4.5e3L(没有长单精度的说法),常量(Constant),以数字“0”开始的整型常量是八进制数022、-037010和10大小不一样因为八进制并不常用,所以此种表示法比较少见以“0 x”或者“0X”开始的整型常量是十六进制A-F和a-f用来表示十进制的10-15十六进制的形式比较常用,尤其在进行位一级的控制的时候0 x12、-0 x1F,
19、-0 x1f,八进制与十六进制常量,练习:,写出以下程序的执行结果:void main()int a,b,c;a=12;b=012;c=0 x12;printf(%d,%d,%d,a,b,c);,练习,找出下列程序中的错误:,void main()int a,b,c,d,e,f,g;a=0X2A;b=0XA0;c=5A;d=0XFFFF;e=0X3H;f=019;g=003;printf(%d,%d,%d,%d,%d,%d,%d,a,b,c,d,e,f,g);,字符常数为用单引号扩起的一个字符:a,A,5,%,$单引号内只能有一个字符,除非用开头其值为整数,也可以参与各种数学运算每个字符具有一
20、个0-255之间的数值,可从ASCII表查出注意:5 和整数5的区别字符的数学运算在密码学内用得比较多,字符(Character)常量,例:向字符变量赋以整数。#include void main()char c1,c2;c1=97;c2=98;printf(%c%cn,c1,c2);printf(%d%dn,c1,c2);,说明:在第和第4行中,将整数和分别赋给c1和c2,它的作用相当于以下两个赋值语句:c1;c2;因为a和b的ASCII码为和,运行结果:97 98,3.5字符型数据,3.5.3字符数据在内存中的存储形式及其使用方法将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放
21、到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。,这样使字符型数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。,转义字符一些特殊字符(无法从键盘输入或者另有它用)用转义字符表示,字符常数,小写字母转换为大写字母,Char 型与 int 型之间的关系,例2.4,例2.5,以字符型和整数型两种格式输出字符变量。,main()char ch=a;/*定义 ch 为字符型变量*/printf(%c,%dn,ch,ch);/*分别以字符形式、整数形式输出ch*/,main()char ch=b;ch=b-32;printf(%c,%dn,ch,ch)
22、;,用双引号括住的由0个或多个字符组成的字符序列I am a string表示空字符串转义字符也可以在字符串中使用引号只作为字符串开始和结束的标志C语言内部用 0 表示字符串的结束除注释外,是唯一可以出现中文的地方x和x是不同的里定义了一系列专门的字符串处理函数,字符串(String)常数,练习:写出以下程序的执行结果:,#include stdio.hmain()int a,b=322;float x,y=8.88;char c1=k,c2;a=y;printf(a=%dn,a);x=b;a=c1;c2=b;printf(%ft,%dt,%ct,x,a,c2);,宏常量也称符号常量一般采用大
23、写字母表示#define 标识符 字符串不是语句,而是一种编译预处理命令宏替换(Macro Substitulition),#include#define PI 3.14159#define R 5.3main()printf(area=%fn,PI*R*R);printf(circumference=%fn,2*PI*R);,宏常量,例2.2,习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。,用const修饰定义的变量为常量const float pi=3.1425926;常量只能在定义时赋值,然后不能再改变其值,const常量,main()const float a=3.
24、5;float b=a;a=a+2;b=b+2;printf(%f,%f,a,b);,练习:找出下列程序的错误:,3.2 变量,3.2.2变量变量的值存放在特定存储单元中的数据,在程序运行期间,变量的值是可以改变的。变量名对应着内存空间中的某个地址,在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。,变 量,使用变量的基本原则变量必须先定义,后使用所有变量必须在第一条可执行语句前定义不同变量定义的顺序无关紧要一条定义语句可定义若干个同类型的变量定义变量,是初始化变量的最好时机不被初始化的变量,其值为危险的随
25、机数char esc=a;int i=1;int sum=0;float eps=1.0e-5;,练习:写出以下程序的执行结果,#include main()int a=1,b=2,c;float f1=1.0,f2=2.0,f3=3.0;char ch1=a,ch2=b;printf(a=%d,b=%d,c=%dnn,a,b,c);printf(%f,%2.0f,%3.2fnn,f1,f2,f3);printf(%c,%cn,ch1+1,ch2+3);,float型数据提供7位有效数字double型数据提供16位有效数字 使用不当导致舍入误差,#include main()float a;d
26、ouble b;a=123456.789e4;b=123456.789e4;printf(%fn%fn,a,b);,实型数据提供的有效数字位数,#include main()float f;f=123.456;if(f=123.456)printf(f is equal to 123.456 indeed.);elseprintf(In fact,f is equal to%fn,f);运行结果会是什么?,浮点数的陷阱,不要轻易使用单精度浮点来进行判断。,float的精度低,较易发生精度带来的相等性判断问题double精度高,这个问题发生的概率小一些,但也存在解决办法:if(fabs(f 12
27、3.456)1E-5),根据精度要求设定,浮点数的陷阱,变量赋初值,在程序中常常需要对变量赋初值,以便使用变量。语言程序中可有多种方法为变量提供初值。在变量定义中赋初值的一般形式为:类型说明符 变量1=值1,变量2=值2,;例如:int a=3;int b,c=5;float x=3.2,y=3f,z=0.75;char ch1=K,ch2=P;应注意,在定义中不允许连续赋值,如int a=b=c=5是不合法的。,2.6.2 算术运算符,+,-,*,/加、减、乘、除运算四则混合运算中,先算乘除,后算加减,按从左向右的顺序计算,左结合-取负值运算符,右结合%求余运算注:操作数类型影响算术运算的结
28、果6/46.0/4注:C语言表达式与数学表达式的区别,算术运算符作用于整型或浮点型数据,完成算术运算。(1)一、二元算术运算符,如下表所示。,二、一元算术运算符,如下表所示:,常用的标准数学函数 math.h,2.6.3 关系运算符,,=,=,=,!=大于,大于等于,小于,小于等于,等于,不等于左结合关系运算符运算出的结果为0和非00,表示假,即该关系不成立非0,表示真,即该关系成立绝大多数编译器,关系运算得到的非0结果为1,关系运算符关系运算符用来比较两个值,返回布尔类型的值true或false。关系运符都是二元运算符,如下表所示:,2.6.4 逻辑运算符,逻辑运算也称为布尔(Boolean
29、)运算&与运算(a b&b c);a大于b,并且b大于c|或运算(a b|b c);a大于b,或者b大于c!求反、非运算,单目运算!a如果a是0,结果非0;如果a是非0,结果是0a的值不变逻辑运算优先级低于关系运算关系运算优先级低于算术运算(a+1 b&b c),逻辑运算符逻辑运算符进行逻辑运算,如下表所示:,2.6.5 赋值运算符,int h=0;/*被赋值的量放在等号左边*/下面两个语句是等价的i=i+2;i+=2;+、-、*、/、%、&、|运算符都可以按此种方式处理,二元操作符这种形式看起来更直观,而且执行效率一般也能更高一些,例:写出下列程序的运行结果,#include stdio.h
30、void main()int a=5,x=2,y=100,z=100;a+=5;x*=a+3;y/=x;z%=x;printf(%d,%d,%d,%d,a,x,y,z);,2.6.6 增一和减一运算符,n+,n-,+n,-n+让参与运算的变量加1,-让参与运算的变量减1,操作数只能是变量作为后缀运算符时,先取n的值,然后加/减1作为前缀运算符时,先加/减1,然后取n的值m=n+;等价于 m=n-;m=n;m=n;n+;n-;m=+n;等价于 m=-n;n+;n-;m=n;m=n;,练习:写出下列程序的输出结果,Int i=8;printf(“%dn”,+i);printf(“%dn”,-i);
31、printf(“%dn”,i+);printf(“%dn”,i-);printf(“%dn”,-i+);printf(“%dn”,-i-);,良好的程序设计风格提倡:在一行语句中,一个变量只能出现一次加1或者减1运算过多的加1和减1运算混合,不仅可读性差,而且因为编译器实现的方法不同,导致不同编译器产生不同的运行结果Sum=(+a)+(a+);/*晦涩,可读性差*/,2.6.6 增一和减一运算符,/*+,-的使用例子,+,-的优先级大于-*/#include stdio.hmain()int i=8,x=5,y=5,p,q;printf(After i=%dt+i show%dt before
32、 i=%dn,i,+i,i);printf(After i=%dt-i show%dt before i=%dn,i,-i,i);printf(After i=%dt i+show%dt before i=%dn,i,i+,i);printf(After i=%dt i-show%dt before i=%dn,i,i-,i);printf(After i=%dt-i+show%dt before i=%dn,i,-i+,i);printf(After i=%dt-i-show%dt before i=%dn,i,-i-,i);printf(n);printf(After x=%dt p sh
33、ow%dt before x=%dn,x,p=(x+)+(x+)+(x+),x);printf(After y=%dt q show%dt before y=%dn,y,q=(+y)+(+y)+(+y),y);,/*+,-的使用例子,+,-的优先级大于-*/#include stdio.hmain()int i=8,x=5,y=5,p,q;printf(After i=%dt+i show%dt before i=%dn,i,+i,i);printf(After i=%dt-i show%dt before i=%dn,i,-i,i);printf(After i=%dt i+show%dt
34、before i=%dn,i,i+,i);printf(After i=%dt i-show%dt before i=%dn,i,i-,i);printf(After i=%dt-i+show%dt before i=%dn,i,-i+,i);printf(After i=%dt-i-show%dt before i=%dn,i,-i-,i);printf(n);printf(After x=%dt p show%dt before x=%dn,x,p=(x+)+(x+)+(x+),x);y=5;printf(After y=%dt q show%dt before y=%dn,y,q=(+y
35、),y);y=5;printf(After y=%dt q show%dt before y=%dn,y,q=(+y)+(+y),y);y=5;printf(After y=%dt q show%dt before y=%dn,y,q=(+y)+(+y)+y,y);y=5;printf(After y=%dt q show%dt before y=%dn,y,q=(+y)+(+y)+(+y),y);,#include stdio.hmain()int a=1,b,c,k;b=(1-a)*a+;printf(a=%d,b=%dn,a,b);a=1;b=(1-a)*+a;printf(a=%d,b
36、=%dn,a,b);a=3;k=(a+)+(a+)+(a+);printf(k=%d,a=%dn,k,a);a=1;b=2;c=ab,练习:写出下列程序的输出结果,#include stdio.hmain()int a=1,b,c,k;b=(1-a)*a+;printf(a=%d,b=%dn,a,b);/*a+计算先用a的原值计算后,再用a+1,a=2*/a=1;b=(1-a)*+a;printf(a=%d,b=%dn,a,b);/*+a 先计算a+1,再进行其它计算*/a=3;k=(a+)+(a+)+(a+);printf(k=%d,a=%dn,k,a);/*a+a+a,最后再a+1*/a=
37、1;b=2;c=ab/*&逻辑与运算*/,强制转换(类型关键字)表达式 int m=5;(float)m/2;float(m)/2;float m/2;float(m/2);表达式的结果被转换为设定的类型,但变量的类型和值不变,2.6.7 类型转换,2.6.7 类型转换,在进行赋值操作时,会发生类型转换将取值范围小的类型转为取值范围大的类型是安全的,反之是不安全的如果大类型的值在小类型能容纳的范围之内,则平安无事浮点数转为整数,会丢失小数部分,非四舍五入,自动类型转换,同种数据类型的运算结果,还是该类型不同种数据类型的运算结果,是两种类型中取值范围更大的那种long double double
38、 float long int short char把数据赋值给另外一种类型变量也会发生自动类型转换从小到大,顺利转换从大到小,可能丢失信息(好的编译器会发出警告),类型强制转换,消除从大到小的警告l=(long)i;可以通过“(类型)表达式”的方式把表达式的值转为任意类型强转时,你必须知道你在做什么强转与指针,并称C语言两大神器,用好了可以呼风唤雨,用坏了就损兵折将,#include stdio.h“main()int m=5;printf(m/2=%dn,m/2);printf(float)(m/2)=%fn,(float)(m/2);printf(float)m/2=%fn,(float
39、)m/2);printf(m=%dn,m);,2.6.8 位操作运算符,&按位与运算|按位或运算 按位异或运算,按位右移运算 按位求反,在语言中逗号“,”也是一种运算符,称为逗号运算符。其功能是把两个以上的表达式连接起来组成一个表达式,称为逗号表达式。其一般形式为:表达式1,表达式2,表达式3其求值过程是分别求每个表达式的值,并以最后一个表达式的值作为整个逗号表达式的值。main()int a=2,b=4,c=6,x,y;y=(x=a+b),(b+c);printf(y=%d,x=%d,y,x);,2.6.9 逗号运算符,2.6.9 逗号运算符,表达式1,表达式2,.,表达式n多数情况下,并不
40、使用整个逗号表达式的值,更常见的情况是要分别得到各表达式的值主要用在循环语句中,同时对多个变量赋初值等 for(i=0,j=0;i j;i+,j+),条件表达式,把a和b中的最大值放入z中if(a b)z=a;else z=b;z=(a b)?a:b;此种表达式切忌用得过于繁杂,优先级,()-.!+-+-*&(类型)sizeof*/%+-=!=&|&|?:=+=-=*=/=%=&=|=,结合性,多数运算符为左结合少数为右结合:一元运算符赋值运算符条件运算符,变量的命名规则数据类型char,short,int,long,float,double,long doublesigned,unsigned常数、转义字符运算符算术运算符、关系运算符、逻辑运算符、增一/减一运算符、位运算符、赋值运算符、类型强转运算符、逗号运算符、条件运算符(?:)、sizeof类型转换优先级和结合性,小 结,ASCII字符表1,练习:编程实现下列功能,从键盘中输入两个参数:圆半径、圆柱高计算圆周长,圆面积,球表面积、球体积、圆柱体积,保留小数点后两位。,