版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言的组成字符集(P7)字符集 l字符集:09,az,AZ l运算符+ - * / % l注释/ /* */ C语言的组成字符集(P7)字符集 关键字(保留字)关键字(保留字) 标识符的分类:标识符的分类: 特定字特定字 用户定义字用户定义字-狭义的标识符狭义的标识符 C语言的组成字符集(P7)字符集 关键字:又称保留字,一般为小写字母。 关键字是C编译程序预先登录的标识符,它 们代表固定的意义,用户不能随便使用。 lauto,static,register,const,void,extern,volatile lint,char,shaort,float,long,double,sigen
2、d,unsigend,enoum,st ruct,union lsizeof ,typedef, lif else ,switch case default break,do,continue,while,for, lreturn C语言的组成字符集(P7)字符集 特定字:具有特殊含义的标识符。它们虽然不是 关键字,但是在习惯上把它们看成关键字。所以一般 用户定义的标识符也不要使用它们。 特定字包括:特定字包括: define undef include ifdef ifndef endif line C语言的组成字符集(P7)字符集 规则:规则: l 标识符只能由字母、数字和下划线三种字符组
3、成,且第一 个字符必须为字母或下划线。 l 大小写敏感。例如:sum不同Sum。BOOK不同book。 C程序员习惯:变量名小写,常量名大写(定义常量 #define PI 3.14 )。 l 标识符不能与“关键词”同名 “特定字”同名。 l 标识符命名应当有一定的意义,做到见名知义。 例如:int sum l 避免使用容易混淆的字符。如l与1,0与oO, z与2等 判断下面标识符是否合法: sum, M.D.John, int, stu name, $123,_total, 3D64, p4050, n_year C语言的组成字符集(P7)字符集 l用1n个字母表示变量类型,后面用单词 表示
4、变量内容,单词第一个字母大写其他 小写 l类型表示: ua(array),b(boolean),c(char), l(long int) ui|n|w(int), p(point), s(String), u如:nLength,bMarried C语言的组成字符集(P7)字符集 C语言的组成字符集(P7)字符集 根据所占的二进制位数来分类: short (短整型2B) int (普通整型?) long (长整型4B) 根据是否带符号位来分类: unsigned (不带符号的整型变量) 整型默认形式是有符号的,所以signed可以不用 signed(带符号的整型变量) C语言中的有符号整数采用补
5、码补码表示 C C标准没有具体规定上面数据类型所占用的字节数,只要标准没有具体规定上面数据类型所占用的字节数,只要 求求longlong型数据长度不短于型数据长度不短于intint型,型,shortshort型不长于型不长于intint型。型。 C语言的组成字符集(P7)字符集 根据整型数据所占的位数,可以计算一个 整型数据能表示的数据的取值范围。 int16-3276832767 long32-21474836482147483647 int 类型在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位二进制位二进制 表示,再将最高位充表示,再将最高位充0
7、,就是一个字节了。,就是一个字节了。 例如,在例如,在ASCII编码表中,编码表中,a用数值用数值97表示,表示, C语言的组成字符集(P7)字符集 l可以将整型量赋值给字符变量,也可以将字符量赋值给可以将整型量赋值给字符变量,也可以将字符量赋值给 整型变量。整型变量。 l可以对字符数据进行算术运算,相当于对它们的可以对字符数据进行算术运算,相当于对它们的ASCIIASCII 码进行算术运算。码进行算术运算。 l一个字符数据既可以以字符形式输出(一个字符数据既可以以字符形式输出(ASCIIASCII码对应的码对应的 字符),也可以以整数形式输出(直接输出字符),也可以以整数形式输出(直接输出A
8、SCIIASCII码)。码)。 注意:尽管字符型数据和整型数据之间可以通用,但是字注意:尽管字符型数据和整型数据之间可以通用,但是字 符型只占符型只占1 1个字节,即如果作为整数使用范围个字节,即如果作为整数使用范围0-2550-255(无(无 符号)符号)-128-127-128-127(有符号)。(有符号)。 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,c
9、2=a c1=97,c2=97 过程:整型数=机内表示(两个字节)=取低8位赋值给 字符变量 C语言的组成字符集(P7)字符集 例2-8a:大小写字母的转换(ASCII码表:小写字母比对 应的大写字母的ASCII码大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变量定义时,可以说明多
10、个相同类型的变量。各个变 量用“,”分隔。类型说明与变量名之间至少有一个 空格间隔。如:int a,b,c; int a; int b; int c; l最后一个变量名之后必须用“;”结尾。 l变量说明必须在变量使用之前。 l可以在定义变量的同时,对变量进行初始化。 C语言的组成字符集(P7)字符集 l变量在声明的同时赋一个初始值声明的同时赋一个初始值,称为变 量初始化,尽管初始化有时和赋值=运算 符起相同的作用,但是其执行原理是不同执行原理是不同 的,赋值的格式在很多形式下也是不同的, 在学复杂数据类型时要特别注意 l举例: uint a=20,b,c=30;int a,b,c; a=20,
11、c=30; uchar e=r,f=67 C语言的组成字符集(P7)字符集 lfloat(4B) u表达范围-3.4E10383.4E38之间 u6位精度 ldouble(8B) u表达范围-1.7E103081.7E308之间 u16位精度 l声明举例: ufloat a,b; double c; C语言的组成字符集(P7)字符集 l实数是把存储位划分成一定格式,然后分别把表示成 0.bbbbbb*2bbbb 格式的数值正负号、尾数、阶码正负 号、阶码部分保存到格式相应位置中 l如在下图所示的格式中,-27变为指数形式为, 0.11011*2101的存储二进制为100101110110000
12、0 误差来源: 尾数是有限的,十进制数变成二进制存储时,长度超过容纳范围 丢失产生误差 在运算中,对阶移位而使部分尾数移出容纳范围而产生误差: 所以实数不能用于相等的比较所以实数不能用于相等的比较 C语言的组成字符集(P7)字符集 在程序执行过程中,其值不会发生改变的量。在程序执行过程中,其值不会发生改变的量。 u字面常量或直接常量字面常量或直接常量有不同的类型有不同的类型 如如 12、0、-3为整型常量为整型常量 4.6、-1.23为实型常量为实型常量 a、d为字符常量为字符常量 “student”为字符串常量为字符串常量 常量可以从字面形式即可判断称为常量可以从字面形式即可判断称为-字面常
13、量或直接字面常量或直接 常量。常量。 u符号常量(用预处理命令符号常量(用预处理命令#define#define为符号常量)为符号常量) C语言的组成字符集(P7)字符集 例例 #define PI 3.1416 使用符号常量的好处:使用符号常量的好处: u含义清楚、见名知意。含义清楚、见名知意。 u修改方便、一改全改。修改方便、一改全改。 例1 :符号常量应用 #define PI 3.14 #include void main() float area; area=10*10*PI; printf(area=%fn,area); 结果:area=314.000000 例2 符号常量举例 #
14、define PRICE 30 #include void main() int num,total; num=10; total=num*PRICE; printf(total=%d,total); 运行结果:total=300 C语言的组成字符集(P7)字符集 l十进制表示和数学中相同,如35,-36 l八进制数用零零做前缀,如023,-012, -079(错) l十六进制数用零加零加x做前缀表示,如0 x2a,-0 x1f l用L做后缀表示长整数常量,U后缀表示无符号 数常量,如123456789ul l示例: #include void main() int a,b,c; a=23;b
15、=023;c=0 x23; printf(%d,%d,%dn,a,b,c); C语言的组成字符集(P7)字符集 需要注意的是:如果整型常量超过机器所能表需要注意的是:如果整型常量超过机器所能表 示的范围,则会发生溢出,而在示的范围,则会发生溢出,而在C语言中的整数溢出语言中的整数溢出 并不会使程序出错,而是得到一个非正确的值。并不会使程序出错,而是得到一个非正确的值。 int a,b; a = 10000; b = 10000000; 变量变量b的值会被系统认为是的值会被系统认为是-27008。 所以,如果数值很大的整数尽量用长整型!所以,如果数值很大的整数尽量用长整型! int16-3276
16、832767 long32-21474836482147483647 C语言的组成字符集(P7)字符集 l浮点数常量 u普通表示法,实数后加f,如3.4f,-36.f(.不不 可省略可省略) u科学记数法1.3e-5f,表示1.3*10-5 l双精度常量 u双精度常量表示与浮点数表示相同,只 需要去掉后面f C语言的组成字符集(P7)字符集 l小数表示法:小数表示法: 整数部分可以不写,小数部分也可以不写,但不能同整数部分可以不写,小数部分也可以不写,但不能同 时不写。时不写。 例如:例如:.123、123.、123.0、0.0 l科学计数法科学计数法 u指数部分可以省略(相当于使用小数表示法
17、)指数部分可以省略(相当于使用小数表示法) u若有指数部分,若有指数部分,e(或(或E)两边都至少有一位数。)两边都至少有一位数。 u指数的数字必须是整数(范围为指数的数字必须是整数(范围为1到到3位的整数),位的整数), 可以为负或正,正号可以省略。可以为负或正,正号可以省略。 例如:例如:e3、2.1e3.5、.e3、e都不是合法的指数形式都不是合法的指数形式 C语言的组成字符集(P7)字符集 判断下面实数写法是否合法?判断下面实数写法是否合法? 4.50E34.50E3、1.01.0、1.1.、.1234.1234、123.4123.4 2.3478e2 2.3478e2、3.0999E
18、53.0999E5、6.46832e126.46832e12 注意:注意: l实数在存储时按实数在存储时按doubledouble类型存储,即占类型存储,即占3232位(位(bitbit)。如)。如 果要指定它为单精度,可以加后缀果要指定它为单精度,可以加后缀f f,如3.4f,-36.f(.不 可省略) l浮点常量也象整型常量一样,如果浮点常量超过机器所能浮点常量也象整型常量一样,如果浮点常量超过机器所能 表示的范围,则会发生溢出。浮点溢出也不会使程序出错,表示的范围,则会发生溢出。浮点溢出也不会使程序出错, 而是得到一个非正确的值而是得到一个非正确的值 。 C语言的组成字符集(P7)字符集
19、 #include void main() float a=34.5678; printf(%f,%dn,a,a); l输出结果:34.567799,-1610612736 l说明前面存储时产生误差,后者格式错误输出 完全错误 C语言的组成字符集(P7)字符集 lC C语言中的字符常量是用单引号将一个字符括起来。例如语言中的字符常量是用单引号将一个字符括起来。例如aa。可以用字。可以用字 符常量为字符变量赋值:符常量为字符变量赋值: char alpha=a;char alpha=a; 注意:注意: (1)(1) 注意字符型常量有且只能有一个字符注意字符型常量有且只能有一个字符, ,如如:ab
20、, (:ab, (空空) )都是错都是错 的。的。 (3)(3)字符型数据可以像整型数据一样参与四则运算。字符型数据可以像整型数据一样参与四则运算。 b- a=1 98-97=1 l另一类重要的字符型常量另一类重要的字符型常量转义字符。转义字符。 表示方法是使用转义符表示方法是使用转义符 与一些特殊字符构成转义序列。与一些特殊字符构成转义序列。 例如例如nn就是一个转义序列,表示就是一个转义序列,表示“回车换行回车换行”为一个字符。为一个字符。 C语言的组成字符集(P7)字符集 l一些在编辑或通信过程中起控制作用的字符,ASCII码值小于32,不 属于可打印字符,不方便用键盘输入或无法输入,直
21、接记忆ASCII 又比较困难,因此C语言中定义“”转义字符,用”加一个单词 的首字母,表示一个控制字符,下面是”后可以跟的字符及其含义 字符形式含义字符形式含义 a(alarm)响铃 b(backspace)退格”“ nn(next Line)换行 r(return)回车ddd3位八进制ASCII f(feed paper)换页,用于打印机xhh2位十六进制ASCII v(vertical)纵向跳格,用于打印机0NULL字符串结束符 tt(tab)横向制表 C语言的组成字符集(P7)字符集 #include void main() printf(a0123456789ak0123456789n
22、 ); printf(An101012x41x0an ); C语言的组成字符集(P7)字符集 用双引号括起来的字符序列是字符串常量。用双引号括起来的字符序列是字符串常量。 how are you 1234.5“ “”(空串空串) “ ”(由一个空格组成的字符串由一个空格组成的字符串) C语言的组成字符集(P7)字符集 注意:注意: 区分字符常量与字符串常量。如“a”和a。 C语言规定:语言规定:在每个字符串的结尾加一个“字 符串结束标志”,以便系统据此判断字符串是 否结束。C规定以0(ASCII码为0的字符) 作为字符串结束标志。 如:“CHINA”在内存中的存储应当是:(长度=6) CHIN
23、A0 C语言没有专门的字符串变量,如果想将一 个字符串存放在变量中,可以使用字符数组 。即用一个字符数组来存放一个字符串,数 组中每一个元素存放一个字符。 C语言的组成字符集(P7)字符集 stdio.h中提供的输入输出函数 C语言的组成字符集(P7)字符集 C语言为保证自身的可移植性,没有输入输出 指令,输入输出功能是通过函数实现的 lstdio.h文件中提供的单字符输入输出函数 uint getchar(void ) l举例 char c; c=getchar();将从键盘读入一个 字符存于c中 uint putchar(int c) l举例 char b=A;putchar(b);将在屏
24、幕上输出 字母A C语言的组成字符集(P7)字符集 若想输出字符若想输出字符a,可以用几种方式?,可以用几种方式? int c ; c=a; putchar( c); putchar(a); putchar(97); C语言的组成字符集(P7)字符集 #include void main() char c; c=getchar();/输入 a c=c-32; putchar(c); putchar(n); C语言的组成字符集(P7)字符集 l格式: lint printf(“格式控制字符串”,表达式1,表达式 2) l举例:printf(“name is%s,age is %d”, “Tom”
25、,30+2) u格式控制串中的控制字符,按照次序控制后 面变量列表中字符的输出,像上面例子中,%s 控制”Tom”的输出格式,%d控制30+2的输出, 注意如果是逗号表达式,一定用括号括起来, 否则会视为两个表达式 C语言的组成字符集(P7)字符集 lc : 以字符形式输出 ld,i:以有符号十进制整数形式输出 lo:以无符号八进制整数形式输出 lx或X:以无符号十六进制整数形式输出 lu:以无符号十进制整数形式输出 lf:以带小数点形式输出浮点数 le或E:以科学记数法形式输出浮点数 lg或G:由系统选择使用小数点形式或科学记数 法形式输出浮点数 ls:以字符串形式输出 lp:以十六进制内存
26、地址方式输出 l%:输出% C语言的组成字符集(P7)字符集 %d 表示把数据按十进制整型输出;表示把数据按十进制整型输出; %o 表示把数据按八进制整型输出;表示把数据按八进制整型输出; %x 表示把数据按十六进制整型输出;表示把数据按十六进制整型输出; %u 表示把数据参数按无符号整型输出。表示把数据参数按无符号整型输出。 注意:注意: 除了除了%d,其余的格式都将数据作为无符号数输出。,其余的格式都将数据作为无符号数输出。 printf(%ld,100000L); printf(%ld,100000L); 正确正确 printf(%d,100000L); printf(%d,100000
27、L); 结果结果 -31072 C语言的组成字符集(P7)字符集 l在输出时在类型符号前加L输出长整形 或双精度数据,加h输出短整形数据 l举例: #include void main() long a=0 x11112222L,b=0 x33334444L; printf(%hx,%x,a,b); C语言的组成字符集(P7)字符集 l在使用%d,%c,%f,%e 可以使用数字说明输出 的宽度,当指定宽度的整数部分,大于实际需要 时填充空格,不能正确输出时,按实际情况输出 u#include uvoid main() uprintf(%4d,n%04d,n%- 4d,n%+4d,n%x,n%#
28、xn,1,2,3,4,5,5); uprintf(n%7.2f,n%7.2en,123.456,123.456); u l-左对齐,+显示正负号,0填充零,#在八进制十六 进制前显示前缀 C语言的组成字符集(P7)字符集 l格式 int scanf(“格式控制字符串”,变量地址列 表) l注意事项: u格式字符串,中除了格式控制符外其他字符 要求原样输入,否则无法正确输入,所以一般 情况下,scanf()的格式串中只包含格式控制符, 没有多余字符 uscanf()函数中需要的是地址列表,不是变量, 如果程序错误,会在程序执行时,出现系统错 误 C语言的组成字符集(P7)字符集 注意注意 (1)
29、 scanf读入一组整数时,读入一组整数时,scanf扫视输入信息,跳过空格、扫视输入信息,跳过空格、tab或换行,寻或换行,寻 找下一个输入域。一个输入域就是一个连续的非空白字符的数字串。找下一个输入域。一个输入域就是一个连续的非空白字符的数字串。 例如,若输入为:例如,若输入为: 782 319 20 (回车符)(回车符) 38 则输入域有四个。最终:则输入域有四个。最终:a=782,b=319,c=20,d=38 (2) 格式信息中除了有格式信息中除了有 %开始的转换说明,还可以有普通字符,只是这些开始的转换说明,还可以有普通字符,只是这些 字符不是显示在屏幕上的,而是要求使用者在输入数
30、据时,要在相应字符不是显示在屏幕上的,而是要求使用者在输入数据时,要在相应 位置输入相同的字符(除了空格、位置输入相同的字符(除了空格、tab或换行符)。例如或换行符)。例如“,” scanf(“%d,%d,%d,%d , 此时输入域必须要用此时输入域必须要用”,”分割。分割。 输入输入782 ,319, 20 ,38 C语言的组成字符集(P7)字符集 lc:输入一个字符 l d ,D :输入有符号十进制整数 l e, f :输入浮点数 lle,lf:输入双精度数 l o,O :输入八进制整数 l i,I :直接输入十进制、加0输入八进制,加0 x输入十六进 制数 l u ,U:输入无符号十进
31、制整数 lx ,X: 输入十六进制数 ls :输入字符串 C语言的组成字符集(P7)字符集 尽量不要将尽量不要将%c(控制输入单个字符,包括空格、回(控制输入单个字符,包括空格、回 车车 )与其它转换说明一起使用。)与其它转换说明一起使用。 当当scanf读入一组数据时,如果不使用读入一组数据时,如果不使用%c做转换时,做转换时, scanf扫视输入信息,跳过空格、扫视输入信息,跳过空格、tab或换行,寻找下一或换行,寻找下一 个输入域。个输入域。 但是若使用但是若使用%c做转换时,情况则不同,做转换时,情况则不同,scanf不会不会 跳过空格、跳过空格、tab或换行,而是直接把下一个字符输入或换行,而是直接把下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 5-6岁幼儿撒谎行为研究
- 2025年中职水产养殖技术(鱼类养殖实操)试题及答案
- 2026年墙面工程(墙面施工)考题及答案
- 2025年高职植物保护(植物检疫技术)试题及答案
- 2025-2026年三年级地理(土壤植被)下学期期末检测卷
- 2025年大学大四(会计学)会计学综合试题及解析
- 2025年中职(中西面点工艺)饼干制作测试题及解析
- 2025年大学动物医学(动物病理学)试题及答案
- 2025年中职计算机应用(多媒体制作基础)试题及答案
- 2025年高职公共关系学(公关实务)试题及答案
- 不孕症和辅助生殖技术专业版
- 农夫山泉代理合同范本
- 工作总结亮点与不足
- 直肠脱垂的护理查房
- 照明设施日常巡检与维护方案
- 企业普法培训课件
- 团建活动合同协议书范本
- 光大银行信用卡合同协议
- 铝灰渣资源化技术服务方案
- 人教版(2024)八年级上册数学第十八章 分式 教案(单元整体设计)
- 水电站的技术管理
评论
0/150
提交评论