c语言程序设计1第一讲(第一章上).ppt_第1页
c语言程序设计1第一讲(第一章上).ppt_第2页
c语言程序设计1第一讲(第一章上).ppt_第3页
c语言程序设计1第一讲(第一章上).ppt_第4页
c语言程序设计1第一讲(第一章上).ppt_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

知识可以改变命运!,高级语言程序设计,主讲教师:贾彩燕 计算机与信息技术学院 计算机科学与技术系 ,计算机与人沟通,计算机与人沟通,计算机与人沟通,计算机与人沟通,计算机与人沟通,人和计算机通信使用 的语言为计算机语言,面向机器的语言,程序设计语言的产生发展,CPU指令系统,由0、1序列构成的指令码组成 如:10000000 加 10010000 减,用助记符号描述的指令系统 如 ADD A, B,接近于人类的自然语言和数学语言 如:c=a+b,面向过程的语言算法语言 Basic, Fortan, Pascal,C语言等,Java,C+等,机器语言和程序,机器语言是机器指令形成的语言; 形式为二进制编码,机器可直接执行,00000001000000001000 00000001000100001010 00000101000000000001 00000001000100001100 00000100000000000001 00000010000000001110,数据装入寄存器0 数据装入寄存器1 寄存器0与1的数据乘 数据装入寄存器1 寄存器0与1的数据加 保存寄存器0里的数据,难写难读,不易编程,与机器有关、程序开发效率极低。,汇编语言和程序,汇编语言:采用助记的符号形式,有利于人的阅读和使用。汇编指令与机器指令一一对应,load 0 a load 1 b mult 0 1 load 1 c add 0 1 save 0 d,将单元a的数据装入寄存器0 将单元b的数据装入寄存器1 寄存器0与1的数据乘 将单元c的数据装入寄存器1 寄存器0与1的数据加 将寄存器0里的数据存入单元d,仍然难理解,不易编程,与机器有关、程序开发效率低。,计算机无法直接执行汇编语言程序,执行前需要把汇编语言程序翻译为机器指令程序 最早时通过手工翻译为机器指令 后来人们开发出称为“汇编系统”的程序,让计算机去完成程序翻译工作,汇编语言的特点: 每条指令的意义容易理解 程序粒度太小,细节太多 程序无结构,缺乏组织手段 写大程序仍然很困难,高级语言和程序,高级语言的特点: 具有类似文字的表现形式,接近自然语言 具有丰富的数据结构,用类似数学表达式形式描述基本计算 用变量等概念取代低级的存储概念,使人摆脱各种繁琐低级的工作,例如存储的安排 提供高级操作流程控制手段和程序组织手段 与具体的机器无关,可移值性好,在C语言里写前面同样的程序: d = a * b + c;,计算机无法直接执行高级语言写出的程序 常规方式是做一个编译系统,完成高级语言程序到机器语言可执行程序的翻译加工 编程 编译加工 执行,使用高级语言编程: 编程工作的效率大大提高 人更容易思考和把握复杂程序的意义 更多人愿意投身于这种工作,使编程发展成为一种职业和谋生方式 术语“程序设计语言”已专指“高级语言”,1954年到1957年:高级语言Fortran诞生; 至1960年代中,开发了Algol 60 ,COBOL,BASIC等。还有函数式语言LISP 等; 1970年代开始:Pascal 和 C语言逐渐分别为教学科研和软件开发用的主要语言; 1980年代:逻辑程序语言Prolog,面向对象语言Smalltalk 和后来的C+; 1995年左右的Java 。,高级语言的简单历史,C语言比较小,入门容易,很快就可以开始编程 有丰富的程序机制、数据机制、函数定义机制,能满足复杂程序的需要。许多常用功能通过库实现 提供接近硬件的低级操作,广泛用于开发效率要求高的程序。被用于代替汇编语言开发底层软件 生成目标代码质量高、可移植性好,被称为“中级语言” 提供了一些支持大规模复杂软件开发的机制,C 语言的工作得到世界计算机界的广泛赞许。对计算机工业和应用发展起了重要推动作用 许多新语言从C汲取营养。如C+,Java,C#等 语言设计者获得计算机领域最高奖图灵奖,C语言的特点,C语言简介,C语言1973年由贝尔实验室的Dennis Ritchie 设计,目标是书写操作系统和其他系统程序。 C语言最早用于写UNIX系统。70年代成为UNIX的标准开发语言,随UNIX流行而被广泛接受。 80年代被搬到各种机器的许多操作系统上,逐渐成为一种开发系统程序和复杂软件的通用语言。 后来成为使用最广泛的系统开发语言。人们用C开发各种程序,从简单应用到极其复杂的大型软件。 各种计算机都有可用的C语言系统。,标准化 应用发展要求C成为更安全可靠、不依赖具体机器或操作系统的标准语言。ANSI在80年代开始标准化工作,1988年颁布ANSI C标准,后被ISO和各国接受,也采纳为中国国家标准(GB/T 15272-94)。 新标准C99已经通过。,按ANSI C标准写程序 C的原设计注重灵活性,允许许多不安全的编程方式,正确性靠编程者。用户群扩大后缺点凸现,复杂程序常有隐藏错误。标准化也是为修正C的缺陷。,ANSI(American National Standards Institute),:(由系统定义,不能重作其它定义) auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef unsigned union void volatile while,32个关键字,if( )else for( ) while( ) dowhile( ) continue break switch goto return,9种控制语句,算术运算符:+ - * / % + - 关系运算符: = != 逻辑运算符:! & | 位运算符 : | & 赋值运算符:= 及其扩展 条件运算符:?: 逗号运算符:, 指针运算符:* & 求字节数 :sizeof 强制类型转换:(类型) 分量运算符:. - 下标运算符: 其它 :( ) -,34种运算符,C 数据类型,专业主干课(融会贯通),高级语言程序设计 数据结构 计算机组成原理 汇编与接口技术 编译原理 操作系统 计算机体系结构 计算机网络原理 数据库系统原理 离散数学,面向对象程序设计与C JAVA程序设计 专题训练I、II、III 算法设计与分析 计算机图形学 计算方法 软件工程 ,教材及主要参考资料,教材 从问题到程序程序设计与C语言引论 裘宗燕 C程序设计 谭浩强 (清华大学出版社) 参考资料 C程序设计与应用,张小东等,人民邮电出版社,2009 C语言的科学与艺术,Eric S. Roberts,翁惠玉箸译,2008 The C Programming Language(C语言程序设计,第2版新版,机械) C Traps and Pit falls(C陷阱与缺陷,邮电) Expert C Programming(C专家编程,邮电) Pointers on C(C和指针,邮电) 高质量C/C+编程指南 C: A Reference Manual(C语言参考手册,机械),优点:程序设计风格良好 知识点设计螺旋式上升 从问题到程序的程序设计理念 缺点:知识点来回穿插、初学者不易接受,优点:内容层次清晰、易懂、安排精良 缺点:程序设计风格老旧,课程内容,第一章 程序设计和C语言 第二章 数据对象与计算 第三章 变量、函数和控制结构 第四章 基本程序设计技术 第五章 C程序结构(函数) 第六章 数组 第七章 指针 第八章 文件和输入输出 第九章 结构和其它数据机制 第十章 程序开发技术 第十一章 标准库,总学时(80学时) 理论教学:48学时 实践教学:32学时 上机 时间 每周四下午2:004:00 地点 主校区9#楼北4层计算机综合教学实验室,教学安排,第一章 程序设计与C语言(上),主要内容,预备知识 计算机的基本构成 计算机中数的表示及进制转换 一个简单的C程序 集成开发环境VC6.0,1.1.1计算机的特点和功能,计算机的特点: (1)电子的 (2)具有内部存储能力 (3)由程序自动控制,计算机是一个以高速进行操作、具有内部存储能力、由程序控制操作过程的自动电子装置。,计算机的功能: 数值计算和非数值计算,主机,控制器,运算器,内存储器,外存储器,输入设备,输出设备,CPU,计算机的基本组成(冯.诺依曼结构),算术和逻辑运算,存放数据和指令(二进制),CPU (Center Processor Unit),计算机各部分之间的联系,CPUcentral processing unit,计算机的脑 执行真正的计算并控制整个计算机的活动 CPU的活动由存在内存里的一系列的指令所决定,如: 某条指令可以让CPU加两个数 某条指令可以让CPU在显示器显示一个字符 通过简单指令的组合使用,计算机可以执行复杂的任务 现在计算机的CPU都是一块芯片,CPU图片,Intel CPU 示例,AMD CPU示例,Memory内存,计算机执行一个程序时,必须地方能保存如下内容: 程序本身 计算中所涉及的数据 总体而言,计算机里能够在其中保存和查询信息的硬件称为存储设备,程序中执行过程中保存活动中的程序代码本身和数据所用的存储设备称为primary storage,一般称为memory 内存一般都具有很高的效率,CPU能以极快速度访问其中的内容,内存一般是特殊的称为RAM的芯片,random-access memory,内存条图片,Secondary storage外存,内存用于存储程序运行期间的活跃数据,但有缺点: 只有计算机上电以后,内存才能工作,只要一掉电,内存里的数据就不再存在 要保存永久数据,必须采用没电也能保存数据的存储设备,这种存储设备被称为secondary storage,现在最常用的外存就是磁盘,软磁盘、硬磁盘,flash disk,光盘,各种常见存储设备,I/O devices,要使用计算机,就必须使计算机能够与外部世界的用户进行沟通 Iinput, 输入, Ooutput, 输出 典型的输入: 键盘(标准输入设备)上打的字,鼠标点击 典型的输出: 屏幕(标准输出设备)上显示的字,打印机上打出的字,耳机里听到的声音,常见的外部设备,主机板示例,1.1.2计算机中数的表示及进制转换,计算机中数的表示 数码、基与权 数码:表示数的符号 基:数码的个数 权:每一位所具有的值,数制 十进制 数码:0,1,2,3,4,5,6,7,8,9 基:10 权:518 二进制、八进制、十六进制,各种进制之间的转换,二进制、八进制、十六进制转换成十进制 方法:按权相加,各种进制之间的转换,十进制转换成二进制、八进制、十六进制 方法:用原数或商连续除以基,从低到高记录余数,直至商为0 例:把十进制数459转换成十六进制数,各种进制之间的转换,二进制与八进制之间的转换 二进制转换成八进制: 方法:从右向左,每3位一组(不足3位左补0),转换成八进制 八进制转换成二进制: 方法: 用3位二进制数代替每一位八进制数,000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7,例 (246)8=(010,100,110)2=(10100110)2,例 (1101001)2=(001,101,001)2=(151)8,各种进制之间的转换,二进制与十六进制之间的转换 二进制转换成十六进制 方法:从右向左,每4位一组(不足4位左补0),转换成十六进制 十六进制转换成二进制 方法:用4位二进制数代替每一位十六进制数,0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F,例 (11010101111101)2=(0011,0101,0111,1101)2=(357D)16,例 (4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2,内存以字节为单元组成 每个字节有一个地址 一个字节一般由8个二进制位组成 每个二进位的值是0或1,字节和位,原码:最高位为符号位,其余各位为数值本身的绝对值 反码: 正数:反码与原码相同 负数:符号位为1,其余位对原码取反 补码: 正数:原码、反码、补码相同 负数:最高位为1,其余位为原码取反,再对整个数加1,9-5=4 9+7=16=(4)12,数值的表示方法原码、反码和补码,负数补码转换成十进制数:最高位不动,其余位取反加1,例 补码:11111001 取反:10000110 加1: 10000111=-7,(用一个字节表示数),数值的表示方法定点数、浮点数,定点数 小数点的位置保持不变 正数、纯小数 浮点数 小数点的位置可以浮动 一般原则:科学计数法 尾数、基、指数 符号位、指数位、尾数位,基本术语,比特(bit):一个二进制位 字节(byte):由若干bit组成一个字节,一般8bit 字(word):由一或几个字节组成一个存储单元,称为word 地址:字或字节的编号,房间号 1kB=1024(bytes)= 210 bytes 1MB=1024*1024B=220 bytes 1GB=1024MB=230bytes 1TB=1024GB= 240bytes,主要内容,预备知识 计算机系统的基本构成 计算机中数的表示及进制转换 一个简单的C程序 集成开发环境VC6.0,1.2一个简单C程序,例1 /*演示程序1*/ #include int main () printf(“Good morning!n“); return 0; ,注意程序基本部分的写法。 程序是字符序列,应该按照易读的形式分行。程序形式应较好反映程序本身的层次结构。 可用普通编辑器编写程序,现在人们常用专门的程序开发系统写程序。,例2,/*演示程序2*/ #include int main() /*求两数之和*/ int a, b, sum; /*变量定义*/ a = 123; b = 456; sum = a + b; /*求和*/ printf(“Sum=%d.n“, sum); /*输出*/ return 0; ,主要内容,预备知识 计算机系统的基本构成 计算机中数的表示及进制转换 一个简单的C程序 集成开发环境VC6.0,实验环境,Visual C+ 6.0,简称VC VC使用方法,演示加自学,基本概念-Workspace,Workspace 工作空间 软件开发中有关空间或环境的基本概念 我们的工作就是用VC写程序来生产软件(不管我们现在做的东西是多小,也是软件),做任何工作都得有工作环境或空间,VC能给我们的软件开发提供开发的地方,即Workspace-工作空间。 在工作空间,我们可以开展软件开发工作,工作空间的概念等同于建筑工地,农田,采石场等物理空间的概念,基本概念Project,Project 项目/工程 在工作空间里我们可建立工程(做一个软件就是一个工程,写一个小程序也是一个工程)或称为开展一个工程,可以在一工作空间建立或开展多个工程。 要做一个工程要建立的很多东西(类似于盖房子时买的或做的材料和配件,然后打地基,垒墙,),做一个软件项目也需要建立很多东西,这些东西最基本的就是各种文件。,基本概念File和工作目录,File 文件 文件是项目的基本组成部分 有些文件是系统自动生成的,有些文件是自己做的,有些是别人做好的(现成配件,买或拿过来使用) 工作目录 文件必须有一个存放的地方(在盖房子的过程中,必须有地方摆放各种建筑材料,道理一样),存放文件的地方称为工作目录,称为Work directory或location of project,入门篇,如何找到VC,如何建立一个工程,如何写一个简单的程序,找到并进入Visual C+ 6.0,第一步,在开始菜单上找到VC 6.0 Microsoft Visual Studio 6.0 Microsoft Visual C+ 6.0,启动这个程序,菜单:可以选择各种功能,工具条,左视图,主视图,一般在这里写程序,工作状态,如编译错误信息,状态栏,如当前哪行哪列等,第二步 新建一个项目,在主菜单上选择File菜单 在File的下拉菜单下面选择 New 出现一个界面 选择项目的类型: projects 要求选择项目中所有文件的存放位置:location 给项目起一个名字: project name,新建一个project,各种可以选择的项目类型,实验过程中,选择Win32Console Application,项目名称,确定代码存储目录,选择工作目录,录入项目名称,1.选择该项,3.录入项目名称,4. 点击OK,2.确定工作目录,出现如下提示,要求选择控制台应用的类型,选择前三项都行,选择finish,出现如下对话框,说明系统为你自动生成的项目及内容一些基本信息,选择ok,系统在自动建立的 D:060281001MyProject目录下所生成所有文件及目录,系统生成的文件类型,.dsw文件:工作空间文件,保存工作空间信息,即工作环境里有什么项目,每个项目有什么文件,当前那个项目是活跃的,工作空间打开了哪些东西,等等 .dsp文件:项目文件,保存有关项目的信息,如一个项目包括哪些文件,项目配置信息 .cpp: VC程序源代码文件 .h: VC头文件 .obj: 目标文件 .exe: 可执行文件 其它文件如ncb, opt, clw, plg, 暂时不必知道含义,有兴趣自动去查阅,项目信息框,此处显示设计内容,点击此处可以分别以:类视图或文件视图的方式看项目内容。在学习过程一般用文件视图看各个源文件的内容,以后学过C+以后可以用类视图方式查看,此处显示各种操作结果信息,如编译错误等,调试窗口等,点击FileView 切换成文件视图,可以点击各层上的+号展开各类文件,展开后的形式: Source files:源文件 MyProject.cpp是以项目名字命名的自动生成的主程序文件,main函数一般写在该文件中,系统也可能会自动在这个文件中生成一个main函数。 stdafx.cpp是项目向导自动生成的文件 Header Files:头文件 stdafx.h也是系统自动生成文件 注意: 一般不要去删除stdafx.cpp和stdafx.h 其它文件暂时不用管它 双击MyProject.cpp即可开始工作写程序,双击MyProject.cpp后,出现该源程序文件的内容,注意随前面步骤的所选选项的不同,生成的内容会有所不同,系统生成的注释,系统自动生成的文件包含命令,不要删除它,系统自动生成的main函数,我们可以在这个函数的基础上开始写程序,当前的编辑状态信息:光标所在行列号,覆盖(OVR)或插入状态等,插入一行新语句,输出一行字符,注意: 应及保存自己写的程序 尽快学会常见的编辑方法 插入,删除,加一行,删除一行,删除部分字,翻页,到文件头部,到文件尾部,跳格(TAB),切换大小写,选中部分文字,复制,粘贴,剪切,熟悉键盘,学会中英文打字,Bui

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论