1、计算机基础及C程序设计语言,教 师:曾晓东电 话:13679007201E_mail:,教学重点,(1)掌握程序设计的基本概念、基本方法;(2)在C/C+语言环境下,学会如何针对问题进行分析、构建数学模型,寻找算法并编程实现;(3)有条有理有根有据地编程实践(4)养成良好的编程风格与习惯(5)重在思维方法的学习,鼓励创新,课程要求,(1)按时上课:注意课前预习,课后复习;(2)按时完成网上作业,慎用参考题解;(3)注重实践:除按照规定时间上机认真完成上机作业外,请自己寻找一切机会上机;(4)积极参与课堂讨论;,为什么计算机俗称为“电脑”期望计算机有朝一日能象人脑一样聪明让机器能像人一样思考,一
2、直是人类的梦想许多科幻故事描述了计算机真正成为电脑时的景象变形金刚机器人大战AI(人工智能)人类与机器人的感情终结者机器希望消灭人类Matrix(黑客帝国)机器控制人类,问题1 你了解计算机吗?,你了解计算机领域中的哪些著名人物?,问题2 你了解计算机领域的哪些人?,艾伦麦席森图灵 英国数学家、逻辑学家,被称为计算机科学之父,人工智能之父。 1950年,他提出关于机器思维的问题,发表论文机器能思考吗。赢得了“人工智能之父”的桂冠。提出了著名的“图灵测试”,指测试者与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问。进行多次测试后,如果有超过30%的测试者不能确
3、定出被测试者是人还是机器,那么这台机器就通过了测试,并被认为具有人类智能。30%是图灵对2000年时的机器思考能力的一个预测,目前我们还远远落后于这个预测。,问题3 什么是图灵测试?,问:你会下国际象棋吗? 答:是的。 问:你会下国际象棋吗?答:是的。问:请再次回答,你会下国际象棋吗?答:是的。,问:你会下国际象棋吗? 答:是的。 问:你会下国际象棋吗?答:是的,我不是已经说过了吗? 问:请再次回答,你会下国际象棋吗?答:你烦不烦,干嘛老提同样的问题。,问题4 什么是人工智能?,缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。该领域的研究包
4、括机器人、语言识别、图像识别、自然语言处理和专家系统等主要成果人机对弈1997年,深蓝战胜国际象棋第一人卡斯帕罗夫 2017年,AlphaGo战胜围棋第一人柯洁模式识别指纹、人像、图像、文字、车牌识别,声音识别自动工程自动驾驶、无人工厂、无人码头知识工程专家系统、机器翻译、数据挖掘,问题5 什么是计算机系统?,计算机系统由计算机硬件和软件两部分组成。硬件包括中央处理机、存储器和外部设备等;软件是计算机的运行程序和相应的文档。计算机系统具有接收和存储信息、按程序快速计算和判断并输出处理结果等功能。,第一代计算机基于真空管技术 无操作系统采用机器指令或汇编语言,第二代计算机晶体管批处理系统使用Fo
5、rtran和汇编语言科学与工程计算,第三代计算机集成电路Unix系统使用Fortran、Cobol和汇编语言科学计算商业应用,第四代计算机超大规模集成电路Linux、Windows面向对象语言人类的生活,问题6 什么是硬件?,计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称 运算器计算机中执行各种算术和逻辑运算操作的部件性能指标:机器字长、运算速度(时钟频率) 控制器整个计算机系统的控制中心 把控制器与运算器合称为中央处理器(Central Processing Unit,CPU) 存储器计算机系统中的记忆设备,用来存放程序和数据 内存(GB)、外存(硬盘TB)输入设备键盘、鼠标、
6、扫描仪输出设备显示器、打印机,问题7 什么是软件?,指计算机系统中的程序及其文档。程序是计算任务的处理对象和处理规则的描述;文档是为了便于了解程序所需的阐明性资料。 系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。操作系统数据库系统应用软件 是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,分为应用软件包和用户程序。,问题8 软件与硬件的关系是什么?,硬件计算机的躯壳和肉体软件计算机的灵魂和思想软件促进了计算机从祼机到
7、计算机系统的进化,问题9 程序和软件有区别吗?,程序(Program)为了实现特定目标或解决具体问题而用计算机语言编写的指令的有序集合程序、数据、文档之间的关系,问题10 人与计算机交流用什么语言?,如果你想成为周游世界的旅行家,那么你大概需要学习用6912种语言说:你好,厕所在哪里?BrianHayes分号的战争 人类之间交流的语言:汉语、英语让计算机像人一样思考,与人自然交流,是计算机行业的梦想自然语言理解计算机学会人的语言,与人自然交流目前人机交互还只能使用严格限制的专用语言人类只能主动学习计算机语言,尚未做到计算机学会人类的语言,问题11 计算机能读懂什么语言?,计算机只能识别二进制指
8、令机器语言(Machine Language)机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令系统的集合。机器语言具有灵活、直接执行和速度快等特点。集成示例0000,0000,000000010000 代表 LOAD A, 160000,0001,000000000001 代表 LOAD B, 10001,0001,000000010000 代表 STORE B, 160001,0001,000000000001 代表 STORE B, 1,问题12 如何让程序员远离二进制?,用助记符代表机器指令的操作码汇编语言(Assembly Language)低级语言,与计算机硬件的距离
9、近,级别低,硬件依赖性强,问题13 如何实现更有效的人机交流?,设计更贴近人类自然语言和数学语言的计算机语言高级语言可以在更高级别上进行编程不依赖于硬件远离机器语言易学易用,具有可移植性,问题14 如何将高级语言翻译成机器语言?,编译型语言程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C+、Delphi等 解释性语言程序不需要编译,程序在运行时才翻译成机器语言,每执 行一次都要翻译一次。因此效率比较低。比如Basic、JavaScript、VBScript、Perl、Pytho
10、n、Ruby、MATLAB,高级语言的特点,BASIC语言编写的1+1msgbox(1+1),非英语、非机器语言,更像英语必须通过编译器或解释器翻译成机器语言形式的目标代码,才能被计算机识别和执行易学易用、易读易懂、强大、可移植,C语言编写的1+1#include using namespace std;void main() cout1+1endl;,高级语言的发展历程,1954年约翰巴克斯发明Fortran,主要用于公式计算百家争鸣,据说有2500种影响最大者,非C莫属,程序语言受欢迎程度排行,C语言的诞生始末,汇编编写UNIX太慢,其它高级语言无法实现汇编的某些功能DMR在B语言基础上设
11、计出C语言,UNIX90%以上的代码由C语言编写1983年,由于UNIX和C语言的巨大成功,Ken和DMR获得图灵奖,C语言的诞生始末,指计算机系统中的程序及其文档。程序是计算任务的处理对象和处理规则的描述;文档是为了便于了解程序所需的阐明性资料。 系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。操作系统数据库系统应用软件 是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,分为应用软件包和用户程序。,C语言标准,197
12、8年,Dennis M.Richie和Brain W.Kernighan合著影响深远的名著The C Programming Language1982年,ANSI(美国国家标准化委员会)成立C标准委员会1989年,发布第一个完整的C语言标准,C89,又称标准C1990年,ANSI C被ISO(国际标准化组织)采纳,称C901999年,ISO发布C992011年,ISO发布C11,问题15 为什么要学习C语言,C语言的优点(1) C语言是一种结构化的程序设计语言(2) 既具有高级语言的特性,又具有汇编语句的功能; 既可以写系统软件,又可以写应用软件(3) 数据结构丰富(4) 高效(5) 可移植性
13、好(6) 适用范围大历史悠久,战勋卓著上天入地,无所不能几乎没有不能用C语言实现的软件没有不支持C语言的系统,问题16 C语言适合做什么?,问题17 选择语言的标准是什么?,适合的才是最好的C语言最适合哪些应用编写系统软件(如操作系统)和工具软件运行效率要求较高的系统设备驱动程序、嵌入式系统(工业机器人、家用机器人、智能手机、智能家电等)高性能、实时系统,问题18 计算机、程序员、程序之间的关系,程序员(Programmer)编写程序源代码(Source Code)的人三者之间的关系,程序开发的步骤,问题19 如何学好C语言?,课程中心,本课程所有的作业、报告均需提交到四川大学课程中心课程中心
14、网址:http:/软件要求:浏览器必须使用IE8或IE9用户名:你的学号,如2016141431001密码:初始密码 也是你的学号, 进入后最好修改,课程中心,登录后,选择本课程,点击课程互动,进入本课程网站。在网络考试中选择作业以完成每周作业,注意作业的最晚提交时间。本课程每周需大家完成一次网络作业。题型为选择题和编程题。实验报告在本网站作业系统中提交。可在本课程中心提问下载课件、习题等资料,软件下载地址,VS2008网址:https:/ https:/ tegeVS2013密钥网址: https:/ 密码: fpkf,课程成绩构成,1、实验成绩(36%)实验报告共12次,采用5分制评分实验
15、完成后两周内在课程中心的作业栏提交。实验需独立完成,如有雷同,所有雷同报告均扣1.5分或2分,扣至3分以下。实验报告评分标准参见实验一2、平时成绩(14%)每周一次网上作业,下周一晚上以前提交每次课均有课堂作业,当场提交,课程成绩构成,3、期终考试(50%)闭卷考试,考题80%左右来自C语言题库题型:单项选择题:40-50分读程序题:20-30分程序填空题:20-30分,课程成绩构成,4、日常考勤每次课均会做5道左右的选择题,并评讲答案;不计对错,只记录是否上交;预计本学期共做20次左右的课堂作业,5次及以上无故未交课堂作业者,学期成绩计为不及格。可以申请免听,申请者请于第6周周一以前登录课程中心进行免听考试,考试合格者可以免听,不需到课堂听课,只需按要求每周进行周考,按要求提交实验报告即可。免听考试内容:全为单项选择题,共50题,要求15分钟以内完成。考试成绩不低于80分为合格。免听名单第6周周三上课时公布。,参考书目,曾晓东,梁斌. C程序设计实战教程-实验指导及题库解析. 世界图书出版公司,2016谭浩强. C 程序设计(第三版).北京:清华大学出版社,2005林锐,韩永泉. 高质量程序设计指南C+/C语言(第三版). 北京:电子工业出版社,2014李根福,贾丽君. C语言项目开发全程实录. 北京:清华大学出版社,2013,