资源预览内容
第1页 / 共40页
第2页 / 共40页
第3页 / 共40页
第4页 / 共40页
第5页 / 共40页
第6页 / 共40页
第7页 / 共40页
第8页 / 共40页
第9页 / 共40页
第10页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
计算机与电子系:雷于生 ysleimails.tjmu.edu.cn,C语言程序设计,教材、参考书与课时安排,教材 C语言程序设计教程 高等教育出版社中山大学出版社 2009 C语言程序设计实验与习题集北京:高等教育出版社 2009 参考书 谭浩强.C程序设计(第三版).清华大学出版社,2005. 李淑华等. C 语言程序设计. 大连理工大学出版社, 2004. 李瑞新等. C语言程序设计教程. 机械工业出版社, 2004. 课时安排 总课时: 56学时 理论课: 40学时 实习课: 16学时,学习目的、要求和考试安排,学习目的 正确理解和掌握C语言的基本内容 理解C程序设计技术的基本概念、基本思想和方法 能用C语言编写简单的应用程序 学习要求 课前做好预习;课堂认真听讲,安静.清醒思维活跃 重视上机实践,有效利用宝贵的上机时间. 独立按时完成布置的作业. 考试安排 结业成绩 : 平时成绩30%+考试成绩70% 考试形式 : 闭卷 考试成绩总分100,目 录,第 1章 C语言概述 第 2章 C语言程序的语法基础 第 3章 顺序结构程序设计 第 4章 选择结构程序设计 第 5章 循环结构程序设计 第 6章 数 组 第 7章 函 数 第 8章 指 针 第 9章 编译预处理 第10章 结构与联合 第11章 文 件,第1章 C语言程序设计概述,主要问题: 程序和程序设计语言的概念 C语言的发展和特点 C语言体系和C语言程序的基本构成 程序开发环境和程序的算法,1.1 程序设计的基本概念,一、计算机程序的概念,例 以下用汉语编写的一个使用全自动洗衣机洗衣的程序:把脏衣服放到洗衣机中;插好电源,打开水龙头;设置洗衣的命令,如经济、普通、轻揉;放入洗涤剂;按下开始按钮;等待洗衣机清洗完毕。,程序解决的问题(或处理的对象)洗衣服;程序操作的方法步骤从到,计算机程序的含义:是指为解决某个特定问题用某种计算机语言编写的、计算机能够执行(识别和操作)的代码(指令)序列。,程序处理的对象-数据的描述(数据结构) 程序的处理对象的操作方法和步骤-数据的处理(算法) 程序对操作环境的要求编译程序、操作系统、计算机硬件,程序代码的描述:,二、程序设计的概念,程序设计,就是程序形成的过程,具体说,程序设计是将计算机要解决的问题,构造成计算机能执行的指令代码序列的过程。,程序设计的三个阶段(或五个步骤):分析、设计和实现。,分析:分析问题 明确要解决的问题和要实现的功能 设计:将具体的问题抽象为数据问题,建立数学模型,确定合适的解决方案确定数据结构,并根据数据结构设计相应的算法,写出算法描述 实现:编写程序代码调试并运行程序,直到得到正确的结果,三、程序设计语言,机器语言 1000110010100000 汇编语言 A ADD B 高级语言 A+B,2、高级语言程序的处理程序-解释方式和编译方式,解释方式:将高级语言源程序,计算机使用解释程序逐句处理并执行,即边翻译边执行。,编译方式:将高级语言编写的源程序,通过编译程序编译成机器执行的目标程序。,1、程序语言种类及层次,源程序:指程序设计工作的结果或指令代码序列目标程序:经处理得到的程序或计算机可直接执行的序列,四、程序设计方法简介,程序设计方法是指为了有效进行程序设计,如何组织程序的问题,即用什么样的逻辑模式组成所要解决的数据对象和对象的相应操作。,1、结构化的程序设计方法,2、面向对象的程序设计方法,自顶向下 逐步细化 模块化设计 结构化编码,主要使用抽象机制,将对象的共性抽象成类,由类实现对象及对象操作的封装,类成为程序的独立模块,并利用对象的封装、继承和多态等特性实现程序设计。,1.2 C语言的产生、发展及标准化,1970年,将BCPL语言改造成更适合开发UNIX的B语言, 1971年,Dennis M. Ritchie开始和Thompson合作开发UNIX,将B语言改造成C语言, 1989年,美国国家标准化协会(ANSI),根据语言问世以来各种版本对语言的发展和扩充,制定了ANSI C标准,俗称 C89, 20世纪60年代,贝尔实验室,Ken Thompson开始开发一个叫做UNIX的操作系统, 1990年国际标准化组织ISO,根据当时的各个版本制定了 ISO C 俗称 C90;1999年ISO公布了最新的C语言国际标准,俗称 C99。,是一种高级语言 高级语言并不是“高级”,只是相对低级语言,在一个高的级别上进行编程 历史悠久,战勋卓著 诞生于上世纪70年代初,成熟于80年代 “ANSI C”标准的发布是C语言成熟的标志 很多重量级软件都是用C写的 上天入地,无所不能 几乎没有不能用C写出来的软件,没有不支持C的系统 C语言被分类为高级语言,但实际上它是一种介于高级语言和低级语言之间的语言。 很多流行语言、新生语言都借鉴了它的思想、语法 从C+,到Java,再到C# 正确地学好C语言,是学习这些流行语言的基础。,1.3 C语言的体系结构及特征,图 C语言的基本体系结构,图 人类语言的基本体系结构,一、C语言的体系结构,语言简洁、紧凑 目标代码质量高 语言表达能力强 流程控制结构 弱类型 “中级语言”特色 书写自由,使用灵活 可移植性好,二、 C语言的特点,1.4 C语言程序的基本组成与开发环境,C程序示例:例1-1 p9,程序是由函数构成的,其中有且仅有一个主函数main() 一个程序总是从main函数开始执行,且结束于主函数 每个语句和数据定义的最后必须有一个分号 程序书写格式自由,一行内可以写多条语句 可以用*对程序中的任何部分作注释 语言本身没有输入输出语句,用输入及输出函数来完成,一、C程序的组成:,/*C programe file:computer volume*/ /说明 #include /包含头文件 #define PI 3.14159 /定义符号常量 float velume(float r,float h); /声明函数原型 void main() /主函数 float radius,height,vol; /定义变量printf(“Input radius,height:n”); /输出提示scanf(“%f,%f”, /返回计算值 ,#include void main() printf(“Hello World!”); ,li1_1.c li1_1.obj li1_1.exe,Hello.c,二、C程序的开发环境,编辑:是指把按照C语法规则编写的程序代码通过编辑器(Borland C+5.0 ,Visual C+ 6.0,Turbo C 2.0)输入计算机,并存盘。在存盘时,C源文件的扩展为.C。 编译:将编辑好的C源程序通过编译器转换为目标文件(OBJ文件)。即生成该源文件的目标代码。 链接:将用户程序生成的多个目标代码文件(.obj)和系统提供的库文件(.lib)中的某些代码连接在一起,生成一个可执行文件(.exe)。 执行:把生成的可执行文件运行,在屏幕上显示运行结果。用户可以根据运行结果来判断程序是否出错。,编辑-编译-连接-执行,程序开发步骤,What is to be done?,可执行文件 扩展名为.exe的文件,How is it to be done?,扩展名为.c的文件(对C而言),扩展名为.obj的文件,1.5 算法及其表示,一、算法的基本概念,算法:任何解决问题的过程都是由一定的步骤组成的,把解决问题确定的方法和有限的步骤称为算法。从程序角度来看,也可以说算法是一个有限条指令的集合,这些指令确定了解决某一特定类型问题的运算序列。,例:求6和9的最大公约数 一般算法: 6,9 6/60 ,9/63; 6-1;6/51,9/54;5-1;6/42,9/45; 4-1;6/30,9/30;3是公约数。 欧几里德算法:6,9 9/63;6/30 3是公约数,输入两个数(6,9); 比较两数大小,用小数除大数,若余数为0 ,则除数是两数的公约数,否则; 用除数-1; 将减1后的数作为除数,分别除两数; 若其余数不为0,则重复 , 否则输出除数为公约数,输入两个数(6,9); 比较两数大小,用小数除大数,若余数为0 ,则除数是两数的公约数,否则; 用余数作为除数,用除数作为被除数相除; 若其余数不为0,则重复 , 否则输出除数为公约数,选择算法两个基本原则: 实现算法所花费的代价要尽量的小,即计算工作量要小。 根据算法所得到的计算结果应可靠。,例 求10001和10000的最大公约数用一般算法20000次除法用欧几里德算法用2次除法10000倍效率,有穷性 确定性 有零个或多个输入 有一个或多个输出 算法的有效性,算法特性:,二、算法特性及组成要素,操作:每个操作的确定取决于问题的需求,C语言中主要操作有,算术运算,关系运算,位运算,函数调用,输入/输出操作等,算法是由这些操作组成;,算法的组成要素:操作和控制结构,控制结构:控制结构的作用就是控制组成算法的各操作执行的顺序;包含顺序、选择和循环三种.,算法的描述,其实就是算法的表示和表达,描述算法的方式、方法多种多样,如自然语言方式、流程图方式、表格方式、伪码方式、程序方式等等,流程图又称为框图,它可以用它的图符来表示算法的每一步骤以及这些步骤之间相互联系。,三、算法的描述及实现,三种控制结构,算法设计:用变量x存输入整数,k表示输入次数,positive表示正数个数,sum_pos表示累加和,even_pos表示正数的平均值。,例1-5 输入10个整数,统计正数个数,正数和与平均值。,用自然语言进行算法描述,用传统流程图进行算法描述,用C语言代码描述(即程序的实现),该问题算法的自然语言描述为: (1) 定义变量x,k,positive, sum_pos, even_pos。 (2) positive, sum_pos清零,k赋初值1。 (3) 判断k11吗?(或k10吗?)如果是,顺序往(4)步执行;否则转步骤(8)。 (4) 从键盘输入一个整数并且赋给变量x。 (5) 判断x是否大于于零?如果是,顺序执行步骤(6);否则转步骤(7) (6) 正数个数positive加1,正数x加到正数累加和变量sum_pos中;顺序执行步骤(7)。 (7) 次数k加1,转步骤(3)。 (8) 计算正数平均值sum_pos/positive并赋给变量even_pos, (9) 输出正数个数positive,正数累加和sum_pos,正数平均值even_pos。,该问题算法的传统流程图描述为:,void main(void) int x,k,positive,sum_pos; float even_pos; k=1; positive=sum_pos=0; while(k0) positive+; sum_pos+=x; k+; even_pos=(float)sum_pos/positive; printf(“positive=%dtsum_pos=%dn“,positive,sum_pos);printf(“even_pos=%6.2fn“,even_pos); ,用C语言代码描述(程序代码),高级语言的魅力,易学、易用、易读、易懂、强大、可移植 百家争鸣,据不完全统计2500种,绝大多数是高级语言 http:/people.ku.edu/nkinners/LangList/Extras/langlist.htm可看到其列表和简介 影响最大、寿命最长的是C语言 程序设计语言数以千计,能广为流传的不过几十种,能够风光20年的更是屈指可数,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号