




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 2.1 C的数据类型及取值范围的数据类型及取值范围 1一个一个C程序包括的内容程序包括的内容 程序程序=算法算法+数据结构数据结构+程序设计方法程序设计方法+语言工具和环境语言工具和环境 2C的数据类型的数据类型数据类型基本类型构造类型指针类型( )空类型(void)字符型(char)数值类型枚举类型(enum)数组类型( )结构体类型(struct)共用体类型(union)整型(short,int,long,unsigned)实型单精度型(float)双精度型(double)第1页/共50页3. 基本数据类型的长度及取值范围基本数据类型的长度及取值范围 见见p15,p16 表表2_3,表表
2、2_54. ANSI C标准中的数据类型和长度标准中的数据类型和长度 见见p16 表表2_65. 整型类型的简写形式整型类型的简写形式见见p17 表表2_7第2页/共50页标识符就是一个名字,用于标志某个事物,由字母、数字、下划线组成,由字母或下划线开头的字符串。标识符可用来命名变量及作为常量名、函数名、类型名、标号和其他各种用户定义的对象命名。一个程序内不得有重复名,不允许使用与C语言系统关键字(保留字)相同的标识符。如如: _sum, sum, stu_name, price30等为合法的标识符。标识符标识符 2.2 标识符、常量与变量标识符、常量与变量第3页/共50页下面的标识符是不合法
3、的:Number-of-moves(含有非法字符-)piece flag(含有非法字符空格)5_6_7(数字开头)第4页/共50页在定义标识符时应注意以下几点:1. 为了增加可读性,应尽量见名知意。 如:sum,area,day,name等等2. 对标识符的命名应常用取简、专用取繁。3. 应尽量避免使用容易混淆的字符。例如: O(大写字母)o(小写字母)0(数字) I(大写字母)l(小写字母)1(数字) Z(大写字母)z(小写字母)2(数字)第5页/共50页不要使用C语言关键字作为标识符C语言关键字列表 autobreakcasechar constcontinuedefaultdo doub
4、leelseenumextern floatforgotoif intlongregisterreturn shortsignedsizeofstatic structswitchtypedefunion unsignedvoidvolatilewhile第6页/共50页 1常量和符号常量常量和符号常量 在程序运行过程中其值不能被改变的量称为常量。 例例2.1 定义符号常量。 #define PRICE 30 main( ) int num,total; num=10; total=num PRICE; printf(“total=%d”,total); 用define命令定义PRICE代表常
5、量30,则在整个程序中出现的PRICE都代表30,可以和常量一样进行运算。第7页/共50页如:Price 和 price,系统会认为是两个不同的标识符。具体情况视不同系统而定。设允许8个字符。则: student_ namestudent_ number为同一名字。第8页/共50页 在程序运行过程中其值可以被改变的量称为变量。 变量名的命名符合标识命名规则:由字母开头,由字母、数字和下划线三种字符组成,长度不限制。如:sum, aver, class, day为合法变量名;$123, #33, 3ds均为非法变量名; sum、Sum与SUM是三个不同的变量名。 在C中,习惯用大写字母标识符号常
6、量,用小写字母标识变量。 变量必须先定义后使用。 变量一经定义,就确定了类型。2变量变量第9页/共50页1整型常量整型常量整型常量即整常数。整常数有三种表示形式: 十进制数 如:123, - 456 八进制数 以数字0开头。如:0123, - 011 十六进制数 以0 x开头。如:0 x123, - 0 x122整型常量的类型整型常量的类型 其值在-32768+32767时为int型。 其值在-2147483648+214748647时为long int型。 常量中无unsigned型。但非负值的整型量可以赋值给unsigned型整变量,只要不产生溢出。 在整型常量后面跟一个字母l或L,则认为
7、是long int型常量。2.3 整型数据整型数据第10页/共50页1) 整型变量的分类 基本型 以int表示。-3276832767 (-215215 -1) 短整型 以short int或short表示。 长整型 以long int或long表示。 -21474836482147483647 (-231231-1 ) 无符号型 用全部二进制位(bit)存放数据, 不能存放负数。 u n s i g n e d i n t 与 u n s i g n e d s h o r t : 065535(0216-1) unsigned long :04294967295 (0232 -1)2) 整
8、型变量的定义 int a,b; unsigned short c,d; long e,f ;3整型变量整型变量第11页/共50页1实型常量实型常量 十进制数形式:0.123、.123、123、123.0、 。 指数形式: 123e3或123E3都代表123 103。2实型变量实型变量 单精度float:占用4 Bytes, 7位有效数字,1038 1038 。 双精度double :占用8 Bytes, 15/16位有效数字,1030810308 。如:float x,y; / 只能接收7位有效数字 / double z; 2.4 实型数据实型数据第12页/共50页1字符常量字符常量字符常量是
9、用单引号括起的1个字符。如:a、A、。以“ ”开头的字符序列在printf 函数中控制输出格式(转义字符常量。见书p22表2-12)。n换行t横向跳格(下一个输出区)v竖向跳格b退格r回车f走纸换页反斜杠字符 单引号 ddd 1到3位8进制数所代表的字符。如:101=A。xhh 1到2位16进制数所代表的字符。 2.5 字符型数据字符型数据第13页/共50页P23:例2-6例2.2 输出格式控制。main( ) printf(“abctderf tgn”); printf(“htibbjk”);在打印机上输出:f a bc gdeh j i k在屏幕上输出:f gdeh jk2字符变量字符变量
10、字符变量只能存放 1 个字符。char c1,c2;c1=a; c2=b;第14页/共50页 3字符数据在内存中的存储形式及使用字符数据在内存中的存储形式及使用方法方法 例例2.3 在在C中中,字符型数据与整型数据可以相互赋值和运算字符型数据与整型数据可以相互赋值和运算。第15页/共50页 字符串常量是用双引号括起来的字符序列。如:“How do you do.”, “CHINA”, “a”, “$123.45”。注意: a是字符常量,而“a”是字符串常量。 不能将一个字符串赋给一个字符变量。字符串其内部有结束标志0。 C中没有字符串变量,需要用字符数组存放字符串。 4字符串常量字符串常量第1
11、6页/共50页int a=3;float f =3.56;char c=a;int a,b,c=5;/ 只给c赋初值 /int a=3,b=3,c=3;/ 不能写成int a=b=c=3 /2.6 变量赋初值变量赋初值 整型、单精度型、双精度型数据可以混合运算。不同类型的数据要先转换成同一类型,然后进行运算。转换规则如下:2.7 各类数值型数据间的混合运算各类数值型数据间的混合运算C规定,可以在定义变量的同时给变量赋初值。如:第17页/共50页注注:箭头只表示转换方向,并不是依次转换。转换过程是自动完成的。例: 10 + a + i f - d/e运算过程为: a 转换成整数97与10相加,结
12、果为107 ; i 和f 转换成double型,运算结果为double型; 将107转换成double型与i和f的积相加,结果为double型; 将e转换成double型,d/e的结果为double型; 10 + a + i f 的结果与d /e的商相减,结果为double型。第18页/共50页1C 运算符简介运算符简介 在C中,除了控制语句和输入输出以外的基本操作都作为运算符处理。 C的运算符有如下几类: 算术运算符+、-、 、/、% 关系运算符、 =、 =、= =、! = 逻辑运算符&、! 位运算符 ,、 、& 赋值运算符=、+=、-=、 =、/=、%= 2.8 算术运算符和算术表达式算术
13、运算符和算术表达式第19页/共50页 逗号运算符, 指针运算符 和 & 求字节数运算符sizeof 强制类型转换运算符(类型) 分量运算符 或 下标运算符 其它如函数调用运算符( ) 条件运算符? :第20页/共50页初等运算符( )、 、 单目运算符!、+ +、 、+ 、 、(类型)算术运算符 、/ 、% ,+、 关系运算符、= ,= =、! =逻辑运算符&、条件运算符? :赋值运算符=、+=、 =、 =、/=、%=逗号运算符,C中各类运算符的优先级:中各类运算符的优先级:第21页/共50页1) 基本的算术运算符基本的算术运算符 + 、- 、 、/ 、% % 为求余、模运算( %的两边必须为
14、整型数据)其中:在除法中,整数相除取整,且大多数机器采取“向零取整向零取整”方法,即取整后向零靠拢。实数相除为double型。如:5/3=1,-5/3= -1, 5/3.0=1.66666666666667。2) 算术表达式和运算符的优先级与结合性算术表达式和运算符的优先级与结合性 算术表达式是用算术运算符和括号将运算对象(常量、变量、函数等)连接起来的、符合C语法规则的式子。 C的各种运算符的结合性为 “自左向右自左向右”。2算术运算符和算术表达式算术运算符和算术表达式第22页/共50页 当自动类型转换不能达到目的时,可以用强制类型转换。强制类型转换运算符可以将一个变量或一个表达式转换成所需
15、的类型。如:(double)a 将a转换成double类型(int)(x+y) 将x + y的值转换成int型(float)(5%3) 将5 % 3的值转换成float类型 例例2.4main( )float x; int i; x = 3 . 6 ; i = ( i n t ) x ; printf(“x=%f,i=%d”,x,i); 运行结果:x=3.600000, i=33. 强制类型转换强制类型转换第23页/共50页 自增、自减运算符的作用是使变量的值增加1或减少1。+i, - - i i 的值先增加(减少) 1,然后再使用i。i+, i - - 先使用i 的值,然后i 再增加(减少)
16、1。注意: +和-只能用于变量,不能用于常量和表达式。 +和-的结合方向“自左至右”。如:-i+相当于-(i+)。 i+j按“自左向右”的原则解释为(i+)+j,而不是i+(+j)。 printf(“%d,%d”,i,i+),若“自左至右”,则为“3, 3”; 若“自右至左 ”,则为“4, 3”。标准C(VC,DEVC)遵循“自右至左自右至左”原则(包括函数调用时参数表中变量的求值顺序也是如此)。 4. 自增、自减运算符自增、自减运算符第24页/共50页 若i=3; j=i+; 则j是值为3, i的值为4。 若i=3; k=(i+)+(i+)+(i+); 则k的值为9, i的值为6。可以将解释
17、为: i=3; k=i+i+i; i+; i+; i+; 若i=3; k=(+i)+(+i)+(+i); 则k为18, i为6(turbo c,标准C不允许)。可以将解释为: i=3; +i; +i; +i; k=i+i+i; 若i=3; j=+i; 则j的值为4, i的值为4。第25页/共50页1“ = ”的作用是将一个数据或一个表达式赋给其左边的变量。2若“ = ”两边的类型不一致,当同为数值型或字符型时,在赋值时要进行类型转换。1) 将实型数据赋给整型变量时,舍弃实数的小数部分。2) 将整型数据赋给实型变量时, 其数值不变, 但以浮点数形式存储。3) 将字符型数据赋给整型变量时,由于字符
18、只占1个字节,而整型变量占2个字节,因此,将字符数据放到整型变量的低8位中。 将字符处理为unsigned char时,高8位补0。如将变量c (字符376)赋给整型变量i 。 将字符处理为带符号的量时,高8位全补1,称为 “符号扩展”。2.9 赋值运算符和赋值表达式赋值运算符和赋值表达式第26页/共50页5) 将unsigned int型数据赋给long int型变量时,不存在符号扩展问题。6) 将非unsigned型数据赋给unsigned型变量时,原样照赋。3. 复合的赋值运算复合的赋值运算 复合赋值复合赋值等价于等价于 a+=3a=a+3 x =y+8x=x (y+8)4) 将带符号的
19、int型数据赋给long int型变量时,进行符号扩展。即将数据送到低16位中,高16位补0或补1。不得写成:x=x y+8x%=3 x=x%3在C中可以使用的复合赋值运算符有:+=、-=、 =、/=、%=,=、&=、 =、 =x%=y+3 x=x%(y+3)不得写成:x=x%y+3第27页/共50页 其中: 又可以是一个赋值表达式。 a=(b=5)a的值为5 a=b=c=5a, b, c的值均为5 a=5+(c=6)a的值为11 a=(b=4)+(c=6)a的值为10 a=(b=10)/(c=2)a的值为5 赋值表达式可以包含复合的赋值运算符。如: a+=a-=a a若a=12,则上式的求解
20、步骤为: 先进行a-=a a的运算,即a=a-a a=12-144=-132 再进行a+=-132的运算, 即a=a+(-132)=-132-132=-2644赋值表达式的一般形式赋值表达式的一般形式第28页/共50页 逗号表达式的一般形式: 表达式表达式1,表达式,表达式2,表达式,表达式n 求解过程为:从左至右求各表达式的值,结果取最右边表达式的值。如:a=3 5, a 4 表达式值为60 (a=3 5, a 4), a+5 表达式值为20 x=(a=3, 6 3) x的值为18 x=a=3, 6 a x的值为3例例2.5main( ) int m,n,i=5, j=6; m= + i;
21、n= j+; printf(“%d,%d,%d,%dn”,i, j,m,n);2.10 逗号运算符和逗号表达式逗号运算符和逗号表达式运行结果: 6, 7, 6, 6第29页/共50页例例2.6#include “stdio.h”main( )int i=1; printf(“%d,%d,%d,%dn”, i, i+, i+, i+);运行结果:运行结果:4,3,2,1 函数调用时函数调用时, ,函数参数的求值顺序函数参数的求值顺序 从右至左从右至左第30页/共50页2.11. 关系运算符和关系表达式关系运算符和关系表达式1) 关系运算符及其优先顺序 C有6种关系运算符:优先级相同(低)优先级相
22、同(高) = = = ! =第31页/共50页 关系表达式是用关系运算符将两个以上算术、关系、逻辑、赋值或字符表达式连接起来的式子。 关系表达式的值是一个逻辑值,“真”(非0) 或 “假”(0)。例如: ca+b 等效于 c(a+b)ab!=c (ab)!=ca=bc a=(bc a=(bc) 2) 关系表达式关系表达式第32页/共50页1) 逻辑运算符及其优先顺序 C的三种逻辑运算符 &逻辑与 逻辑或 逻辑非“&”和“”为双目运算符,“!”为单目运算符。a&b 若a, b均为真,则a & b为真,否则为假。ab 若a, b均为真, 或之一为真, 则ab为真, 否则为假。 !a 若a为真,则
23、! a为假,否则为真。 优先顺序 (ab) & (xy) ab & xy (a= =b) (x= =y) a= =b x= =y ( ! a) (ab) ! a ab (m=ab) & (n=cd) (m=(ab) ) &(n=(cd) ) 3 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式第33页/共50页 逻辑表达式是用逻辑运算符将关系表达式或逻辑量连接起来的式子。逻辑表达式的值是一个逻辑量“真”(非0) 或 “假”(0)。3) 逻辑表达式求解逻辑表达式求解 a & b & c若a为假,则表达式值为假。 a b c若a为真,则表达式值为真。 53&283&2)为真,则表达式值为真。2) 逻辑
24、表达式逻辑表达式第34页/共50页2.12 C语句结构语句结构 C的五类语句的五类语句 控制语句 共 9 种(if switch for while) 函数调用语句 p r i n t f ( “ T h i s i s a C s t a t e m e n t . ” ) ; c=max(a,b); 表达式语句 任何表达式的末尾加上分号“ ; ” 就构成语句。 空语句 ; 复合语句 用 括起来的一组语句称为复合语句。第35页/共50页 C本身不提供输入输出语句,输入和输出操作是由函数实现的。1putchar 函数函数(字符输出函数) putchar函数的作用是向终端输出1个字符。 putc
25、har(c); / 输出字符变量或整型变量c的值。 / 使用标准I/O库函数时,必须在程序开头加上 #include“stdio.h” 命令。2.13 数据数据的输入的输入 / 输出输出第36页/共50页例例2.7#include “stdio.h”main( ) char a,b; a=o; b=k; putchar(a); putchar(b); putchar(n); putchar(a); putchar(n); putchar(b); putchar(n);运行结果:运行结果:okok第37页/共50页1) printf 函数的一般格式printf (格式控制,输出项表格式控制,输出项表)其中:“格式控制”为双引号括起来的“转换控制字符串”。 “输出项表”为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 班组级安全培训重点内容课件
- 2025年急救医学AED操作技能竞赛答案及解析
- 中国银行2025半结构化面试15问及话术山西地区
- 邮储银行2025延边朝鲜族自治州半结构化面试15问及话术
- 2025行业消费者洞察研究
- 邮储银行2025汕尾市小语种岗笔试题及答案
- 工商银行2025汕头市秋招笔试性格测试题专练及答案
- 建设银行2025萍乡市秋招英文面试题库及高分回答
- 建设银行2025白山市金融科技岗笔试题及答案
- 邮储银行2025数据分析师笔试题及答案黑龙江地区
- PICC置管后常见并发症的处理教育课件
- 视网膜静脉阻塞课件整理
- 督查督办培训课件
- 多媒体技术复习题及参考答案
- 北师大版义务教育小学数学教材知识体系整理
- 城市规划的发展与思想变革
- 2023全国大学生数学建模竞赛D题
- PCB常见不良品图片及改善措施汇总
- 《正确认识广告》课件(共21张)
- WeeFIM儿童功能独立量表详解
- 环境风险评价(共84张)课件
评论
0/150
提交评论