第三章 最简单的C程序设计——顺序程序设计
3.1 顺序程序设计举例
【例3.1】有人用温度计测量出用华氏法表示的温度(如64°F),今要求把它转换为以摄氏法表示的温度(如17.8°C)。
解题思路:这个问题的算法很简单,关键在于找到二者间的转换公式。c=5/9(f-32)。其中f代表华氏温度,c表示摄氏温度。据此可以用N-S图表示算法,见下图。
算法由3个步骤组成,这是一个简单的顺序结构。
编写代码:
#include <stdio.h>
int main()
{
float f,c; //定义f和c为单精度浮点型数量
f=64.0; //指定f的值
c=(5.0/9)*(f-32); //利用公式计算c的值
printf("f=%f,c=%f\n",f,c); //输出f和c的值
return 0;
}
运行结构如下:
3.2 数据的表现形式及其运算
在计算机高级语言中,数据有两种表现形式:常量和变量
3.2.1 常量和变量
1.常量
- 整型常量。如:1000,12345,0,-345等都是整形常量。
- 实型常量。有两种表示形式:
(1)十进制小数形式,由数字和小数点组成。如:123.456,0.789,-56.345,0.0,12.0等。
(2)指数形式,如:12.34e3(代表12.34 x 10^3), -345.67E-25(代表-345.67 x 10^-25)等。注意:e或E之前必须有数字,且e或E后面必须为整数。 - 字符型常量
(1)普通字符,用单撇号括起来的一个字符,如’a’,‘Z’,‘3’,’?’,’#’。请注意,字符常量只能是一个字符,不能包括单撇号。
(2)转义字符。常见的以"“开头的特殊字符见下图3.1
图3.1中列出的字符称为转义字符,意思是将”"后面的字符转换成另外的意义。 - 字符串常量。如"boy","123"等,用双撇号把若干个字符括起来,字符串常量是双撇号内的全部字符(但不包括双撇号本身)
- 符号常量。用#define指令,指定用一个符号名名称代表一个常量。如:
#define PI 3.1416 //注意行末没有分号
经过以上的指定后,本文件中从此行开始所有的PI都代表3.1416。这种用一个符号名代表一个常量的,称为符号常量。
注意:
(1)#define宏定义符号常量后,不能再使用赋值语句为该符号常量赋值。
(2)符号常量不占内存,只是一个临时符号,代表一个值,在预编译后这个符号就不存在了,故不能对符号变量赋新值。
(3)习惯上符号常量用大写字母表示,如PI,PRICE等。
2.变量
变量代表一个有名字的、具有特定属性的一个存储单元。它用来存放数据,也就是存放变量的值。在程序运行期间,变量的值是可以改变的。
变量必须先定义,后使用。要注意区分变量名和变量值这两个不同的概念。
3.常变量
定义常变量的方法是,在定义变量时,前面加一个关键字const,如:
const int a=3;
常变量与常量的异同是:常变量具有变量的基本属性:有类型、占存储单元,只是不允许改变其值。可以说,常变量是有名字的不变量,而常量是无名字的不变量。有名字就便于在程序中被引用。
说明:
有些编译系统还未实现C99功能,因此不能使用常变量
4.标识符
在计算机高级语言中,用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列统称为标识符。
变量命名的规定:标识符只能由字母、数字和下划线3中字符组成,且第一个字符必须为字母或下划线。
注意: 1.编译系统认为大写字母和小写字母是两个不同的字符。
2.建议变量名的长度最好不要超过8个字符
3.在选择变量名和其他标识符时,应做到“见名知意”。
4.要求对所有用到的变量做强制定义,就是“先定义,后使用”。
3.2.2 数据类型
在例3.1可以看到:在定义变量是需要指定变量的类型。C语言要求在定义所有的变量是都要指定变量的类型。常量也是区分类型的。
C语言允许使用的类型见下图,图中有 * 的是C99所增加的。