《第一章 程序设计和C语言.ppt》由会员分享,可在线阅读,更多相关《第一章 程序设计和C语言.ppt(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一章 程序设计和语言,金朝海 ,北京航空航天大学,计算机系统简介 1.1 计算机语言及其发展历程 1.2 语言产生的历史背景 1.3 语言的特点 1.4 语言基本语法成分 1.5 语言程序结构 1.6 语言程序的编辑、编译、运行 1.7 语言程序的上机步骤,北京航空航天大学,计算机 (电脑), 是一种以高速进行运算,具有内部存储能力,由程序控制操作过程的自动电子装置。是20世纪最重大的发明之一。,计算机系统简介,北京航空航天大学,计算机系统,硬件系统,软件系统,主机,外部设备,中央处理器 CPU,运算器(ALU ),控制器,内(主)存储器,随机存储器(RAM),只读存储器(ROM),外(辅)
2、存储器 - 硬盘、光盘、软盘,输入设备 - 键盘、鼠标、扫描仪,输出设备 -显示器、打印机、绘图仪,系统软件,应用软件,操作系统,语言处理程序,服务程序(诊断、排错、编辑等),数据库管理程序,北京航空航天大学,数据在计算机内部的存储运算形式,任何数据,无论数值、文字、声音还是图像,它们在计算机内部都表现为二进制数字形式,用0,1两个代码组成,并以这种形式存储、运算和传递。这是因为计算机主要由电子元器件组成,而电子元器件大都具有双稳态性质,如晶体管的导通和截止、集成电路的高低电位等。 用二进制便于算术运算和逻辑运算。,北京航空航天大学,数据存储的最小单位:位(bit) 数据存储的最基本单位:字节
3、(Byte) 计算机处理数据的基本单位:字长(word),位bit,字长,字节Bety (8bit),10111001,10101111,11111000,11111110,北京航空航天大学,字长是计算机内部一次可以处理的二进制数码的位数。字长越长,数据处理的速度越快。然而,字长越长,计算机的硬件代价相应也增大。目前微型计算机的字长以32位为主。 4004:4位 8008:8位 8086、8088、80286:16位 80386、80486、奔腾:32位 (x86-64):64位,北京航空航天大学,1.1 计算机语言及其发展历程,计算机是由程序控制操作过程的。所有的程序都是用计算机语言编写的。
4、计算机语言是人们用来向计算机传递信息与下达命令的通信工具。 计算机语言的发展大致经历了机器语言、汇编语言、高级语言的发展阶段,北京航空航天大学,1) 机器语言: 计算机可以直接识别和执行的二进制语言 如: 加法指令: 1 0 0 0 0 0 0 0 减法指令: 1 0 0 1 0 0 0 0 计算机可以直接识别和执行,但难以阅读和记忆。,2) 汇编语言:用“助记符”来表示机器指令 如: ADD A, B SUB A, B 计算机不能直接识别和执行, 必须经过一个叫汇编程序的系统软件翻译成机器语言程序(即目标程序)后才能执行。,3) 高级语言:由贴近自然语言的“词”和“数学公式”组成 如:C、F
5、ORTRAN等,用+和-来表示加减运算。 计算机也不能直接执行算法语言描述的源程序,必须先经过编译程序或解释程序翻译成目标程序后,才能由计算机执行。,北京航空航天大学,几种广泛流行的高级语言的发展变迁情况(经历了从早期语言到结构化程序设计语言,从面向过程到非过程化程序语言的过程。 ),北京航空航天大学,1.2 语言产生的历史背景,C语言是目前程序设计领域中最有影响力的一种程序设计语言。可是,它却是“漫不经心”地开发出来的。 20世纪60年代,Bell实验室的Ken Thompson 着手开发后来对计算机产生了巨大影响的UNIX操作系统。为了描述UNIX,Thompson首先将当时的一种专门用来
6、描述系统程序的BCPL语言改进为他称为B的语言。1970年Thompson发表了用汇编语言和B语言写成的PDP-7上实现UNIX的初版。,北京航空航天大学,1971年,Dennis Ritchie开始协助Thompson开发UNIX。他对B语言做了进一步的充实和完善,加入数据类型和新的句法,于1972年推出了一种新型程序设计语言C语言(取BCPL的第2个字母)。 C语言借助UNIX操作系统的翅膀而起飞,UNIX操作系统也由于C而得以快速移植落地生根,两者相辅相承,成就了软件开发史上历时30年的时代。,北京航空航天大学,A L G O L 语 言,C P L 语 言,BCPL 语言,B 语 言,
7、1963年,剑桥大学修改为,1967年,剑桥大学的 Matin Richards 将其简化为,C语言,1970,美国贝尔实验室 Ken Thompson修改为且做出 第一个关于UNIX系统的B语言,1973年, 贝尔实验室 D.M.Ritchie 设计出,北京航空航天大学,Thompson(左)和Ritchie(中)于1999年接受当时美国总统克林顿授予的国家技术勋章,北京航空航天大学,1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著The C Programming Language,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。以后,又有
8、多种程序设计语言在C语言的基础上产生,如C+、Visual C+、Java、C#等。,北京航空航天大学,1.3 语言的特点,语言简洁、紧凑,使用方便、灵活。 拥有丰富的数据类型 。 运算符极其丰富。 可移植性好(较之汇编语言)。 可以实现汇编语言的大部分功能 (可以直接操纵硬件) 。兼具汇编语言和高级语言的优势。 生成的目标代码质量高,程序执行效率高。,北京航空航天大学,1.4 C语言基本语法成分,一、C语言字符集 1、英文字母:大小写各26个,共计52个; 2、阿拉伯数:09共10个数字; 3、下划线:_; 4、特殊符号:通常指由12个符号组成的运算符。 算术运算符: + - * / % +
9、 - 关系运算符: = 条件运算符: ?: 和赋值运算符:= 其他分隔符: ( ) . , ;,北京航空航天大学,二、标识符(名字) 用来标识变量名、符号常量名、函数名、数组名的有效字符序列。标识符由用户自定义。 C语言规定: 标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。 例如: 合法标识符:_22A,lea_1,avg3,day,BCde43xyw8 不合法标识符:M.J.YORK,$_238,#xy,a*b,8Tea 注意: 在C语言中,大小写字母不等效。因此,a和A,I和i,Sum和sum,分别是两个不同的标识符。 建议:标识符命名应有一定意义,做到见名知
10、义,北京航空航天大学,三、关键字(保留字) 就是具有特定含义的标识符,用户不能用来作自定义标识符。由ANSI标准推荐的关键字有32个,常用的有: 与数据类型有关的: char int float double signed unsigned short long void struct union typedef enum sizeof 与存储类别有关的: auto extern register static 与程序控制结构有关的: do while for if else switch case default goto continue break return,北京航空航天大学,四、运
11、算符 运算符将常量、变量、函数连接起来组成表达式,表示各种运算。运算符可以由一个或多个字符组成。 五、分隔符 逗号,空格。 起分隔、间隔作用。 六、注释符 格式:/* . */。编译时编译系统忽略注释。 作用:注释、调试程序。,北京航空航天大学,例1.1 void main() printf(“This is a C program.n”) ; ,主函数:每个C语言程序都必须有一个main函数,它是每一个C语言程序的执行起始点(入口点)。,1.5 C语言程序结构,北京航空航天大学,例1.2: void main() int a, b, sum; a = 123; b = 456; sum =
12、a + b; printf(“sum = %dn”, sum); ,变量声明:声明了三个具有整数类型的变量a,b,sum。C语言的变量必须先声明再使用。,将a,b两变量内容相加,然后将结果赋值给整型变量sum。此时sum的内容为579。,调用库函数输出sum的结果。%d为格式控制表示sum的值以十进制整数形式输出。,北京航空航天大学,例1.3: void main() int a, b, sum; a = 123; b = 456; sum = average(a,b); printf(“sum = %dn”, sum); ,int average(int x, int y) int z; z
13、=(x+y)/2; return z; ,北京航空航天大学,C程序由函数构成 函数是C程序的基本单位。 一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其它函数。 被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编写设计的函数。C是函数式的语言,程序的全部工作都是由各个函数完成。 编写C程序就是编写一个个函数。,北京航空航天大学,main函数是每个程序执行的起始点 一个C程序总是从main函数开始执行,而不论main函数在程序中的位置。可以将main函数放在整个程序的最前面,也可以放在整个程序的最后,或者放在其它函数之间。,北京航空航天大学,一个函数由函数首
14、部和函数体两部分组成。 函数首部: 返回值类型 函数名(形参列表) 函数体: 函数首部下用一对 括起来的部分。函数体一般包括声明部分、执行部分两部分。 声明部分:在这部分定义本函数所使用的变量。 执行部分:由若干条语句组成命令序列(可以在其中调用其它函数)。 ,北京航空航天大学,C程序书写格式自由 一行可以写几个语句,一个语句也可以写在多行上。 C程序没有行号,也没有FORTRAN,COBOL那样严格规定书写格式(语句必须从某一列开始)。 每条语句的最后必须有一个分号“;”表示语句的结束。 可以使用/* */对C程序中的任何部分作注释。 注释可以提高程序可读性,使用注释是编程人员的良好习惯。,
15、北京航空航天大学,C语言输入/输出的操作是通过调用库函数(scanf,printf)完成。 输入/输出操作涉及具体计算机硬件,把输入/输出操作放在函数中处理,可以简化C语言和C的编译系统,便于C语言在各种计算机上实现。不同的计算机系统需要对函数库中的函数做不同的处理,以便实现同样或类似的功能。,北京航空航天大学,1.6 C程序的编辑、编译、运行,程序:程序是按一定规则和语法编写的一段代码,是计算机可以识别的一组指令的集合。每一条指令使计算机执行特定的操作。 源程序:程序可以用高级语言或汇编语言编写,用高级语言或汇编语言编写的程序称为源程序。C语言源程序的扩展名为“.c” 。,北京航空航天大学,
16、目标程序:源程序经过“编译程序”翻译所得到的二进制代码称为目标程序。目标程序的扩展名为“.obj” 。 高级语言所编制的程序不能直接被计算机识别,必须经过语言处理系统的转换才能被执行,按转换方式分为两类: 解释类:应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行。 编译类:在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言) 。现在大多数的编程语言都是编译型的,例如Visual C、Visual 、Delphi等,北京航空航天大学,可执行程序:目标程序与库函数连接,形成的完整的可在操作系统下独立执行的程序称为可执行程序。可执行程序的扩展名为“.exe”(在dos/windows环境下)。,源程序n,目标程序n,连 接,库文件,可执行目标程序,装 入,执 行,结 果, c=a+b; ,编 译,高级语言程序的编译、连接、装入和执行过程,源程序1,目标程序1,北京航空航天大学,1.7 C语言程序的上机步骤,Visual +6.0是一个集源程序编辑、编译、连接、运行与调试于一体、 用菜单驱动的集成软件环境。 输入与编辑源程序-编译源程序,产生目标代码-连接各个目标代码、库函数,产生可执行程序-运行程序。,