第01章 C语言概述(精品).ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第01章 C语言概述(精品).ppt》由会员分享,可在线阅读,更多相关《第01章 C语言概述(精品).ppt(59页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、C C语言程序设计语言程序设计语言程序设计语言程序设计西安邮电学院 朱晓龙 第第1章章 语言概述语言概述1.1 程序设计语言程序设计语言1.2 C程序设计语言程序设计语言 1.3 C语言的基本语法成分语言的基本语法成分1.3 C语言程序的组成语言程序的组成注意事项l上课方式:讲课、答疑和上机上课方式:讲课、答疑和上机l学习方法:听讲与自学相结合学习方法:听讲与自学相结合 要预习要预习 l 多作练习尤其是上机练习多作练习尤其是上机练习 l上课纪律:按时上课、认真听讲上课纪律:按时上课、认真听讲 点名点名l作业:应写在作业本上作业:应写在作业本上l成绩:成绩:l 1 考试 70%近两年有期中考试l
2、 2 作业 15%l 3 上机 15%l请班长提交本班花名册(电子版)及联系电话1.1.1 1.1.1 计算机语言计算机语言 人们交流和表达思想的工具是自然语言;人与计算机进行“交流”的工具是计算机语言,其其功功能能是是用用计计算算机机语语言言编编写写一一系系列列操操作作指指令令,计计算算机机能能够够“理理解解”这这些些操操作作指指令令,按按照照指指令令去执行这些操作去执行这些操作。计计算算机机语语言言的的特特点点:由于计算机语言是人发明的,它主要是用语法来表达人的思想,因而在在编写程序时要严格遵守语法规则编写程序时要严格遵守语法规则。如同人类有许多自然语言一样,计算机语言也有许多种。计算机语
3、言的发展经历了几个阶段:程序设计语言的发展CPU指令系统,由0、1序列构成的指令码组成如:10000000 加 10010000 减用助记符号描述的指令系统如 ADD A,B面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象机器语言机器语言l它是面向机器的,是特定计算机系它是面向机器的,是特定计算机系统所固有的语言。用机器语言进行统所固有的语言。用机器语言进行程序设计,需要熟悉机器的结构。程序设计,需要熟悉机器的结构。用机器语言编写的程序用机器语言编写的程序能被计算机能被计算机直接识
4、别和运行直接识别和运行,但它的可读性差,但它的可读性差,程序难以修改和维护。程序难以修改和维护。汇编语言l为了提高程序设计效率,人们用有助于记忆的符号来表示机器指令中的操作码和运算数,例如用ADD表示加法,SUB表示减法等。汇编语言比机器语言容易记忆和检查,编写程序的难度有所降低,程序的可读性有所提高。汇编语言存在的问题:不兼容l 由于汇编语言的语句与机器指令是一一对应的,因此,针对同一问题所编写的汇编语言源程序,在不同的计算机上不能通用。同时,由于计算机不能直接识别用汇编语言编写的源程序,源程序必须经过汇编程序的翻译,才能变成用机器语言表示的目标程序。高级语言 为使程序设计语言不依赖于具体计
5、算机的结构和机器指令,适应于不同种类的计算机。与具体机器无关的高级语言就产生了,这样程序设计者不需要了解机器的内部结构,只要按照计算机的语法编写程序即可。高级语言程序必须经过编译程序的高级语言程序必须经过编译程序的“翻译翻译”,转换成机器语言程序,计算,转换成机器语言程序,计算机才能执行机才能执行。非过程化语言(面向对象)主要特点:非过程性、采用图形窗口和人际对话形式 基于数据库、面向对象 总之,易编程、易理解、易使用和易维护 智能化语言 主要使用在人工智能领域,帮助人们编写推理、演绎程序。重要程序设计语言时间简表l机器语言:1949年ENIACl汇编语言:1952年MIT在Whirlwind
6、系统 符号地址 美国空军l高级语言:1957年IBM推出Fortran 科学计算l 1960年 Algol60 第一个结构化编程语言l 1961年 COBOL 银行及大型企业l 1965年 BASIC 计算机教育和初学者l 1970年研制UNIX操作系统l 1972年贝尔实验室发明C语言 改写UNIXl 1979-1989年贝尔实验室发明C+语言 l 1981年IBM推出IBM-PC Microsoft发布MS-DOS 1.0 IBM叫PC-DOS l 1983年Borland公司研制出Turbo Pascal 开发工具 l 1985年Windows1.0 1993年Windows3.1l 1
7、995年Windows95 32位多任务OSl面向对象语言:1995年Sun公司Java语言 2002年.NET1.2 C程序程序设计设计语言语言 1.2.1 语言的诞生与发展历史语言的诞生与发展历史(1)在C语言诞生以前,系统软件主要是用汇编语言编写的。由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很差;高级语言与机器无关,程序的可读性和可移植性好,但一般又难以实现对计算机硬件的直接操作(这正是汇编语言的优势),于是人们盼望有一种兼有汇编语言和高级语言特性的新语言。(2)语言是贝尔实验室于70年代初研制出来的,后来又被多次改进,并出现了多种版本。80年代初,美国国家标准化协会(ANS
8、I),根据语言问世以来各种版本对语言的发展和扩充,制定了ANSI C标准(1989年再次做了修订)。C语言发展过程u产生背景u产生过程时间:19721973地点:美国贝尔实验室目的:UNIX操作系统设计人:Ken.Thompson和Dennis.M.RitchieuC标准标准C:K&R合著The C Programming LanguageANSI C:1983年87 ANSI C:1987年1990年国际标准的ANSI C本书以本书以ANSI C新标准来介绍。新标准来介绍。l C语言特点语言简洁、紧凑、灵活运算符和数据类型丰富程序设计结构化、模块化允许直接访问物理地址C语言预处理机制C语言语
9、法限制不太严格,程序设计自由度大生成目标代码质量高可移植性好C语言同时具有汇编语言和高级语言的优势。语言同时具有汇编语言和高级语言的优势。中级语言C语言的缺点l1 运算符过多 优先级复杂 难记难用 44个运算符,15种优先级,2类结合性 *运算符两种功能l2 对数组进行动态赋值时不作动态检查 包括已被赋值的字符指针,其指向字符串的大小已经确定。l3 产生二义性l 出于优化的考虑,不同的编译系统对表达式或参数表中的操作数计算顺序不同。l4 弱类型语言 为了类型转换的方便,对类型转换要求不严,在许多情况下不作类型检查。1.3 C语言的基本语法成分1.3.1 字符集:ASCII字符集的子集 1)英文
10、字母:az和AZ 2)数字:09 3)特殊字符:!#%&*_-+=/|.,:;?”()1.3.2 标识符 (1)有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。(2)有效长度:随系统而异,但至少前个字符有效。如果超长,则超长部分被舍弃。例如,由于student_name和student_number的前个字符相同,有的系统认为这两个变量,是一回事而不加区别。在TC V2.0中,变量名(标识符)的有效长度为个字符,缺省值为。(3)C语言的关键字不能用作变量名。注注意意:C语言对英文字母的大小敏感,即同一字母的大小写,被认为是两个不同的字符。习惯上,变量名和函数名中的英文字母用小写,
11、以增加可读性。思思考考题题:在C语言中,变量名total与变量名TOTAL、ToTaL、tOtAl等是同一个变量吗?标识符命名的良好习惯标识符命名的良好习惯见名知意见名知意:所谓“见名知意”是指,通过变量名就知道变量值的含义。通常应选择能表示数据含义的英文单词(或缩写)作变量名,或汉语拼音字头作变量名。例如,name/xm(姓名)、sex/xb(性别)、age/nl(年龄)、salary/gz(工资)。32个关键字:(由系统定义,不能重作其它定义由系统定义,不能重作其它定义)auto break case char constcontinue default do double elseenu
12、m extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while C语言的标识符分为三类:关键字、预定义标识语言的标识符分为三类:关键字、预定义标识符和用户标识符符和用户标识符34种运算符:算术运算符:+-*/%+-关系运算符:=!=逻辑运算符:!&|位运算符 :|&赋值运算符:=及其扩展条件运算符:?:逗号运算符:,指针运算符:*&求字节数 :sizeof强制类型转换:(类型)分量运算符:.-下标
13、运算符:其它 :()-1.4.1 简单的简单的C程序介绍程序介绍例1.1 第一个程序 Hello,World!Hello,World!/*example1.1 The first C Program*/#include main()printf(“Hello,World!”);注释编译预处理函数语句输出:Hello,World!1.4 C语言语言程序的组成程序的组成例1.2 main()int a,b,sum;/*这是定义变量这是定义变量*/a=234;b=456;/*给变量赋值给变量赋值*/sum=a+b /*求两个数之和求两个数之和*/printf(“sum is%dn”,sum);例1.
14、3/*example1.3 calculate the sum of a and b*/#include/*This is the main program */main()int a,b,sum;a=10;b=24;sum=add(a,b);printf(”sum=%dn,sum);/*This function calculates the sum of x and y */int add(int x,int y)int z;z=x+y;return(z);运行结果:sum=34函数语句预处理命令注释例例1.3:1.3:/*Example for Function program */#i
15、nclude main()/*主函数主函数*/int a,b,sum;/*定义变量定义变量*/scanf(“%d,%d”,&a,&b);/*输入变量输入变量a和和b的值的值*/sum=add(a,b);/*/*调用调用addadd函数函数,将得到的值赋给将得到的值赋给c*/c*/printf(“sum=%d”,sum);/*输出输出c的值的值*/int add(int x,int y)/*子函数说明,并子函数说明,并对形参对形参x、y作类型定义作类型定义*/int z;/*add函用到的变量函用到的变量z,也要加以定义也要加以定义*/z=x+y;return(z);/*将将z的值返回的值返回,
16、通过通过max带回调用处带回调用处*/#include /*stdio.h中有中有scanf()、printf()的原型说明的原型说明*/main()/*main()函数的定义函数的定义*/scanf();/*调用函数调用函数scanf()*/sum=add();/*调用函数调用函数max()*/printf();/*调用函数调用函数printf()*/int add(int x,int y)/*函数函数max()的定义的定义*/实际上,至少还应该有两个函数定义!实际上,至少还应该有两个函数定义!scanf()/*scanf()函数的定义函数的定义*/printf()/*printf()函数的
17、定义函数的定义*/只不过这两个函数是由只不过这两个函数是由C语言系统给我们定义好了的,即库函数。语言系统给我们定义好了的,即库函数。程序框架程序框架#include main()/*主函数主函数main()的具体内容放在此处的具体内容放在此处*/int add(int x,int y)/*函数函数add()的具体内容放在此处的具体内容放在此处*/scanf()/*函数函数scanf()的具体内容放在此处的具体内容放在此处*/printf()/*函数函数printf()的具体内容放在此处的具体内容放在此处*/1.4.2 C语言程序的结构 头文件头文件 /*是是C系统特有的文件系统特有的文件*/全
18、程变量说明全程变量说明 /*用于定义在整个程序中有效的变量用于定义在整个程序中有效的变量*/main()/*主函数说明主函数说明*/局部变量说明局部变量说明 /*主函数体主函数体*/执行语句组执行语句组 子函数名子函数名1(参数)(参数)/*子函数说明子函数说明*/局部变量说明局部变量说明 /*子函数体子函数体*/执行语句组执行语句组 子函数名子函数名1(参数)(参数)/*子函数说明子函数说明*/局部变量说明局部变量说明 /*子函数体子函数体*/执行语句组执行语句组 关于函数体的结构:关于函数体的结构:一个函数中,规定该做什么、怎么做的一个函数中,规定该做什么、怎么做的部分称为函数体;部分称为
19、函数体;函数体大致分为两个部分:一部分是非函数体大致分为两个部分:一部分是非执行部分(定义变量、函数说明等),另执行部分(定义变量、函数说明等),另一部分是执行部分(产生具体动作的语句一部分是执行部分(产生具体动作的语句部分)。部分)。非执行部分和执行部分要严格分开!非执行部分和执行部分要严格分开!#include /*stdio.h中有中有scanf()、printf()的原型说明的原型说明*/main()int a,b,sum;/*变量定义变量定义-非执行部分非执行部分*/int add(int,int);/*函数原型说明函数原型说明-非执行部分非执行部分*/*以下是执行语句部分以下是执行
20、语句部分*/scanf(“%d%d”,&a,&b);sum=add(a,b);printf(“sum=”,sum);int add(int x,int y)/*函数函数add()的定义的定义*/int z;z=x+y;return(z);源程序的结构特点 1.一个语言源程序可以由一个或多个源文件组成一个语言源程序可以由一个或多个源文件组成,每个源文件以每个源文件以“.c”.c”作为扩展名。作为扩展名。2.2.每个源文件可由一个或多个函数组成。每个源文件可由一个或多个函数组成。3.3.一个源程序不论由多少个文件组成,都有一个且只一个源程序不论由多少个文件组成,都有一个且只能有一个能有一个main
21、main函数,即主函数,整个程序的运行从函数,即主函数,整个程序的运行从主函数开始。主函数开始。4.4.源程序中可以有预处理命令源程序中可以有预处理命令(include(include 命令仅为其命令仅为其中的一种中的一种),预处理命令通常应放在源文件或源程,预处理命令通常应放在源文件或源程序的最前面。序的最前面。5.5.每一个说明,每一个语句都必须以分号结尾。但预每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号处理命令,函数头和花括号“”之后不能加分号。之后不能加分号。6.6.标识符,关键字之间必须至少加一个空格以示间隔。标识符,关键字之间必须至少加一个空格以示间隔。若已
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第01章 C语言概述精品 01 语言 概述 精品
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内