C程序设计(一)
作者:互联网
前言
这是本人大学第一课,C程序设计第一二章节内容摘要及知识总结.
教材版本:C程序设计第五版(谭浩强著)
第一章 程序设计和C语言
基础定义
-
计算机程序:一组计算机能够识别&执行的指令.
-
计算机语言
- 机械语言(指令):计算机能够直接识别并执行的二进制代码称为机械指令,机械指令的合集即为该计算机的机械语言
优点: 可直接执行,执行速度快,没有冗余.
缺点: 难学/记/写/检查/修改.目前很少(几乎没有人)使用. - 汇编语言(符号语言/符号汇编语言): 为克服机械语言的缺点而使用一些数字英语字母表示指令的语言,因无法直接被计算机识别所以需要汇编程序将其转换为机械指令.
优点: 比机械语言好记忆,可直接操作硬件,执行速度快
缺点: 学习难度大,与计算机硬件强相关,可移植性较差. - 高级语言:为克服低级语言的种种缺点而创造的更接近于人们使用习惯使用的自然语言和数学语言.
高级语言同样无法直接被计算机识别,须使用编译程序将源程序(source program)转换为目标程序(object program)优点: 不依赖于具体机械,不需(或仅需少量的)修改即可在各平台使用.可读性高易于维护,代码量少
缺点: 不同平台上依赖不同编译器,编译中可能存在多余部分使效率低下,对硬件的操作较困难.
- 机械语言(指令):计算机能够直接识别并执行的二进制代码称为机械指令,机械指令的合集即为该计算机的机械语言
高级语言发展阶段:
- 非结构化语言:大量使用
goto
等跳转操作使结构混乱,可读性,可维护性等较差.如basic
,Fortran
等. - 结构化语言: 规定程序必须由具有良好特性的基本结构构成(顺序结构,选择结构,循环结构),不允许随意跳转.
- 面向对象编程:关于这个,可以看这个解释
C语言的发展及其特点
历史
1972,美国贝尔实验室的D.M.Ritchie在B语言的基础上设计出C语言.
标准历程:
- 1989年 ANSI C(又称C89)
- 1990 ISO接收C89作为国际标准ISO/IEC 9899:1990,和C89基本一致
- ISO在1999,2001,2004对C89进行修正并添加了一些新特性被称为C99,C99是对C89的补充.
特点
- 语言简洁,紧凑,仅有37个关键字
- 运算符丰富(34种)
- 数据类型丰富,C99支持
bool
,long long
;指针是C系语言的特色,用好的话非常强大,用不好就会..... - 是完全模块化和结构化的语言.
- 语法限制不严格(好坏参半)
- 可直接访问物理地址,可进行位操作,可直接对硬件进行操作.
- 可移植性好
- 生成代码质量高.
第一个C代码
#include<stdio.h>//包含头文件,scanf,printf等函数不是C的关键字,而是stdio.h库中的函数
int main(){ //main函数,所有的C程序都是从main函数开始执行
int a,b;//定义两个整数类型的数a,b
scanf("%d%d",&a,&b);//输入a,b
a=a+b;//不解释
printf("%d",a);//%d,整数类型,输出a
return 0;//正常结束
}
第二章算法
数据结构
对指定要用到的数据进行特定方式的存储和修改,或者说是计算机中存储、组织数据的方式如链表,线段树等。
算法
定义: 广义来说,算法是为解决一个问题而采取的方法和步骤.
算法可分两种:数值运算算法和非数值运算算法.
数值运算算法 :如计算方程的根,开平方等,一般数值运算算法大部分封装在math库中.
非数值运算算法: 因种类繁多,仅有部分常用经典的方法被总结出来,如排序算法(快排,桶排,插排等),搜索算法( DFS
, BFS
等)等
目前,非数值运算算法的应用范围要远大于数值运算算法
算法的特点
- 有穷性
- 确定性:指执行步骤确定,因此可以有随机算法(如模拟退火,蚁群等)
- 有效性
- 有零或多个输入
- 有一或多个输出
算法的表示方法
- 自然语言
- 流程图
- N-S流程图
- 伪代码
- 程序
---END
标签:运算,C89,数值,算法,指令,程序设计,语言 来源: https://www.cnblogs.com/study-and-alg/p/16691926.html