C语言程序设计Programming in C )
C语言程序设计 (Programming in C ) 这次课的主要内容 C语言概述 程序和程序设计 算法的概念 C语言概述 C语言出现的历史背景 C语言的特点 简单的C程序 C程序的运行 C语言的历史背景 C语言是AT&T贝尔实验室的Dennis Ritchie和Ken Thompson 在B语言的基础上开发出来的(1972 or 1973) UNIX操作系统是用C语言编写的 1982年ANSI工作小组开始建立C语言的标准 美国国家标准协会ANSI:American National Standards Institute 1990年ANSI C被接受为国际标准 ANSI C标准规定了用C编写的程序的格式,并确定了如何解释这些程序 ANSI C的目的是促进C程序在各种机器上的可移植性、可靠性、可维护性和有效执行 目前所有主要的C编译器都遵循ANSI C标准 C语言的特点 适应性强,它能适应从8位微型机到巨型机的所有机种。 应用范围广,它可用于系统软件到涉及各个领域的应用软件。 语言简洁、紧凑,使用方便、灵活 运算符丰富,表达能力强,C语言兼有高级语言和汇编语言的特点,也可称其为"中级语言"。 数据结构丰富。 结构化的控制语句。 语法限制不太严格,程序设计时自由度大 C程序的目标代码质量高,程序执行效率高 C程序的可移植性好。统计资料表明,C编译程序80%以上的代码是公共的,因此稍加修改就能移植到各种不同型号的计算机上。 C语言存在的不足之处是:运算符和运算优先级过多,不便于记忆;语法定义不严格,编程自由度大,编译程序查错纠错能力所限,对不熟练的程序员带来一定困难,C语言对程序设计人员的素质要求相对要高。 C程序示例 #include void main() { int a, b, c, t; printf("input three integer numbers:"); scanf("%d %d %d",&a,&b,&c); if (a < b) { t = a; a = b; b = t; } if (a < c) { t = a; a = c; c = t; } if (b < c) { t = b; b = c; c = t; } printf("output in descending order: %d %d %d\n",a,b,c); } C程序的实现 C程序需要进行编译,才能在机器上执行(运行) 编译的过程就是进行语言翻译的过程 程序、程序设计和程序设计语言 程序(programs) 一个程序是一个指令的序列,描述了所要解决的问题的各个对象和处理规则 程序设计 程序设计是设计、编制和调试程序的过程 程序设计语言 C、C++、Pascal、Java、Ada、Lisp、Prolog... 为什么要学习程序设计 一种职业需求:程序员 专业能力中的一个要求:程序设计能力 专业学习要求:软件课程的实验通过设计程序完成 通过学习程序设计可从根本上理解计算机解决问题的基本方法 ... 学习程序设计的基本方法 在各个领域应用的程序设计语言有几百种之多,目前广泛流行的语言也有十几种,我们不可能在学校学习所有的语言,更何况新的语言还在诞生中,因此我们应将重点放在程序设计能力的培养上,而不是语言的语法细节上。 在这个学期开设程序设计的目的:掌握程序设计的基本知识;了解良好的程序设计风格和习惯并付诸于实践。 提高程序设计能力的一种有效方法:阅读他人编写的程序、改写他人编写的程序、模仿他人编写的程序,很多书上有大量源程序。 设计程序的目的是为了解决问题 利用计算机解决问题的基本步骤 第一步是分析问题并建立模型 第二步是进行算法设计(algorithm design) 设计一个算法或者选择一个已经设计好的算法 第三步是编码(coding) 用一种程序语言表示算法 第四步是调试程序 算法的概念 做任何事情都要有一个步骤,广义地讲,为解决一个问题而采取的方法和步骤,就称为“算法”。 The most general intuitive idea of an algorithm is a procedure that consists of finite set of instructions which,given an input from some set of possible inputs,enables us to obtain an output if such an output exists or else