




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 数据类型、运算 符与表达式 许建龙 (10#533)OA:86843323,HM:88852820 1 *2 内容提要 基本数据类型; 常量和变量; 标识符命名; 常用运算符和表达式; 运算符的优先级与结合性 *3 一个简单的C程序例子 #include /*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和 */ int Add(int a, int b) return (a + b); /*主函数*/ main() int x, y, sum = 0; printf(“Input two integers:“); scanf(“%d%d“, /*输入两个整型数x和y*/ sum = Add(x, y); /*调用函数Add计算x和y相加之和*/ printf(“sum = %dn“, sum); /*输出x和y相加之和*/ *4 C程序常见符号分类 关键字(Keyword) 又称为保留字,C语言中预先规定的具有固定含义的一些单词 标识符(Identifier) 系统预定义标识符 用户自定义标识符 运算符(Operator) 34种,详见附录2 分隔符(Separator) 空格、回车/换行、逗号等 其它符号 大花括号“”和“”通常用于标识函数体或者一个语句块 “/*”和“*/”是程序注释所需的定界符 数据(Data) 变量(Variable) 常量(Constant) *5 数据类型(Data Type) 数据为什么要区分类型? 不同类型的数据代表不同的 数据表示形式 合法的取值范围 占用内存空间大小 可参与的运算种类 从基本数据类型到抽象数据类型 无数据类型(二进制语言) 基本数据类型 构造数据类型 抽象数据类型 (类) *6 数据类型(Data Type) 数据类型 基本类型 构造类型 指针类型 空类型 整型 实型(浮点型) 字符型 枚举类型 数组类型 结构体类型 共用体类型 单精度实型 双精度实型 基本整型 长整型 短整型 无符号整型 *7 标识符命名 变量名 函数名 由英文字母、数字和下划线组成,大小写敏感 不可以是数字开头 直观,见名知意,便于记忆和阅读 最好使用英文单词或其组合 切忌使用汉语拼音 下划线和大小写通常用来增强可读性 variablename variable_name VariableName, variableName 不允许使用关键字作为标识符的名字 int, float, for, while, if等 某些功能的变量采用习惯命名 如:for语句所采用的循环变量习惯用i, j, k Windows Windows 风格风格 UNIX UNIX 风格风格 *8 b, B, KB, MB, GB, TB Megabyte(MB),中文叫法:兆 Kilobyte(KB),中文叫法: K Byte,中文叫法:字节 bit,中文叫法:位 Gigabyte(GB),中文叫法:G Terabyte(TB),中文叫法:T 1 TB 1 TB = 1,024 GB1,024 GB 1 GB1 GB = 1,024 MB1,024 MB 1 MB1 MB = 1,024 KB1,024 KB 1 KB1 KB = 1,024 B1,024 B 1 B 1 B = 8 b8 b *9 b, B, KB, MB, GB, TB 一个位有多大? 只能是“0”或者“1”,这叫二进制 一个字节有多大? 保存一个字符(英文字母、数字、符号) ASCII(美国标准信息交换码)编码 两个字节保存一个汉字 GB编码 可以表示数字0255 *10 基本数据类型 int 整数,在目前绝大多数机器上占4个字节。TC2中 是2个字节 float 单精度浮点数,一般是4个字节长 double 双精度浮点数,一般是8个字节长 char 字符,一般是1个字节长 用来表示256个ASCII字符,或者0255的整数 *11 数据类型修饰符 short short int,短整数,一般2个字节长。通常简写为short long long int,长整数,一般是4个字节长。通常简写为long long double,长双精度(高精度)浮点数,一般是10个字节长 。 signed 用来修饰char、int、short和long,说明他们是有符号的整数 (正整数、0和负整数)。一般缺省都是有符号的,所以这个修饰 符通常省略 unsigned 用来修饰char、int、short和long,说明他们是无符号的整数 (正整数和0) *12 使用变量要注意 不要对变量所占的内存空间字节数想当然 用sizeof获得变量或者数据类型的长度 现场演示程序在Turbo C2.0和Visual C下的运行结果 注意!注意! #include mainmain()() printfprintf(“Data(“Data type Number of bytesn“); type Number of bytesn“); printfprintf(“- -n“);(“- -n“); printfprintf(“char(“char %dn“, %dn“, sizeof(charsizeof(char);); printfprintf(“int(“int %dn“, %dn“, sizeof(intsizeof(int);); printfprintf(“short(“short intint %dn“, %dn“, sizeof(shortsizeof(short);); printfprintf(“long(“long intint %dn“, %dn“, sizeof(longsizeof(long);); printfprintf(“float(“float %dn“, %dn“, sizeof(floatsizeof(float);); printfprintf(“double %dn“, sizeof(double);(“double %dn“, sizeof(double); *13 变量声明 使用变量的基本原则 变量必须先定义,后使用 所有变量必须在第一条可执行语句前定义 声明的顺序无关紧要 一条声明语句可声明若干个同类型的变量 声明变量,是初始化变量的最好时机 不被初始化的变量,其值为危险的随机数 char esc = a; int i = 1; int sum = 0; float eps = 1.0e-5; *14 实型数据提供的有效数字位 数 float型数据提供7位有效数字 double型数据提供16位有效数字 使用不当导致舍入误差 #include mainmain()() floatfloat a; a; doubledouble b; b; a = 123456.789e4;a = 123456.789e4; b = 123456.789e4;b = 123456.789e4; printfprintf(“%fn%fn“,a,b);(“%fn%fn“,a,b); *15 数据在内存中的存储格式 整型 实型 字符型 阶码符号阶码的数值尾数符号尾数的数值 阶码j尾数S *16 char型与int型之间的关系 小写字母转换为大写字母 #include mainmain()() charchar chch = b; = b; chch = b - 32; = b - 32; printfprintf(“%c, %dn“, ch, ch);(“%c, %dn“, ch, ch); #include mainmain()() charchar chch = b; = b; chch = b - (a - A) = b - (a - A) ; ; printfprintf(“%c, %dn“, ch, ch);(“%c, %dn“, ch, ch); *17 常数(Constant) 整型常数 18、-31 长整型常量 123l、123L、123456l、123456L 无符号型常量 123u、 123U 浮点常数 十进制小数形式 123.45、456.78 指数形式 1e-2、4.5e3 单精度实型常量 123.45f、 456.78F、1e-2f、 4.5e3F 长双精度型常量 123.45l、 456.78L、1e-2l、 4.5e3L *18 八进制与十六进制常数 以数字“0”开始的整型常数是八进制数 022、-037 010和10大小不一样 因为八进制并不常用,所以此种表示法比较少见 以“0x”或者“0X”开始的整型常数是十六进制 AF和af用来表示十进制的1015 十六进制的形式比较常用,尤其在进行位一级的 控制的时候 0x12、-0x1F, -0x1f *19 字符(Character)常数 字符常数的表示方法 a,A,5,%,$ 单引号内只能有一个字符,除非用“”开头 就是一个普通整数,也可以参与各种数学运算 每个字符具有一个0255之间的数值,可从ASCII表查出 注意:5和整数5的区别 字符的数学运算在密码学内用得比较多 *20 字符常数 转义字符 一些特殊字符(无法从键盘输入或者另有它用)用转义 字符表示 *21 字符串(String)常数 用双引号括住的由0个或多个字符组成的字符序列 “I am a string“ “表示空字符串 转义字符也可以在字符串中使用 引号只作为字符串开始和结束的标志 C语言内部用0表示字符串的结束 除注释外,是唯一可以出现中文的地方 “x“和x是不同的 里定义了一系列专门的字符串处理函数 *22 枚举(Enumeration)常量 一个被遗忘的角色 从程序来窥其一斑 enum weeks MON, TUE, WED, THU, FRI, SAT, SUN; enum weeks today; enum response no, yes, none; enum response answer; today = TUE; answer = yes; if (answer = yes) printf(“Today is Tuesday.n“); else printf(“Today is NOT Tuesday.n“); *23 宏常量 宏常量 也称符号常量 一般采用大写字母表示 #define 标识符 字符串 不是语句,而是一种编译预处理命令 宏替换(Macro Substitulition) #include #define PI 3.14159#define PI 3.14159 #define R 5.3#define R 5.3 mainmain()() printfprintf(“area(“area = %fn“, PI * R * R); = %fn“, PI * R * R); printfprintf(“circumference(“circumference = %fn“, 2 * PI * R); = %fn“, 2 * PI * R); *24 宏常量 宏常量 也称符号常量 一般采用大写字母表示 #define 标识符 字符串 不是语句,而是一种编译预处理命令 宏替换(Macro Substitulition) #include #define PI 3.14159#define PI 3.14159 #define R 5.3#define R 5.3 mainmain()() printfprintf(“PI(“PI*R*R = %fn“, PI * R * R);*R*R = %fn“, PI * R * R); printfprintf(“2*PI*R = %fn“, 2 * PI * R);(“2*PI*R = %fn“, 2 * PI * R); *25 const常量 用const修饰定义的变量为常量 const float pi = 3.1425926; 常量只能在定义时赋值,然后不能再改变其 值 常数、 const常量、宏常量和枚举常量,都 可以用来表示一个永远不会改变的数 前者不建议直接使用,而用后三者代替 *26 算术运算符 +,-,*,/ 加、减、乘、除运算 四则混合运算中,先算乘除,后算加减, 按从左向右的顺序计算,左结合 % 求余运算 常用的标准数学函数 函数名功 能函数名功 能 sqrt(x)计算x的平方根,x应大于等于0 exp(x)计算ex的值 fabs(x)计算x的绝对值pow(x,y)计算xy的值 log(x)计算lnx的值sin(x)计算sinx的值,x为弧度值 log10(x)计算lgx的值cos(x)计算cosx的值,x为弧度值 *27 关系运算符 ,=, b 可以通过“(类型)表达式”的方式把表达式的 值转为任意类型 强转时,你必须知道你在做什么 强转与指针,并称C语言两大神器,用好了可以 呼风唤雨,用坏了就损兵折将 #include mainmain()() intint m = 5; m = 5; printfprintf(“m / 2=%dn“, m/2);(“m / 2=%dn“, m/2); printfprintf(“(float) (m / 2) = %fn“, (float) (m / 2);(“(float) (m / 2) = %fn“, (float) (m / 2); printfprintf(“(float) m / 2 = %fn“, (float) m / 2);(“(float) m / 2 = %fn“, (float) m / 2); printfprintf(“m = %dn“, m);(“m = %dn“, m); *34 增一和减一运算符 n+,n-,+n,-n +让参与运算的变量加1,-让参与运算的变量减1 作为后缀运算符时,先取n的值,然后加/减1 作为前缀运算符时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民用航空气象人员执照(气象信息系统)考试题库-上(单选、判断题)
- 蒙古北京八中乌兰察布分校2026届高二化学第一学期期末监测模拟试题含答案
- 河北省兴隆县2025年上半年公开招聘城市协管员试题含答案分析
- 河北省肃宁县2025年上半年事业单位公开遴选试题含答案分析
- 河北省乐亭县2025年上半年公开招聘村务工作者试题含答案分析
- 2025年度物流仓储设备采购合同模板集合2
- 2025版通信行业人才培训与咨询服务合同
- 2025年度写字楼公共区域清洁作业合同范本
- 2025店长聘用协议:超市连锁店店长招聘与聘用标准
- 2025年度国际项目外籍工作人员劳动合同书
- 阿特拉斯变频无油螺杆空压机说明书
- 统编本四年级上册语文课堂作业本参考答案
- DBJ50-T-389-2021 高性能混凝土应用技术标准
- 项目经理带班检查记录表(每周一次)
- 智能消防应急照明与疏散指示系统方案
- 人卫九诊断学发热
- 《特困人员集中供养服务协议》
- 说明书hid500系列变频调速器使用说明书s1.1(1)
- 人教版五年级下册期末测试数学试卷【含答案】
- 铁路路基重力式挡土墙施工方案
- T∕CMES 35004-2021 增材制造 激光粉末床熔融316L不锈钢技术要求
评论
0/150
提交评论