C语言的组成字符集P7字符集

上传人:博****1 文档编号:591587579 上传时间:2024-09-18 格式:PPT 页数:52 大小:168.50KB
返回 下载 相关 举报
C语言的组成字符集P7字符集_第1页
第1页 / 共52页
C语言的组成字符集P7字符集_第2页
第2页 / 共52页
C语言的组成字符集P7字符集_第3页
第3页 / 共52页
C语言的组成字符集P7字符集_第4页
第4页 / 共52页
C语言的组成字符集P7字符集_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《C语言的组成字符集P7字符集》由会员分享,可在线阅读,更多相关《C语言的组成字符集P7字符集(52页珍藏版)》请在金锄头文库上搜索。

1、C语言的组成字符集(P7)l字符集:09,az,AZl运算符+ - * / % & | =l分割符号( ) , : ;l注释/ /* */C语言的组成字符集(P7)字符集 关键字(保留字)关键字(保留字)标识符的分类:标识符的分类: 特定字特定字 用户定义字用户定义字-狭义的标识符狭义的标识符标识符(名字):C语言的组成字符集(P7)字符集关键字(保留字)关键字:又称保留字,一般为小写字母。 关键字是C编译程序预先登录的标识符,它们代表固定的意义,用户不能随便使用。lauto,static,register,const,void,extern,volatilelint,char,shaort,

2、float,long,double,sigend,unsigend,enoum,struct,unionlsizeof ,typedef,lif else ,switch case default break,do,continue,while,for,lreturnC语言的组成字符集(P7)字符集 特定字 特定字:具有特殊含义的标识符。它们虽然不是关键字,但是在习惯上把它们看成关键字。所以一般用户定义的标识符也不要使用它们。 特定字包括:特定字包括: define undef include ifdef ifndef endif line C语言的组成字符集(P7)字符集用户定义字(变量名、

3、函数名)规则:规则:l标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。l大小写敏感。例如:sum不同Sum。BOOK不同book。 C程序员习惯:变量名小写,常量名大写(定义常量#define PI 3.14 )。l标识符不能与“关键词”同名 “特定字”同名。l标识符命名应当有一定的意义,做到见名知义。 例如:int suml避免使用容易混淆的字符。如l与1,0与oO, z与2等判断下面标识符是否合法:sum, M.D.John, int, stu name, $123,_total, 3D64, p4050, n_yearC语言的组成字符集(P7)字符集变量名的H

4、ungarian标记法l用1n个字母表示变量类型,后面用单词表示变量内容,单词第一个字母大写其他小写l类型表示:ua(array),b(boolean),c(char), l(long int)ui|n|w(int), p(point), s(String),u如:nLength,bMarriedC语言的组成字符集(P7)字符集变量类型C语言的组成字符集(P7)字符集整型根据所占的二进制位数来分类: short (短整型2B) int (普通整型?) long (长整型4B)根据是否带符号位来分类: unsigned (不带符号的整型变量)整型默认形式是有符号的,所以signed可以不用 si

5、gned(带符号的整型变量)C语言中的有符号整数采用补码补码表示 C C标准没有具体规定上面数据类型所占用的字节数,只要标准没有具体规定上面数据类型所占用的字节数,只要求求longlong型数据长度不短于型数据长度不短于intint型,型,shortshort型不长于型不长于intint型。型。 C语言的组成字符集(P7)字符集根据整型数据所占的位数,可以计算一个整型数据能表示的数据的取值范围。 int16-3276832767long32-21474836482147483647int 类型在VC中是4B,而在TurboC中为2B注:可用sizeof(sizeof(类型标识符类型标识符/ /

6、变量)变量)测量不同数据类型所占的字节数例 int a ;printf(“a在内存中占的字节数%dn”,sizeof(a);printf(“a在内存中占的字节数%dn ” ,sizeof(int);C语言的组成字符集(P7)字符集数据类型说明符数据类型说明符 char例如,例如, char aloha,beta,c; 一一个个字字符符变变量量占占据据一一个个字字节节,每每个个字字符符有有固固定定的的编编码码,最最常常用用的的就就是是ASCII 编码。编码。 标标准准ASCII编编码码是是把把每每个个字字符符和和与与0127的的数数值值联联系系起起来来,用用7位位二二进进制制表示,再将最高位充表

7、示,再将最高位充0,就是一个字节了。,就是一个字节了。 例如,在例如,在ASCII编码表中,编码表中,a用数值用数值97表示,表示,字符型、字符的存储C语言的组成字符集(P7)字符集l可以将整型量赋值给字符变量,也可以将字符量赋值给可以将整型量赋值给字符变量,也可以将字符量赋值给整型变量。整型变量。l可以对字符数据进行算术运算,相当于对它们的可以对字符数据进行算术运算,相当于对它们的ASCIIASCII码码进行算术运算。进行算术运算。l一个字符数据既可以以字符形式输出(一个字符数据既可以以字符形式输出(ASCIIASCII码对应的字码对应的字符),也可以以整数形式输出(直接输出符),也可以以整

8、数形式输出(直接输出ASCIIASCII码)。码)。注意:尽管字符型数据和整型数据之间可以通用,但是字注意:尽管字符型数据和整型数据之间可以通用,但是字符型只占符型只占1 1个字节,即如果作为整数使用范围个字节,即如果作为整数使用范围0-2550-255(无(无符号)符号)-128-127-128-127(有符号)。(有符号)。C C C C语言中的字符存储的是其语言中的字符存储的是其语言中的字符存储的是其语言中的字符存储的是其ASCII,ASCII,ASCII,ASCII,即存储的是一个较即存储的是一个较即存储的是一个较即存储的是一个较小的整数,可以像对待整型量一样使用字符型变量小的整数,可

9、以像对待整型量一样使用字符型变量小的整数,可以像对待整型量一样使用字符型变量小的整数,可以像对待整型量一样使用字符型变量C语言的组成字符集(P7)字符集例2-7a:给字符变量赋以整数(字符型、整型数据通用)void main() char c1=a; char c2=97; printf(c1=%c,c2=%cn,c1,c2); printf(c1=%d,c2=%dn,c1,c2); c1=a,c2=ac1=97,c2=97过程:整型数=机内表示(两个字节)=取低8位赋值给字符变量C语言的组成字符集(P7)字符集例2-8a:大小写字母的转换(ASCII码表:小写字母比对应的大写字母的ASCII

10、码大32,本例还可以看出允许字符数据与整数直接进行算术运算,运算时字符数据用ASCII码值参与运算)void main() char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-32;printf(n%c %cn,c1,c2); printf(%d %d n,c1,c2);A B 65 66 C语言的组成字符集(P7)字符集变量定义说明:l变量定义时,可以说明多个相同类型的变量。各个变量用“,”分隔。类型说明与变量名之间至少有一个空格间隔。如:int a,b,c; int a;int b;int c;l最后一个变量名之后必须用“;”结尾。l变量说明必须在变量使用之前。

11、l可以在定义变量的同时,对变量进行初始化。C语言的组成字符集(P7)字符集变量的初始化l变量在声明的同时赋一个初始值声明的同时赋一个初始值,称为变量初始化,尽管初始化有时和赋值=运算符起相同的作用,但是其执行原理是不同执行原理是不同的,赋值的格式在很多形式下也是不同的,在学复杂数据类型时要特别注意l举例:uint a=20,b,c=30;int a,b,c; a=20,c=30;uchar e=r,f=67C语言的组成字符集(P7)字符集实数类型lfloat(4B) u表达范围-3.4E10383.4E38之间u6位精度ldouble(8B) u表达范围-1.7E103081.7E308之间u

12、16位精度l声明举例:ufloat a,b; double c;C语言的组成字符集(P7)字符集实数表示及误差来源l实数是把存储位划分成一定格式,然后分别把表示成0.bbbbbb*2bbbb 格式的数值正负号、尾数、阶码正负号、阶码部分保存到格式相应位置中l如在下图所示的格式中,-27变为指数形式为,0.11011*2101的存储二进制为1001011101100000误差来源:尾数是有限的,十进制数变成二进制存储时,长度超过容纳范围丢失产生误差在运算中,对阶移位而使部分尾数移出容纳范围而产生误差:所以实数不能用于相等的比较所以实数不能用于相等的比较C语言的组成字符集(P7)字符集常量在程序执

13、行过程中,其值不会发生改变的量。在程序执行过程中,其值不会发生改变的量。u字面常量或直接常量字面常量或直接常量有不同的类型有不同的类型 如如 12、0、-3为整型常量为整型常量4.6、-1.23为实型常量为实型常量a、d为字符常量为字符常量“student”为字符串常量为字符串常量常常量量可可以以从从字字面面形形式式即即可可判判断断称称为为-字字面面常常量量或或直直接接常量。常量。u符号常量(用预处理命令符号常量(用预处理命令#define#define为符号常量)为符号常量)C语言的组成字符集(P7)字符集例例 #define PI 3.1416使用符号常量的好处:使用符号常量的好处:u含义

14、清楚、见名知意。含义清楚、见名知意。u修改方便、一改全改。修改方便、一改全改。例1 :符号常量应用#define PI 3.14#include void main() float area; area=10*10*PI; printf(area=%fn,area);结果:area=314.000000符号常量:例2 符号常量举例#define PRICE 30#include void main() int num,total; num=10; total=num*PRICE; printf(total=%d,total);运行结果:total=300C语言的组成字符集(P7)字符集整型常量

15、的表示l十进制表示和数学中相同,如35,-36l八进制数用零零做前缀,如023,-012, -079(错)l十六进制数用零加零加x做前缀表示,如0x2a,-0x1fl用L做后缀表示长整数常量,U后缀表示无符号数常量,如123456789ull示例:#include void main() int a,b,c; a=23;b=023;c=0x23; printf(%d,%d,%dn,a,b,c);C语言的组成字符集(P7)字符集 需需要要注注意意的的是是:如如果果整整型型常常量量超超过过机机器器所所能能表表示示的的范范围围,则则会会发发生生溢溢出出,而而在在C语语言言中中的的整整数数溢溢出出并并

16、不会使程序出错,而是得到一个非正确的值。不会使程序出错,而是得到一个非正确的值。 int a,b; a = 10000; b = 10000000; 变量变量b的值会被系统认为是的值会被系统认为是-27008。所以,如果数值很大的整数尽量用长整型!所以,如果数值很大的整数尽量用长整型!int16-3276832767long32-21474836482147483647C语言的组成字符集(P7)字符集实数常量l浮点数常量u普通表示法,实数后加f,如3.4f,-36.f(.不不可省略可省略)u科学记数法1.3e-5f,表示1.3*10-5l双精度常量u双精度常量表示与浮点数表示相同,只需要去掉后

17、面fC语言的组成字符集(P7)字符集实数常量构成规则l小数表示法:小数表示法:整整数数部部分分可可以以不不写写,小小数数部部分分也也可可以以不不写写,但但不不能能同同时不写。时不写。例如:例如:.123、123.、123.0、0.0l科学计数法科学计数法u指数部分可以省略(相当于使用小数表示法)指数部分可以省略(相当于使用小数表示法)u若有指数部分,若有指数部分,e(或(或E)两边都至少有一位数。)两边都至少有一位数。u指指数数的的数数字字必必须须是是整整数数(范范围围为为1到到3位位的的整整数数),可以为负或正,正号可以省略。可以为负或正,正号可以省略。例如:例如:e3、2.1e3.5、.e

18、3、e都不是合法的指数形式都不是合法的指数形式 C语言的组成字符集(P7)字符集判断下面实数写法是否合法?判断下面实数写法是否合法? 4.50E3 4.50E3、1.01.0、1.1.、.1234.1234、123.4123.4 2.3478e2 2.3478e2、3.0999E53.0999E5、6.46832e126.46832e12 注意:注意: l实实数数在在存存储储时时按按doubledouble类类型型存存储储,即即占占3232位位(bitbit)。如如果果要要指指定定它它为为单单精精度度,可可以以加加后后缀缀f f,如3.4f,-36.f(.不可省略) l浮浮点点常常量量也也象象

19、整整型型常常量量一一样样,如如果果浮浮点点常常量量超超过过机机器器所所能能表表示示的的范范围围,则则会会发发生生溢溢出出。浮浮点点溢溢出出也也不不会会使使程程序序出出错错,而是得到一个非正确的值而是得到一个非正确的值 。C语言的组成字符集(P7)字符集实数输出举例#include void main() float a=34.5678;printf(%f,%dn,a,a);l输出结果:34.567799,-1610612736l说明前面存储时产生误差,后者格式错误输出完全错误C语言的组成字符集(P7)字符集 字符常量lC C语语言言中中的的字字符符常常量量是是用用单单引引号号将将一一个个字字符

20、符括括起起来来。例例如如aa。可可以以用用字字符常量为字符变量赋值:符常量为字符变量赋值:char alpha=a;char alpha=a;注意:注意:(1)(1) 注意字符型常量有且只能有一个字符注意字符型常量有且只能有一个字符, ,如如:ab, (:ab, (空空) )都是错的。都是错的。(3)(3)字符型数据可以像整型数据一样参与四则运算。字符型数据可以像整型数据一样参与四则运算。 b- a=198-97=1l另一类重要的字符型常量另一类重要的字符型常量转义字符。转义字符。表示方法是使用转义符表示方法是使用转义符 与一些特殊字符构成转义序列。与一些特殊字符构成转义序列。例如例如nn就是

21、一个转义序列,表示就是一个转义序列,表示“回车换行回车换行”为一个字符。为一个字符。C语言的组成字符集(P7)字符集转义字符l一些在编辑或通信过程中起控制作用的字符,ASCII码值小于32,不属于可打印字符,不方便用键盘输入或无法输入,直接记忆ASCII又比较困难,因此C语言中定义“”转义字符,用”加一个单词的首字母,表示一个控制字符,下面是”后可以跟的字符及其含义字符形式含义字符形式含义a(alarm)响铃b(backspace)退格”“nn(next Line)换行r(return)回车ddd3位八进制ASCIIf(feed paper)换页,用于打印机xhh2位十六进制ASCIIv(ve

22、rtical)纵向跳格,用于打印机0NULL字符串结束符tt(tab)横向制表C语言的组成字符集(P7)字符集转义字符举例p23#include void main() printf(a0123456789ak0123456789n ); printf(An101012x41x0an ); C语言的组成字符集(P7)字符集字符串常量 用双引号括起来的字符序列是字符串常量。用双引号括起来的字符序列是字符串常量。howareyou1234.5“”(空串空串)“ ”(由一个空格组成的字符串由一个空格组成的字符串)C语言的组成字符集(P7)字符集注意:注意:1.区分字符常量与字符串常量。如“a”和a。

23、C语言规定:语言规定:在每个字符串的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。C规定以0(ASCII码为0的字符)作为字符串结束标志。如:“CHINA”在内存中的存储应当是:(长度=6)CHINA02.C语言没有专门的字符串变量,如果想将一个字符串存放在变量中,可以使用字符数组。即用一个字符数组来存放一个字符串,数组中每一个元素存放一个字符。C语言的组成字符集(P7)字符集输入输出(一) stdio.h中提供的输入输出函数C语言的组成字符集(P7)字符集getchar()与putchar()函数C语言为保证自身的可移植性,没有输入输出指令,输入输出功能是通过函数实现的lst

24、dio.h文件中提供的单字符输入输出函数uint getchar(void )l举例 char c; c=getchar();将从键盘读入一个字符存于c中uint putchar(int c)l举例 char b=A;putchar(b);将在屏幕上输出字母AC语言的组成字符集(P7)字符集若想输出字符若想输出字符a,可以用几种方式?,可以用几种方式?intc;c=a;putchar(c);putchar(a);putchar(97);C语言的组成字符集(P7)字符集getchar()与putchar()函数举例#include void main()char c;c=getchar();/输

25、入 ac=c-32;putchar(c);putchar(n);C语言的组成字符集(P7)字符集stdio.h中提供的输出函数printf()l格式:lint printf(“格式控制字符串”,表达式1,表达式2)l举例:printf(“name is%s,age is %d”, “Tom”,30+2)u格式控制串中的控制字符,按照次序控制后面变量列表中字符的输出,像上面例子中,%s控制”Tom”的输出格式,%d控制30+2的输出,注意如果是逗号表达式,一定用括号括起来,否则会视为两个表达式C语言的组成字符集(P7)字符集printf()函数中%后的类型符号lc : 以字符形式输出ld,i:以

26、有符号十进制整数形式输出lo:以无符号八进制整数形式输出lx或X:以无符号十六进制整数形式输出lu:以无符号十进制整数形式输出lf:以带小数点形式输出浮点数le或E:以科学记数法形式输出浮点数lg或G:由系统选择使用小数点形式或科学记数法形式输出浮点数ls:以字符串形式输出lp:以十六进制内存地址方式输出l%:输出%C语言的组成字符集(P7)字符集%d 表示把数据按十进制整型输出;表示把数据按十进制整型输出;%o 表示把数据按八进制整型输出;表示把数据按八进制整型输出;%x 表示把数据按十六进制整型输出;表示把数据按十六进制整型输出;%u 表示把数据参数按无符号整型输出。表示把数据参数按无符号

27、整型输出。注意:注意:除了除了%d,其余的格式都将数据作为无符号数输出。,其余的格式都将数据作为无符号数输出。printf(%ld,100000L); printf(%ld,100000L); 正确正确printf(%d,100000L); printf(%d,100000L); 结果结果 -31072 用printf显示整型数据C语言的组成字符集(P7)字符集控制输出时读取内存的长度l在输出时在类型符号前加L输出长整形或双精度数据,加h输出短整形数据l举例:#include void main() long a=0x11112222L,b=0x33334444L; printf(%hx,%x

28、,a,b); C语言的组成字符集(P7)字符集控制输出数据的长度l在使用%d,%c,%f,%e 可以使用数字说明输出的宽度,当指定宽度的整数部分,大于实际需要时填充空格,不能正确输出时,按实际情况输出u#include uvoid main() uprintf(%4d,n%04d,n%-4d,n%+4d,n%x,n%#xn,1,2,3,4,5,5);uprintf(n%7.2f,n%7.2en,123.456,123.456);ul-左对齐,+显示正负号,0填充零,#在八进制十六进制前显示前缀C语言的组成字符集(P7)字符集stdio.h中输入函数SCANF()l格式 int scanf(“格

29、式控制字符串”,变量地址列表)l注意事项:u格式字符串,中除了格式控制符外其他字符要求原样输入,否则无法正确输入,所以一般情况下,scanf()的格式串中只包含格式控制符,没有多余字符uscanf()函数中需要的是地址列表,不是变量,如果程序错误,会在程序执行时,出现系统错误C语言的组成字符集(P7)字符集注意注意(1) scanf读读入入一一组组整整数数时时,scanf扫扫视视输输入入信信息息,跳跳过过空空格格、tab或或换换行行,寻寻找下一个输入域。一个输入域就是一个连续的非空白字符的数字串。找下一个输入域。一个输入域就是一个连续的非空白字符的数字串。例如,若输入为:例如,若输入为: 78

30、2 319 20 (回车符)(回车符)38 则输入域有四个。最终:则输入域有四个。最终:a=782,b=319,c=20,d=38(2) 格格式式信信息息中中除除了了有有 %开开始始的的转转换换说说明明,还还可可以以有有普普通通字字符符,只只是是这这些些字字符符不不是是显显示示在在屏屏幕幕上上的的,而而是是要要求求使使用用者者在在输输入入数数据据时时,要要在在相相应应位位置置输入相同的字符(除了空格、输入相同的字符(除了空格、tab或换行符)。例如或换行符)。例如“,” scanf(“%d,%d,%d,%d ,&a,&b,&c,&d);此时输入域必须要用此时输入域必须要用”,”分割。分割。输入

31、输入782 ,319, 20 ,38 C语言的组成字符集(P7)字符集scanf()函数中%后的类型符号lc:输入一个字符l d ,D :输入有符号十进制整数l e, f :输入浮点数lle,lf:输入双精度数l o,O :输入八进制整数l i,I :直接输入十进制、加0输入八进制,加0x输入十六进制数l u ,U:输入无符号十进制整数lx ,X: 输入十六进制数ls :输入字符串C语言的组成字符集(P7)字符集用scanf输入字符注意:注意: 尽尽量量不不要要将将%c(控控制制输输入入单单个个字字符符,包包括括空空格格、回回车车 )与其它转换说明一起使用。)与其它转换说明一起使用。 当当sc

32、anf读入一组数据时,如果不使用读入一组数据时,如果不使用%c做转换时,做转换时,scanf扫视输入信息,跳过空格、扫视输入信息,跳过空格、tab或换行,寻找下一或换行,寻找下一个输入域。个输入域。 但但是是若若使使用用%c做做转转换换时时,情情况况则则不不同同,scanf不不会会跳跳过过空空格格、tab或或换换行行,而而是是直直接接把把下下一一个个字字符符输输入入给给参数,不论它是什么。参数,不论它是什么。C语言的组成字符集(P7)字符集例如,例如, scanf(%d%c,&i,&c);键盘输入键盘输入 29 w c的内容不是字符的内容不是字符w,而是空格。,而是空格。 解决的方法解决的方法

33、在控制字符串中加空格分隔。在控制字符串中加空格分隔。 scanf(%d %c,&i,&c);C语言的组成字符集(P7)字符集控制输入的宽度#include void main() int a,b,c;scanf(%2d%3d,&a,&b);/input 123 456printf(%d,%dn,a,b);C语言的组成字符集(P7)字符集通过%*略过一个输入数据l示例:#include void main() int a,b;scanf(%d%*d%d,&a,&b);/input 12 34 56printf(%d,%dn,a,b);C语言的组成字符集(P7)字符集长度限制影响举例/输入时f与l

34、f有区别,输出时没有区别#include void main()float a=12.345f;double b=12.345;scanf(%lf%lf,&a,&b);printf(error input a:%f,%lfn,a,b);scanf(%f%f,&a,&b); printf(error input b:%f,%lfn,a,b);scanf(%f%lf,&a,&b);printf(error output :%lf,%fn,a,b);C语言的组成字符集(P7)字符集输入输出(二)流的输入输出C语言的组成字符集(P7)字符集流的输入输出举例#include void main()int

35、 a,b,c;cinabc;coutabcendl;/没有间隔C语言的组成字符集(P7)字符集流的输入输出举例#include void main()int a=20,b=20;couthexaendl;coutbendl;/keep hexcoutdecbendl;/decC语言的组成字符集(P7)字符集不能混用cin cout是C+中定义输入输出,scanf(),printf()是C语言中定义的函数,两者工作机理不同,只能同时使用其中一套,不能混用,举例:#include #include void main() int a; coutinput a please:n;scanf(%d,&a);printf(%dn,a);C语言的组成字符集(P7)字符集补充:l如何在屏幕打印出“”“%” printf(“”)% printf(“%”)C语言的组成字符集(P7)字符集

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号