1 / 37

C 语言程序设计

C 语言程序设计. 主讲:沈济南. TEL: 13971887071 E-mail: shenjinan@163.com. 课程安排. 总学时: 64 学时(理论 40 学时 实验 24 学时) 教材: C 语言程序设计教程 · 中国铁道出版社 · 李清政等编 参考教材: C 语言程序设计教程 · 华中科技大学出版社 · 秦友淑等编 C 语言程序设计教程 · 清华大学出版社 · 谭浩强等编. 计算机技术学什么?. 什么是 “ 会计算机 ” ? 会打字? 会编程? 会 DIY ? 会上网? 会 “ 黑客 ” ? …… 懂原理、能应用、有创新.

kasen
Download Presentation

C 语言程序设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C语言程序设计 主讲:沈济南 TEL:13971887071 E-mail:shenjinan@163.com

  2. 课程安排 • 总学时: • 64学时(理论40学时 实验24学时) • 教材: • C语言程序设计教程·中国铁道出版社·李清政等编 • 参考教材: • C语言程序设计教程·华中科技大学出版社·秦友淑等编 • C语言程序设计教程·清华大学出版社·谭浩强等编

  3. 计算机技术学什么? • 什么是“会计算机”? • 会打字? • 会编程? • 会DIY? • 会上网? • 会“黑客”? • …… • 懂原理、能应用、有创新

  4. 计算机(Computer) • 计算机是用来延伸人的能力的工具,需要人来驾驭 • AI能实现吗?(AI,Artificial Intelligence,人工智能) • 会有那么一天,人与计算机的位置互换吗? • 我们的职责是让它更容易被驾驭 • 自我毁灭的过程

  5. 人与计算机的对话 • 两个说不同母语的人的对话方式: • 一方学另一方的语言 • 双方都学习一种第三方语言 • 人与计算机的对话方式: • 计算机学习人的语言(自然语言理解) • 人学习计算机的语言 • 学习第三方语言

  6. 人与计算机的鸿沟 客观世界 (问题域) 对问题域的认识(人) 自然语言 语言的鸿沟 语言的过渡(人) 编程语言 编程(人) 程序的理解和执行(机器) 客观世界 (问题域)

  7. 语言的发展使得鸿沟变小 客观世界 (问题域) 自然语言 语言的鸿沟 面向对象高级语言 非OO的高级语言 汇编语言 机器语言 计算机

  8. 机器语言 • 计算1+1 10111000 00000001 00000000 00000101 00000001 00000000

  9. 汇编语言

  10. BASIC语言 PRINT 1+1

  11. C语言 #include <stdio.h> main() { printf("%d\n", 1+1); }

  12. CPL语言:剑桥大学,1963年 经简化 BCPL语言:剑桥大学,1967年 进一步简化 B语言:Bell实验室,1970年 在PDP机器上用其编写UNIX系统 保持精练、接近硬件的优点,克服数据类型过少的不足 C语言:Bell实验室,1972~1973年用其改写UNIX系统 C语言的发展

  13. C语言的创世纪 • 一切从一个叫“Space Travel”的电子游戏开始…… • 为了让他的游戏能在PDP-7上运行,Ken Thompson用汇编语言给PDP-7写了一个操作系统——UNIX • 汇编太不好用了,Thompson需要高级语言 • 试验了一些高级语言,包括Fortran,都不理想 • 他在BCPL基础上,自己设计了一个B语言 • UNIX开始发展,B也不够用了 • Dennis Ritchie加入,把B改造成C • 开始用C重写UNIX

  14. Ritchie和Thompson在开发UNIX

  15. 接受美国国家技术勋章

  16. C程序设计语言 • 是一种高级语言 • 高级语言并不是“高级”,只是相对低级语言,在一个高的级别上进行编程 • 历史悠久,战勋卓著 • 诞生于上世纪70年代初,成熟于80年代(C89),修订与90年代(C99) • 很多重量级软件都是用C写的 • 上天入地,无所不能 • 几乎没有不能用C写出来的软件,没有不支持C的系统 • 很多流行语言、新生语言都借鉴了它的思想、语法 • 从C++,到Java,再到C#,还有php等

  17. C语言的祖师爷Dennis M. Ritchie http://www.cs.bell-labs.com/who/dmr/

  18. Ritchie漫画像 C is quirky, flawed, and an enormous success.

  19. 第1章 C语言及程序设计概述 讲授:沈济南 TEL:13971887071 E-mail:shenjinan@163.com

  20. 1.1 程序与程序设计语言 • 1.1.1 程序的概念 • 程序是计算机指令的序列,是可以被连续执行的一条条指令的集合 。 • 1.1.2 程序设计语言的发展 • 计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程 • 1.1.3 C语言的发展及特点

  21. C语言的特点 • 1)语言简洁、紧凑,使用方便、灵活 • 2)具有结构化的控制语句,以函数作为程序模块以实现程序的模块化。 • 3)数据类型丰富 • 4)允许直接对位、字节和地址进行操作 • 5)可直接操纵硬件 • 6)生成的目标代码质量高,程序执行效率高 • 7)可移植性好

  22. 1.2 程序设计方法 • 1.2.1 结构化程序设计方法 • 1.2.2 面向对象程序设计方法

  23. 1.3 算法及其表示 • 程序规定了计算机执行的动作和动作的顺序,一个程序应包括以下两方面的内容: • (1)对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构。 • (2)对操作的描述。即操作步骤,也就是算法。 • 程序 = 数据结构 + 算法+程序设计方法+语言环境 (Nikiklaus Wirth )

  24. 1.3 算法及其表示 • 算法的概念 • 计算机解决问题的方法和步骤,就是计算机的算法 • 算法的组成要素 • 操作+控制结构 • 算法的特征 • 有穷性 、确定性 、可行性 、输入、输出 • 算法的表示 • 自然语言表示、流程图表示、伪代码表示、计算机语言表示

  25. 自然语言表示求5! 原始方法: Step1:求1×2,得到结果2; Step2:将Step1中的结果乘以3,得到新的结果6; Step3:将Step2中的结果乘以4,得24; Step4:将Step3中的结果乘以5得到最后的结果120。

  26. 自然语言表示求5! 改进方法: Step1:使p=1; Step2:使i=2; Step3:使p×i乘积放在p中; Step4:使i的值增加1; Step5:如果i的值不大于5,返回Step3重复Step4和Step5。最后的p值为所求。

  27. 标准流程图符号

  28. 开始 起止框 i=2;p=1 输入/输出框 判断框 i<=5 ? 处理框 p*ip;i+1i; 流程线 输出z 结束 用流程图表示求5!的算法 Y N

  29. 用伪代码表示算法求5! 开始: 置t的初值为1 置i的初值为2 当i<=5,执行下面的操作: 使t=t*i 使i=i+1 (循环体到此结束) 打印t的值 结束 也可以写成以下形式: Begin(算法开始) 1->t 2->i while i<=5 { t*i->t i+1->i} Print t End(算法结束)

  30. 用计算机语言实现算法求5! /*源程序名:CH0104.C*/ /*01*/ main() /*02*/ { int i,p; /*03*/ p=1; i=2; /*04*/ while(i<=5) /*05*/ { /*06*/ p=p*i; /*07*/ i=i+1; /*08*/ } /*09*/ printf("%d",p); /*10*/ }

  31. 1.4 C语言程序的基本结构 一个完整的C语言程序,是由一个main()函数(又称主函数)和若干个其它函数结合而成的,或仅由一个main()函数构成 /*功能:仅由main()函数构成的C语言程序示例*/ /*源程序名:CH0105.C*/ /*01*/ main() /*02*/ { /*03*/ printf(“Hello World!\n”); /*04*/ } 程序运行时,在屏幕上显示一行英文: Hello World! 。

  32. 1.4 C语言程序的基本结构 • 1.4.1 C程序的结构特点 • 1.4.2 源程序书写格式

  33. 1.5 C语言的基本语法单位 • 1.5.1 C语言的字符集 • 1.5.2 关键字 • 1.5.3标识符 • 1.5.4 分隔符 • 1.5.5 注释

  34. 1.5.1 C语言的字符集 字符是组成语言的最基本的元素。C语言字符集由字母,数字,空格,标点和特殊字符组成。在字符常量,字符串常量和注释中还可以使用汉字或其它可表示的图形符号。 (1)字母:小写字母a~z共26个,大写字母A~Z共26个; (2)数字:0~9共10个; (3)空白符:空格符、制表符、换行符等统称为空白符。空白符只在字符常量和字符串常量中起作用。在其它地方出现时,只起间隔作用,编译程序对它们忽略。因此在程序中使用空白符与否,对程序的编译不发生影响,但在程序中适当的地方使用空白符将增加程序的清晰性和可读性; (4)标点和特殊字符。

  35. 1.5.2 关键字 关键字是由C语言规定的具有特定意义的字符串,通常也称为保留字。用户定义的标识符不应与关键字相同。标准C定义的32个关键字如下表

  36. 1.5.3标识符 • 在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。C 规定,标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。 以下标识符是合法的: a x _3x BOOK_1 sum5 以下标识符是非法的: 3s 以数字开头 s*T 出现非法字符* -3x 以减号开头 bowy-1 出现非法字符减号

  37. C语言程序设计 主讲:沈济南 TEL:13971887071 E-mail:shenjinan@163.com

More Related