C语言(第2章数据类型、运算符与表达式).ppt_第1页
C语言(第2章数据类型、运算符与表达式).ppt_第2页
C语言(第2章数据类型、运算符与表达式).ppt_第3页
C语言(第2章数据类型、运算符与表达式).ppt_第4页
C语言(第2章数据类型、运算符与表达式).ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

VIP免费下载

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

文档简介

C语言程序设计 信息与计算机学院 朱诚: Date 1 第二章 数据类型、运算符与表达式 预备知识:什么程序? 程序就是指令的有序集合,对应着一系 列的数据加工步骤 Date 2 第二章 数据类型、运算符与表达式 例:求2个整数的和,并将结果显示出来 (1)先准备2个整数 a=123,b=234; (2)计算 sum=a+b; (3)输出结果。 这是人脑的思维形式,计算机该怎么办? (1)将第一个操作数送入内存单元; (2)将第二个操作数送入内存单元; (3)CPU从内存中取数进行加法运算 (4)将运算结果送入内存单元存储 (5)将结果输出到输出设备(如显示器) 冯.诺依曼结构: 计算机 运算器 控制器 存储器 主机: I/O设备:键盘、显示器等 中央处理器CPU Date 3 第二章 数据类型、运算符与表达式 #include “stdio.h” main( ) int a, b, c, sum; a=123; /*步骤1:将第一个操作数送入内存单元a中*/ b=234; /*步骤2:将第一个操作数送入内存单元b中*/ sum=a+b; /*步骤3和4:求两数相加之和并送内存单 元sum中*/ printf(“Sum is %d n ” , sum); /*步骤5:将结果 输出到显示器上*/ Date 4 第二章 数据类型、运算符与表达式 一个程序实际上包含两个主要部分: 组织数据设计数据结构 对数据结构进行加工的过程设计算法 程序=数据结构+算法 程序=数据结构+算法+程序设计方法+编程语言 Date 5 第二章 数据类型、运算符与表达式 C语言的数据类型 数据结构指的是数据的组织形式 C语言的数据结构是以数据类型的形式出现的 数据类型决定: 1. 数据占内存字节数(内存空间大小) 2. 数据取值范围 3. 其上可进行的操作(运算) Date 6 第二章 数据类型、运算符与表达式 数 据 类 型 基本类型 构造类型 指针类型 空类型void 定义类型typedef 字符型 整 型 实 型 单精度型float 双精度型double 数组类型 结构体类型 共用体类型 短整型short 长整型long 整 型 int Date 7 2.2.1 常量 1、定义:在程序执行期间,其值不可改变的量称为常量 2、类型: 数值常量 例如:10,3 ,2.68 , a , hello 等 符号常量 即用一个符号代表一个常量 例如: #define PI 3.1415926 main( ) float r,l,s; r=2; l=2*PI*r; s=PI*r*r; printf(“l=%d, s=%d”, l,s); 第二章 数据类型、运算符与表达式 1、含义清楚 2、方便修改 Date 8 第二章 数据类型、运算符与表达式 使用符号常量必须注意: 符号常量必须先定义后才能用它表示一个数 值。 符号常量的值在其作用域内不能改变,也不 能再被赋值。 符号常量名习惯用大写字母表示。 Date 9 第二章 数据类型、运算符与表达式 2.2.2 变量 1. 定义:程序执行期间值可以改变的量;它代表内存中特定的 存储单元。 2.命名规则: 变量名由标识符表示,只能由字母、数字和下划 线三种字符组成,且第一个字符必须为字母或下划线。 例如:下列标识符中,不合法的变量名有: M.D.John , 12%gf , 1add , _ce36 ,age (TC中每个int变量分配 2个 字节) float a, b, c, d; (每个变量分配 4个 字节) Date 10 第二章 数据类型、运算符与表达式 注意 * 选变量名时,要尽量做到“见名知意” 例如:name st_age xm nl class sum * 大、小写字母是不同的字符,C变量名习 惯用小写字母表示。 * 建议变量名的长度不要超过8个字符。 * 变量必须强制定义,即“先定义、后使用” Date 11 第二章 数据类型、运算符与表达式 2.3 整型数据 整型常量即整常数 C语言中整常数可以是十进制、八进制(0 开头)、十六进制(0x开头) 整型数据在内存中是以二进制形式存放的 。 整型变量 整型变量的基本类型符号是: int 在 int 前还可以加上修饰符号: short long signed unsigned Date 12 第二章 数据类型、运算符与表达式 一个无符号整型变量中可以存放的正数的范围比一般整型变量中 正数的范围扩大一倍。 int a; /* 变量a 的数值范围: -2147483 6482147483647*/ unsigned int b; /* 变量b的数值范围:-21474836482147483647 */ 基本型:以 int 表示 短整型:以 short int 或 short 表示 1.类型 长整型:以 long int 或 long 表示 (123l、 123L) 无符号基本型(unsigned int) 无符号型 无符号短整型(unsigned short) 无符号长整型(unsigned long) Date 13 第二章 数据类型、运算符与表达式 整型变量的使用 定义: 例如: int a , b ; unsigned short x , y ; long e , f ; 整型数据的溢出: 例如: int a , b ; a = 32767 ; b=a+1 ; 那么 b=? 整型常量的类型 Date 14 第二章 数据类型、运算符与表达式 2.4 浮点型数据 浮点数就是实数 两种表示形式: 十进制小数形式: 0.123 、123.123 、 3.1415936 指数形式: 123e3 (123103 )、123E3 注意:E和e前必须有数字、e和E后面必须 是整数 规范化的指数形式 Date 15 第二章 数据类型、运算符与表达式 浮点型变量 浮点数在内存中的存放形式: 0 3 1 4 1 5 9 2 6 1 符号位小数部分指数部分 0.31415926 X 101 Date 16 第二章 数据类型、运算符与表达式 浮点型变量的分类: double:占8字节,提供1516位有效数字 float:占4字节,提供7位有效数字 Long double: 占10字节,提供1819位有效 数字 浮点型数据的舍入误差 Date 17 第二章 数据类型、运算符与表达式 浮点型常量的类型: f2.456784523.65 类型后缀 f f、F F表示常量是一个单精度型浮点数表示常量是一个单精度型浮点数 l l、L L表示常量是一个长双精度型浮点数表示常量是一个长双精度型浮点数 无任何后缀的浮点型常量视作双精度型无任何后缀的浮点型常量视作双精度型 Date 18 第二章 数据类型、运算符与表达式 字符常量 定义:用单引号括起来的单个普通字符或转义字符. v字符常量的值:该字符的ASCII码值 v转义字符:反斜线后面跟一个字符或一个代码值表示如 a A ? n 101 void main() char c1,c2; c1=97; c2=98; printf(“%c %c n”); printf(“%d %d n”); 运行结果 a b 97 98 Date 22 第二章 数据类型、运算符与表达式 例子2.7 大小写字母转换 #include void main() char c1 ,c2 ; c1=a; c2=b; c1=c1-32; c2=c2-32; printf(“%c %c “,c1,c2); 运行结果: A B Date 23 第二章 数据类型、运算符与表达式 字符串常量 定义:用双引号(“”)括起来的字符序列 存储:每个字符串尾自动加一个 0 作为字符串结 束标志 h e l l o 0例 字符串“hello”在内存中 a a 0例 a“a” 例 空串 “” 0 例: char ch; ch=“A”; 例: char ch; ch=A; Date 24 第二章 数据类型、运算符与表达式 2.6 变量赋 初值 程序中经常要在使用变量前预先对它们设置初始值 例如: int a = 123 ; float f = 3.1415926 ; char c = a ; Date 25 第二章 数据类型、运算符与表达式 2.3 各类数值型数据间的混合运算 两种不同的数值型数据之间进行运算前,不同类型的 数据要先转换成同一类型。可以避免数据溢出或运算精度 下降。 转换形式: 隐式转换 (由系统自动进行) 显式转换 (强制类型转换) 隐式转换的转换规则: 精度小的向精度大的类型转换 取值范围小的向取值范围大类型转换 参看课本P32页图2-2 强制类型转换符 (类型) (double)(x+y) (int)(5*3.1415926) Date 26 第二章 数据类型、运算符与表达式 2.4.1 算术运算符和表达式(1) 算术运算符:(+ - * / % + -) 关系运算符:( = !=) 逻辑运算符:(! int b=3; a/b=? double a=5 ; int b=3 ; a/b=? 运算符的优先级和结合性: “左结合性” 参见附录C 建议:尽量使用()来直观表示运算的优 先次序: 区别 a*b/c*d 与 (a*b)/(b*c) Date 29 自增、自减运算符 +i 和 -i (先改变 i 的值,然后用改变后的i值参与运 算) i+ 和 i- (先使用 i 原来的值运算,运算完成后改变 i 的值) 假设 i=5比较: j=i+ 和 j=+i 两个语句 注意: +和 只能用于变量,不能用于常量和表达式 。 -i+ 相当于 -(i+) 第二章 数据类型、运算符与表达式 Date 30 第二章 数据类型、运算符与表达式 例 : 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 /4 /3 /c=20,a=4 /c=15,a=4 Date 31 第二章 数据类型、运算符与表达式 关系运算符和关系表达式 6种关系运算符 1. 4. = 5. = 6. != 高 低 算术运算符 = a+b c (a+b) a = b=c a = ( b=c ) a = b = c +d a = ( b= (c+d) ) 算术运算符 赋值运算符 关系运算符 高 低 Date 33 第二章 数据类型、运算符与表达式 用用关系运算符关系运算符将两个将两个表达式表达式连接起来连接起来 ( (a+ba+b) () (c+dc+d ) ) (a=3) x(a=3) x 注意区分等于注意区分等于(=)(=)和赋值运算符和赋值运算符(=)(=) a=b a=b a=b a=b 关系表达式的值是关系表达式的值是逻辑值逻辑值“真真” ”或或“ “假假” ” C C语言用整型表示逻辑值语言用整型表示逻辑值,“ “真真” ”11、非零、非零、 “ “假假” ” 0 0 举例,举例,a=3, b=2, c=1;a=3, b=2, c=1; d = ab; /* d=1 */ f = abc; /* f=(ab)c=0 */ Date 34 第二章 数据类型、运算符与表达式 逻辑运算符和逻辑表达式 3种逻辑运算符及优先级 a=5 /表达式值11,c=6,a=11 /表达式值10,a=10,b=4,c=6 /表达式值5,a=5,b=10,c=2 Date 41 第二章 数据类型、运算符与表达式 n逗号运算符和表达式 n形式:表达式1,表达式2,表达式n n结合性:从左向右 n优先级: 15 n逗号表达式的值:等于表达式n的值 n用途:常用于循环for语句中 例 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 Date 42 第二章 数据类型、运算符与表达式 运算符的优先级和结合性 优先级见课本P61页表2-9

温馨提示

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

评论

0/150

提交评论