PPT02第二章数据信息_第1页
PPT02第二章数据信息_第2页
PPT02第二章数据信息_第3页
PPT02第二章数据信息_第4页
PPT02第二章数据信息_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章数据信息2.1基本符号

保留字 运算符 分隔符 标识符 常量注释2.1.1字符集<字母>→A——Z,a——z<数字>→0——9<特殊字符>→!▌#▌%▌^▌&▌*▌(▌_▌)▌-▌+▌=▌~▌[▌]▌’▌|▌\▌;▌:▌“▌{▌}▌,▌.▌<▌>▌/▌?

除以上符号外,其它符号不许在C程序中出现。

2.1.2标识符标识符(identifier)表示对象名字的符号。构成规则:以字母或下划线开头的字母和数字的序列<标识符>→<非数字字符>▌<标识符><非数字字符>▌<标识符><数字><非数字字符>→<字母>▌_

思考:判断下列标识符是否合法SumsumM.D.JohndayDate3days$123student_namechar#33lotus_1_2_3a>b_above

标准标识符(预定义标识符)用户自定义标识符:尽量起代表其本来含义的名字。

※C不允许使用无定义的标识符。标识符分类——不能与保留字重名。不能与标准标识符重名。先声明后使用。不允许重复声明。拼写完全一致的两个标识符是相同的。字母大小写的敏感。尽量与含义相符。用途:常量、变量、函数名、语句标号、类型定义符等标识符定义注意要点

<保留字>→auto▌bool▌break▌case▌char▌_complex▌const▌continue▌default▌restrict▌do▌double▌else▌enum▌extern▌float▌for▌goto▌if▌_imaginary▌inline▌int▌long▌register▌return▌short▌signed▌sizeof▌static▌struct▌switch▌typedef▌union▌unsigned▌void▌volatile▌while不能把保留字作为普通标识符使用。2.1.3保留字

分隔符是由一个或两个字符组成的特殊符号。<分隔符>→#▌(▌)▌[▌]▌’▌|▌;▌:▌”▌{▌}▌,▌\

2.1.4分隔符2.1.5运算符<运算符>→!▌%▌^▌&▌*▌-▌+▌=▌~▌|▌.▌<▌>▌/▌?▌+=▌-=▌*=▌/=▌%=▌<<=▌>>=▌&=▌^=▌|=▌->▌++▌--▌<<▌>>▌<=▌>=▌==|!=▌&&▌||

常量(Constant)直接常量:包括整型、浮点型、字符型、字符串型等常量3,3.14,-5,-9.8,‘A’,“anexample”符号常量:代表常量的标识符符号。符号常量通常用大写字母表示。定义格式:#definePI3.1415926含义清楚“一改全改”2.1.6常量

优点注意!无分号[例]#define

PRICE30main(){intnum,total;num=10;total=num*PRICE;printf("total=%d",total);}#define语句定义一个符号常量PRICE,其值等于30。该值在程序运行过程中不能被改变。编译程序在翻译本源程序文件时,符号常量PRICE用其值30替换。运行结果是:total=300符号常量=>total=10*30;2.1.7注释两种形式:“/*”和“*/”;“//”和“//”。作用:增加程序的可读性。Attention:程序的书写格式自由应该:结构清晰层次分明

eg.#include<stdio.h>inti;//声明整型变量ivoidmain()//主函数

{i=25+38;/*求和运算*/printf(“25+38=%d”,i);/*打印*/}完全可以写成:

#include<stdio.h>inti;main()

{i=25+38;printf(“25+38=%d”,i);}2.2数据类型数据类型基本类型构造类型指针类型空类型整型(short、int、long)实型(float、double)字符(char)

枚举(enum)数组类型

结构体类型(struct)共用体类型(union)文件类型(file)数据类型C语言中整型数值常量的表达方式:3种十进制整数123十进制:表示十进制数12345八进制整数(0开头)0123:八进制数,表示十进制数83十六进制整数(0x开头)0x123:十六进制数,表示十进制数2911.整型常量2.2.1整数类型2、整型变量的分类(IBM16位PC)基本型(整型)int2字节短整型short或shortint2字节长整型long或longint4字节无符号整型:unsigned2字节无符号短整型:unsignedshort2字节无符号长整型:unsignedlong4字节

C语言标准没有规定整型变量在计算机内存中所占的字节数,与具体的机器和操作系统有关。整数运算运算分量和结果都是整数类型的运算包括:+、-、*:就是通常数学意义下的加、 减、乘。

/:除法,只求其商而舍去余数(不进行四舍五入)%:取余数。i%j的结果是i/j后得到的余数

i%j等价于i-(i/j)*j

i等价于(i/j)*j+i%j例子1main(){inta,b,c,d;unsignedintu;a=12;b=-24;u=10;c=a+u;d=b+u;printf("a+u=%d,b+u=%d\n",c,d);}程序运行显示:a+u=22,b+u=-14不同数据类型之间也可以进行运算main(){inta,b;a=32767;b=a+1;printf("%d,%d\n",a,b);}程序运行显示:32767,-32768

计算机中的数据和现实数据的区别:数据类型有表示范围例子22.2.2浮点类型各种长度的浮点类型(float、double、longdouble)常量(两种表达方式):

十进制数形式0.123、.123、123.0、123.、0.0(必须有小数点)

指数形式

123e3或123E3代表:123103;123E2.5、E3,E不合法。运算分量和结果都是浮点类型的运算包括:+(加法)-(减法)*(乘法)/(除法)两个几乎相等的值相减,会引起很大的误差若除数的绝对值很小,结果很可能引起溢出在比较X、Y两个浮点值是否相等时使用|X-Y|<ε(ε通常取值1e-6)变量单精度:float

4字节(32位)双精度:double

8字节(64位)例1:floatx,y;/*指定x、y为单精度实型变量*/doublez;/*指定z为双精度实型变量*/实型常量不分float和double。例2:floata;a=123456.711float型变量只能接受7(8)位有效数字,最后两位数字不起作用double型变量能接受16位有效数字。longdouble型变量能接受19位有效数字。实型数据在内存中的存放形式 实型数据在内存中以二进制存放。 在C编译系统下,每一个实型变量在内存中占4个字节(32位),数据按照指数形式存储,数据按照小数部分与指数部分分别存放。实数3.14159在内存中的存放形式。+.3141591数符小数部分指数部分

+.314159×1012.2.3

字符类型(char型)字符常量:用单引号(撇号)括起来的一个字符。字符在内存中以ASCII码存放如:‘a’、‘x’、‘?’、‘$’。注意,‘a’和‘A’是不同的字符常量。‘a’——十进制ASCII码:97‘A’——十进制ASCII码:65

‘a’——八进制ASCII码:’\141’‘A’——八进制ASCII码:’\101’

‘a’——十六进制ASCII码:0x61‘A’——十六进制ASCII码:0x41

字符转义符(或控制字符,可在字符型、字符串型常量中使用,表示源程序中无法或很难直接输入的字符,以’\’字符开头)有两种形式:

‘\’反斜杠后跟一个八进制或十六进制整数,表示的字符是:ASCII码值为相应整数的字符‘\’后跟一个特殊字符,代表特殊意义。例如——\n\r\t\ddd\xhh

反斜杠后跟一个特殊字符,代表的符号含义

字符变量字符变量用来存放一个字符常量.字符变量在内存中占一字节。例1:

char

c1,c2='b';c1=‘a’;main(){charc1,c2;c1=97;c2=98;printf("%c%c",c1,c2);}相当于:c1=‘a’;c2=‘b’;因为:字符以ASCII码存放,‘a’的ASCII码为97,'b'的ASCII码为98。该例的输出是:ab

字符以ASCII码存储,其存储方式与整数类似。从而,C语言允许字符和整数之间进行运算。C语言中的整数运算对于字符类型是适用的。例子:#include<stdio.h>main(){printf(“_ab_c\t_de\rf\tg\n”);printf(“h\ti\b\bj_k”);}运行结果3.字符串常量字符常量:单引号括起来的一个字符。字符串常量:双引号括起来的字符序列.字符串常量在内存中的存放:每一个字符均以其ASCII码存放,且最后添加一个“空字符”\0。例:"Howdoyoudo.","CHINA""CHINA"存放在内存中的情况是:(6字节存储器,不是5字节)CHINA\0最后一个字符.。比较字符串常量在内存中的存储状态————字母对应的十进制ASCII码2.2.4布尔类型(bool型)

bool类型仅有两个值: false(假)true(真)在C中把bool类型也看成整数类型,分别用0和1表示false和true。可施于布尔类型上的运算有:

!(非)&&(与)||(或)

!取反#include<stdio.h> &&“并且” main(){ ||“或者”boola=0;printf(“%d”,a);}

2.2.5枚举类型最基本的枚举类型说明符形式是:enum{id,id,id,...,id};enumid_tag{id,id,id,...,id};其中每个id是一个标识符,也是相应枚举类型中的一个值,称枚举常量。全部标识符集合构成相应枚举类型的值域。例:enumweek{sunday,monday,tuesday,wednesday, thursday,friday,saturday};enummonth{Jan,Feb,Mar,Apr,May,Jun,Jul, Aug,Sep,Oct,Nov,Dec};enumcolor{red,yellow,green,blue};/*红、黄、绿、蓝*/enum{club,diamond,heart,spade};/*梅花、方块、红桃、黑桃*/利用类型说明符可以声明枚举类型变量,也可以定义枚举类型。把枚举类型看成整数类型,每个枚举常量对应一个整数值。一般情况下,第一个标识符对应整数值0,其它标识符对应前一个标识符整数值+1。上述例子中red对应0 yellow对应1green对应2 blue对应3声明枚举类型时,可标识该常量对应的整数值,例如:enumcolor{red=10,yellow=red+2,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论