C语言概述 (自动保存的).doc
C语言汇编C语言概述
软件=程序+各种文档
程序:一系列有序的指令集合。
程序=算法+数据结构+语种+……
算法:解决问题的思路。
算法具有五大特性:有效性(可行性)、确定性、有穷性、零个或多个输入、一个或多个输出。
1、程序的灵魂——算法
如同写命题作文前,要“先审题、再构思、最后成文”一样,编制一个应用程序,也应该“先弄清楚问题所在,再想好解决问题的办法(即操作方法、步骤),最后用某一计算机语言编写代码”。写作文的难点是“构思”,编程序的难点在于“想到解决问题的办法”,而“解决问题的办法”就是“算法”的通俗说法。
广义而言,算法就是解决问题或处理事情的方法和步骤。
狭义而言,算法专指用计算机解决某一问题的方法和操作步骤。
可见,“算法”是程序的核心。著名计算机科学家沃思(Nikiklaus Wirth)就提出过一个公式:程序=算法+数据结构。所谓“数据结构”通俗地说就是“数据间的组织关系”, “数据结构”的重要性,到“数组”那一章会体会得多一点。
计算机算法可以分为两大类:一类是数值计算算法,主要是解决一般数学解析方法难以处理的一些数学问题,如求解超越方程的根、求定积分、解微分方程等;另一类是非数值计算算法,如对非数值信息的排序、查找等。
2、算法的三种基本结构
1966年,Bohra和Jacopini提出了用以下三种基本结构作为表示一个良好算法的基本单元。
(1)顺序结构。
(2)选择结构(又称分支结构)。选择结构有三种形式:单分支、双分支和多分支。
(3)循环结构(又称重复结构)。循环结构有两种常见形式:当型循环,“先判断、后执行”;直到型循环,“先执行、后判断”。
理论上已经证明,无论多么复杂的问题,其算法都可表示为这三种基本结构的组合。依照结构化的算法编写的程序或程序单元(如过程),其结构清晰、易于理解、易于验证其正确性,也易于查错和排错。这就是所谓的“结构化程序设计方法”。
3、描述算法的方法
(1)自然语言
(2)伪代码
(3)流程图或N-S图
算法是程序的核心,在初学者对C还不熟悉的前提下,如何给予算法提示呢?即使日后对C非常熟悉了,遇到较难的算法,也需要事先描述出算法后,再编写代码。描述算法的常用方法有:自然语言、传统流程图、N-S结构化流程图、伪代码等。其中,最常用又简洁明了的是传统流程图和N-S结构化流程图。
(1)传统流程图
用以上图形符号描述的三种基本结构:
(a)顺序结构 (b)双分支结构 (c)单分支结构
由流程图可以发现,三种标准基本结构的共同特点是:
1.只有单一的入口和单一的出口;
② 结构中的每个部分都有执行到的可能;
③ 结构内不存在永不终止的死循环。
由流程图还可以发现,图形清晰明了,容易理解,适合初学者使用;但图中箭头多,算法复杂时,图形占的篇幅也大……
(2)N-S结构化流程图
1973年美国学者Nassi和Shneiderman提出了一种新的流程图方式。这种形式将全部算法写在一个矩形框内,大框内包含从属的小框。下图给出了三种基本结构的N-S图。完全去掉了传统流程图中的箭头。
顺序结构 双分支选择结构 当型循环结构 直到型循环结构
三种基本结构的N-S图
一、C语言的特点(面向过程)
二、程序设计思想
“自上而下、逐步细化”的模块化 ,C语言适合结构化程序设计的语种,
有三种结构:顺序、选择、循环(选择即分支、循环即重复)
三、C语言字符集
1. 52个英文字母(严格区分大小写)
2. 符号:
① ; ② , ③ = 赋值号 ④ +和-等 ⑤ 空格 ⑥ ! ⑦ & ⑧ % ⑨ *和/ ⑩ | ……
3. 标识符
(1)关键字
(2)标准标识符(系统函数名):比如printf
(3)用户自定义标识符:只能含有字母、下划线、数字字符,且第一个字符必须是字母或下划线。不能与关键字同名!
【建议】自己定义标识符时,尽量注意:“望文生义”、“简洁明了”、“符合习惯”。
4. 语句(总是以分号结束,复合语句除外)
(1)说明语句或定义语句
(2)空语句(只有一个;)
(3)表达式语句(最重要的是赋值语句)
(4)函数调用语句(比如printf语句)
(5)控制语句
(6)用{}将若干语句括起来,就构成一个复合语句
四、C源程序的构成
1个C语言源程序(.c)=1个主函数[ +若干子函数]
main( )
{定义说明部分
执行语句部分}
数据类型、运算符和表达式
一、数据类型
对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。在程序执行过程中,其值不发生改变的量称为常量,取值可变的量称为变量。
二、常量(书面常量、符号常量)
1、整型常量
例如:
5、32767、-12(普通整数,占2B)
0L、600