第一章

1.2程序的设计与C语言
1 机器语言
机器语言 难学 难记 难写 难修改
2 汇编语言
可移植不好 机器语言和汇编语言“接近”计算常常称它们为低级语言 十分依赖机器硬件
3 高级语言
易学 易用 易维护一下 可以有效方便地用它来编制各种用途的计算机程序
(1) 非结构化的语言

没有规范可以遵守 程序中的流程可以随意转跳
(2) 结构化的语言
结构化程序设计方法规定:程序由具有良好特性的基本结构 顺序结构 分支结构 循环结构 构成
程序中的流程不允许随意跳转 程序总是由上而下顺序执行各个基本结构
(3)面向对象的语言
对象是由数据以及对数据所进行的操作的封装体采用面向对象的程序设计方法开发应用程序变得更容易 耗时更少 效率更高

程序设计语言的功能
1
1 数据表达
2 流程控制

按照结构化程序设计的观点,任何程序的基本结构都可以通过三种基本的控制结构进行组合来实现,分别是顺序结构、分支结构、循环结构

这三种结构的共同特点是:

 1只有单一的入口和单一的出口
 2结构中的每个部分都有被执行的可能
 3结构内不应出现永不终止的死循环

程序的算法表示
软件的主体是程序,程序的核心是算法
交换变量a和b的值
输入变量a和b的值
1将变量a的值赋给变量t
2将变量b的值赋给变量a
3将变量t的值赋给变量b
4输出变量a与b的值
特征:
1 确定性:
算法的每条指令必须有明确的含义,不能有二义性 对于相同的输入必须得出相同的执行结果

2有穷性:
一个算法应包含有限个操作步骤
也就是说,在执行若干个操作步骤之后,算法将结束
而且每一步都在有限的时间内完成
3可行性:
算法中指定的操作都可以通过已经实现的基本运算执行有限次后实现
4有零个或多个输入
5有一个或多个输出
算法的目的是为了求 解 解 只有通过输出才能得到
1 用文字描述算法

例:有10个两位的正整数,找出其中最大的数,写出其算法。

1输入第一个数,放入max中;
2用i统计比较的次数,其初值置为1;
3若i≤9,转第4步,否则转第8步;
4再输入一个数,放在x中;
5比较x和max中的数,若x>max,则将x的值赋给max;否则max的值不变;
6i增加1;
7返回到第3步;
8输出max中的数,此时max中的数即为10个数中最大的数。

例:写出求两个自然数的最大公约数的算法

采用古希腊数学家欧几里得提出的 欧几里得算法 描述如下:

1输入两个自然数a、b;
2求a除以b的余数r;
3使a = b,即用b代替a;
4使b = r,即用r代替b;
5若r≠0,则重复执行步骤2、3、4,否则转第6步;
6输出a,a即为a和b的最大公约数。
用文字描述算法的缺点: 很难,系统,并 精确 , 地表达算法,且有时叙述冗长,别人不容易理解。

例:有10个两位的正整数,找出其中最大的数,画出其流程图。图1.4
例:画出求两个自然数的最大公约数的流程图

伪代码:
C语言程序设计的特点
1.3.1 C语言的发展历史
1963年英国剑桥大学推出了CPL(Combined Programming Language)语言。

1967年剑桥大学的Martin Richards对CPL语言进行了简化,推出了BCPL(Basic Combined Programming Language)语言。

1970年美国贝尔实验室的Ken Thompson对BCPL语言又做了进一步简化,设计出了更接近硬件的B语言。

1972年工作于美国贝尔实验室的Dennis Ritchie在B语言言的基础上设计出C语言。

1973年,Dennis Ritchie和Ken Thompson对UNIX操作系统进行了重写,其中90%以上的代码采用的是C语言,很大程度上提高了UNIX操作系统的可移植性和可读性。

1983年,美国国家标准协会(American National Standards Institute,简称ANSI)制定了一套C语言标准,称为ANSI C。

目前使用的如Microsoft C、Turbo C等版本均以ANSI C为标准,同时各自分别进行了一些扩充。本书使用的主要是Turbo C编译系统。
C语言的特点
优点:
C语言语句简洁紧凑,使用方便灵活运算符丰富,表达能力强C语言程序可移植性好生成的目标代码质量高,运行效率高语言处理能力强 C语言是一种结构化语言
缺点:
C语言对语法检查不严格,许多时候需要程序员自己保证程序的正确,而这对初学者是很难做到的。

由字母、数字和下划线组成,其中第一个字符必须是字母或下划线
例如,_00、print、FOR均是合法的标识符,而&a、-123、a b均是不合法的标识符。
英文字母的大小写是有区别的
命名最好做到“见名知义”,增加程序的可读性
标识符的有效长度为1~255个字符
关键字
用户自定义标识符:
程序中定义的变量名、数据类型名、函数名和符号常量名

预定义标识符
头文件和库函数中定义的一些标识符(scanf、printf等)

分隔符:
逗号:分隔变量名
空格:分隔各单词
C语言的语法成分
常量
常量是有数据类型的,例如,整型常量2、实型常量2.0、字符型常量’2’ 、字符串常量”C Programming.”等。

变量

运算符
算术运算符:+(加)、-(减)、*(乘)、/(除)、%(求余);
关系运算符:>(大于)、>=(大于等于)、==(等于)、<(小于)、<=(小于等于)等等。
参与运算时只要求有一个数据对象的称为单目运算符,有两个数据对象的称为双目运算符,有三个数据对象的称为三目运算符。
表达式
运算符有优先级
语句
在C语言中,语句是程序最基本的执行单位,以分号结尾。
1.4 C语言的编辑 编译 链接和运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值