3.1 顺序程序设计举例
华氏法和摄氏法都可以表示温度,物理学转换公式为
f代表华氏,c代表摄氏。伪代码表示如下:
S1:输入f,
S2:f带入公式
S3:输出c
三个步骤顺序执行,这就是一个简单的顺序结构。
计算机语言表示如下:
#include<stdio.h>
int main()
{
float f,c;
f = 64.0
c = (5.0/9)*(f-32);
printf("f=%f\nc=%f\n",f,c); \\%f为浮点数占位符
return 0;
}
运行结果:
f=64.000000
c=17.777778
3.2 数据的表现形式及其运算
3.2.1 常量和变量
在计算机高级语言中,数据有两种表现形式:常量和变量。
1.常量
在程序运行过程中,其值不能被改变的量称为常量。
常用常量有以下几类:
(1)整型常量。例如:1000,365,-360等。
(2)实型常量。有两种表示形式:
a)十进制小数形式,由数字和小数点组成。如:3.1415926,-56.92
b)指数形式,如56.92e2(表示56.92乘以10的3次方)
(3)字符常量。有两种形式:
a)普通字符,用单撇号括起来的一个字符,如:‘A’,‘#’。不能写成‘ab’。字符常量在计算机存储单元中以ASCII码二进制形式存储,‘a’的ASCII码是97。
b)转义字符,除了字符常量外,还有种特殊的字符常量,以\开头的字符序列。比如‘\n’代表一个换行符。相关内容可以参看转义字符表。
(4)字符串常量。如“students”,“365”等,字符串常量是双撇号中的全部字符。注意单撇号只能包含一个字符,双撇号可以包含一个字符串。
(5)符号常量。用#define指令,指定用一个符号名称代表一个常量。
# define PI 3.1415926
程序中从此行开始都可以使用pi代表3.1415926了。PI就是一个圆周率的符号。
符号常量有两个好处,第一含义清楚,第二,更改时,可以“一改全改”。
2.变量
变量必须先定义,后使用。变量的值在程序运行期间是可以改变的。定义时指定该变量的名字和类型。注意区分变量值和变量名这两个不同概念。变量名实际上是以一个名字代表的一个存储地址,从该存储单元中读取数据。
3.常变量
const int a = 3;
表示a被定义为一个整型变量,值为3,在变量存在期间其值不能改变。常变量具有变量的基本属性,有类型,占存储单元。但是值不能改变,跟常量相比,常变量有名字。
4.标识符
用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列统称为标识符(identifier)。标识符可以就理解为一个对象的名字。
C语言规定标识符只能由字母、数字和下划线3种字符组成。
3.2.2 数据类型
计算机中的数字与我们在数学中遇到的数字是有差别的,数学中的数字是抽象的定义,而计算机中的数字是数据,需要存放在存储单元中,需要转码。存放数据的存储单元是有限的,需要根据类型存放。不同的类型分配不同的长度和存储形式。
不同类型的数据在内存中占用的存储单元长度是不同的。
3.2.3 整型数据
1.整型数据的分类
(1)基本整型(int型)
2个或4个字节。具体看编译系统。存储单元中,用整数的补码形式存放。
(2)短整型(short int)
2个字节。值的范围-32768~32767.
(3)长整型(long int)
2的31次方到2的31次方减1,即-2147483648~2147483647,分配4个字节。
(4)双长整型(long long int)
一般8个字节。
3.2.4 字符型数据
字母:大写英文字母A~Z,小写英文字母a~z。
数字:0~9.
专门符号:29个,! “ # & ‘( )* + - * / < = > ? []{}\|~
空格符:空格、水平制表符(tab)、垂直制表符、换行、换页(form feed)。
不能显示的字符:控(null)字符(以‘\0’表示)、警告(以‘\a’表示)、退格(以'\b'表示)、回车(以'\r'表示)等。
详见ASCII字符表。
3.2.5 浮点型数据
浮点型数据是用来表示具有小数点的实数的。浮点类型包括float单精度浮点型、double双精度浮点型、long double长双精度浮点型。float型小数部分和指数部分,分别存放,以二进制形式。
3.2.6 运算符和表达式
运算符 | 说明 | 举例 |
+ | 正号运算符(单目运算符) | +a |
- | 负号运算符(单目运算符) | -a |
* | 乘法运算符 | a*b |
/ | 除法运算符 | a/b |
% | 求余运算符 | a%b |
+ | 加法运算符 | a+b |
- | 减法运算符 | a-b |
自增:++i,i++
自减:--i,i--
符号在前,使用i之前,i值先加1;符号在后,使用之后,i值加1
符号有优先级,需要配合括号使用