写在前面
上课时记的笔记,没有参考价值,只记录对自己有用的东西。
chap1程序设计与C语言
计算机和编程语言
辗转相除法:
寻找两个数之间的最大公约数
int u = 32;
int v = 26;
while (v != 0)
{
int temp = u % v;
u = v;
v = temp;
}
printf("%d",u);
算法:
- 如果v等于0,计算结束,u就是最大公约数;
- 如果v不等于0,那么计算u除以v的余数,让u等于v,而v等于那个余数;
- 回到第一步。
枚举法
二分法
程序的执行
- 解释:
借助一个程序,那个程序能试图理解你的程序,然后借助你的要求执行(有一些特殊的计算能力,e.g.可以运行中修改源代码) - 编译:
借助一个程序,就像一个翻译,把你的程序翻译成计算机真正懂得语言——机器语言——写的程序,然后,这个机器语言系的程序就能直接执行(能够有确定的运算性能,同样的程序运行速度时固定的)
ps.任何一个语言既可以解释执行又可以编译执行
C语言一般是编译执行的。
C语言
- 现代的编程语言在语法上的差异很小
- 几乎都是C-like语言
- 语言的能力/适用领域主要是由
-库- 传统决定的
Fortran语言是人类历史上第一个高级程序设计语言。
在高级语言当中,C语言显得是一种比较底层的语言。
计算
变量
赋值
a = b
在数学中表示一种关系,即a和b的值一样,是静态的;
在程序设计中,a = b表示要求计算机把b的值赋给a,是一种动作,是动态的。
C99标准允许在代码的任意位置定义变量。
直接写造程序里的常数,称为直接量,或者幻数(magic number)e.i.你不知道这个数代表的是什么
const是一个修饰符。
表达式
算子(operand)也叫操作数,是指参与运算的值,这个值可能是个常数,也可能是个变量,也有可能是一个方法的返回值
符号优先级
p.s.单目:只有一个算子
优先级 | 运算符 | 运算 | 结合关系 | 距离 |
---|---|---|---|---|
1 | + | 单目不变 | 自右向左 | a*+b |
1 | - | 单目取负 | 自右向左 | a*-b |
2 | * | 乘 | 自左向右 | a*b |
2 | / | 除 | 自左向右 | a/b |
2 | % | |||
3 | ||||
3 | ||||
4 |