3.1 顺序程序设计举例
例:有人用温度计测量出用华氏法表示的温度(如64F),今要求把它转换为一摄氏法表示的温度(如17.8C)
解题思路:问题的关键在于找到两者的转换公式。根据物理学知识,公式为c=5/9(f-32)。
其中f代表华氏温度,c代表摄氏温度。
编写程序:
#include <stdio.h>
int main()
{
float f; //华氏温度
float c; // 摄氏温度
printf ("请输入华氏温度:\n");
scanf ("%f", &f);
b = ( 5.0 / 9 ) * ( a - 32 ); //计算公式
printf("转换成摄氏度是:%f\n",c);
return 0;
}
3.2 数据的表现形式及其运算
3.2.1 常量和变量
在计算机高级语言中,数据由两种表现形式:常量和变量。
1.常量
在程序运行过程中,其值不能被改变的量称为常量。数值常量就是数学中的常数。
常用的常量有以下几类:
(1) 整型常量:如1000,123,-123等都是整型常量。说的简单一点就是数学中的整数。
(2) 实型常量:有两种表现形式
① 十进制小数形式,有数字和小数点组成。如123.456,0.234,-56.79,0.0等
② 指数形式,如12.34e3(代表12.34*10^3),-357.87e-25(代表-357.87*10^-25)。由于在计算机输入和输出时,无法表示上角或下角,故规定以字母e或E代表以10为底的指数。但应注意:e或E之前必须有数字,且e或E后面必须为整数。如不能写成e4,12e4.6等形式。
(3) 字符常量。有两种形式的字符常量
① 普通字符,用单撇号括起来的一个字符,如:’A’,’B’,’C’,’3’,’#’等。不能写成’ab’或‘12’。
At(Attention):单撇号只是界限符,字符常量只能是一个字符,不包括单撇号。字符常量存储在计算机的存储单元中时,并不是存储字符(如a,z,#等)本身,而是以其代码(一般采用ASCII码)存储的。如字符’a’的ASCII化代码是97.因此,在存储单元中存放的是97(以二进制形式存放)。
② 转义字符,除了以上形式的字符常量外,C还允许用一种特殊形式的字符常量。是以字符\开头的字符序列。如printf函数中\n代表一个“换行”符。下列表中列出的字符称为“转移字符”,意思就是讲“\”后面的字符转换成另外的意义。
(4) 字符串常量。如“ABC”,“123”等。用双撇号把若干个字符括起来,字符串常量是双撇号中的全部字符(但不包括双撇号本身)。注意,不能写错成’abc’。
单撇号内只能包含一个字符,双撇号可以包含至少一个字符串。如“a”是字符串常量,不是字符常量。
(5) 符号常量。用#define指令,指定用一个符号名称代表一个常量。
#define PI 3.1416 //注意行末尾是没有分号;的,它必须放在函数开头
在预编译后,符号常量已全部编程字面常量(3.1416)。
使用符号常量有以下好处:
① 含义清楚。在定义符号常量名时应考虑“见名知意”。
② 在需要修改程序中多处用到的同一常量时,能做到“一改全改”。
At:要区分符号常量和变量,不要把符号常量误认为变量。符号常量不占内存,只是一个临时符号,在预编译后这个符号就不存在了,故不能对符号常量赋以新值。
习惯上符号常量用大写表示,如PI,PRICE等。
2.变量
变量代表一个有名字、具有特定属性的一个存储单元。
变量必须先定义,后使用。一个变量应该有一个名字,以便被引用。在定义是指定该变量的名字和类型。
At:区分变量名和变量值的概念。
变量名实际上是一个名字代表的一个存储地址。换个说法就是说,存储地址(如0x778989)被用名字代替,而不用输入0x778989来进行变量的访问。只需通过名字就可访问变量。
在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。
实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。和上述的说法类似。
3.常变量
C99以后允许使用常变量,如:const int a = 3;
上述a表示a被定义成一个整型变量,指定其值为3。其值不能改变,在该变量生存周期期间。
常变量与常量的异同是:常变量具有变量的基本属性:有类型,占存储单元,只是不允许改变其值。换个说法来说,就是常变量是由名字的不变量,而常量是没有名字的不变量。有名字就便于在程序中被引用。
常变量和符号变量有什么不同?如:
#define PI 3.1415 //定义符号常量
const float pi = 3.1415; //定义常变量
符号常量的名字是不分配存储单元的。常变量需要占用存储单元,有变量值,只是该值不改变而已。推荐在可以选择符号常量和常变量时,选择常变量,而不多用符号常量。
4.标识符
用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列统称为标识符(identifier)。
简单说,标识符就是名字。
C语言规定标识符只能由字母(a-z、A-Z)、数字(0-9)、下划线(_)组成,且第1个字符必须为字符或下划线。
At:编译系统将