《第一章 C语言程序设计.ppt》由会员分享,可在线阅读,更多相关《第一章 C语言程序设计.ppt(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1章l 本章要点本章要点l 主要内容主要内容1.1 1.1 计算机与程序、程序设计语言计算机与程序、程序设计语言1.2 1.2 语言出现的历史语言出现的历史背景背景1.3 1.3 语言的特点语言的特点1.4 1.4 简单的简单的C C语言程序语言程序1.5 1.5 运行程序的步骤和方法运行程序的步骤和方法4/3/20234关于计算机4/3/20235Whatisacomputer?目前的PC机可每秒执行十亿次加法人用计算器一生也完不成PC机1秒钟完成的计算量4/3/20236计算机行业的梦想计算机行业的梦想与人自然交流,像人一样地思考人工智能(ArtificialIntelligence)图
2、灵测试1950年,英国数学家A.M.Turing在思想(mind)杂志上发表“计算机与人工智能”一文,提出判定机器是否具有智能的测试方法4/3/20237计算机行业的梦想博弈被认为是智能活动,AI之初主要研究下棋程序1997年,IBM公司研制的深蓝超级计算机在一场“人机大战”中打败了国际象棋大师卡斯帕罗夫被誉为“人工智能的一大胜利”世界排名第二的棋手印度人阿南得说:这是一个像人的机器和一个像机器的人之间的战斗这是一个像人的机器和一个像机器的人之间的战斗深蓝的主要研制者之一许峰雄博士:胜利靠的只是不知疲倦地高速运算,并不是什么智能深蓝中输入了近200万棋谱4/3/20238计算机行业的梦想AI的
3、先驱者之一CarnegieMellon大学(CMU)的HerbertSimon回忆说:最令他惊讶的是做“难”的事情是多么的容易,而做“容易”的事情是多么的“难”至今仍无人造出可自动穿越拥挤的房间或理解儿童故事的机器来Comput+er 计算的机器4/3/20239当前computer所面临的挑战微芯片的集成度决定于微芯片上的刻线宽度。当刻线宽度小于30纳米时,就会发生量子效应,古怪的量子定律开始起作用。电子会越过原子粗细的导线和绝缘层,从一个地方跳到另一个地方,而不穿过这两个地方之间的空间,产生致命的短路。预计刻线宽度达到50-70纳米时,硅电子芯片的集成电路将达到顶点,大概在2014年左右4
4、/3/202310未来的computer?新的计算机正在研究超导计算机纳米计算机光计算机DNA计算机量子计算机但是,短期内,基于集成电路的计算机还不会退出历史舞台4/3/202311关于程序设计语言4/3/202312很像厨师的菜谱,定义了执行某个任务所需的步骤但不幸和不同的是,你不能使用你自己的母语来写CodeWhatisprogramminglanguage?4/3/202313Whatisprogramminglanguage?计算机能读懂的语言机器语言(Machine Language)由一系列二进制由一系列二进制0和和1组成组成机器语言编写的1+1程序低级语言101110000000
5、000100000000000001010000000100000000像不像天书像不像天书?4/3/202314Whatisprogramminglanguage?PRINT 1+1结果显示结果显示在屏幕上在屏幕上#include main()printf(%dn,1+1);程序设计语言(programming language)BASIC语言编写的1+1程序C语言编写的1+1程序既不是英语,也非机器语言但更像英语但更像英语高级语言比写机器语言程序容易,但比使用英语难比写机器语言程序容易,但比使用英语难4/3/202315怎样让计算机读懂高级语言?编译器(Compiler)把源代码转换为可被
6、计算机理解的机器代码把机器代码以把机器代码以可可执行文件执行文件(Executable File)的形)的形式保存在磁盘上式保存在磁盘上一种程序设计语言对应一种编译器4/3/202316怎样让计算机读懂高级语言?程序员按照该语言的语法编写程序源代码把自己的意图写入源代码中编译器读入源代码把程序员的意图转换成可执行程序,供他人使用C C语言语言语言语言可执行程序可执行程序可执行程序可执行程序编译器编译器编译器编译器4/3/202317怎样让计算机读懂高级语言?程序设计语言是人与计算机进行交流的语言有很多种,分别适合做不同的事情现在人还只能主动学计算机的语言做不到计算机学会人的语言当计算机懂了人的
7、自然语言,就几乎不再需要编程,想让计算机干什么,尽管对着它说好了,那时程序员可能也就失业了。4/3/202318程序是如何运行的?计算机把机器代码读入到内存(Memory)由CPU运行这些代码读取输入(Input)产生输出(Output)完成程序员预定的功能计算机专业后续课程计算机原理编译原理操作系统程程序序和和数数据据执行结果执行结果4/3/202319程序开发步骤What is to be done?可执行文件扩展名为.exe的文件 分析分析分析分析(AnalysisAnalysis)设计设计设计设计(DesignDesign)编码编码编码编码(WriteWrite)编辑编辑编辑编辑(Ed
8、itEdit)编译编译编译编译(CompileCompile)链接链接链接链接(LinkLink)运行运行运行运行 (RunRun)调试调试调试调试(DebugDebug)How is it to be done?扩展名为.c的文件(对C而言)扩展名为.obj的文件4/3/202320高级语言的魅力易学、易用、易读、易懂、强大、可移植百家争鸣,据不完全统计2500种,绝大多数是高级语言http:/people.ku.edu/nkinners/LangList/Extras/langlist.htm可看到其列表和简介影响最大、寿命最长的是C语言程序设计语言数以千计,能广为流传的不过几十种,能够风
9、光20年的更是屈指可数4/3/202321流行的高级语言应用编程语言机器语言汇编语言BasicPascalCC+JavaC#专项编程语言LotusNotesPowerBuilderWeb编程语言HTMLXMLPHPASPJSPJavaScriptVBScript其他perlpythonVBAhttp:/ C语语语语言言言言的的的的地地地地盘盘盘盘4/3/202331C程序设计语言的地盘以往的擅长:与操作系统和基础工具有关的编程任务操作系统核心,设备驱动程序,系统工具,网络应用,编辑器,字处理工具,编译器,某些图形和GUI应用,以及数据库应用未来的发展:高性能、实时中间件,嵌入式领域,并发程序设
10、计等4/3/202332语言的特点(1)语言简洁、紧凑,使用方便、灵活。32个关键字、9种控制语句,程序形式自由(2)运算符丰富。34种运算符(3)数据类型丰富,提供整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型等,能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。(4)C语言是完全模块化和结构化的语言。4/3/202333语言的特点(5)语法限制不太严格,程序设计自由度大。(6)允许直接访问物理地址,可直接对硬件进行操作。兼有高级和低级语言的功能。(7)目标代码质量高,程序执行效率高。只比汇编程序生成的目标代码效率低10-20%。(8)用C语言编写的程序可移植性好。基
11、本上不做修改就能用于各种型号的计算机和各种操作系统。4/3/202334语言的特点解释解释1 1:C+是由于开发大型应用软件的需要而产生的,并不是所有的人都要去编写大型软件。解释解释2 2:面向对象的基础是面向过程。C+是面向对象的语言,C是面向过程的,学起来比C语言困难得多,所以不太适合程序设计的初学者。问题:问题:既然有了面向对象的既然有了面向对象的C+C+语言,为什么还要学习语言,为什么还要学习C C语言?语言?4/3/202335怎样学好编程?学习编程最好的方法之一就是阅读源代码多读书,积累编程技巧擅于利用身边的工具与环境学习编程的秘诀是:编程,编程,再编程!4/3/202336优秀程
12、序员的基本素质扎实的基础。数据结构、离散数学、编译原理程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。(ObjectOrientedProgramming,OOP,面向对象程序设计)4/3/202337优秀程序员的基本素质丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案。4/3/202338优秀程序员的基本素质不滥用技巧技巧的优点:能另辟蹊径的解决问题能另辟蹊径的解决问题缺点:不为人所熟知,可读性差,容易留下隐患不为人所熟知,
13、可读性差,容易留下隐患滥用技巧不是锦上添花,而是画蛇添足失败的技巧常被讽刺为失败的技巧常被讽刺为“伎俩伎俩”卖油翁卖油翁的故事的故事4/3/202339优秀程序员的基本素质不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。让负责编程的那部分大脑细胞就得到充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。4/3/202340优秀程序员的基本素质韧性和毅力。这也许是高手和一般程序员最大的区别。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的。成功能给我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的
14、素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。4/3/202341优秀程序员的基本素质严谨的思维4/3/202342优秀程序员的基本素质良好的编程风格,规范化编程。养成良好的习惯,代码的缩进,变量的命名规则要始终保持一致。不要忽视对注释的排错。注释是程序的一个重要组成部分,它可以使你的代码更容易理解而如果代码已经清楚地表达了你的思想,就不必再加注释了如果注释和代码不一致,那就更加糟糕4/3/202343简单的C语言程序4/3/202344例1.1#include void main()printf(This is a C program.n);/*
15、文件包含*/*主函数*/*函数体开始*/*输出语句*/*函数体结束*/说明:说明:说明:说明:main-主函数名,void-函数类型每个C程序必须有一个主函数main 是函数开始和结束的标志,不可省每个C语句以分号结束使用标准库函数时应在程序开头一行写:#include 说明:说明:本程序的作用是输出一行信息本程序的作用是输出一行信息:This is a C program.This is a C program.4/3/202345例1.2 求两数之和#include#include void main()void main()/*/*求两数之和求两数之和*/intint a,b,suma,b,sum;/*/*声明,定义变量为整型声明,定义变量为整型*/*/*以下以下3 3行为行为C C语句语句*/a=123;b=456;a=123;b=456;sum=sum=a+ba+b;printf(sumprintf(sum is%d is%dn,sumn,sum););说明:说明:说明:说明:/*/表示注释。注释只是给人看的,对编译和运行不起作用。所以可以用汉字或英文字符表示,可以出现在一行中的最右侧,也可以单独成为一行。说明:说明:输出一行信息输出一行信息:sum is 579:sum is 5794/3/202346运行程序的步骤和方法