《《C语言》课程概述课件》由会员分享,可在线阅读,更多相关《《C语言》课程概述课件(32页珍藏版)》请在金锄头文库上搜索。
1、,第1章 C语言程序设计课程概述,课 程 引 入,我们的生活已经离不开计算机了,每天都在用计 算机上的软件做事情。 这些软件究竟是如何写出来的呢?计算机到底是 以怎样的方式来解决问题的呢? 程序设计这门课可以让你学习到计算机解决问题 的基本方法。 C语言是古老而长青的编程语言,它的语法是很多 其他编程语言的基础,在各类编程语言排行榜上常年 占据前两名的位置,是我们这门课的教学语言。,主 要 内 容,为什么要学习程序设计 课程目标 怎样学习程序设计 C语言概述,一、为什么要学习程序设计,1、不能满足于只会用软件,还应争取会开发软件 Windows、Linux、Unix、Android Micro
2、soft Office、Adobe Photoshop SQL Server、Oracle Internet Explorer Microsoft Visual Studio Google、Facebook,一、为什么要学习程序设计,2、专业需要 对计算机相关专业: 程序设计是专业基础知识,是进一步学习其他专业知识 的第一步阶梯。 对非计算机专业: 程序设计的学习有助于理解计算机的能力所在,理解哪 些是计算机擅长解决的问题,怎样的方式方法是计算机擅长 的手段,从而能更好地利用计算机来解决本专业领域内的问 题。,二、课 程 目 标,本课程是以C语言这种教学媒介来讲授程序设计的基本 思想和基本方法
3、,培养学生用计算机解决实际问题的动手能 力。 除了C语言的基础知识以外,同学们更应该掌握程序设计 的基本思想和基本方法,程序设计的过程就是解决一个实际问题(如做一道菜、写一 部小说)的过程,从解决这个问题的角度,可以这样看: 首先要了解问题的基本要求,即输入、输出、完成输入输出 的要求是什么; 其次,从问题的要害入手,从前到后解决问题的每个方面, 即从输入开入手,考虑如何从输入导出输出,在这个过程中,可 以确定所需的变量、数组、函数等,然后再确定算法。,三、怎样学习程序设计,因此,给大家提几点建议: 1、要着眼于培养分析问题、构造算法、编程、调试程序的能 力; 2、学习程序设计的最佳方式就是编
4、写程序。不要把过多的精 力放在语法细节上,而应通过大量的例子学习怎样设计一个算 法,构造一个程序;,三、怎样学习程序设计,3、要重视实践(上机)环节。程序设计学得好与坏,不是看 你“知不知道”,而是“会不会干”。该课程的学习有其自身的 特点,听不会,也看不会,只能练会。我们必须通过大量的上机 编程训练,在上机实践过程中掌握C语言的基础知识、编程知 识,提高编程能力,并逐步理解和掌握程序设计的思想和方法; 4、要培养创新精神。不能局限于课堂,应思考更多的问题, 编写更难的程序。要想学会编程,还需要更多时间的投入和努 力;,三、怎样学习程序设计,5、为了学习编程,你需要有一台计算机,安装必要的编程
5、 软件; 6、程序设计可以认为是一个社会,每个人都有不同的想 法,不同的人编程的结果是不同的,在这个社会中,经验与想法 最为重要。,三、怎样学习程序设计,题外话: 最初,程序设计着重注意技巧。但是随着计算机价格的 不断下降,硬件环境的不断改善,运行速度的不断提升,计 算机程序越写越大,功能越来越强,讲究技巧的方法已经行 不通了。 一个软件的开发成本由30%的程序设计成本和70%的程序 维护成本构成。 现在进行软件开发(程序设计),更应注意后期维护。,三、怎样学习程序设计,【例】输出排序后的100个数。 方法1:在排序的同时输出. 方法2:先排序,后输出. for(i=0;iaj) if(aia
6、j) t=ai; t=ai; ai=aj; aj=t; ai=aj; for(i=0;i100;i+) aj=t; printf(“%dt”,ai); printf(“%dt”,ai); 从执行效率上,方法1比方法2好,但从维护上,方法2比方法1好。,三、怎样学习程序设计,1、学计算机学什么 什么是“会计算机”? 会打字? 会编程? 会DIY? 会上网? 会“黑客”? 懂原理、能应用、有创新,四、C语言概述,2、计算机是什么 计算机是用来延伸人的能力的工具,需要人来驾驭 我们的职责是让它更容易被驾驭 完成这一目标的主要手段之一就是“编程(Programming)”,四、C语言概述,3、计算机与
7、人工智能 计算机行业的梦想 让计算机(Computer)能像人一样地思考, 与人自然交流 人工智能(Artificial Intelligence) 图灵测试 计算机科学之父阿兰图灵的代表作: (1)“论数字计算在决断难题中的应用”(1936); (2)“机器能思考吗”(1950).,四、C语言概述,Alan Turing(1912-1954),1997年,IBM公司研制的深蓝超级计算机在一场“人机大战”中打败了国际象棋大师卡斯帕罗夫 被誉为“人工智能的一大胜利” 深蓝的主要研制者之一许峰雄博士: 胜利靠的只是不知疲倦地高速运算,并不是什么智能,四、C语言概述,4、计算机与信息技术 计算机技术
8、与通信技术结合,构成了信息技术(Information Technology),诞生了一个新词:IT 嵌入式系统是IT未来的主要发展方向之一 典型的嵌入式系统有:机器人、手机和智能家电等,四、C语言概述,5、人与计算机的对话 两个说不同母语的人的对话方式: 一方学另一方的语言 双方都学习一种第三方语言 人与计算机的对话方式: 计算机学习人的语言(自然语言理解) 人学习计算机的语言 学习第三方语言,四、C语言概述,6、程序设计语言 机器语言编写的1+1程序 汇编语言(Assemble Language)编写的1+1程序,四、C语言概述,10111000 00000001 00000000 000
9、00101 00000001 00000000,MOV AX, 1 ADD AX, 1,6、程序设计语言 Basic语言编写的1+1程序 C语言编写的1+1程序,四、C语言概述,PRINT 1+1,#include main() printf(%dn, 1+1); ,7、流行语言,四、C语言概述,应用编程语言 机器语言 汇编语言 Basic Pascal C C+ Java C# 专项编程语言 Lotus Notes Power Builder,Web编程语言 HTML XML PHP ASP JSP JavaScript VBScript 其他 perl python VBA,8、什么是计算
10、机程序 9、C语言的发展 C语言是在20世纪70年代初问世的。对C语言的问世和推广起的作用最大的 两个人是两个软件工程师Dennis Ritchie和Ken Thompson,前者被称作C语言之 父,后者被称作Unix之父,两人后来均获得了图灵奖。,四、C语言概述,Ritchie和Thompson在开发UNIX,四、C语言概述,C is quirky, flawed, and an enormous success.,Ritchie漫画像,四、C语言概述,Dennis Ritchie和Ken Thompson接受美国国家技术勋章,10、C语言的特点 (1)语言简洁、灵活;(2)运算符丰富;(3
11、)数据类型丰富;(4)采用 结构化的程序设计方法;(5)语法限制不太严格,程序设计自由度大; (6)能实现汇编语言的大部分功能,可以直接访问硬件;(7)程序生成的 目标代码质量高,程序执行效率高;(8)可移植性好。 11、C语言程序的结构(见教材),四、C语言概述,12、C语言程序上机运行的步骤与方法 (1)运行VC+ 6.0;(2)新建一个空白的源程序文档;(3)编辑源程 序(结构一定要完整);(4)编译源程序,生成目标程序;(5)连接目标 程序,生成可执行执行;(6)执行程序,得出最后结果。 注意:在C语言程序上机的过程中,有可能出现错误,分为两类:语法 错误和逻辑错误。其中,在编译和连接
12、的过程中,出现的错误 叫语法错误;另一类错误叫逻辑错误。语法错误的修改只要根 据系统的提示就可以完成,但是,逻辑错误有时必须经过调试 才能改正。,四、C语言概述,13、算法 著名计算机科学家Wirth提出了一个著名公式: 程序=数据结构+算法+程序设计语言 计算机是如何把普通的对位的平凡操作转换成我们看到的由计算 机实现的各种各样难以置信的应用的呢?是算法。 (1)算法的概念 算法是计算机科学中最具有方法性质的核心概念,是计算机科学 领域的基石之一,被誉为计算机学科的灵魂。 所谓算法就是指为了解决一个问题而采取的方法和步骤。 算法可以分为数值算法和非数值算法。,四、C语言概述,(2)算法举例
13、第一个非平凡算法是由古希腊大数学家欧几里得提出的。约公元 前300年,欧几里得在其数学巨著几何原本(在西方,除圣经 之外,没有任何其他著作,其研究、使用和传播之广泛,能够与几 何原本相比)第七卷中阐述了著名的欧几里得算法:给定两个正整 数m和n(设m不小于n),求解其最大公约数,即求解能同时整除m和n的 最大正整数。 算法如下: 用m除以n,并令所得余数为r(r必小于n); 若r=0,算法结束,输出结果n;否则继续步骤; 将n的值赋给m,r的值赋给n,并返回步骤继续进行。,四、C语言概述,该算法用C语言实现如下: int ged(int m, int n) while(n!=0) r=m%n;
14、 m=n; n=r; return m; 思考题: 对于该问题,同学们能想出别的算法吗? 请设计出问题“交换两个杯子中的水”的算法。,四、C语言概述,(3)算法的特性 有穷性; 确定性(无二义); 可行性; 0个或多个输入; 1个或多个输出。 (4)算法的描述 用自然语言描述; 用流程图描述; 用N-S图描述; 用伪代码描述; 用计算机语言描述。,四、C语言概述,14、C语言的字符集、标识符和关键字 (1)字符集 字母、数字、空白符(空格、制表符Tab、换行符Enter)、标点 和特殊字符(逗号、分号、括号等)。 (2)标识符 变量名、符号常量名、数组名和函数名等统称为标识符。标识 符的命名规
15、则是: 由字母、数字或下划线组成; 以字母或下 划线开头。 注意: C语言区分大小写字母; 定义标识符时应做到 “见名知意”; 标识符应“先定义后使用”。,四、C语言概述,(3)关键字 指有特定含义的标识符,用户不能更改,只能使用。 注意:定义用户自己的标识符(变量名、数组名、函数名)时, 不能与关键字相同。 常用的关键字有: main、void、int、float、double、char、unsigned、while、 do、for、if、else、switch、case、default、break、continue、 return、struct、union、static、typedef。,四、C语言概述,