C_C++程序设计基础 教学课件 ppt 作者 李凤云 第3章 数据类型

上传人:E**** 文档编号:89343352 上传时间:2019-05-23 格式:PPT 页数:31 大小:115KB
返回 下载 相关 举报
C_C++程序设计基础 教学课件 ppt 作者  李凤云 第3章 数据类型_第1页
第1页 / 共31页
C_C++程序设计基础 教学课件 ppt 作者  李凤云 第3章 数据类型_第2页
第2页 / 共31页
C_C++程序设计基础 教学课件 ppt 作者  李凤云 第3章 数据类型_第3页
第3页 / 共31页
C_C++程序设计基础 教学课件 ppt 作者  李凤云 第3章 数据类型_第4页
第4页 / 共31页
C_C++程序设计基础 教学课件 ppt 作者  李凤云 第3章 数据类型_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《C_C++程序设计基础 教学课件 ppt 作者 李凤云 第3章 数据类型》由会员分享,可在线阅读,更多相关《C_C++程序设计基础 教学课件 ppt 作者 李凤云 第3章 数据类型(31页珍藏版)》请在金锄头文库上搜索。

1、第3章 数据类型、运算符和表达式,主要内容: 1. 数据类型 2. 常量和变量 3.基本数据类型:整型 、实型 、字符型 4. 最常用的运算符和表达式: 算术运算符和算术表达式、赋值运算符和赋值表达式,引 入,假设某任务中有如下数据需要处理:1024、65536、123.5、123.456789e10、a、“name“ 设计算法前,需要先定义数据结构:即如何在计算机中表示这些数据? 编程时,函数的说明部分就是对数据结构的描述,可执行部分是对算法的具体描述。那么,在C语言中如何描述数据结构呢? 数据类型 数据结构描述完毕,然后是算法的C语言描述了。算法是对数据处理过程的描述,数据处理过程许多基本

2、操作是如何实现的呢?运算符 和表达式,3.1 C的基本语法单位,1、字符集 character set 2、关键字 keyword 3、标识符 identifier 标识符命名规则: (1)由字母、数字及下划线组成,且不能以字母开头。 (2)不能与关键字同名 (3)尽量“见名知义” 例如:下列标识符,是否合法?为什么? area if score student_no 2day month_3 int _sum no*3 &aa,3.2 常量和变量,例1:输入任一半径,计算球的体积。 #define PI 3.1415926 /*定义符号常量PI */ main( ) float r, v ;

3、 /*定义变量 r、v*/ printf(“n enter r:“); scanf(“%f“, ,由例题分析可知: 常量:在程序的运行过程中其值不能被改变的量。如程序中的3, 4 符号常量:用一个标识符代表一个有特定含义的常量。如 PI 变量:在程序的运行过程中其值可以被改变的量。如 r , v 提示:变量必须先定义,后使用,原因有两个: (1)系统根据变量的类型为其分配合适的存储单元。如 系统给 r , v 各分配大小为 4B 的单元 (2)编译系统根据变量的类型进行语法检查。如 r %5 是非法的表达式,3.3 基本数据类型:整型、实型、字符型,主要掌握各种类型的常量表示、变量的定义、所占

4、存储空间的大小、取值范围,一、整型: 用于表示整数 所占内存空间:随机器而异,一般微机上一个整型数据占 2B 的内存空间。 整型的可用修饰符: short int long int unsigned int / unsigned short /unsigned long,整型变量的定义(或说明): 如: int a, c, no; long s; unsigned x, y; 等 整型常量: decimal: 12 -3 0 octal : 024 056 hexadecimal: 0x3A -0X34 long int : 12L 0L 问题:要定义两个变量x 和y,分别用于存放数据1024

5、 和 65536,如何确定x和y类型?,分析:首先,要处理的数据为整型; 其次,根据数据的大小确定其具体类型:1024可用int 型变量保存,65536必须用long int 型变量才能保存。 程序: main( ) int x; long y ; x=1024; y= 65536 ; printf(“n x=%d , y=%ld“ , x , y); 说明:若x,y 均定义为long 型,程序运行如何? 若x,y均定义为 int 型,程序运行结果如何?,二、实型,Float : 单精度浮点型 Double: 双精度浮点型 所占空间大小 : 在一般微机上,float 型数据占4B,double

6、型数据占8B。当然double型数据的表示范围大。 实型变量的定义: float r, v ; double z, a, x ; float result ; 等,实型常量: (1)小数形式: 可由正负号、小数点和数字 组成。 如: 12.35 -78.09 0.789 .145 (2) 指数形式: 用科学计数法表示的实数。 如: 44e 3 0.34e12 问题:若程序重要处理的数据为:123.5 和 123.456789e10, 设该数据分别用变量a 、b 保存,试问a 、b的类型如何确定? 分析:首先该数据均为实型; 其次,根据数据的大小及精度,可确定a 为float型即可,b必须为do

7、uble型。,程序如下: main( ) float a; double b; a=123.5; b= 123.456789e10 ; printf(“n a=%f , b=%f“ , a, b) ; 运行结果: a=123.500000, b=1234567890000.000000 若改为:float b; 运行结果如下: a=123.500000, b=1234567954432.000000,三、字符型 char,Size: 占1B,只能保存一个字符。其取值范围为:0255 字符常量: 普通字符:用单引号括起来的一个字符,如 a f * # 2 转义字符:用单引号括起来的、以“开头的字

8、符序列,如 n t 100 x10 字符常量的值是该字符的ASCII码值(即该字符在你的机器中所用的字符集中的编码) 如字符 0 的值是整数 48 字符串: 用双引号括起来的字符序列,如“a“ “$#%“ “123n“ “(空串) 注:字符串存储时,系统自动在字符串的末尾加上字符串结束标记 0,比较字符常量a与字符串常量“a“ : a “a“ a 0 字符变量的定义及使用: char ch1, ch2; /*定义两个字符变量ch1 ,ch2 */ unsigned char ss; /*定义一个无符号字符变量ss*/,97,97 0,例3.5 定义两个变量c、d, 用于保存字符a 、b,然后按

9、字符和数值两种形式输出变量c、d的值。 main( ) char c, d ; c= a ; d=b ; printf(“n %c %c“ , c, d); printf(“n %d %d“ , c, d); Rusult: a b 97 98 若将第三行改为:c=97; d=98; 结果如何?结论: 在字符的ASCII码(0255)内字符与整数可通用。,3.4 变量的初始化 (自学),如 int r=6; 等价于 int r ; r=6; 应用: 编程时,当定义变量时就已知该变量的值,则可以使用初始化的方式给变量赋值。 注意: int i=j=k=0; 是错误的。正确的应为: int i=0

10、, j=0, k=0;,3.5 运算符和表达式,运算符: 规定了对数据的基本操作。 主要掌握:各运算符的功能、优先级和结合方向。 本章只介绍最常用的运算符: 算术运算符、赋值运算符 及其表达式,3.5.1 算术运算符和算术表达式,1. 基本算术运算符和表达式: + * / % 如: 10%3 4/2 6+8 7/5 78-9 特点:双目运算符,即要求有两个操作数。 % 运算符要求两个操作数必须是整型数。 如 8.4%4 是错误的。 其他的算术运算都是通过调用数学函数实现的,其对应的头文件是:math.h 如 pow(x,y) 表示 xy,自增、自减运算符: + - 功能:使变量自增1、自减1

11、例如:计算110的和。 main( ) int n=0, j; for( j=1; j=10; j+) n=n+j; printf(“n sum: %d“, n); 说明:j+ 等价于 j = j+1,同理,k - 等价于 k= k-1 自加、自减运算符的前缀和后缀用法的区别: 例如: main() int i=6,j=6,k=6, h=6,m,n,x,y; m=i+; n=+j; x = k-; y= -h; printf(“n i=%d, m=%d, j=%d, n=%d“, i, m, j, n); printf(“n k=%d, x=%d, h=%d, y=%d“, k, x, h,

12、y); 运行结果: i=7, m=6, j=7, n=7 k=5, x=6, h=5, y= 5,结论: 前缀 : n=+j; 等价于 j=j+1; n=j; (j先加1,后参与表达式的运算) 后缀 : m=i+; 等价于 m=i; i=i+1; (i 先参与表达式的运算,然后加1 ),3、算术表达式的计算:当一个表达式中包含多个算术运算符时,如何计算呢? 表达式的计算方法:按优先级由高到低进行,相同优先级的运算符按结合方向计算。例如 计算: 4 + 5*8/10 12%5/2 优先级 : 先 + - 负号 ,后 * / % , 然后 + - 结合性:+ - -(负号) 自右向左;其他的,自左

13、向右,算术表达式的书写,要求自学 注意:表达式中的符号均写在同一行中,不能有上标或下标。 合理运用括号,保证原数学表达式的运算顺序。,3.5.2 类型转换,1. 当参加运算的两个操作数类型不同时,先将“低”类型的数据转换为“高”类型,再计算。隐式转换(系统自动进行的转换) 类型高低:参见 p38 例如:计算表达式 2.5*4+12 - 1.5 2. :当需要将某数据转换成指定类型时使用强制类型转换。 例如,函数 sqrt的原型:double sqrt(double) 如果要计算整数 n 的平方根,应写为: root = sqrt( (double) n );,例3.8 含有牵制类型转换的表达式

14、的计算。 main() int a=2, b=3; float x=3.5, y=2.5, z; z=(float )(a+b)/2 + (int)x%(int)y; printf(“n %f“, z); 运行结果: 3.500000,3.5.3 赋值运算符和表达式,赋值 :给变量提供数据的一种方法。 1. 赋值表达式: 变量 = 表达式 作用:先计算“=”右边表达式的值,然后将其送给“=”左边的变量。 如 area = r*r*3.14 s=0 n=n+2 优先级 : 比算术运算符低,仅高于逗号运算符。 结合性: 自右向左 若定义:int a=2; 则表达式 b=c=a+4 的计算过成为:

15、先计算:c=a+4 得该表达式的值为 6 ;然后计算:b=6 得该赋值表达式的值为 6。,复合赋值表达式: 变量 op = 表达式 等价于: 变量 = 变量 op(表达式) 例如 : k +=2 等价于 k=k+2 x*= 3+6 等价于 x = x*(3+6) 3. 赋值运算中的类型转换: 当赋值号“=” 右边表达式的值与“=”左边的变量的类型不同时,先将“=”右边表达式的值转换成“=”左边变量的值,然后再赋值。 such as: int n=4; float s; s = n*5; result: float,3.5.4 逗号运算符,如: for( j=0,s=0,p=1; j10; j+) s + =j; p*=j; 逗号表达式的计算:自左向右依次计算各表达式 逗号表达式的值:最右边一个表达式的值 (要求自学),作 业,上机练习:1 习题1、3、5、6、7 预习:第四章 顺序结构程序结构 要求明确: Getchar() putchar() scanf() printf() 的使用,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号