计算机语言发展史:
  机器语言
  汇编语言
  高级语言(结构化+面向对象)

C语言进化史:
ALGOL60——CPL——BCPL——C


B语言与C的关系:
  B是C语言的前一个版本
  肯汤姆森用B语言写出了UNIX操作系统
  丹尼斯里奇发明C,重写了UNIX操作系统


C语言特点:
  优:代码量小,速度快,功能强大,
  缺:自由度高,也就是危险度高,不容易报错。
    开发周期长:面向过程的语言,写大型项目容易崩溃,代码上十万行会出现莫名错误,
  注:所以写大型项目只能用面向对象的思想来写。
    可移植性不强,JAVA在任何机器上都能运行且结果一样,C语言不一定。
  注:写操作系统只能用速度快的语言来写,因为不卡,运行流畅,稳定。

 

C语言能干啥?
系统软件开发:
  操作系统
  驱动程序
  数据库
应用软件:
  办公软件:wps
  图形图像多媒体:PS
  嵌入式:智能手机,平板
  游戏开发:2D、3D游戏


C语言重要性:为学习数据结构、算法、和其他计算机编程语言打好基础。
参考书籍:

谭浩强《C语言程序设计》
C Primer Plus 人民邮电
C和指针 人民邮电
C专家编程
C缺陷与陷阱 人民邮电
C科学与艺术 机械工业

 

学习目标:
1.了解计算机语言发展
2.熟悉C语言语法规则
3.掌握简单算法
4.理解面向过程思想
5.能看懂程序,会调试程序,能将大问题转化成一些列小问题来解决问题

 

举例子:

需求:求解一元二次方程的解

//一元二次方程的标准式子:
    a*x*x+b*x+c = 0;
    根据之前所学知识,中学得出的结论(也就是算法)求b平方-4ac的值
    来判断方程是否有解,解是多少?
#include <stdio.h>
#include <math.h>

int main(void){
    //定义三个变量来存储标准式的三个系数
    int a, b, c;
    //定义两个变量来存储方程的解
    float x1, x2;
    //定义变量来存储b*b-4ac的值
    float delta = b*b - 4*a*c;
    //根据delta的值来判断方程有几个解
    if(delta > 0){
    //delta > 0,方程有两个解
    x1 = (-b + sqrt(delta))/ (2*a);
    x2 = (-b - sqrt(delta))/ (2*a);
    printf("方程有两个解,分别是x1 = %f, x2 = %f\n", x1, x2);
    }
    else if(delta == 0){
    //方程有一个解
    x1 = (-b + sqrt(delta))/ (2*a);
    x2 = x1;
    printf("方程有一个解,x1 = x2 = %f",x1);
    }
    else {
    pringf("方程无解");
    }
    return 0;
}