第一章程序设计和C语言
计算机语言的发展
1.机器语言:二进制代码。二进制代码就是由0和1组成的指令。比如0101001等等
计算机能够直接识别和接受的二进制代码成为机器指令。
机器指令的集合就是计算机的机器语言。
运算符优先级按从高到低排列2.符号语言(汇编语言):符号语言计算机不能直接识别和执行。需要汇编程序把符号语言转换成机器指令。这个过程叫做“代真”或“汇编”。
3.高级语言:它也不能被计算机直接识别。需要编译程序把高级语言写的程序(称为源程序),转换为机器指令的程序(称为目标程序)。
Ps:机器语言和汇编语言都是低级语言,都是面向机器的语言,低级语言的可移植性很差。
高级语言的发展阶段:
1.非结构化的语言:早期的BASIC,FORTRAN语言,程序中的流程可以随意跳转。
2.结构化的语言:程序必须具有良好特性的基本结构(顺序结构,分支结构,循环结构)构成,如:QBASIC,FORTARN77和C语言
3.面向对象的语言:C++,C#,VISUAL BASIC和Java
C语言的发展及特点:
C语言的前身是BCPL语言,贝尔实验室正式发布了C语言。
C语言的标准有:
1.ANSI C C89C90(这3个标准都一样)
2.C99
C语言的特点:
1.语言简洁,紧凑,使用方便,灵活
2.运算符丰富
3.数据类型丰富
4.具有结构化的控制语句
5.语法限制不太严格,程序设计自由度大
6.C语言允许直接访问物理地址,能进行(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
7.用C语言编写的程序可移植性好。
8.生成目标代码质量高,程序执行效率高。
函数
函数包括2部分:
1.函数首部。即函数的第一行
2.函数体。即函数首部花括号内的部分
例:
Int f(int x)--函数首部
||||
函数类型函数名函数参数类型函数参数名
{
return x;
}
|
函数体
把上面的函数翻译成数学语言:设x为整数,f(x)=x;
If语句
表达式:
if语句的常用表达式:
1.if(表达式)语句1
2.If(表达式)
语句1
else
语句2
3.if(表达式1)
语句1
else if(表达式2)
语句2
.
.
else if(表达式n)
语句n
else
语句n+1
4.if(表达式1)
语句1
else if(表达式2)
语句2
.
.
else if(表达式n)
语句n
总结:一个if语句中有且只有一个,else if可以有多个,else最多只有一个。
运算符
优先级:
初等运算符如()
单目运算符如!-
算数运算符(*/%在前,+-在后)
关系运算符(>>=<<=在前,==!=在后)
逻辑运算符(除!以外,&&在前,||在后)
条件运算符
赋值运算符
逗号运算符
结合方向:除了单目运算符和赋值运算符以外其他的运算符都是自左往右的
程序的运行:
标识符命名规范
在程序中使用的变量名、函数名、符号等统称为标识符
除库函数的函数名由系统定义外,其余都由用户自定义。C规定,标识符只能是字母(A~Z,a~z)\数字(0~9)、下划线(-)组成的字符串,并且其第一个字符必须是字母或下划线。
需要注意:
1.标识符不能和C语言的关键字相同,也不能和用户自定义的函数或C语言库函数重名
2.不同的C语言编译器对标识符的长度规定不同,例如在某版本C中规定标识符前八位有效,当两个标识符前八位相同时,则被认为是同一个标识符。(vc++6.0中规定标识符最长不允许超过32个字符)
C语言中的关键字(C90规定了32个,C99新增了5个)
Auto break case char const
Continue default do double else
Enum extern float for goto
If inline int long register
Restrict return short signed sizeof
Static struct switch typedef union
Unsigned void volatile while bool
_Complex_Imaginary
第二章算法--程序的灵魂
算法的基本概念
(一)一个程序主要包含2方面信息:
1.对数据的描述。在程序中要指定用到哪些数据以及这些数据类型和数据的组织形式。这就是数据结构
2.对操作的描述。即要求计算机进行操作的步骤,也就是算法。
(二)沃思提出的一个公式算法+数据结构=程序
(三)计算机算法可分为2大类别:数值运算算法和非数值运算算法
(四)算法的特性:1.有穷性2.确定性3.有零个或多个输入4.有一个或多个输出5.有效性
算法的表示法
(一)自然语言表示法
(二)用流程图表示法
1.美国国家标准化协会(ANSI)规定了一些常用的流程图符号
2.例:求1x2x3x4x5

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。