一.C程序设计结构
1. C程序设计的核心?(设计什么?)
设计算法:
算法: 简单理解:算法是解决问题的方法和实现的步骤。
2. 算法设计的要求:
2.1 有穷性: 问题需要在有限的步骤内解决;
2.2 可行性: 问题的解决方案要能够执行下去
2.3 确定性: 问题的每一步解决步骤都要有明确的意义,不能产生歧义;
3. 算法的描述(流程图)
4. C语言的设计方法(设计结构)
4.1 顺序结构
自上而下,顺序执行;
4.2 选择结构/分支结构
根据条件成立与否,选择执行不同的功能。
4.3 循环结构
体现在对功能代码的重复执行。
循环结构的分类:
1) 当型循环:
先判断,后执行,循环语句可能一次也不执行
2) 直到型循环:
先执行,后判断,循环语句至少可以执行一次
5. C语言语句
C程序由函数组成,函数由语句组成。
函数提供的功能往往是利用语句实现。
语句的分类:
1. 控制语句; 对代码执行提供一定的控制功能
例子:
if()
语句1;
else
语句2;
2. 函数调用语句;
例子: printf("hello world");
3. 表达式语句
例子: a + b;
4. 空语句
;
5. 复合语句
{
语句1;
...
}
6. C语言标准输入输出的缓冲机制:
输入输出操作内部采用缓冲机制,也就是说当我们使用scanf/getchar输入数据时候,并不是直接从键盘输入数据
到指定的内存变量,而是系统先去输入缓冲区查看是否有符合类型的数据,如果存在将使用输入缓冲区中的数据
直接存储到内存变量,此时就不需要键盘输入了。否则才需要键盘输入符合类型的数据;
相同道理,当我们使用 printf 输出数据时,也不是直接将内存中的数据输出到标准输出设备,而是先存储到输出
缓冲区,当缓冲区被填充满,或者输出缓冲区中出现换行符,才会将输出缓冲区中的数据输出到标准输出设备;
注意: 当程序结束时,如果系统发现输出缓冲区仍有缓冲数据,系统会先输出缓冲区中的数据,然后结束程序,
复杂的格式控制:
1. 输出宽度 : %md %mc %ms ...
2. 对齐方式 %- %
3. 小数的位数 %.nf
4. 十/八/十六输出 %d %#o %#x
7. 顺序结构
顺序结构:程序自上而下,按顺序执行,语句执行中不能语句跳转。
课堂案例:
求 ax^2 + bx + c = 0 一元二次方程的根:
a, b, c 键盘输入:
delta = b^2 - 4ac ;
x1 = -b/2a + sqrt(delta)/2a
x2 = -b/2a - sqrt(delta)/2a
float m = -b /2a;
float n = sqrt(delta) /2a;