C Note(NO.2)

程序=算法+数据结构+程序设计方法+语言工具和环境

为解决一个问题而采取的方法和步骤,就称为算法;

 计算机算法:计算机能够执行的算法。
 计算机算法可分为两大类:
       数值运算算法:求解数值;
       非数值运算算法:事务管理领域。


算法的特性
 有穷性:一个算法应包含有限的操作步骤而不能是无限的。
 确定性:算法中每一个步骤应当是确定的,而不能应当是含糊的、模棱两可的。
 有零个或多个输入。
 有一个或多个输出。
 有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果。

 

结构化程序设计方法
 自顶向下;
 逐步细化;

 高内聚;

 低耦合;
 模块化设计;
 结构化编码

数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。

1. 基本数据类型:基本数据类型最主要的特点是,其值不可以再分解为其它类型。

也就是说,基本数据类型是自我说明的。
2. 构造数据类型:构造数据类型是根据已定义的一个或多个数据类型用构造的方法

来定义的。也就是说,一个构造类型的值可以分解成若干个“成员”或“元素”。每个“成

员”都是一个基本数据类型或又是一
个构造类型。在 C 语言中,构造类型有以下几种:
·数组类型
·结构体类型
·共用体(联合)类型
3. 指针类型:指针是一种特殊的,同时又是具有重要作用的数据类型。其值用来

表示某个变量在内存储器中的地址。虽然指针变量的取值类似于整型量,但这是

两个类型完全不同的量,因此不能混为一谈。
4. 空类型:在调用函数值时,通常应向调用者返回一个函数值。这个返回的函数

值是具有一定的数据类型的,应在函数定义及函数说明中给以说明,例如在例题

中给出的 max 函数定义中,函数头为: int max(int a,int b);其中“ int ”类型说明符

即表示该函数的返回值为整型量。又如在例题中,使用了库函数 sin,由于系统

规定其函数返回值为双精度浮点型,因此在赋值语句 s=sin (x);中, s 也必须是

双精度浮点型,以便与 sin 函数的返回值一致。所以在说明部分,把 s 说明为

双精度浮点型。但是,也有一类函数,调用后并不需要向调用者返回函数值,

这种函数可以定义为“空类型”。其类型说明符为 void。


 

常量:

在程序执行过程中,其值不发生改变的量称为常量。
 直接常量(字面常量):
 整型常量: 12、 0、 -3;
 实型常量: 4.6、 -1.23;
 字符常量:‘a’、‘b’。
 标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。
 符号常量:用标示符代表一个常量。在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。
符号常量在使用之前必须先定义,其一般形式为:
#define 标识符 常量
其中#define 也是一条预处理命令(预处理命令都以"#"开头),称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。
 习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。

 用标识符代表一个常量,称为符号常量。
 符号常量与变量不同,它的值在其作用域内不能改变,也不能再被赋值。
 使用符号常量的好处是:
 含义清楚;
 能做到“一改全改”。

变量:

其值可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储单元。变量定义必须放在变量使用之前。一般放在函数体的开头部分。


 

字符常量是用单引号括起来的一个字符。
例如:
'a'、 'b'、 '='、 '+'、 '?'
都是合法字符常量。
在C语言中,字符常量有以下特点:
1) 字符常量只能用单引号括起来,不能用双引号或其它括号。
2) 字符常量只能是单个字符,不能是字符串。
3) 字符可以是字符集中任意字符。 但数字被定义为字符型之后就不能参与数值运算。

 

字符串常量是由一对双引号括起的字符序列。例如: "CHINA" , “C program” , "$12.5" 等都是合法
的字符串常量。
字符串常量和字符常量是不同的量。它们之间主要有以下区别:
1) 字符常量由单引号括起来,字符串常量由双引号括起来。
2) 字符常量只能是单个字符,字符串常量则可以含一个或多个字符。
3) 可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在C语言中
没有相应的字符串变量。
4) 字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加 1。增加的一
个字节中存放字符"\0" (ASCII 码为 0)。这是字符串结束的标志。

 

自动转换遵循以下规则:
1) 若参与运算量的类型不同,则先转换成同一类型,然后进行运算。
2) 转换按数据长度增加的方向进行,以保证精度不降低。如 int 型和 long 型运算时,先把 int 量转成 long
型后再进行运算。
3) 所有的浮点运算都是以双精度进行的,即使仅含 float 单精度量运算的表达式,也要先转换成 double
型,再作运算。
4) char 型和 short 型参与运算时,必须先转换成 int 型。

5) 在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。

使用强制转换时应注意以下问题:
(6)类型说明符和表达式都必须加括号(单个变量可以不加括号)
(7) 无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,
而不改变数据说明时对该变量定义的类型。
 



 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章