计算机语言发展史:
机器语言
汇编语言
高级语言(结构化+面向对象)
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; }