首页 3数据类型、运算符和表达式

3数据类型、运算符和表达式

举报
开通vip

3数据类型、运算符和表达式nullC语言程序设计C语言程序设计计算机技术教研室 胡少军 Email: hsj@nwsuaf.edu.cn Tel: 87091641目录目录第一章 绪论 第二章 算法与流程图 第三章 数据类型、运算符和表达式 第四章 程序的控制结构 第五章 函数 第六章 数组 第七章 指针 第八章 结构体 第九章 文件操作第三章 数据类型、运算符与表达式第三章 数据类型、运算符与表达式1. 数据类型 2. 常量 3. 格式化输入输出 4. 常用运算符和表达式 5. 运算符的优先级与结合性 1. 数据类型1. 数据类型1.1 ...

3数据类型、运算符和表达式
nullC语言程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 C语言程序设计计算机技术教研室 胡少军 Email: hsj@nwsuaf.edu.cn Tel: 87091641 目录 工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录 目录第一章 绪论 第二章 算法与流程图 第三章 数据类型、运算符和表达式 第四章 程序的控制结构 第五章 函数 第六章 数组 第七章 指针 第八章 结构体 第九章 文件操作第三章 数据类型、运算符与表达式第三章 数据类型、运算符与表达式1. 数据类型 2. 常量 3. 格式化输入输出 4. 常用运算符和表达式 5. 运算符的优先级与结合性 1. 数据类型1. 数据类型1.1 定义 1.2 位与字节 1.3 基本数据类型 1.4 数据类型修饰符 1.5 变量声明 1.6 浮点型数据有效数字位数 1.7 char型与int型之间的关系 1.1 数据类型定义1.1 数据类型定义(1)数据为什么要区分类型? 不同类型的数据代表不同的数据表示形式、合法的取值范围、占用内存空间大小及可参与的运算种类。 (2)从基本数据类型到抽象数据类型 无数据类型 基本数据类型 构造数据类型 抽象数据类型 1.1 数据类型定义1.1 数据类型定义1.2 位与字节1.2 位与字节(1)一个位有多大? 只能是“0”或者“1” (2)一个字节有多大? 保存一个字符(英文字母、数字、符号) ASCII(美国标准信息交换码)编码 两个字节保存一个汉字 GB编码 可以表示数字0~2551.3 基本数据类型1.3 基本数据类型int 整数,在目前绝大多数机器上占4个字节。 float 单精度浮点数,一般是4个字节长。 double 双精度浮点数,一般是8个字节长。 char 字符,一般是1个字节长。 用来表示256个ASCII字符,或者0~255的整数。1.3 基本数据类型1.3 基本数据类型字符类型与ASCII表ASCII表扩展版ASCII表扩展版1.4 数据类型修饰符1.4 数据类型修饰符short short int,短整数,一般2个字节长。 long long int,长整数,一般是4个字节长。 long double,长双精度(高精度)浮点数,一般是10个字节长。 signed 用来修饰char、int、short和long,说明他们是有符号的整数(正整数、0和负整数)。一般缺省都是有符号的,所以这个修饰符通常省略。 unsigned 用来修饰char、int、short和long,说明他们是无符号的整数(正整数和0)。1.5 变量声明1.5 变量声明不要对变量所占的内存空间字节数想当然,可用sizeof获得变量或者数据类型的长度。#include int main() { printf("char %d\n", sizeof(char)); printf("int %d\n", sizeof(int)); printf("short int %d\n", sizeof(short)); printf("long int %d\n", sizeof(long)); printf("float %d\n", sizeof(float)); printf("double %d\n", sizeof(double)); return 0; }1.5 变量声明1.5 变量声明使用变量的基本原则 变量必须先定义,后使用 所有变量必须在第一条可执行语句前定义 声明的顺序无关紧要 一条声明语句可声明若干个同类型的变量 声明变量,是初始化变量的最好时机*不被初始化的变量,其值为危险的随机数char esc = 'a'; int i = 1; int sum = 0; float eps = 1.0e-5;1.6 实型数据有效数字位数1.6 实型数据有效数字位数float型数据提供7位有效数字 double型数据提供16位有效数字 使用不当导致舍入误差int main() { float a; double b; a = 123456.789e4; b = 123456.789e4; printf("%f\n%lf\n",a,b); }1.7 char型与int型之间的关系 1.7 char型与int型之间的关系 小写字母转换为大写字母 #include int main() { char ch = 'b'; ch = 'b' - 32; printf("%c, %d\n", ch, ch); }#include int main() { char ch = 'b'; ch = 'b' - ('a' - 'A') ; printf("%c, %d\n", ch, ch); }第三章 数据类型、运算符与表达式第三章 数据类型、运算符与表达式1. 数据类型 2. 常量 3. 格式化输入输出 4. 常用运算符和表达式 5. 运算符的优先级与结合性 2. 常量2. 常量2.1 整型与浮点型常量 2.2 八进制与十六进制常量 2.3 字符常量 2.4 字符串常量 2.5 枚举常量 2.6 符号常量 2.7 const常量2.1 整型与浮点型常量2.1 整型与浮点型常量整型常量 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.5e3L2.2 八进制与十六进制常量2.2 八进制与十六进制常量以数字“0”开始的整型常量是八进制数 022、-037 010和10大小不一样 因为八进制并不常用,所以此种表示法比较少见 以“0x”或者“0X”开始的常量是十六进制 A~F和a~f用来表示十进制的10~15 十六进制的形式比较常用,尤其在进行位一级的控制的时候 0x12、-0x1F, -0x1f2.3 字符常量2.3 字符常量(1)字符常量的表示 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ’a’,’A’,’5’,’%’,’$’…… 单引号内只能有一个字符,除非用“\”开头 (2)是一个普通整数,可参与各种数学运算 每个字符具有一个0~255之间的数值,可从ASCII查出 注意:’5’和整数5的区别2.3 字符常量2.3 字符常量(3)转义字符 一些特殊字符(无法从键盘输入或者另有它用)用转义字符表示 2.4 字符串常量2.4 字符串常量用双引号括住的由0个或多个字符组成的字符序列 "I am a string" ""表示空字符串 转义字符也可以在字符串中使用 引号只作为字符串开始和结束的标志 C语言内部用’\0’表示字符串的结束 除注释外,是唯一可以出现中文的地方 "x"和’x’是不同的 里定义了一系列专门的字符串处理函数2.5 枚举常量2.5 枚举常量 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");2.6 符号常量2.6 符号常量符号常量,一般采用大写字母表示 #define 标识符 字符串 不是语句,而是一种编译预处理命令#include #define PI 3.14159 int main() { float r; scanf(“%f”, &r); printf("area = %f\n", PI * r * r); printf("circumference = %f\n", 2 * PI * r); }2.7 const常量2.7 const常量用const修饰定义的变量为常量 const float pi = 3.1425926; 常量只能在定义时赋值,然后不能再改变其值 常数、 const常量、宏常量和枚举常量,都可以用来表示一个永远不会改变的数 前者不建议直接使用,而用后三者代替第三章 数据类型、运算符与表达式第三章 数据类型、运算符与表达式1. 数据类型 2. 常量 3. 格式化输入输出 4. 常用运算符和表达式 5. 运算符的优先级与结合性 3.1 printf转换说明3.1 printf转换说明printf(“%m.pX”, …); % m.pX格式或%-m.pX中,m和p是整数,X是字母。 m: 最小字段宽度 p: 精度 X: d, ld, e, f, lf, g, c, s 3.1 printf转换说明3.1 printf转换说明 #include   int main(void) { int i; float x;   i = 40; x = 839.21f;   printf("|%d|%5d|%-5d|%5.3d|\n", i, i, i, i); printf("|%10.3f|%10.3e|%-10g|\n", x, x, x);   return 0; }3.2 printf转义序列3.2 printf转义序列printf(“\Y”, …); Y: 转义字符(非打印和特殊含义字符) 例如:\a, \b, \n, \t, \”, \\等3.3 scanf函数3.3 scanf函数scanf(“%X”, &var_name); X: d, ld, f, lf, c, s3.4 scanf格式串中的字符3.4 scanf格式串中的字符scanf(“%Xc%Y”, &var_name1, &var_name2); c: ‘/’, ‘,’, …3.4 scanf格式串中的字符3.4 scanf格式串中的字符#include   int main(void) { int num1, denom1, num2, denom2, result_num, result_denom; printf("Enter first fraction: "); scanf("%d/%d", &num1, &denom1);   printf("Enter second fraction: "); scanf("%d/%d", &num2, &denom2);   result_num = num1 * denom2 + num2 *denom1; result_denom = denom1 * denom2; printf("The sum is %d/%d\n",result_num, result_denom) return 0; }第三章 数据类型、运算符与表达式第三章 数据类型、运算符与表达式1. 数据类型 2. 常量 3. 格式化输入输出 4. 常用运算符和表达式 5. 运算符的优先级与结合性 4. 常用运算符和表达式4. 常用运算符和表达式4.1 算术运算符 4.2 关系运算符 4.3 逻辑运算符 4.4 类型转换运算符 4.5 增一减一运算符 4.6 位操作运算符 4.7 赋值运算符 4.8 逗号运算符 4.9 条件表达式4. 常用运算符和表达式4. 常用运算符和表达式(1)表达式:表示如何计算值的公式 (2)由运算符和操作数组成 (3)C语言有非常丰富的运算符 4.1 算术运算符4.1 算术运算符+,-,*,/ 加、减、乘、除运算 四则混合运算中,先算乘除,后算加减, 按从左向右的顺序计算,左结合 %:求余运算 常用的标准数学函数4.2 关系运算符4.2 关系运算符>,>=,<,<=,==,!= 大于,大于等于,小于,小于等于,等于,不等于 关系运算符运算出的结果为0和非0 0,表示假,即该关系不成立 非0,表示真,即该关系成立 绝大多数编译器,关系运算得到的非0结果为1,但是不要利用这个14.3 逻辑运算符4.3 逻辑运算符逻辑运算也被称为布尔(Boolean)运算 && 与运算 ( a > b && b > c);a大于b,并且b大于c || 或运算 ( a > b || b > c); a大于b,或者b大于c ! 求反 ( !a );如果a是0,结果非0;如果a是非0,结果是0 并不改变a的值实例实例ch是英文大写字母 (ch >= 'A') && (ch <= 'Z') 判断某一年year是否是闰年: 能被4整除,但不能被100整除; 能被400整除; ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)4.4 类型转换4.4 类型转换在进行赋值操作时,会发生类型转换 将取值范围小的类型转为取值范围大的类型是安全的 反之是不安全的 如果大类型的值在小类型能容纳的范围之内,则平安无事 但是,浮点数转为整数,会丢失小数部分,非四舍五入 反之,转换后的结果必然是错误的,具体结果与机器和实现方式有关。4.4.1 自动类型转换4.4.1 自动类型转换同种数据类型的运算结果,还是该类型 不同种数据类型的运算结果,是两种类型中取值范围更大的那种 long double > double > float > long > int > short > char 把数据赋值给另外一种类型变量也会发生自动类型转换 从小到大,顺利转换 从大到小,可能丢失信息(好的编译器会发出警告)4.4.2 强制类型转换符4.4.2 强制类型转换符可以通过“(类型)表达式”的方式把表达式的值转为任意类型。int main() { int m = 5; printf("m / 2=%d\n", m/2); printf("(float) (m / 2) = %f\n", (float) (m / 2)); printf("(float) m / 2 = %f\n", (float) m / 2); printf("m = %d\n", m); return 0; }4.4.3 字符串与数值之间的转换4.4.3 字符串与数值之间的转换int i = "123"; ??? atof(),atoi(),atol() 把字符串转为double,int和long 定义在stdlib.h中 sprintf() 可以用来把各种类型的数值转为字符串 定义在stdio.h中4.5 增一和减一运算符4.5 增一和减一运算符n++,n--,++n,--n ++让参与运算的变量加1,--让参与运算的变量减1 作为后缀运算符时,先取n的值,然后加/减1 作为前缀运算符时,先加/减1,然后取n的值 m = n++; 等价于 m=n; n++; m = ++n; 等价于 n++; m=n; 4.5 增一和减一运算符4.5 增一和减一运算符良好的程序设计风格提倡:在一行语句中,一个变量只能出现一次加1或者减1运算 过多的加1和减1运算混合,不仅可读性差,而且因为编译器实现的方法不同,导致不同编译器产生不同的运行结果4.6 位操作运算符4.6 位操作运算符& 按位与运算 | 按位或运算 ^ 按位异或运算<< 按位左移运算 >> 按位右移运算 ~ 按位求反 4.7 赋值运算符4.7 赋值运算符下面两个语句几乎是等价的 i = i + 2; i += 2; +、-、*、/、%、<<、>>、&、^、|运算符都可以按此种方式处理 这种形式看起来更简洁,执行效率比以前的B语言更高。4.8 逗号运算符4.8 逗号运算符表达式1, 表达式2, ….., 表达式n 多数情况下,并不使用整个逗号表达式的值,更常见的情况是要分别得到各表达式的值 主要用在循环语句中,同时对多个变量赋初值等 for (i = 0 , j = 0; i < j; i++, j++)4.9 条件表达式4.9 条件表达式把a和b中的最大值放入z中 if (a > b) z = a; else z = b; z = (a > b) ? a : b; *忌过于繁杂第三章 数据类型、运算符与表达式第三章 数据类型、运算符与表达式1. 数据类型 2. 常量 3. 格式化输入输出 4. 常用运算符和表达式 5. 运算符的优先级与结合性 5.1 优先级5.1 优先级( ) [ ] -> . ! ~ ++ -- + - * & (类型) sizeof * / % + - << >> < <= > >= == != & ^ | && || ? : = += -= *= /= %= &= ^= |= <<= >>= ,高 低5.1 优先级5.1 优先级背下优先级表必要性不大 用括号来控制运算顺序更直观、方便,并减少出错的概率5.2 结合性5.2 结合性多数运算符为左结合 少数为右结合: 一元运算符 赋值运算符 条件运算符本章小结本章小结变量的命名规则 数据类型 char,short,int,long,float,double,long double signed,unsigned enum 常数、转义字符 运算符 算术运算符、关系运算符、逻辑运算符、增一/减一运算符、位运算符、赋值运算符、类型强转运算符、逗号运算符、条件运算符(? :)、 sizeof 类型转换 优先级和结合性
本文档为【3数据类型、运算符和表达式】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_137289
暂无简介~
格式:ppt
大小:997KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2013-02-14
浏览量:35