




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章 基本数据类型、运算符及表达式 C的基本数据类型 常量 变量 运算符及表达式 语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 、 运 算 符 及 表 达 式 C 数据:计算机程序加工处理的对象 数据类型:具有相同性质的数据对象的集合 2.1 C的基本数据类型 语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 、 运 算 符 及 表 达 式 C C 数 据 类 型 基本类型 构造类型 指针类型 空类型void 定义类型typedef 数值类型 字符类型char 枚举类型enum 整 型 浮点型 单精度型float 双精度型double 短整型short 长整型long 整型int 数组 结构体struct 共用体union 数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作 语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 、 运 算 符 及 表 达 式 C 基本数据类型 类型符号关键字数的表示范围所占位数 整型字符型实型 有 无 (signed)int16 -3276832767 (signed)short16 -3276832767 (signed)long 32 -21474836482147483647 16unsigned int 065535 32 04294967295unsigned long unsigned short16 065535 有float 32 -3.4e383.4e38 有double64-1.7e3081.7e308 有char 8-128127 无unsigned char80255 说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例: 语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 、 运 算 符 及 表 达 式 C 一般用大写字母 是宏定义预处理命令,不是C语句 直接常量: 整型常量 实型常量 字符常量 字符串常量 2.2 常量 定义:在程序运行过程中,其值不能改变的量(即常数 ) 分类: 符号常量:用标识符代表常量 定义格式: #define 符号常量 常量 运行结果:total=300 如 #define PRICE 30 例 符号常量举例(ch2_1.c) #define PRICE 30 main() int num,total; num=10; total=num*PRICE; printf(“total=%d“,total); 语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 、 运 算 符 及 表 达 式 C v整型常量(整常数) 三种形式: 十进制整数:由数字09和正负号表示.如 123,-456,0 八进制整数:由数字0开头,后跟数字07表示.如0123,011 十六进制整数:由0x开头,后跟09,af,AF表示. 如0x123,0Xff 例 12 与 12L 例 30000 为int型 65536 为long int 型 整型常量的类型 根据其值所在范围确定其数据类型 在整常量后加字母l或L,认为它是long int 型常量 问题: 0123 = ( )10 0x123 = ( )10 0Xff = ( )10 83 291 255 问题: 0123 = ( )10 0x123 = ( )10 0Xff = ( )10 语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 、 运 算 符 及 表 达 式 C v实型常量(实数或浮点数) 表示形式: 十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. 指数形式:(e或E之前必须有数字;指数必须为整数 )如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 实型常量的类型 默认double型 在实型常量后加字母f或F,认为它是float 型 语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 、 运 算 符 及 表 达 式 C float:占4字节,提供7位有效数字 double:占8字节,提供1516位有效数字 v字符常量 定义:用单引号括起来的单个普通字符或转义字符. 字符常量的值:该字符的ASCII码值 如 101 -A 012 -n 376 - x61 -a 60 -0 483 -() 例: A-101-x41-65 如 A65, a97, 048 , n10 如 a A ? n 101 转义字符:反斜线后面跟一个字符或一个代码值表示 例 转义字符举例(ch2_001.c,ch2_004.c) main() printf(“101 x42 Cn“); printf(“I say:“How are you?“n“); printf(“C Programn“); printf(“Turbo C“); 运行结果:(屏幕显示) A B C Isay:”How are you?” C Program Turbo C 例 main() printf(“Yb=n”); 运行结果: 屏幕显示:= 打印机输出: b _above $123 M.D.John3days #33 char$123ab 语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 、 运 算 符 及 表 达 式 C 编译程序根据变量定义为其 分配指定字节的内存单元 . 地址 int a=1, b=-3,c; a b c 2字节 2字节 2字节 地址 地址 . 内存 1 -3 随机数 变量定义的一般格式: 变量类型 变量名表; 变量初始化:定义时赋初值 例: int a,b,c; float data; 决定分配字节数 和数的表示范围 合法标识符例: int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1; int x=y=z=1; 变量的使用:先定义,后使用 例1 int student; stadent=19; /Undefined symbol statent in function main 例2 float a,b,c; c=a%b; /Illegal use of floating point in function main 变量定义位置:一般放在函数开头 main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data); 变量定义 可执行语句 main() int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%fn”,data); 语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 、 运 算 符 及 表 达 式 C 2.4 运算符及表达式 C 运 算 符 算术运算符:(+ - * / % + -) 关系运算符:( = !=) 逻辑运算符:(! m=+i; n=i+; p=-j; q=j-; printf(”i=%d,m=%d,n=%dn”,i,m,n); printf(”j=%d,p=%d,q=%dn”,j,p,q); 运行结果为: i=5,m=4,n=4 j=8,p=9,q=9 语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 、 运 算 符 及 表 达 式 C 例:多个自增、自减运算符的使用。 main() int i=3,j=3,m,n; m=(i+)+(i+)+(i+); n=(+j)+(+j)+(+j); printf(”m=%d,n=%d,i=%d,j=%d”,m,n,i,j); 运行结果为: m=9,n=18,i=6,j=6 注:该例在不同的系统中,得到的结果有所不同。 语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 、 运 算 符 及 表 达 式 C 赋值运算符和表达式 简单赋值运算符 符号: = 格式: 变量=表达式 作用:将一个数据(常量或表达式)赋给一个变量 例 a=3; d=func(); c=d+2; 说明: 结合方向:自右向左 优先级: 14 左侧必须是变量,不能是常量或表达式 例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) /表达式值为5,a,b,c值为5 / b=5;a=5 /表达式值11,c=6,a=11 /表达式值10,a=10,b=4,c=6 /表达式值5,a=5,b=10,c=2 语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 、 运 算 符 及 表 达 式 C 赋值转换规则:使赋值号右边表达式值自动转换成其左边 变量的类型 例 float f; int i; i=10; f=i; 则 f=10.0 例 int i; i=2.56; /结果i=2; main() int i=5; float a=35.15,b; double c=123456789.456123; char d=B; printf(”i=%d,a=%f,c=%f,d=%cn”,i,a,c,d); b=i;i=a;a=c;d=i; printf(”i=%d,a=%f,b=%f,d=%cn”,i,a,b,d); 运行结果: i=5,a=35.1500002,c=123456789.456123,d=B i=35,a=123456792.000000,b=5.000000,d=# 语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 、 运 算 符 及 表 达 式 C 复合赋值运算符 种类:+= -= *= /= %= = = a+=a-=a*a 例: int a=2; a%=4-1; a+=a*=a-=a*=3; 语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 、 运 算 符 及 表 达 式 C 例:复合的赋值表达式的应用 main() int a=2,b=3,c=4,d=5,x; a+=b*c; b-=c/b; printf(”%d,%d,%d,%dn”,a,b,c*=2*(a+c),d%=a); printf(”x=%dn”,x=a+b+c+d); 运行结果为: 14,2,144,5 x=165 语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 、 运 算 符 及 表 达 式 C 逗号运算符和表达式 形式:表达式1,表达式2,表达式n 结合性:从左向右 优先级: 15 逗号表达式的值:等于表达式n的值 用途:常用于for循环语句中 例 a=3*5,a*4 a=3*5,a*4,a+5 例 x=(a=3,6*3) x=a=3,6*a 例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c); /a=15,表达式值60 /a=15,表达式值20 /赋值表达式,表达式值18,x=18 /逗号表达式,表达式值18,x=3 /1,2,3 /3,2,3 例: /*ch2_6.c*/ #include main() int x,y=7; float z=4; x=(y=y+6,y/z); printf(“x=%dn“,x); 运行结果:x=3 语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 、 运 算 符 及 表 达 式 C 不同类型数据间的混合运算与类型转换 v自动类型转换 什么情况下发生 l运算转换-不同类型数据混合运算时 l赋值转换-把一个值赋给与其类型不同的变量时 l输出转换-输出时转换成指定的输出格式 l函数调用转换-实参与形参类型不一致时转换 运算转换规则:不同类型数据运算时先自动转换成 同一类型 语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 、 运 算 符 及 表 达 式 C doublefloat long unsigned intchar,short 低 高 说明: 必定的转换 运算对象类型不同时转换 例 char ch; int i; float f; double d; ch/i + f*d - (f+i) int int double double double double double double int int double double double double double double 10+a +i*f - d/l 例 int i; float f; double d; long l; v 强制类型转换(显式转换) 一般形式:(类型名)(表达式) 例 (int)(x+y) (int)x+y (double)(3/2) (int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不 变 例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 结果:x=3.600000,i=3 精度损失问题 较高类型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 饮水安全协议合同
- 各种合同协议书模板下载
- 砍树付款协议合同
- 课程退费协议合同
- 喷漆外发加工合同协议书
- 合同加附属协议
- 共合协议合同
- 水窖合同协议
- 快艇维修协议合同
- 后勤维修协议合同
- 全国高中青年数学教师优质课大赛一等奖《导数的概念》课件
- 肾上腺疾病诊治指南
- 学习解读2023年新制订的外国国家豁免法课件
- DB42-T 1969-2023 困境儿童家庭监护能力评估
- 沙漠之心(2009新疆中考记叙文阅读试题含答案)
- 药物靶标发现与筛选
- 高中英语-Book 2 Unit 4 When Hamlet meets Peking Opera教学课件设计
- 多模态数据融合与检索技术PPT完整全套教学课件
- 合同管理法律法规学习制度
- 河流健康评价
- 《马克思主义与社会科学方法论》授课教案
评论
0/150
提交评论