第2章 数据的存储与运算
第2章_数据类型、运算符和表达式《C语言程序设计(第三版)》-电子教案
2.2 标识符、常量与变量
符号常量
【例2-1】输入圆的半径,计算周长和面积。 #define PI 3.14159 void main() { float r,c,s; scanf("%f",&r); c=2*PI*r; s=PI*r*r; printf("r=%f,c=%f,s=%f\n",r,c,s); }
以下是合法的整型常量:
2.2 标识符、常量与变量
实型常量
实型常量只能用十进制形式表示 表示形式:
小数形式。由数字序列和小数点组成,如 3.1415926、-0.15、.15、2.等都是合法的实型 常量。 指数形式。由十进制数加上阶码标志“e”或 “E”及阶码组成,如3.14e-4或3.14E-4表示 3.14×10-4。
2.2 标识符、常量与变量
2.2.3 变量
在程序运行过程中,其存储的值可以被改变的量称 为变量 变量必须通过标识符进行说明,称为变量名。 变量名和内存单元地址存在映射关系,程序可以通 过变量名寻址,从而访问其存储的数据。
2.2 标识符、常量与变量
变量的定义和说明
数据类型 变量名1[,变量名2,…,变量名n];
long型转换成float型时由原来可达10位整数变成只有7位有效数字精度丢失但由于数的范围扩大了数据类型从较低级提升到较高级随着竞争日益激烈酒店嘴中的肥肉被大肆抢夺各大酒店在这场竞争中几乎溃不成军
21世纪高等学校精品规划教材
第2章 数据类型、运算符 和表达式
掌握C语言的基本数据类型 掌握标识符、关键字、常量和变量的使用 掌握运算符、表达式以及数据类型之间的转换 等 掌握简单数据的输入输出
C语言教程课件第二章 数据类型、运算符和表达式
例 整型变量的定义与使用
#include <stdio.h> void main() { int a,b,c,d; /*指定a、b、c、d为整型变量*/ unsigned u; /*指定u为无符号整型变量*/ a=12;b=-24;u=10; c=a+u;d=b+u; printf("a+u=%d,b+u=%d\n",c,d); }
例 向字符变量赋以整数。 • 运行结果: #include <stdio.h> a b void main() 97 98 { char c1,c2; c1=97; c2=98; printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); }
• 说明:在第4和第5行中,将整数97和98分别赋给c1和c2,它 的作用相当于以下两个赋值语句: c1='a';c2='b'; 因为'a'和'b'的ASCII码为97和98
• 字符型变量用来存放字符常量,注意只能放一个字符。 • 字符变量的定义形式如下:char c1,c2; • 在本函数中可以用下面语句对c1,c2赋值: c1='a';c2='b'; • 一个字符变量在内存中占一个字节; • 将一个字符常量放到一个字符变量中,是将该字符的 相应的ASCII代码放到存储单元中,这样使字符型数据 和整型数据之间可以通用。一个字符数据既可以以字 符形式输出,也可以以整数形式输出。
运行结果: total=300 例2.1 符号常量的使用 #define PRICE 30 #include <stdio.h> void main ( ) 说明:如再用赋值语句给PRICE赋值是错的 { PRICE=40;/*错误,不能给符号常量赋值*/ int num, total; num=10; total=num * PRICE; printf(″total=%d\n ″,total); } 说明: 程序中用#define命令行定义PRICE代表常量30,此后凡在 本文件中出现的PRICE都代表30,可以和常量一样进行运算
第2章 数据存储基础
二进制:
1、数码:0、1
2、基数为2,逢2进1
3、用多项式表示一个二进制数
B=b n-12 n-1+…+b 121+b 02 0+b-12-1 + … +b-m2―m
八进制(后缀O) 1、数码:0、1、2、3、4、5、6、7 2、基数为8,逢8进1 3、用多项式表示一个八进制数 O=a n-18 n-1+…+a 181+a 08 0+a-18-1 + … +a-m8―m
数码:一组用来表示某种数制的符号。 如,十进制的数码是0、1、2、3、4、5、6 、7、8、9;二进制的数码是0、1。 基数:某数制可以使用的数码个数。 如,十进制的基数是10; 二进制的基数是2。 数位:数码在一个数中所处的位置。 权:权是基数的幂,表示数码在不同位置 上的数值。
2.1.2数制间的转换 一、二进制与十进制之间的互相转换 1. 二进制到十进制:利用展开公式 根据公式: B = b n-12 n-1 +b n-22 n-2 +…+b 12 1+b 02 0 +b-12-1 +…+b-m2-m 例如: (1101.01)2=1×23+1×22+0×21+1×20+ 0×2-1+1×2-2 =(13.25)10
2.1.1 进位计数制
按照进位方式计数的数制叫做进位计数制。 进位计数制是利用固定的数字符号和统一的规 则来计数的方法。 进位计数制是一种计数方法,通俗地讲,就是 逢几进一的规则。 习惯上最常用的是十进制计数法。十进制数是 最常用的一种数制, 但它不是唯一的数制。 例如计时用的时、分、秒就是按60进制计数的。 十进制起源于人类双手的十根手指。 由于开关器件的特性,两个稳定的状态,因此, 计算机内部采用二进制数存贮数据。
位权:? 基数为底,数码所在位置的序号为指数的整数次 幂。 (346.8)10=3×102+4×101+6×100+8× 10-1 百位位权:102 十位位权:101 个位位权 :100 十分位位权:10-1 (1011.01)2=1×23+0×22+1×21+1×20+ 0×2-1+1×2-2 千位位权:23 百分位位权:2-2
C语言学习第二章数据类型
基本整型:表示的范围为0X0~0XFFFF。
2.4.2 整型变量
1.整型变量在内存中的存放形式
以二进制补码的形式存放。
正数:最高位为0,其余各位是该数的二进制表示 负数:最高位为1,其余各位是该数绝对值的二进制
再按位取反加1
2. 整型变量的分类
放一个字符。
下面是对c1、c2赋值: c1=‘a’;c2=‘b’; (实际上其内存中存放的是该字符的ASCII码)
字符变量的初始化,如:char c1=‘a’,c2=‘b’;
2.5.3 字符数据在内存中的存储形式及其使用方法
将一个字符常量放到一个字符变量中,实际上是将该字 符的ASCII代码以二进制形式放到存储单元中。
无符号型:(只能存放0和正整数) ① 基本整型:类型说明符为unsigned int或unsigned
在内存中占2个字节 取值范围为0~2161,即0~65535。 ② 短整型:类型说明符为unsigned short (int) 所占字节和取值范围均同基本整型。 ③ 长整型:类型说明符为unsigned long (int) 在内存中占4个字节 其取值范围是0~2321 即0~4294967295
实型常量也称为实数或者浮点数。 实型常量不分单、双精度,都按双精度double型处理,其有 效位数为(15~)16位。
实型常量的表示方式有:
(1)十进制小数形式
小数形式由数字0~ 9和小数点组成。
当某浮点数整数部分或小数部分为0时,0可以省略,但小 数点不可省略。
例如:
0.0 , .25 ,5.789 ,0.13 ,5.0 , 300. 267.8230 , 123. 等均为合法的实数。
第2章 存储系统(第08讲)
计算机组成与系统结构
24
2.1.2 存储系统的分层结构
分层结构 局部性原理是存储系统层次结构技术可行性的基础. 一般:CPU频繁访问的信息 CPU不频繁访问的信息 高速存储器中 低速存储器中
计算机组成与系统结构
25
例: 二级存储器系统,第一级容量为1KB,访问时间1S; 第二级容量为1MB,访问时间10S。 CPU先访问第一级,如不在,就由第二级送至第一级.
计算机组成与系统结构
18
2.1 分级存储体系的形成
2.1.2 存储系统的分层结构
1.计算机应用对存储器要求的矛盾:
SC(价), C(价) C S
计算机组成与系统结构
19
2.1.2 存储系统的分层结构
用户要求存储器的容量大,速度快.为解决容量、 速度、价格的矛盾,有效的措施是实现分级存储.
当r=100,要使e>0.9 当r=2, 要使e>0.9 H>0.998 H只需>0.889
注意:相邻两级存储器的速度差异不能太大,在 cache— 主存系统中,取r=5-7为好.
在主存—磁盘层次中, r= 104, 这很不理想,其间有 很大空档,从r不能太大的观点出发,最好应有一种S-CC介于其间的存储器作为中间层次. 29 计算机组成与系统结构
计算机组成与系统结构
22
2.1.2 存储系统的分层结构
2.存储器访问的局部性 它是存储器层次的设计思想,也是实现存储 器层次结构的先决条件。
主存
主存
空间局部性
计算机组成与系统结构
时间局部性
23
2.1.2 存储系统的分层结构
实现存储系统的层次结构的先决条件(基础): 存储器访问的局部性,即:时间局部性和空 间局部性。 时间上的局部性指的是当前正在使用的信息 很可能是后面立刻还要使用的信息。 空间上的局部性是指连续使用到的信息很可 能在存储空间上相邻或者相近。
C语言程序设计 第2章 数据类型
2.2常量和变量 变量名与变量值的关系:
2.2常量和变量
变量的使用:先定义后使用
变量定义的一般形式:
数据类型 变量名1,变量名2,…,变量名n;
2.2常量和变量
➢ 凡未被事先定义的,系统不把它认作变量名,这就 能保证程序中变量名使用的正确
例:varname,在使用的时候误写成vaname
➢ 在定义变量时要指定变量的类型,在编译时就能为 变量分配相应的存储单元
5
2.2常量和变量
甘草 三七 干姜 葛根
枸杞 人参 陈皮 地黄
山药 当归 谷芽 黄连
贴上标签 加以区分
用标识符给变量起名字
2.2常量和变量 变量命名规则
➢ 只能由字母(a~z,A~Z)、数字(0~9)和下划线(_)构 成
➢ 第一个字符不能为数字 ➢ 不能与关键字同名
例:a9,_a, A_num √ 9a, a*num,int ×
控制语句:控制语句用于控制程序的流程。 C语言提供三类控制语句: ➢ 选择语句 ➢ 循环语句 ➢ 转移语句。 控制语句会在第三章和第四章详细介绍。
2.7 表达式与语句
复合语句: 复合语句由一对大括号括起来的一 条或多条语句组成。 例:{
turnOn(0,3); turnOn(0,4); turnOn(0,5); turnOn(1,4); }
2.7 表达式与语句
表达式语句:表达式末尾加上“;”就构成一条 表达式语句。 例:
s = 3.14 * r * r; 就是一条赋值表达式语句。表达式语句最后的 分号是语句中必不可少的一部分。
2.7 表达式与语句
函数调用语句:函数调用语句由函数调用加分 号构成。 例:
turnOn(1,1);
C语言第02章 数据类型、运算符与表达式
回到 首页
运算符和结合性 P325,附录3
2.8 算术运算符和算术表达式
3、自增、自减运算符
自增运算符++和自减运算符--均是单目运算符, 功能是使变量的值增1或减1。其优先级高于所有 双目运算符,结合性为右结合性(自右至左)。
回到 首页
例如:++i或i++ 等价于i=i+1; --i或i-- 等价于i=i-1;
2.7数值型数据之间的混合运算
回到 首页
1、整型、实型、字符型数据之间可以混合运 算
整型(包括int,short,long)和实型(包括float,double)数据可 以混合运算,另外字符型数据和整型数据可以通用,因此,整 型、实型、字符型数据之间可以混合运算。 例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
2.9赋值运算符和赋值表达式
1、赋值运算符和赋值表达式
赋值运算符:“=”为双目运算符,右结合性。 赋值表达式:由赋值运算符组成的表达式称为赋值表达 式。 赋值表达式一般形式: 变量 赋值符 表达式 如 a=5 类型转换:将高精度的数据类型赋值给低精度的数据类 型,可能出错。
回到 首页
2.9赋值运算符和赋值表达式
2.8 算术运算符和算术表达式
3、自增、自减运算符
回到 首页
y=++x;等价于先计算x=x+1(结果x=6),再执行y=x,结果y=6。 y=x++;等价于先执行y=x,再计算x=x+1,结果y=5,x=6。 y=x++*x++;结果y=25,x=7。x++为后缀形式,先取x的值进行“*” 运算,再进行两次x++。 y=++x*++x;结果y=49,x=7。
2019年二章数据类型运算符及表达式.ppt
若已有定义:int x; 则
从键盘输入数据给x应使用的语句为:
scanf(”%d”,&x);
。
若x的值为100,要求输出x=100的语句为:
printf(”x=%d”, x);
。
例题(sy4.c):输问入题一2个:小输数,将其保留小数位 数后两位(进行四舍入五的入数)据,怎并输出结果。 例如:输入123.674样,存则放输? 出123.67
不能包含小数点。
例如:12 -36 等等
八进制:以0开头,由0到7的数字组成,
例如:014 -042 等等
十六进制:以0x或者0X开头,
由0到9及a到f或者A到F的数字组成,
例如:0xb -0x22 等等
二、整型变量
1、整型变量的存放形式 整型数据在内存中以二进制的补码形式存放。
2、整型变量的分类
c=a*b
注意:强制类型转换运算符优先级高于算术运算符 优先级
练习:设 x=2.5, a=7,y=4.7
计算下列表达式的值
x+a%3*((xi+nty))(% x+xy/)4%(int)x/4 错正误确的表达式
=2.5+7%3*(int)(2.5+4.7)%(int)2.5/4 =2.5+1*(int)(7.2)%2/4 =2.5+1*7%2/4 =2.5+1/4 =2.5+00.25 =22..755
问题2:输 入的数据怎
样存放?
答:暂存于变量中。
实型变量如 何说明?
答:float 变量名称表
}
例如:float a,b;
二、实型变量
1、存放形式: 按指数形式存放。 一般的实型数据占用4个字节。即32位。
第二章基本数据结构及其运算
用这种方法查找,每次比较都可抛弃子表一半的 元素,查找效率较高 从该例可看出,数据元素在表中的排列顺序对查 找效率有很大的影响
例2、学生情况登记表信息查询 成绩在90分及以上的学生情况登记表
学 号 970156 970157 970158 970159 970160 970161 970162 970163 970164 … 姓 名 性 别 年龄 20 张小明 男 19 李小青 女 19 赵 凯 男 21 李启明 男 18 刘 华 女 19 曾小波 女 18 张 军 男 20 王 伟 男 19 胡 涛 男 … … … 成绩 86 83 70 91 78 90 80 65 95 … 学 号 姓 名 性别 男 女 男 女 年龄 21 19 19 17 成绩 91 90 95 93 970159 李启明 970161 曾小波 970164 胡 970168 梅 涛 玲
数据结构主要研究和讨论三方面问题:
1、数据元素之间的固有逻辑关系,称为数据的逻辑结构 2、数据元素及其关系在计算机中的存储方式,称为数据的 物理结构或存储结构
3、施加在数据结构上的操作,称为数据结构的运算。数据处 理的本质就是对数据结构施加各种运算,常见的运算有:查找、 排序、插入、删除等。
主要目的是提高数据处理的效率:
§2.1.3 数据结构的图形表示
D中的数据元素用中间标有元素值的方框表示, 称为数据结点(结点);R中的关系用一条有向线段 从前件结点指向后件结点。
例:设数据元素的集合为D = {di |1≤ i≤ 7的整数},画 出对应于下列关系所构成的数据结构的图形
①、R1={(d1,d3),(d1,d7),(d4,d5),(d3,d6),(d2,d4)} ②、R2={(di,dj)|i+j=5} ③、R3={(d2,d3)(d3,d1),(d1,d4),(d4,d6),d6,d5),(d5,d7)}
第2章_Java基本数据和运算
5 % 2= 1 5/2=2
分析运行结果
public class OperatorTest { public static void main(String[] args) { int i =7/3; int j =2+7%i; double k = 7.8/i+5; System.out.println("i="+i); System.out.println("j="+j); System.out.println(”k="+k); } }
算术运算符应用
某学生有3门课成绩,编程实现求平均分。
public class Test1 { public static void main(String[ ] args) { String name= "刘星"; //姓名 int javaScore=90; //Java成绩 int webScore=86; // Web成绩 int sqlScore=88; //Sql 成绩 double avgScore; //平均成绩 avgScore= (webScore+javaScore+sqlScore)/3; System.out.println("学生姓名:"+name); System.out.println("平均成绩:"+avgScore); } }
?
常见错误
下面语句正确吗?
int a = 10; int b = 10.2; double c = 10; c = a; int d = c; double不可以自动转化成int
分析运行结果
public class TypeTest1 { public static void main(String[] args) { int a = 5; float x = a; //自动类型转换 double y= 5.8; int b=(int)y; //强制类型转换 System.out.println("a="+a); System.out.println("x="+x); System.out.println("y="+y); System.out.println("b="+b); } }
C语言程序设计第2章 数据类型与运算练习题及解答
第2章数据类型和运算符习题及解答一.选择题。
1.下列是用户自定义标识符的是A)_w1 B)3_xy C)int D)LINE-3答案:A解析: C语言规定用户标识符由英文字母、数字和下划线组成,且第一个字符必须是字母或下划线,由此可见选项B),D)是错的;此外,C语言不允许用户将关键字作为标识符,而选项C)选项项中的int 是C语言的关键字。
语言中最简单的数据类型包括A)整型、实型、逻辑型 B)整型、实型、字符型C)整型、字符型、逻辑型 D)字符型、实型、逻辑型答案:B解析:本题考查C语言的数据类型。
在C语言中,没有专门的逻辑型数据类型,可以用0和1来表示逻辑值。
所以,在本题的选择答案中,不应该包括逻辑型。
3.假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是A)3 B)6 C)10 D)20答案:D解析: x数组共有10个元素,在花括弧内只提供3个初值,这表示只给前面的3个成员赋值,后7个元素的值为0,所以,一共有20个字节。
4.以下选项中不正确的实型常量是A) B) C) D)234e-2答案:B解析:实型常量表示时字母E或e前必须有数字,其后数字必需为整数,故B错。
5.若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1 B)a=b=c+2 C)int %3 D)a=a+7=c+b答案:B解析:选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int)%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。
因此,正确答案是选项B),它实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。
6.下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_b3, _123,CarC)For, -abc, IF Case D)2a, DO, sizeof答案:B解析: C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线,排除选项C)和D)。
第2章 C语言,数据类型、运算符和表达式
(C语言运算符总表见教材P26或P325附录C) return 31
C语言程序设计
算术运算符
+ - * / % 功能: 操作数要求: 结合性: 优先级: 注意事项: 算术运算 两个操作数 (当-用作负号时除外) 自左至右(当-用作负号时除外) -(负号) —— * / % —— + - (由高→低) ① 两个整数相除,结果为整数! 例: 3/2=1 ② %要求两个操作数均为整型数据! 且余数与被除数同号!
说明: ① 字符变量中存放的是字符ASCII码值! ② char与int数据间可进行算术运算!
char choice = 'A';
return24
C语言程序设计
字符串常量
字符常量是用双引号括起来的字符序列. 例如: "hello!" , "0" (1) 字符串常量在内存中的存储 (2) 字符串常量.vs.字符常量
整型
浮点型 字符型 说明:
① 数据类型所占字节数随机器硬件不同而不同! ② 可用sizeof(数据类型说明)来计算某一数据类型占内存的字节数! return
C语言程序设计 next part
2. 常量与变量
标识符命名 常量 变量
go go go
6
C语言程序设计
标识符命名
例: 判断下列标识符号合法性
next
ห้องสมุดไป่ตู้
20
C语言程序设计
字符常量
转义字符是用反斜杠\后面跟一个字符或一个八进制或十 六进制数表示的ASCⅡ码值。例如: '\n', '\101' (1) C语言中常用的转义字符 (2) 转义字符使用实例
第二章 C语言的基本数据类型及运算
解决的方法是: 使用反码或补码的表示方法(按前述
表示的编码称为原码),即能将减法一律 转换为加法。
2020/12/11
原码、反码和补码
11
正数:原码、反码、补码相同
– 符号位为0,数值为对应的二进制数。 +109
[01101101]原 = [01101101]反 = [01101101]补
• 指数只能是整数,而尾数则可以是整数也可以是 小数 ,无论指数或尾数均不能省略 例如:1e、E.5、E-3 非法
• 实型常量的类型:默认为double型,后面加F (或f),则强调表示该数是float类型 例如:3.5f、1e2F
2020/12/11
3. 字符型常量
22
可视字符常量 – 单引号括起来的单个可视字符 例如:'a'、'A' 、'+' 、'3'、' ' 等
例如: #define LEN 2.5
定义符号常量
main( )
{ float a,b;
a= 2*3.14 *LEN;
使用符号常量
b=3.14*LEN*LEN;
printf("a=%f,b=%f\n",a,b);
}
编译前系统进行替换
2020/12/11
5. 符号常量
25
main( )
{ float a,b;
负数:
– 原码符号位为1,数值为绝对值的二进制
数。
-109 [11101101]原
– 反码符号位为1,数值为绝对值的二进制
数各位变反。 -109 [10010010]反
– 补码符号位为1,数值为绝对值的二进制
C语言第2章 数据类型及运算符
C/C++程序设计第2 章数据类型及表达式计算机学院C/C++程序设计课程组C/C++程序设计第2章主要内容本章主要介绍:基本数据类型和存储类型的说明方法,以及基本运算符的运算规则和表达式的构成方法,为后续章节的学习奠定一个基础。
C/C++程序设计2.1 C 语言的数据类型使用高级语言编写程序,主要工作有两项:一是描述数据,二是描述数据加工的方法。
数据类型图 2.1C 语言的数据类型基本类型整型实型字符型带符号长整型(简称长整型)带符号整型无符号整型无符号整型无符号短整型无符号长整型单精度型双精度型空类型构造类型指针类型枚举类型数组类型结构体类型共用体类型C/C++程序设计2.2 常量常量是程序运行过程中其值不发生变化的数据。
2.2.1 整型常量表2.1 整型数据的表示方式2.2.2 实型常量3.14、.9999、-3.14159、834.、–0.666 、6.89E-52.2.3 字符常量’x’,’a’,’A’,’b’,’$’,’#’ ,printf("\tab\rcd\n\’ef\\g");2.2.4 符号常量#define 符号常量字符串#define PI 3.14159C/C++程序设计【例2.1】求一个圆柱体体积,用符号常量代替π。
#include <stdio.h>#define PI 3.14159 /*定义PI为符号常量*/void main(){float r,h,v;scanf("%f,%f",&r,&h);v=PI*r*r*h; /* PI相当于3.14159,参与运算*/printf("Volume=%f",v);}运行时输入:3,2↙运行结果为: Volume=56.548618C/C++程序设计2.2.5 字符串常量"\tab\rcd\n\’ef\\g“"I am a student" 、"x"、""注意:’\0’和’0’不同,’\0’是编码为0的字符,而’0’则是数字0,其编码为48。
2.数据的存储
C 语 言 程 序 设 计
数值的表示方法——计算机不论对正数和负数都按 ‚补码‛形式存放到存储单元。
原码:最高位为符号位,其余各位为数值本身的绝对值 反码:
正数:反码与原码相同 负数:符号位为1,其余位对原码取反
补码:
正数:原码、反码、补码相同 负数:最高位为1,其余位为原码取反,再对整个数加1
-10的反码
-10的补码
取反 再加 1
1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0
短整型short
数据类型总表
基本类型
整 型
整型int
长整型long
单精度型float
双精度型double 字符类型char 数组 实型
C 数 据 类 型
结构体struct 构造类型 共用体union 枚举类型enum 指针类型 无值型
例 (1101001)2=(001,101,001)2=(151)8
例 (246)8=(010,100,110)2=(10100110)2
第 二 章 数 据 描 述
C 语 言 程 序 设 计
二进制与十六进制之间的转换 二进制转换成十六进制:从右向左,每4位一组 (不足4位左补0),转换成十六进制 十六进制转换成二进制:用4位二进制数代替每一 位十六进制数
第二章 数据的存储与运算
预备知识 基本数据类型 常量与变量 不同类型数据间的转换 运算符和表达式
C 语 言 程 序 设 计
§2.0 预备知识
计算机中数的表示及进制转换
数码、基与权
数码:表示数的符号 基:数码的个数 权:每一位所具有的值
数制
第 二 章 数 据 描 述
C 语 言 程 序 设 计
C语言教程第2章数据类型、运算符与表达式
常量只能在定义时赋值,然后不能再改变 其值 常数、 const常量、宏常量和枚举常量, 都可以用来表示一个永远不会改变的数
前者不建议直接使用,而用后三者代替
C语言大学实用教程
2.5 变 量
变量是在程序执行过程中可以改变、可以赋 值的量。
在程序中每一个变量都有一个名子即变量名, 程序对该变量访问(存入、读取)都是通过变 量名进行的。
运行结果: 1234567936.000000
1234567890.000000
}
C语言大学实用教程
2.6 常用运算符及表达式
算术运算符
+,-,*,/,%
加、减、乘、除、求余运算 四则混合运算中,先算乘除,后算加减, 按从左向右的顺序计算,左结合
#include <math.h>
常用的标准数学函数
C语言大学实用教程
#include <stdio.h> /*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和 */ int Add(int a, int b) { return (a + b); }
2.1 一个简单的C程序例子
/*主函数*/ ) { int x, y, sum = 0;
022、-037 010和10大小不一样 因为八进制并不常用,所以此种表示法比较少见
以“0x”或者“0X”开始的整型常数是十六进 制
A~F和a~f用来表示十进制的10~15
十六进制的形式比较常用,尤其在进行位一级的 控制的时候 0x12、-0x1F, -0x1f
C语言大学实用教程
2.4 常量
字符常量
第2章数据的存储与运算PPT课件
精选PPT课件
12
P19
2.2.1 整型数据运算程序举例和分析
➢解题思路:
设x代表鸡的数量,y代表兔的数量,总头 数为h,总脚数为f
列出下面的方程式:
x+y=h
2x + 4y = f
解方程得到: y f 2h 2
(1) (2)
xhy
精选PPT课件
13
P19
2.2.1 整型数据运算程序举例和分析
二进制数 0 1 10 11
100 101
十进制数 6 7 8 9 10
二进制数 110 111 1000 1001 1010
1 0 1 2 1 3 0 0 2 2 1 2 1 0 2 0
精选PPT课件
5
2.1.2 位、字节和地址 P17
➢位(bit) ,又称“比特” 。每一个二极管元 件称为一个“二进制位”,是存储信息的最 小单位。它的值是“1”或“0”
第2章 数据的存储与运算
2.1 数据在计算机中是怎样存储的
2.2 整型数据的运算与分析
2.3 实型数据的运算与分析
2.4 字符型数据的运算
2.5 符号常量
2.6 算术运算符和算术表达式
2.7 C运算符和C表达式
2.8 提高部分
精选PPT课件
1
P16
2.1 数据在计算机中是怎样存储的
2.1.1 数据在计算机中是以二进制形式存储的 2.1.2 位、字节和地址 2.1.3 不同类型数据的存储方式
P19
2.2.1 整型数据运算程序举例和分析
➢定义变量的一般形式是: 类型名 变量名;
例如:int h,f,x,y; 变量都必须在使用前定义,指定其类型 赋值:h=37; f=88;
C语言知识点:第2章 数据类型、运算符与表达式
主讲教师:杨剑
第 2 章:数据类型、运算符与表达式
1. 本章目标:
理解变量和常量的含义 熟悉基本数据类型 - int、char、float 和 double 使用算术运算符 理解类型转换 使用关系和逻辑运算符
2. 内存如何存放数据
电脑使用内存来记忆计算时所使用的数据 内存如何存储数据? 内存像旅馆.数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空
23. 复合赋值表达式
24. 赋值表达式和逗号运算符
赋值表达式 a=b=c=5;(从右向左计算) a +=a-=a*a
逗号运算符和逗号表达式 3+5,6+8 a=3*5,a*4
25. 习题
~7~
C 语言程序设计知识点
主讲教师:杨剑
有以下程序
main()
{
char a1=’M’,a2=’m’;
12. 单精度浮点型
float 在 C 语言中用于存储单精度浮点数 float 32 位 10-38 至 10+38 ,7 位有效数字 声明:
float price; 初始化:
float score = 11.3; score = 65.90;
13. 双精度浮点型
double 32 位 16 位有效数字 声明:
const float PI=3.14; S=PI*r*r; //等价于 3.14*r*r const 关键字的作用就是“冻结”一个量,它的值不能被修改,是一个只读(read only) 量。 优点:比数值常量可读性好、修改容易
18. 符号常量 2(宏常量)
还可用宏定义符号常量 语法:#define 符号名 常量值 例: 计算圆的周长时
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
有效数字 6~7 位 15~16位 18~19位
2.4 字符型数据的运算
2.4.1 字符数据运算的简单例子
例题 2.4
逐个输入英文字母C,H,I,N,A。然后按反序 输出,即A,N,I,H,C。
解题思路
可以把5个字母分别放在5个变量中,第1次 按正序输出这5个字母,第2次按反序输出这5 个字母。C语言提供字符型变量,用来存放字 符数据。
}
”,不属于致命性错误,可以将r和m改定
义为double型
(3)可以在定义变量时同时赋初值
int d=32450,p=3250,double r=0.008
ห้องสมุดไป่ตู้
(4)运行结果:month=201.983404, total=655436.127930
C 数据类型
基本类型
整型 数值类型
浮点型 字符类型char
ASCII码表
高三位
b6b5b4 ASCII码表(7位)
000 001 010 011 100 101 110 111
低四位 0000 NUL DLE SP
0
@
P
、
p
b3b2b1 0001
SOH DC1
!
1
A
Q
a
q
b0
0010 STX DC2
“
2
B
R
b
r
0011 ETX DC3
#
3
C
S
c
s
0100 EOT DC4
说明:标准化指数形式:其数值部分是一个小数,小数点 前的数字是零,小数点后的第一位数字不是零。一个实数可 以有多种指数表示形式,但只有一种属于标准化指数形式
2.1 数据在计算机中是怎样存储的
3. 字符的存储方式
• 字符包括字母(如A,a,X,x)、专用字符(如$, @,%,#)等。 • 计算机并不是将该字符本身存放到存储单元中 (存储单元只能存储二进制信息),而是将字符的 代码存储到相应的存储单元中。 • 附录A是字符与代码的对照表,这是国际通用 的ASCII代码。
m=(log10(p)-log10(p-d*r))/l(og210)(1C+编r);译/*系通统过把公所式有求实m的(f值lo*a/t)型常量(如
printf("month=%f\n",m); printf("total=%f\n",m*p);
/*/*计输算出并m0据 能.输的来 会0出值0处 丧8总)*理 失和/的, 一还l在 些款og数把 精10它 度*函/ 们 ,数赋 在的给编值译f都l时o作a出t为型现双变“精量警度时告数可
2.4 字符型数据的运算
编写程序
#include <stdio.h> void main() { char a='C',b='H',c='I',d='N',e='A'; /* a,b,c,d,e定义为字符变量 */ printf("%c%c%c%c%c\n",a,b,c,d,e); /* 顺序输出CHINA */ printf("%c%c%c%c%c\n",e,d,c,b,a); /* 反序输出CHINA */ }
printf("c=%f\ns=%f\nv=%f\n",c,s,v);
}
说明:
运行结果:
c=23.059290 s=42.313797 v=155.291633
2.6 算术运算符和算术表达式
2.6.1 算术运算符
(1)基本的算术运算符:
• + (加法运算符,或正值运算符。如:3+5、+3) • - (减法运算符,或负值运算符。如:5-2、-3) • * (乘法运算符。如:3*5) • / (除法运算符。如:5/3) • % (模运算符,或称求余运算符,%两侧均应为整型
解题思路 设:x--鸡数量 y--兔数量,
h--总头数 f--总脚数
有方程式: x+y=h (1)
2x+4y=f (2)
求x和y的公式:(2)式-2x (1)式: 2y = f – 2h
f 2h
y=
2
2.2 整型数据的运算与分析
编写程序
#include <stdio.h> void main() { int h,f,x,y; /* 定义整型变量h,f,x,y */
个“二进制位”,是存储信息的最小单位。它的值
是“1”或“0”。
字节:又称“拜特”(byte)。一般将8个“二进制
位”组织成一组,称为“字节”。
地址:计算机的存储器包含许多存储单元,操作
系统把所有存储单元以字节为单位编号 。
2.1 数据在计算机中是怎样存储的
2.1.3 不同类型数据的存储方式
1. 整数的存储方式
1110
SO
RS
.
>
N
^
n
~
1111
SI
US
/
?
O
_
o
DEL
2.2 整型数据的运算与分析
2.2.1 整型数据运算程序举例和分析
例题 2.1
鸡兔同笼: 在一个笼子里同时养着一些鸡和兔子
,你想了解有多少只鸡和多少只兔,主人对你说: 我只告诉你鸡和兔的总头数是16,总脚数是40, 你能不能自己计算有多少只鸡和多少只兔?
h=16; /* 对整型变量h赋值,使h的值等于16 */ f=40; /* 对整型变量f赋值,使h的值等于40 */ y=(f-2* h)/2; /* 对表达式(f-2* h)/2进行运算,把结果赋给y */ x=h-y; /* 对表达式h-y进行运算,把结果赋给x */ printf("%d%d\n",x,y); /* 输出鸡的个数和兔的个数 */ }
例2.6 大小写字母的转换
运行结果:A B
#include <stdio.h>
void main()
{ char c1,c2;
c1=’a’;
• 说明:程序的作用是将两
c2=’b’;
个小写字母a和b转换成大
c1=c1-32;
写字母A和B。从ASCI
c2=c2-32;
I代码表中可以看到每一
printf(“%c %c″,个c1小,c写2)字;母比它相应的大
$
4
D
T
d
t
0101 ENQ NAK
%
5
E
U
e
u
0110 ACK SYN
&
6
F
V
f
v
0111 BEL ETB
‘
7
G
W
g
w
1000
BS CAN
(
8
H
X
h
x
1001
HT
EM
)
9
I
Y
i
y
1010
LF SUB
*
:
J
Z
j
z
1011
VT ESC
+
;
K
[
k
{
1100
FF
FS
,
<
L
\
l
|
1101
CR
GS
-
=
M
]
m
}
2.3 实型数据的运算与分析
2.3.3 实型变量
实型变量的分类
浮点型变量分为单精度(float型)、双精度( double型)和长双精度型(long double)三类形 式。
类型 float Double long double
位数 32 64 128
数的范围 10-37 ~ 1038 10-307~10308 10-4931~104932
第二章
主要内容
2.1 数据在计算机中是怎样存储的 2.2 整型数据的运算与分析 2.3 实型数据的运算与分析 2.4 字符型数据的运算 2.5 符号常量 2.6 算术运算符和算术表达式 2.7 C运算符和C表达式
2.1 数据在计算机中是怎样存储的
2.1.1 数据在计算机中是以二进制形式存储的
•计算机内部的信息都是用二进制来表示的。 •二进制数的特点是“逢二进一”。每一位的值只有0和1两 种可能。 例如:十进制数10,用二进制表示是1010。它的含义是:
说明:
运行结果:
c=23.059290 s=42.313797 v=155.291633
2.5 符号常量
编写程序
#define pi 3.14159
#include <stdio.h>
void main()
{double r=3.67,c,s,v;
c=2*pi*r;
s=pi*r*r;
v=4/3*pi*r*r*r;
十进制整数先转换为二进制形式。例如:整数10以二进制
形式表示是1010,直接把它存放在存储单元中。 2. 实数的存储形式
实数采用指数形式存储,例如:123.456可以写成标准化指
数形式0.123456 10,3 它包括前后两个部分,前面部分
是数值部分,后面部分是指数部分。
0.123456
103
数值部分 指数部分
编写程序
#include <stdio.h> void main() {double r=3.67,c,s,v; c=2*3.1415926*r; s=3.1415926*r*r; v=4/3*3.1415926*r*r*r; printf("c=%f\ns=%f\nv=%f\n",c,s,v); }