第2章C的基础知识vc-2010.ppt
《第2章C的基础知识vc-2010.ppt》由会员分享,可在线阅读,更多相关《第2章C的基础知识vc-2010.ppt(73页珍藏版)》请在三一文库上搜索。
1、第2章 C语言基础,华北电力大学 控制与计算机,C 语言程序设计,C语言基础,2,本章主要内容,本章介绍C语言的基础,包括: 数据类型 运算符和表达式 均是程序设计的基本知识 为什么讨论这些知识?,通常程序要对数据进行操作处理: 处理的对象是数据 数据通过运算符和表达式进行操作,3,例如:,【例2.1】计算圆的面积,半径为 5 cm。 程序如下:,#include void main( ) float r, area ; r=5 ; area=3.14*r*r; printf (“面积=%f平方厘米n “, area) ; ,运算结果是:面积=78.500000平方厘米,程序中用到的数据:r、
2、area、5、3.14 对数据进行的运算:* 、=,4,分析:,计算机操作处理时,要完成以下工作: 数据r和area是变量,在内存中需要给半径 r 和运算结果 area 开辟存储空间,存放它们的值。应该留多大的地方来存放它们的值? 数据 5 和 3.14 是常量与 r 、area 不同,它们在编写程序时就是确定的值,在运算过程中不会改变。这样的数计算机怎么处理? 对整数 5 和小数3.14 ,计算机存放时是否有区别?,涉及数据类型 的基本知识,5,C语言的数据类型,C数据类型,本章讨论 基本类型数据,6,2.1.1 整型数据,1整型数据的类型 基本整型数据类型 int ,分配 4 Byte 短
3、整型数据类型short int,分配 2 Byte 长整型数据类型long int,分配 4 Byte 整型数据均以二进制补码形式存储,问题: 为什么要采用补码? 如何表示?,7,计算机中正、负数的表示,例如:109 (1101101)2 要区别:109 和 109 方法是:将符号也数码化 即: 正的符号 用 0 表示 负的符号 用 1 表示, 计算机中的整数表示方法是: 符号位二进制数值(以 8bit 为例) 109 110 1101 0110 1101 109 110 1101 1110 1101,8,问题:计算机计算复杂化,例如计算: (-19)+(+22) 1001 0011 + 00
4、01 0110,解决的方法是: 使用补码的表示方法(按前述表示的编码称为原码),即能将减法一律转换为加法。,需要判断符号是否相同: 如果相同,结果符号不变,并进行绝对值相加 如果不同,结果取绝对值大的数的符号,并进行绝对值相减,9,原码、反码和补码,正数:原码、反码、补码相同 符号位为0,数值为对应的二进制数。 109,01101101原 = 01101101反 = 01101101补 负数: 原码符号位为1,数值为绝对值的二进制数 109 11101101原 反码符号位为1,数值为绝对值的二进制数各位变反 109 10010010反 补码符号位为1,数值为绝对值的二进制数各位变反加1 109
5、 10010011补,10,用补码计算,例如计算: (-19)+(+22) 1110 1101 + 0001 0110= 0000 0011 (0000 0011)2= 3,11,2. 有符号和无符号整型数据类型,有符号的整型数据类型 int 无符号的整型数据类型 unsigned int 区别是将最高位看作符号位还是数据位,例如: 1111 1111 1010 1000 作为有符号数使用时,最高为符号位 为负数,值是:- 88(再求一次补) 作为无符号数使用时,最高为数据位 为无符号的数,值是:65448,12,例如:,#include void main( ) short int m; m
6、= 65448;/ 1111 1111 1010 1000 printf(“nm=%hdn“,m); printf(“m=%hun“,m); ,输出结果: m=-88 m=65448,按有符号数输出,按无符号数输出,13,整型数据的类型及规定,方括号表示可选项 int 分配4 Byte,long分配4 Byte,整型数据是精确存储,14,2.1.2 实型数据,1实型数据的类型 单精度实型数据类型 float,分配4 Byte 双精度实型数据类型 double,分配 8 Byte 2实型数据的存储,实型数据是近似存储,15,实型数据的类型及规定,C标准并未具体规定各种实型数据所占字节数,也不规定
7、具体小数和指数部分的位数。 一般而言,小数部分位数多,数据表示的有效数字多,精度就高;而指数部分位数多,则表示的数据范围更大。,有效数字的意义?,float a=123.456789; double b=123.456789123456789;,16,2.1.3 字符型数据,字符型数据类型为char,分配 1 Byte 字符型数据是指字母、数字、各种符号等用ASCII值表示的字符 例如 a 是一个char类型数据,称作字符常量,存储:,0 1 1 0 0 0 0 1,2.1.4 空类型,空类型void 通常与指针或函数结合使用,17,2.2 常量、变量与标准函数,主要内容: 常量 变量 标准库
8、函数,18,2.2.1 常量,在程序运行的过程中值保持不变的量 1整型常量 十进制:09 八进制:07,以 0开头 十六进制:09,AF/af,以 0x或 0X 开头,例如: 100 -8 0 +123 010 024 0100 073 0x38 0x10 0X100 0XFF 0x0a,19,1. 整型常量,整型常量的类型: 根据值大小默认类型 整型常量后面加l或L,则认为是long int型 例如:123 123L、032、432l、0x100,注意: 十六进制常量中可以使用大写字母AF,也可以使用小写字母af。 八进制常量中不能出现数字 8 或 9 例如:018、0921非法,20,2.
9、 实型常量,十进制形式 1.0 1. +12.0 -12.0 0.0 指数形式 1e3 1.8e-3 -123E-6 -.1E-3,指数只能是整数,而尾数则可以是整数也可以是小数 ,无论指数或尾数均不能省略 例如:1e、E.5、E-3 非法 实型常量的类型:默认为double型,后面加F(或f),则强调表示该数是float类型 例如:3.5f、1.4e2F,21,3. 字符型常量,字符常量 一对单引号括起来的单个字符 例如:a、A 、+ 、3、 等 转义字符常量 一对单引号括起来的 与规定字符组合,例如:,如102表示B,如x47表示G,22,int x=0x10; int y=0X10; c
10、har a=xa2; char b=Xa2; ,23,4. 字符串常量,用一对双引号括起来的一个字符序列 例如:“ABC“、“12“、“a“、 “nt “ “nGood morning“ 、 “ 字符串常量的长度 : 所包含的字符个数 字符串常量的存储方式:,所占存储单元数:串长度1 例如:,字符串 结束标记,24,4. 字符串常量(续),如果反斜杠和双引号作为字符串中的有效字符,则必须使用转义字符。 例: C:msdosv6.22 “C: msdos v6.22 “ I say:“Goodbye!“ “I say:“Goodbye!“ “ 如果要表示单引号字符,必须用转义字符。 ,25,字符
11、常量 A 与字符串常量 “ A “的区别:,(1)定界符不同: 字符常量使用单引号A , 而字符串常量使用双引号 “ A “ ; (2)长度不同: 字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数; (3)存储要求不同: 字符常量存储的是字符的ASCII码值, 字符串常量,除了要存储有效的字符ASCII码值外,还要存储一个结束标志 0 。,26,是非法的 “”是正确的,27,5. 符号常量,以标识符来代表的常量 事先由编译预处理命令define定义 编译时先由系统替换为它所代表的常量,再进行编译 例如:,#define LEN 2.5 #include void main
12、( ) float a,b; a= 2*3.14 *LEN; b=3.14*LEN*LEN; printf(“a=%f,b=%fn“,a,b); ,编译前系统进行替换,28,5. 符号常量,void main( ) float a,b; a= 2*3.14 *2.5; b=3.14*2.5*2.5; printf(“a=%f, b=%fn“,a,b); ,define是编译预处理命令,必须以“#”开头 后面不能加分号。 编译预处理命令在后面讨论。,替换为,29,2.2.2 变量,1. 变量的有关概念 在程序运行过程中,其值可以改变的数据,称为变量,变量用标识符表示,称为变量名 变量必须“先定义
13、, 后使用” 系统根据变量的类型分配存储单元,存储变量的值 编写程序时通过变量名来存、取变量值,30,2. 变量定义,变量定义的一般格式: 数据类型说明符 变量列表; 例如:int i; long k, m; float x,y; char ch1,ch2;,必须使用合法的标识符作变量名 不能使用关键字为变量命名,31,3. 变量的初始化:,在说明变量的同时对变量赋初值。 例如:int a=5, b=a+2; long c=123L; double x=23.568; float y =1.23f; char ch1=a,ch2=66,ch3=142; 错误的初始化: int a=3+b, b
14、=5; float m=n=23.16;,32,系统为变量分配存储空间示意图,内存:内存是由一系列字节组成的,每个字节都有一个唯一的地址编码。 例如:short int x; 系统为变量x在内存中分配的存储空间是连续的两个字节。,其中:1001和1002是字节的编码,第1个字节的编码1001称为变量x的地址,在程序中表示为&x。即&x的值为1001。,33,系统为变量分配存储空间示意图,例如:float y; 系统为变量y在内存中分配的存储空间是连续的4个字节。 例如:,其中:2001到2004是字节的编码,第1个字节的编码2001称为变量y的地址,在程序中表示为&y。即&y的值为2001。,
15、34,2.2.3 标准库函数,由C编译系统定义的一种函数,存放在系统函数库中,用户可以根据需要随时调用 常用函数 如:printf、scanf、fabs、sqrt、sin、 (常用数学函数参见教材 附录 ) 函数调用形式: 函数名(参数表) 例如:putchar(a) sqrt(x) getchar(),35,总结:,如果程序中需要将数据存起来,则必须根据存放数据的类型定义变量(变量要先定义,后使用)。 如果程序中使用的数据是常量,则需根据常量的类型,选用正确的格式。 如:123 12.3 (称字面常量) #define PI 3.14159 (称为符号常量) 如果程序中用到系统提供的函数,必
16、须在程序的开头书写: #include 预编译命令的顺序 #define #include ,36,2.3 运算符和表达式,主要内容: 算术运算符和算术表达式 赋值运算符和赋值表达式 关系运算符和关系表达式 逻辑运算符和逻辑表达式 位运算符和位运算表达式 条件运算符和条件表达式 逗号运算符和逗号表达式 其他运算符及其运算,37,要求掌握:,每种表达式的运算符 运算符的优先级和结合性 每种表达式值的特点和值的数据类型 表达式的命名规则,38,学习运算符要注意: 1 运算符功能 2 与运算量的关系 (1)要求运算量的个数 (2)要求运算量的类型 3 运算符的优先级别 4 运算符的结合方向 5 运算
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基础知识 vc 2010
链接地址:https://www.31doc.com/p-3423418.html