第1章程序设计ABC苏小红孙志岗sxh@hit.edu.cn,sun@hit.edu.cn2020/1/19C语言大学使用教程课件制作人苏小红孙志岗2计算机与人工智能•计算机行业的梦想–让计算机(Computer)能像人一样地思考,与人自然交流,–人工智能(ArtificialIntelligence)•图灵测试2020/1/19C语言大学使用教程课件制作人苏小红孙志岗3计算机与人工智能•1997年,IBM公司研制的深蓝超级计算机在一场“人机大战”中打败了国际象棋大师卡斯帕罗夫–被誉为“人工智能的一大胜利”•深蓝的主要研制者之一许峰雄博士:–胜利靠的只是不知疲倦地高速运算,并不是什么智能2020/1/19C语言大学使用教程课件制作人苏小红孙志岗4计算机与信息技术•计算机技术与通信技术结合,构成了信息技术(InformationTechnology),诞生了一个新词:IT•嵌入式系统是IT未来的主要发展方向之一–典型的嵌入式系统有:机器人、手机和智能家电等2020/1/19C语言大学使用教程课件制作人苏小红孙志岗5计算机•计算机是用来延伸人的能力的工具,需要人来驾驭•我们的职责是让非计算机专业的人更容易驾驭它•完成这一目标的主要手段之一就是“编程(Programming)”2020/1/19C语言大学使用教程课件制作人苏小红孙志岗6计算机基本工作过程•整个过程的执行者是硬件,但硬件是受软件控制的•编程,就是编写软件,使硬件按照人的意图工作2020/1/19C语言大学使用教程课件制作人苏小红孙志岗7计算机基本工作过程输入/输出设备存储器运算器控制器源程序和输入数据输出结果取出数据存入数据操作命令存取命令取出程序指令输入输出命令计算结果CPU“冯·诺依曼机”结构大脑记忆装置眼睛和耳朵程序和数据执行结果2020/1/19C语言大学使用教程课件制作人苏小红孙志岗8软件的形成•软件(Software)的形成–程序员(Programmer)编写程序源代码(SourceCode)–编译器(Compiler)把源代码转换为可被计算机理解的机器代码(MachineCode)–并把机器代码以可执行文件(ExecutableFile)的形式保存在磁盘上2020/1/19C语言大学使用教程课件制作人苏小红孙志岗9软件运行过程的简单描述•软件的运行–计算机把机器代码读入到内存(Memory)–由CPU运行这些代码–读取输入(Input)–产生输出(Output)–完成程序员预定的功能•计算机专业后续课程–计算机原理–编译原理–操作系统2020/1/19C语言大学使用教程课件制作人苏小红孙志岗10•程序设计语言(ProgrammingLanguage)是人与计算机进行交流的语言•计算机直接能读懂的语言–机器语言(MachineCode),也叫机器代码–一种纯粹的二进制语言程序设计语言的故事2020/1/19C语言大学使用教程课件制作人苏小红孙志岗11程序设计语言的故事•计算机为什么用二进制呢?•为什么不用我们日常熟悉的十进制呢?–二进制在在电器元件中容易实现–计算机进行二进制运算比进行十进制运算要简单得多2020/1/19C语言大学使用教程课件制作人苏小红孙志岗12程序设计语言的故事•机器语言编写的1+1程序•汇编语言(AssembleLanguage)编写的1+1程序101110000000000100000000000001010000000100000000MOVAX,1ADDAX,12020/1/19C语言大学使用教程课件制作人苏小红孙志岗13程序设计语言的故事•BASIC语言编写的1+1程序•C语言编写的1+1程序PRINT1+1#includestdio.hmain(){printf(%d\n,1+1);}2020/1/19C语言大学使用教程课件制作人苏小红孙志岗14程序设计语言•一种程序设计语言对应一种编译器•程序员按照该语言的语法编写程序源代码,把自己的意图融入到代码中•编译器读入源代码,把程序员的意图转换成可执行程序,供他人使用2020/1/19C语言大学使用教程课件制作人苏小红孙志岗15程序设计语言•编辑(Edit)–扩展名为.c的文件•编译(Compile)–扩展名为.obj的文件•链接(Link)–形成最后的可执行文件–扩展名为.exe的文件•运行(Run)2020/1/19C语言大学使用教程课件制作人苏小红孙志岗16流行语言•应用编程语言–机器语言–汇编语言–Basic–Pascal–C–C++–Java–C#•专项编程语言–LotusNotes–PowerBuilder•Web编程语言–HTML–XML–PHP–ASP–JSP–JavaScript–VBScript•其他–perl–python–VBA2020/1/19C语言大学使用教程课件制作人苏小红孙志岗17C程序设计语言•简称C语言–BCPL语言进化成B语言,B语言又进化为C语言•是一种高级语言–高级语言并不是“高级”,只是相对低级语言,在一个高的级别上进行编程•历史悠久,战勋卓著–诞生于上世纪70年代初,成熟于80年代–“ANSIC”标准的发布是C语言成熟的标志–很多重量级软件都是用C写的•上天入地,无所不能–几乎没有不能用C写出来的软件,没有不支持C的系统2020/1/19C语言大学使用教程课件制作人苏小红孙志岗18C程序设计语言硬件(Hardware)操作系统(OS)应用程序(Application)应用平台基于平台的应用程序低级语言的地盘高级语言的地盘C语言的地盘2020/1/19C语言大学使用教程课件制作人苏小红孙志岗19C程序设计语言•C语言被分类位高级语言,但实际上它是一种介于高级语言和低级语言之间的语言。•很多流行语言、新生语言都借鉴了它的思想、语法–从C++,到Java,再到C#•正确地学好C语言,是学习这些流行语言的基础。2020/1/19C语言大学使用教程课件制作人苏小红孙志岗20C语言的设计者DennisM.Ritchie2020/1/19C语言大学使用教程课件制作人苏小红孙志岗21和Unix的设计者KenThompson接受美国国家技术勋章2020/1/19C语言大学使用教程课件制作人苏小红孙志岗22Ritchie和Thompson在开发UNIX