第2章+数据类型运算符和表达式.ppt
《第2章+数据类型运算符和表达式.ppt》由会员分享,可在线阅读,更多相关《第2章+数据类型运算符和表达式.ppt(98页珍藏版)》请在三一文库上搜索。
1、第2章 数据类型、运算符与表达式,C语言程序设计基础,复习回顾,C语言的特点 C语言程序格式特点及基本结构 C语言的上机步骤 .C , .obj , .exe 的区别,一个简单的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相加之和*/ ,本章内容提要,基本数据类型; 常
2、量和变量; 标识符命名; 常用运算符和表达式; 运算符的优先级与结合性 变量的地址和指向变量的指针,本章重点,C语言的数据类型及其使用范围 字符串常量与字符常量的区别 转义字符的使用 C语言中的运算符和表达式,及各类数据的混合运算 掌握变量的地址和指向变量的指针,本章难点,不同数据类型的使用范围 赋值运算符和赋值表达式 数据的隐式转换问题 逗号运算符和逗号表达式 运算符的优先级问题 指针变量,第一讲 数据类型,C程序常见符号分类,关键字(Keyword) 又称为保留字,C语言中预先规定的具有固定含义的一些单词 标识符(Identifier) 系统预定义标识符 用户自定义标识符 运算符(Oper
3、ator) 34种,详见附录B 分隔符(Separator) 空格、回车/换行、逗号等 其它符号 大花括号“”和“”通常用于标识函数体或者一个语句块 “/*”和“*/”是程序注释所需的定界符 数据(Data) 变量(Variable) 常量(Constant),2.1 C语言的数据类型(Data Type),数据为什么要区分类型? 不同类型的数据代表不同的 数据表示形式 合法的取值范围 占用内存空间大小 可参与的运算种类 从基本数据类型到抽象数据类型 无数据类型 基本数据类型 构造数据类型 抽象数据类型,数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作,数据类
4、型,整型,字符型,实型,有,无,有,3.4e-383.4e38,有,有,说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例: 请看int和unsigned int,基本数据类型,标识符 定义:用来标识变量、常量、函数等的字符序列 组成: 只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线 大小写敏感 不能使用关键字 不可以是数字开头 长度:最长32个字符 命名原则: 见名知意 不宜混淆 如 l 与 I , o 与 0,2.2 常量与变量,例:判断下列标识符号合法性 sum Sum M.D.John day Date 3days student_name #33 l
5、otus_1_2_3 char ab _above $123,M.D.John,3days,#33,char,$123,ab,-标识符,下划线和大小写通常用来增强可读性 variablename variable_name VariableName, variableName 某些功能的变量采用习惯命名 如:for语句所采用的循环变量习惯用i, j, k,Windows 风格,UNIX 风格,一般用大写字母 是宏定义预处理命令,不是C语句 直接常量: 整型常量 请点击: 实型常量 请点击: 字符常量 请点击: 字符串常量 请点击:,如 #define PRICE 30,定义:程序运行时其值不能
6、改变的量(即常数) 分类: 符号常量:用标识符代表常量 定义格式: #define 符号常量 常量,例 符号常量举例(ch2_1.c) #define PRICE 30 main() int num,total; num=10; total=num*PRICE; printf(“total=%d“,total); ,运行结果:total=300,常量,符号常量:定义一个标识符来表示的常量。 【例2】 #define PRICE 20 /*宏定义语句*/ main( ) float num; float sum; /*变量定义*/ num=6.0; sum=num* PRICE; printf(
7、“sum=%f”,sum); /*输出结果*/ ,说明:1、符号常量的值在其作用域内不能改变,也不能再赋值; 2、使用符号常量,可以做到一改全改; 3、还可以起到一定的注释作用。,直接常量:直接可以看得到数据的常量。 【例1】已知每千克牛肉的价格为20元,买6斤需要多少钱。 main( ) float sum; /*变量定义*/ sum=20.0*6; /*给变量赋值*/ printf(“sum=%dn”,sum); /*输出结果*/ ,运行结果:(屏幕显示) Sum=120.000000,三种形式: 十进制整数:由数字09和正负号表示.如 123,-456,0 八进制整数:由数字0开头,后跟
8、数字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,整型常量(整常数),表示形式: 十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. 指数形式:(e或E之前必须有数字十进制数;指数必须为整数)如12.3e3 ,123
9、E2, 1.23e4 , e-5 , 1.2E-3.5,实型常量的类型 默认double型 在实型常量后加字母f或F,认为它是float 型,实型常量(实数或浮点数),定义:用单引号括起来的单个普通字符或转义字符.,字符常量的值:该字符的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 C
10、n“); 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”); ,运行结果: 屏幕显示:= 打印机输出:,字符常量,字符常量与字符串常量不同,定义:用双引号(“”)括起来的字符序列 存储:每个字符串尾自动加一个 0 作为字符串结束标志,例: char ch; ch=“A”;,字符串常量,概念:其值可以改变的量 变量名与变量值 变量定义的一般
11、格式: 数据类型 变量1,变量2,变量n;,变量初始化:定义时赋初值,例: 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 stadent in function main,例2 float a,b,c; c=a%b; /Illegal use of floating point in
12、 function main,变量定义位置:一般放在函数开头,变量,占字节数随机器不同而不同,一般占一个机器字 shortintlong 可用sizeof(类型标识符)测量,实型变量 float:占4字节,提供7位有效数字 double:占8字节,提供1516位有效数字 example,字符型变量 字符变量存放字符ASCII码 char与int数据间可进行算术运算,例1: float a; a=111111.111; /* a=111111.1*/ 例2: double b; b=111111.111; /* b=111111.111*/,例 a=D; /* a=68; */ x=A+5; /
13、* x=65+5; */ s=!+G /* s=33+71; */,没有字符串变量,用字符数组存放,整型变量,【exp2.7】一个较大实数加一个较小实数。 main() float x=7.24356E10, y; y=x+54; printf(“x=%en“,x); printf(“y=%en“,y); ,程序执行的结果为: x=7.24356E10 y=7.24356E10,进行计算时,要避免一个较大实数和一个较小实数相加减。,【exp2.8】实型数据的溢出 main() float a,b,c,d; a=1.2E33; b=0.5E-22; c=0.25E-21; d=a/b; d=d*
14、c; printf(“c=%fn “,d); ,结果: Floating point:Overflow,改:d=a*c;d=d/b; 或: d=a/b*c;,/*ch2_5.c*/ #define PRICE 12.5 main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; printf(“total=%f,ch1=%cn”,total,ch1); ,运行结果: total=37.500000, ch1=d,例子,结论: 允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,同样也允许对
15、整型变量赋以字符值,把整型量按字符量输出。 注意: 因字符量存放为单字节,所以当整型量按字符型量处理时,只有低八位字节参与处理。,本次课回顾,基本数据类型,int 整数,在目前绝大多数机器上占4个字节。TC2中是2个字节 float 单精度浮点数,一般是4个字节长 double 双精度浮点数,一般是8个字节长 char 字符,一般是1个字节长 用来表示256个ASCII字符,或者0255的整数,ASCII字符表1,数据类型修饰符,short short int,短整数,一般2个字节长。通常简写为short long long int,长整数,一般是4个字节长。通常简写为long long do
16、uble,长双精度(高精度)浮点数,一般是16个字节长。 signed 用来修饰char、int、short和long,说明他们是有符号的整数(正整数、0和负整数)。一般缺省都是有符号的,所以这个修饰符通常省略 unsigned 用来修饰char、int、short和long,说明他们是无符号的整数(正整数和0),3.4e-383.4e38,基本数据类型,注:对于其它系统中设基本整型占用内存字节数为n, 其值域为:-2n-1(2n-1-1);无符号整型变量的值域为:0 (2n-1)。,常数(Constant),整型常数 18、-31 长整型常量 123l、123L、123456l、123456
17、L 无符号型常量 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,八进制与十六进制常数,以数字“0”开始的整型常数是八进制数 022、-037 010和10大小不一样 因为八进制并不常用,所以此种表示法比较少见 以“0x”或者“0X”开始的整型常数是十六进制 AF和af用来表示十进制的1015 十六进制的形式比较常用,尤其在进行位一级的控制的时候 0x12、-0x1F, -0x1f,字
18、符(Character)常数,字符常数的表示方法 a,A,5,%,$ 单引号内只能有一个字符,除非用“”开头 就是一个普通整数,也可以参与各种数学运算 每个字符具有一个0255之间的数值,可从ASCII表查出 注意:5和整数5的区别 字符的数学运算在密码学内用得比较多,字符常数,转义字符 一些特殊字符(无法从键盘输入或者另有它用)用转义字符表示,字符串(String)常数,用双引号括住的由0个或多个字符组成的字符序列 “I am a string“ “表示空字符串 转义字符也可以在字符串中使用 引号只作为字符串开始和结束的标志 C语言内部用0表示字符串的结束 除注释外,是唯一可以出现中文的地方
19、 “x“和x是不同的 里定义了一系列专门的字符串处理函数,使用变量要注意,不要对变量所占的内存空间字节数想当然 用sizeof获得变量或者数据类型的长度 现场演示程序在Turbo C2.0下的运行结果,注意!,#include main() printf(“Data type Number of bytesn“); printf(“- -n“); printf(“char %dn“, sizeof(char); printf(“int %dn“, sizeof(int); printf(“short int %dn“, sizeof(short); printf(“long int %dn“,
20、 sizeof(long); printf(“float %dn“, sizeof(float); printf(“double %dn“, sizeof(double); ,变量声明,使用变量的基本原则 变量必须先定义,后使用 所有变量必须在第一条可执行语句前定义 声明的顺序无关紧要 一条声明语句可声明若干个同类型的变量 声明变量,是初始化变量的最好时机 不被初始化的变量,其值为危险的随机数 char esc = a; int i = 1; int sum = 0; float eps = 1.0e-5;,实型数据提供的有效数字位数,float型数据提供7位有效数字 double型数据提供1
21、6位有效数字 使用不当导致舍入误差,#include main() float a; double b; a = 123456.789e4; b = 123456.789e4; printf(“%fn%fn“,a,b); ,数据在内存中的存储格式,整型 实型 字符型,char型与int型之间的关系,小写字母转换为大写字母,#include main() char ch = b; ch = b - 32; printf(“%c, %dn“, ch, ch); ,#include main() char ch = b; ch = b - (a - A) ; printf(“%c, %dn“, ch
22、, ch); ,小结,C语言的数据类型分为标准类型、构造类型、指针类型、空类型等四大类; 常量与变量:变量必须先定义,后使用;常量有直接常量和符号常量两种形式。C语言规定标识符只能由字母、数字和下划线3种字符组成,并且第一个字符必须为字母或下划线。 整型数据:分为短整型(short)、长整型(long)和基本整型(int)3种。根据是否存放符号,又可分为:无符号(unsigned)数和有符号(signed)数。整型常量有3种形式:八进制(前缀0)、十进制(无前缀)、十六进制(0x为前缀)。整型常量还可以加后缀u、U和l、L来表示无符号数和长整型。 实型数据:分为单精度(float)、双精度(d
23、ouble)、长双精度3种。实型常量都是双精度型,可以用十进制小数和指数形式表示。 字符型数据:在内存中以ASCII码形式存放。字符型数据可以作为整型数据使用,整型数据也可以作为字符型数据使用,相互转换的一句是ASCII码表,练习,(1)以下选项中合法的标识符是 A) 1-1 B)11 C)-11 D)1 (2)以下选项中不能作为C 语言合法常量的是( )。 A)cd B)0.1e+6 C)“a“ D)011 (3)若函数中有定义语句:int k;,则 A)系统将自动给k赋初值0 B)这时k中值无定义 C)系统将自动给k赋初值-1 D)这时k中无任何值 (4)以下选项中,能用作数据常量的是 A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据类型 运算 表达式
链接地址:https://www.31doc.com/p-3423301.html