chap2基本数据类型与运算.ppt_第1页
chap2基本数据类型与运算.ppt_第2页
chap2基本数据类型与运算.ppt_第3页
chap2基本数据类型与运算.ppt_第4页
chap2基本数据类型与运算.ppt_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计 第二章 基本数据类型与运算 C语言程序设计 第二章 基本数据类型与运算 2 第二章 基本数据类型与运算 C的基本数据类型 常量 变量 运算符及表达式 为什么讨论这些知识? 通常程序要对数据进行操作处理: 处理的对象是数据 通过运算符和表达式进行操作 C语言程序设计 第二章 基本数据类型与运算 3 例如:例如:已知圆半径为已知圆半径为5 cm5 cm ,计算圆的面积。,计算圆的面积。 #include main( ) int r; float area ; r = 5 ; area = 3.14*r*r; printf (“%fn “, area) ; 运算结果是输出运算结果是输出圆的面积:圆的面积:78.50000078.500000 程序中用到的数据:r、area、5、3.14 对数据进行的运算:* 、= C语言程序设计 第二章 基本数据类型与运算 4 分析:分析: 计算机操作处理时,要完成以下工作: n在内存中给半径 r 和运算结果 area 开辟 存储空间,存放它们的值。应该留多大的 地方来存放它们的值? n数据5、3.14 与 r、area 不同,它们是在 编写程序时就给出确定的值,在运算过程 中不会改变。这样的数计算机怎么处理? n对整数 5 和小数3.14 ,计算机存放时是 否有区别? 涉及数据类型涉及数据类型 的基本知识的基本知识 C语言程序设计 第二章 基本数据类型与运算 5 数据:计算机程序加工处理的对象 数据类型:具有相同性质的数据对象的集合 2.1 C的基本数据类型 C语言程序设计 第二章 基本数据类型与运算 6 C C的数据类型的数据类型 短整型 short 数据类型 基本类型 构造类型 指针类型 空类型 void 整 型 字符型 char 实 型 单精度型 float 双精度型 double 数 组类型 共用体类型 union 结构体类型 struct 长整型 long 整 型 int 枚 举类型 enum 数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作 C语言程序设计 第二章 基本数据类型与运算 7 2.1-1 2.1-1 整型数据(了解)整型数据(了解) 数据类型关键字 字 节 数值范围I/O 有 符 号 短整型 signed short2-215(215-1) hd 整 型signed int2-215(215-1) d 长整型 signed long4-231(231-1) ld 无 符 号 短整型unsigned short20(216-1)hu 整 型unsigned int20(216-1)u 长整型 unsigned long40(232-1)lu 注意:数据类型所占字节数随机器硬件和编译器 的不同而不同,上表以16位机为例。 C语言程序设计 第二章 基本数据类型与运算 8 整型数据输入输出举例整型数据输入输出举例 #include main() int a, b, sum; printf(“Please input two integers:“); scanf(“%d%d“, sum=a+b; printf(“The sum of %d and %d is %dn“,a,b,sum); 输入:5 10 输出:The sum of 5 and 10 is 15. C语言程序设计 第二章 基本数据类型与运算 9 整型数据输入输出举例(了解)整型数据输入输出举例(了解) #include main( ) unsigned int m; m= 65535; printf(“m=%dn“,m); printf(“m=%un“,m); 输出结果为: m= -1 m= 65535 按有符号数输出 按无符号数输出 C语言程序设计 第二章 基本数据类型与运算 10 整型数据输入输出举例整型数据输入输出举例(了解)(了解) #include main() int a ; printf(“please input :“); scanf(“%d“, printf(“a=%dn“,a); 运行结果: please input :1234 a=1234 Why? ! 运行结果: please input :123456 a=-7616 C语言程序设计 第二章 基本数据类型与运算 11 整型数据输入输出举例整型数据输入输出举例(了解)(了解) 运行结果: please input :1234 a=1234 运行结果: please input :123456 a=-7616 1234的补码是 0000 0100 1101 0010 123456的补码是1 1110 0010 0100 0000 补码: 1110 0010 0100 0000 补码求反:1001 1101 1011 1111 原码: 1001 1101 1100 0000 (-7616) C语言程序设计 第二章 基本数据类型与运算 12 2.1-2 2.1-2 实型数据实型数据( (浮点型浮点型) ) (了解)(了解) 数据 类型 关键字 字 节 有效数字 位数(10进制) 范围I/O 单精 度 float47 -3.41038 3.41038 %f e 双精度 double816-1.710308 1.710308 lf e 注意:数据类型所占字节数随机器硬件和编译 器的不同而不同,上表以16位机为例。 C语言程序设计 第二章 基本数据类型与运算 13 实型数据输入输出举例实型数据输入输出举例 #include main() float a, b, sum; printf(“Please input two decimals:”); scanf(“%f%f”, sum=a+b; printf(“The sum of %f and %f is %f.n”, a, b, sum); 输入:1.5 10.6 输出:The sum of 1.5 and 10.6 is 12.1. C语言程序设计 第二章 基本数据类型与运算 14 2.1-3 2.1-3 字符类型字符类型 数据 类型 关键字字节范围 I/O 格式 有符号 字符 signed char1128127%c 无符号 字符 unsigned char10255%c 注意:不同的编译器处理有所不同,此处以 Turbo C为例。 C语言程序设计 第二章 基本数据类型与运算 15 字符数据输入输出举例字符数据输入输出举例 #include main() char a, b; printf(“Please input a char:“); scanf(“%c“, printf(“The ASCII value of char %c is %d.n“,a,a); b=A; printf(“The ASCII value of char %c is %d.n“,b,b); 输入:a 输出:The ASCII value of char a is 97. The ASCII value of char A is 65. C语言程序设计 第二章 基本数据类型与运算 16 字符数据输入输出举例(了解)字符数据输入输出举例(了解) 计算机中的存储: -9: 1111 1111 1111 0111 -10: 1111 1111 1111 0110 247 246 #include “stdio.h“ main() char a,b; a = -9; b= -10; /* signed char type */ printf(“%c %c“, a,b); 输出: C语言程序设计 第二章 基本数据类型与运算 17 字符数据输入输出举例字符数据输入输出举例 #include main() char c1,c2; c1=97; c2=98; printf(“%c,%cn“,c1,c2); 运行结果: a, b #include main() char c1,c2; c1=97; c2=98; printf(“%d,%dn“,c1,c2); 运行结果: 97, 98 思考 p如果将例中char改成int,结果如何? p如果将c1=97 改为c1=97+3,结果如何? p如果将c2=98 改为c1=98-32,结果如何? C语言程序设计 第二章 基本数据类型与运算 18 字符数据输入输出举例字符数据输入输出举例 #include main() char c1,c2; c1=97; c2=98; printf(“%d,%dn“,c1,c2); printf(“%c,%cn“,c1,c2); 运行结果: 97, 98 a, b 思考 p如果将例中char改成int,结果如何? p如果将c1=97 改为c1=97+3,结果如何? p如果将c2=98 改为c2=98-32,结果如何? int c1=97+3; c2=98-32; 运行结果: 100, 98 d, b 运行结果: 100, 66 d, B 原始运行结果: 97, 98 a, b C语言程序设计 第二章 基本数据类型与运算 19 2.2 2.2 变量变量(variable)(variable) 数据类型 变量名; 1.概念:在程序运行过程中其值可以改变的量。 2.变量名:必须使用合法的标识符作变量名 不能使用关键字为变量命名 1.三个要素:变量类型、变量名和变量值。 2.内涵:变量名实际代表存储空间地址的一个符 号。编写程序时通过变量名来存、取变量值。 3.定义格式: 决定分配字节数 和数的表示范围 合法标识符 C语言程序设计 第二章 基本数据类型与运算 20 * *标识符的命名规则标识符的命名规则* * 标识符(identifier)是用来标识变量、常量、 函数等的字符序列。 n命名规则: 只能由字母、数字、下划线组成,且开头 必须是字母或下划线。 大小写敏感。 不能使用关键字。 n命名原则:见名知意。 C语言程序设计 第二章 基本数据类型与运算 21 2.2 2.2 变量变量 例如:int a , b=5; char c; float s; a 1变量值 为变量分配 的存储单元 变量名 例如: int a=1, b=-3, c; int a=1, b=-3, c; 2字节 2字节 2字节 . 内存示意图 地址 地址 地址 1 -3 ? a b c 编译程序根据变量定义为其 分配指定字节的内存单元 随机值 C语言程序设计 第二章 基本数据类型与运算 22 2.2 2.2 变量变量 n定义位置:置于函数的开头,而且必须位于所 有的执行语句之前。 n使用方法:必须先定义,再使用。 n变量初始化: 允许在定义变量的时对变量赋初 值。表示定义变量并对变量存储单元赋值。 main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data); 变量定义 可执行语句 C语言程序设计 第二章 基本数据类型与运算 23 2.2 2.2 变量变量 main() int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%fn”,data); error : syntax error : missing ; before type error : data : undeclared identifier C语言程序设计 第二章 基本数据类型与运算 24 2.3 2.3 常量常量(constant)(constant) 1、常量 在程序运行过程中,其值不能改变的量称为常 量。常量可分为: n符号常量:用标识符(identifier)代表常量。定 义格式为: 标识符一般用大写字母 是宏定义预处理命令,不是C语句 n直接常量:即具体的常数,如5,-4.6,a等。 p整型常量 p实型常量 p字符常量 p字符串常量 #define PI 3.1416 C语言程序设计 第二章 基本数据类型与运算 25 2.3-1 2.3-1 符号常量符号常量 符号常量:用标识符(identifier)代表常量。 标识符一般用大写字母 是宏定义预处理命令,不是C语句 #include #define PI 3.14 main() int r=2; float s, l; l=2*PI*r; s=PI*r*r; printf(“l=%f,s=%f n“,l,s); 运行结果: l=12.560000,s=12.560000 定义符号常量 使用符号常量 编译前系统进行替换 C语言程序设计 第二章 基本数据类型与运算 26 2.3-1 2.3-1 符号常量符号常量 #include #define PI 3.14 main() int r=2; float s, l; l=2*PI*r; s=PI*r*r; printf(“l=%f,s=%f n“,l,s); 1. 一般用大写字母 2. 是宏定义预处理命令,不是C语句(没有“;”) 3. 编译时先由系统替换为它所代表的常量,再进 行编译 4. 虽然是用标识符来表示标识,但本质是常量, 具有常量值不能改变的 性质 C语言程序设计 第二章 基本数据类型与运算 27 常量形式构成示例 10进制(09)-111 8进制0(07)0127 16进制 0x(0f) 0X(0F) 0x1af 0X1AF 2.3-2 2.3-2 整型常量整型常量 C语言程序设计 第二章 基本数据类型与运算 28 2.3-2 2.3-2 整型常量整型常量 #include main( ) int a,b,c; a=123; b=0123; /注意,是数字0,不是字母O c=0x123; printf(“a=%d,b=%d,c=%dn“,a,b,c); 运行结果: a=123, b=83, c=291 C语言程序设计 第二章 基本数据类型与运算 29 2.3-2 2.3-2 整型常量整型常量 例 30000 为int型 65536 为long int 型 整型常量的类型 1. 根据其值所在范围确定其数据类型 2. 在整常量后加字母l或L,认为它是long int 型常量 长整型示例: 129L/ 129ul/ 0X1FFLU。 C语言程序设计 第二章 基本数据类型与运算 30 常量形式构成示例 10进制必须有小数点-10.101 指数形式 指数部分必须为 整数 -0.1e-5 -0.1E-5 e或E之前,之后必须有数字 2.3-3 2.3-3 实型常量实型常量 实型常量的类型 默认double型 在实型常量后加字母f或F,认为它是float型 例如:3.5f、1e2F 例如: e-5, 1.2E-3.5,1e C语言程序设计 第二章 基本数据类型与运算 31 常量形式构成格式示例 字符单个字符字符ASCII值 048 a97 A65 字符串“字符序列”“CHINA” “Hello, world.” 2.3-4 2.3-4 字符及字符串常量字符及字符串常量( ASCII )( ASCII ) C语言程序设计 第二章 基本数据类型与运算 32 2.3-4 2.3-4 转义字符及其含义转义字符及其含义 转义 字 符 含义转义 字符含义 n回车换 行t水平制表 v垂直制表b退格 r回车f换页 a响铃反斜线 单引号“双引号 ddd 3位8进制数 代表的字符 xhh 2位16进制数 代表的字符 (x小写) 000 377x00 xFF C语言程序设计 第二章 基本数据类型与运算 33 main() int a,b,c; a=1; b=2; c=3; printf(“t%dn%d%dn%d%dtb%dn“,a,b,c,a,b,c); 输出: 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 1 2 3 1 2 3 2.3-4 2.3-4 转义字符举例转义字符举例 C语言程序设计 第二章 基本数据类型与运算 34 什么时候要使用转义字符什么时候要使用转义字符? ? #include main() printf(“123t56an“); printf(“The directory of TC.exe is “E:Turboc“n“ ); printf(“Look 16 and x15n“); 运行结果: 123 56 The directory of TC.exe is “E:Turboc“ Look and C语言程序设计 第二章 基本数据类型与运算 35 2.4 2.4 运算符与表达式运算符与表达式 C 运 算 符 算术运算符:+, -, *, /, %, +, - 关系运算符:, =, != 逻辑运算符:!, b=4 ; n 表达式:由变量、常量以及运算符按照语法规 则组成的序列。表达式的特点是能够求值。 例如: a+b*c%d n 语句:特点是以 ; 结束,可产生执行代码: 1、表达式语句。 如: y=x+3; 2、空语句。 如: ; 3、函数调用语句。如: printf(“%d”, 4、复合语句。 如: 5、控制语句。 如: if、while等 C语言程序设计 第二章 基本数据类型与运算 38 一、算术运算符和算术表达式一、算术运算符和算术表达式 #include main() int a; float b; a=1/2; b=1.0/2 printf(“na=%d, b=%f n ”, a, b ); 输出: a=0, b=0.500000 注意:两整数相除,结果为整数 C语言程序设计 第二章 基本数据类型与运算 39 一、算术运算符和算术表达式一、算术运算符和算术表达式 2、 求模运算符号: % n结合方向:从左向右 n 说明:%要求两侧均为整型数据 例: 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2 = 1 -1 1 0 () C语言程序设计 第二章 基本数据类型与运算 40 一、算术运算符和算术表达式一、算术运算符和算术表达式 3、 自增加、自减少运算符:+ - n作用:使变量值加1或减1,常用于循环语句中 n种类: 前置,形式如 +i, -i , 先执行i+1或 i-1,再使用i值。 后置,形式如 i+,i- , 先使用i值,再执行i+1或i-1。 n注意:只能用于变量,不能用于常量和表达式 C语言程序设计 第二章 基本数据类型与运算 41 一、算术运算符和算术表达式一、算术运算符和算术表达式 main() int i=3, j=10, m, n, p, q; m=+i -1; n=i+ -1; p=-j +1; q=j- -1; printf(” i=%d, m=%d, n=%dn”, i, m, n); printf(” j=%d, p=%d, q=%dn”, j, p, q); 运行结果为: i=5, m=3, n=3 j=8, p=10, q=8 C语言程序设计 第二章 基本数据类型与运算 42 课堂练习课堂练习 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b; /* k=4, j=4 */ /* k=3, j=4 */ /* j=4, 输出 4 */ /* j=4, 输出3 */ /* c=20, a=4 */ /* c=15, a=4 */ C语言程序设计 第二章 基本数据类型与运算 43 说明: 1.+ 和 - 的运算对象只能是变量(或运算结 果是变量的表达式), 不能是常量(或运算 结果是数值的表达式)。 例如: 5+、(a+2)+ 不合法。 1.具有右结合性,结合方向为从右到左。 例如: a+ 等价于 -(a+) 1.在有+ 和 的表达式中,尽量不要使用 难于理解和容易出错的表达方式,尤其是具 有二义性的表达式。 int i=3; m=(i+)+(i+)+(i+); () int i=3; a=i+; b=i+ c=i+; c=a+b+c; () C语言程序设计 第二章 基本数据类型与运算 44 二、赋值运算符和表达式二、赋值运算符和表达式 1、 基本的赋值运算符: = p格式:变量=表达式 p结合方向:从右向左, 优先级14级(次最低) p作用:将数据(常量或表达式)赋给一个变量 p注意:左侧必须是变量,不能是常量或表达式 p转换规则:使赋值号右边表达式值自动转换成 其左边变量的类型。 p赋值号与数学中的等号含义不同. n= t +210 a= (b=( (b*c)10) ) 数学中 a=b 等价于 b=a C语言中 a=b 不等价于 b=a int a; a=7.99999 /a=7 例 a=3; d=func(); c=d+2; () () C语言程序设计 第二章 基本数据类型与运算 45 二、赋值运算符和表达式二、赋值运算符和表达式 #include main() int a; a=10; a=a+3; a+3=10; a*3=8; 5=5; error = : left operand must be l-value error = : left operand must be l-value error = : left operand must be l-value C语言程序设计 第二章 基本数据类型与运算 46 二、赋值运算符和表达式二、赋值运算符和表达式 赋值表达式的值为赋值后左侧变量的值且只能给变量赋值赋值表达式的值为赋值后左侧变量的值且只能给变量赋值 例: 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 /表达式值为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语言程序设计 第二章 基本数据类型与运算 47 二、赋值运算符和表达式二、赋值运算符和表达式 2、 复合的赋值运算符: n算术运算相关:+=、-=、*=、/=、%= n位运算 相关:=、 a%=b; 其等价于 a=a%b; C语言程序设计 第二章 基本数据类型与运算 48 二、赋值运算符和表达式二、赋值运算符和表达式例,设a=3,则: a+=5; /表达式值为8,a=8 例: a=12; a+=a-=a*a ; 请试着求上面表达式的值 例: int a=2; a%=4-1; 等价于: a=a%3=2%3=2; C语言程序设计 第二章 基本数据类型与运算 49 二、赋值运算符和表达式二、赋值运算符和表达式 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语言程序设计 第二章 基本数据类型与运算 50 三、逗号运算符和表达式三、逗号运算符和表达式 int a, b=5; x=(a=3, 6*3); printf(“x=%d”, x=(a=1, y=5) ); /表达式值为18,a=3 /输出结果: /定义整型变量a,b且b初始化为5 /变量x=5,a=1,y=5 x=5 逗号运算符: , p格式: 表达式1,表达式2, , 表达式n p结合方向:从左向右, 优先级最低 p逗号表达式的值:等于表达式n的值 p用途:常用于声明变量或for循环语句中 C语言程序设计 第二章 基本数据类型与运算 51 三、逗号运算符和表达式三、逗号运算符和表达式 例 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 C语言程序设计 第二章 基本数据类型与运算 52 六、逗号运算符和表达式六、逗号运算符和表达式 #include main( ) int x,a; x=(a=3*5,a*4,a+5); printf(“x=%d,a=%dn”,x,a); #include main( ) int x,a; x=(a=3*5,a*4),a+5; printf(“x=%d,a=%dn”,x,a); 运行结果: x=20, a=15 运行结果: x=60, a=15 C语言程序设计 第二章 基本数据类型与运算 53 四、数据类型长度运算符四、数据类型长度运算符 运算符: sizeof p格式: sizeof(类型说明符、数组名或表达式) p类型说明符:该类型数据所占字节数 p数组名:该数组所占字节数 p表达式:该表达式所占字节数,但并不 计算表达式的值 C语言程序设计 第二章 基本数据类型与运算 54 七、数据类型长度运算符七、数据类型长度运算符 main() float f=1.5, x, a10; printf(“%d,%dn“,sizeof(double), sizeof(char); printf(“%d,%dn“,sizeof(x=f+2), sizeof(f); printf(“x=%fn“,x); printf(“%d,%dn“,sizeof(2.5), sizeof(2.5f); printf(“%d,%dn“,sizeof(a), sizeof(a5); 运行结果:8, 1 4, 4 x= 随机值 8, 4 40, 4 C语言程序设计 第二章 基本数据类型与运算 55 五、类型转换五、类型转换 1、自动类型转换 n发生情况: 运算转换-不同类型数据混合运算时: 赋值转换-把不同类型的值赋给变量时 输出转换-输出时转换成指定的输出格

温馨提示

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

评论

0/150

提交评论