当前位置:
文档之家› 大学计算机-计算思维导论-课件第3章
大学计算机-计算思维导论-课件第3章
除此之外,人们还不断总结程序开发中的经验和教训,形成了 一些行之有效的理论和方法。这些模型、理论和方法折浸透了 计算机问题求解的基本思维模式。
3.1 面向过程的程序开发 3.2 面向对象程序开发 3.3 程序错误和异常 3.4 软件工程
3.1 面向过程的程序开发
面向过程的模型把问题求解看作对于数据施加一系列操 作的过程。因此,面向过程的程序描述的核心内容是: 数据与操作过程。
3. 别名——引用(reference)
在C++等语言中引入了别名机制,即可以为 常量或变量起一个别名,分别称为右值引用 和左值引用。
4. 含有操作符的表达式
含有操作符的表达式是操作符与表达式的合 法组合,即这类表达式的值是通过一定的操 作得到的,如number1 + 3、number + munber2等。这个定义是递归的,即组合可 以是多层次的,如number = number + munber2等。这时,一个重要的问题是当表 达式中有两个及其以上的操作符时,哪个操 作符具有操作的优先权。
代码3.1 交换两个变量的值的代码段。
// 变量a、b、temp是三个相同类型的变量,且变量a、b已经有确定的值
temp = a;
// 语句1
a = b;
// 语句2
b = temp;
2)算术操作符与算术表达式
C语言提供的用于支持算术运算的7个操作符
符号 意义 操作数个数 操作数类型
+ 正号
3.1.1 数据类型 3.1.2 标识符及其声明 3.1.3 表达式 3.1.4 操作符与表达式求值规则 3.1.5 语句及其流程控制 3.1.6 组织过程 3.1.7库函数与头文件 3.1.8 派生数据类型
3.1.1 数据类型
1. 数据类型及其基本类型
(1)整数类型:取值为整数的类型。典型的符号是 int。
3.1.4 操作符与表达式求值规则
1. C语言的操作符
(1)不同的操作符需要的操作数不同。按照操作数 的数量,操作符可以分为
·一元(单目)操作符,即只有一个操作数,例如+(正)、 -(负)等。
·二元(双目)操作符,即具有两个操作数,例如+(加)、 -(减)、*(乘)、/(除)等。
·三元(三目)操作符以后介绍。
int i,j;
// 定义i
i = 8;
// 给i 赋值8
j = 5;
// 给j赋值5
i = i + 3;
// 给i 赋予i的原值加3
(3)变量的初始化。
C语言允许在声明一个变量的同时,可以给其一个初 始值,称为变量的初始化。例如
int i = 3; float f = 1.234; double d = 1.23456; char c = ‘a’;
int i;
// 定义一个int类型变量i
float f ;
// 定义一个float类型变量f
double d;
// 定义一个double类型变量d
char c;
// 定义一个char类型变量c
(2)变量的赋值操作。
向变量送一个值,称为赋值,使用赋值操作 符(=)进行。赋值是改变变量值的操作。例 如
字面量(常量) 数据实体(变量) 带有操作符的表达式。
1. 字面量
字面量(literal)是表达式值的直接表示,使用这些值不需要访 问内存,因为它们没有独立的存储空间。字面量也属于特定类 型,其类型也可以由书写形式直接标明或推断出。例如:
2147483645:由其值可知,在32b系统中,是一个int类型的整 数常量(integer)。
1 数值数
据
负号
1 数值数据
* 乘 2 数值数据
/ 除 2 数值数据
% 求余
2 整型
+ 加 2 数值数据
减 2 数值数据
3)正负号表达式
在C语言中,一元正(+)和一元负号(-)都 是操作符,这一点与普通数学中的概念有所 不同。
4)判等操作符和关系操作符
C语言提供有两种判等操作符(equality operators): == (相等)、 != (不等), 4种关系操作符(relational operators):> (大于)、>=(大于等于)、<(小于)、 <=(小于等于)。
指针变量也有类型。指针的类型就是它所指向的数据 实体的数据类型。或者说,一个指针只能指向一种特 定的类型。所以说,指针有两个基本属性:
·所指向的数据实体的类型——称为指针的基类型。 ·所指向的数据实体的地址——指针的值。
(2)指针的声明与初始化。
因此,指针的声明就要标明其所指向的数据 类型,并在数据类型与指针变量名之间加一 个*,以表明它是指针。例如
(2)按照操作功能,操作符可以分为算术操作符 [如·+(正)、-(负)、+(加)、-(减)、* (乘)、/(除)等]、赋值操作符(=)、关系操作 符(>=、>、 == 、 != 、<、<=)、逻辑操作符等等,
2. 五种最常用的操作符及其表达式
1)赋值操作符与赋值表达式
在计算机程序设计语言中,表达式与值之间 是一种绑定。赋值操作是改变值与表达式的 绑定的操作。
2)用地址访问数据实体——指针
1)用名字访问数据实体——变量(1)变量及其声明。可以用名字访问的数据实体通常称为变量 (variable),或者说变量是被命名的数据实体。一 个变量在使用之前需要对其声明(定义),以向编译 器注册一个名字及其属性,供操作时进行合法性检查。 变量有许多属性,数据类型是其中最重要的属性,其 他以后逐步介绍。变量被声明后,编译器就会按照指 出的属性,为其分配一个适合的存储空间。下面是几 个变量的声明:
什么,是不可预知的。这样不慎使用了这个变量,就
会得到不可预知的结果。在某些情况下,还可能因涉 及敏感数据而使系统运行出现问题。
(4)变量的“固化”。
用名字访问一个存储空间,有一个特例:当 定义时用const修饰后,就成为一个符号常量, 也称常变量或常量。常量只可读、不可写— —不可进行赋值操作。例如
float
8
23
1
64
double
11
52
1
79 long double 15
63
1
取值范围(绝对值)
0,1.175 49 ×10-38 ~3.40 ×1038
0,2.225 ×10-308 ~ 1.797 ×10308
0,1.2 ×10-4932~ 1.2 ×104932
十进制 精度
6位
15位
19位
(4)C99对于标识符的长度没有限制,但要 求编译器至少记住前63个字符(C89为31), 要求链接器能至少处理前31字符且区分字母 大小写(C89为6且不区分字母大小写)。
2. 声明 声明的第一个用途就是定义标识符。例如 int i1,i2;
3.1.3 表达式
表达式是程序中关于数据值的表示。在C语言 中,表达式有3种形式:
0 ~ 4 294 967 295
0 ~ 264-1(18 446 744 073 709 551 615)
4)规范的书写格式 5)规范的可施加操作集合 6)规范所容纳的值的数目
3.1.2 标识符及其声明
1. 标识符规则 在程序中需要对数据等实体进行命名,这些名字就称为标识符
(Identifier))。不同的程序设计语言有不同的标识符规则。C语 言要求标识符遵守下列规则。 (1)在C99之前,要求标识符只能由大小写字母、数字和下划线 组成的序列,但不能以数字开头。例如,下面是合法的C标识符: a A Ab _Ax _aX A_x abcd operand1 results 下列不是合法的C标识符: 5_A(数字打头) A-3(含非法字符) 但是,C99允许标识符由通用字符名(universal-character-name) 以及其他编译器所允许的字符组成。 (2)C语言区别同一字母的大小写,如abc与abC被看作不同的标 识符。 (3)标识符不能使用对于系统有特殊意义的名字。这些对系统有 特殊意义的名字称为关键字。表3.3为C语言关键字一栏表,其中 粗体的也作为ANSI C99的关键字。
”I am a student.”:由双撇知道它是一个字符串字面量(string literal)。
2. 数据实体
数据实体(object)也称数据对象,是拥有一 块独立存储区域的数据,要使用这种表达式 的值,需要访问其所在的内存空间。一般说 来,C语言允许用如下几种方式访问数据实体。
1)用名字访问数据实体——变量
3)不同的可能值集合
不同长度整数的最小取值范围
数据长 度
(比特
)
取值范围
signed (有符号)
unsigned (无符号)
8 -127 ~ 127
0 ~ 255
16 -32 767 ~ 32 767
0 ~ 65 535
32 -2 147 483 647 ~2 147 483 647
64
-9 223 372 036 854 775 807 ~9 223 372 036 854 775 807
const double PI = 3.1415926; PI = 1.23; // 错误,不可赋值
2)指针(pointer)访问数据实体
(1)指针的概念。
程序中使用的任何一个数据实体都存储在内存的特定 位置上。这个位置用地址表示。指针变量简称指针, 是存储数据实体地址的变量,它提供了使用内存地址 访问数据实体的一种形式。
int * pi;
// 定义一个指向int类型的指针
double * pd; // 定义一个指向duble类型的指针
char * pc; // 定义一个指向字符类型的指针