《《c语言教材第一章》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《c语言教材第一章》PPT课件.ppt(91页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 1 开篇开篇n本课程讲述如何使用本课程讲述如何使用C语言进行真正的编程语言进行真正的编程 为什么学习为什么学习c语言?语言?nC语言是目前实际程序设计工作中使用最广泛的语言之一语言是目前实际程序设计工作中使用最广泛的语言之一 它包含了程序设计需要理解和使用的基本程序机理和主要机制它包含了程序设计需要理解和使用的基本程序机理和主要机制 掌握这些机制就可以理解程序与程序设计的主要问题。掌握这些机制就可以理解程序与程序设计的主要问题。n目前有许多软件系统是用目前有许多软件系统是用C编写的,或基本上是用编写的,或基本上是用C编写的编写的 学习程序设计的同时也能掌握一种实用的程序设计工具学习程序设计
2、的同时也能掌握一种实用的程序设计工具 nC语言是一种很灵活的语言语言是一种很灵活的语言 既可以在较高层次上做,也可以在较低级的层次上做既可以在较高层次上做,也可以在较低级的层次上做 n很多新型的语言都是衍生自很多新型的语言都是衍生自C语言语言 有些本身就是有些本身就是C语言的扩充和发展语言的扩充和发展 n程序设计是计算机领域的基础课程程序设计是计算机领域的基础课程 C语言适合作为计算机领域许多后续课程的教学语言语言适合作为计算机领域许多后续课程的教学语言2 2 开篇开篇n本课程讲述如何使用本课程讲述如何使用 C语言进行真正的编程语言进行真正的编程 授课重点授课重点 n侧重学习一个具体问题的算法
3、化的过程侧重学习一个具体问题的算法化的过程 n学习应该掌握的基本编程技巧以及学习应该掌握的基本编程技巧以及C编程的风格和艺术编程的风格和艺术 n讨论讨论 怎样编写出一个好的程序?怎样编写出一个好的程序?简单、实用的原则简单、实用的原则3 3 开篇开篇n本课程的组织本课程的组织第一部分第一部分 基基 础础第二部分第二部分 简单程序设计简单程序设计第三部分第三部分 高级程序设计高级程序设计算法概念、编程原理、编程风格、算法概念、编程原理、编程风格、基本数据类型定义、算术运算符及基本数据类型定义、算术运算符及 表达式表达式顺序结构、选择结构、循环结构、顺序结构、选择结构、循环结构、数组的定义及应用、
4、程序设计过程数组的定义及应用、程序设计过程函数、变量的存储类别、指针、结函数、变量的存储类别、指针、结 构体与共用体、文件构体与共用体、文件4 4 1.程序与程序设计语言程序与程序设计语言n什么是程序?什么是程序?什么是计算机?什么是计算机?n计算机是一种具有内部存储能力的自动、高效的电计算机是一种具有内部存储能力的自动、高效的电子设备,子设备,计算机怎样完成工作?计算机怎样完成工作?n执行存放在计算机的内部存储器中的指令执行存放在计算机的内部存储器中的指令 程序是计算机指令的序列程序是计算机指令的序列 n可以被连续执行的一条条指令的集合称为计算机的可以被连续执行的一条条指令的集合称为计算机的
5、程序程序5 5 1.程序与程序设计语言程序与程序设计语言n什么是计算机语言?什么是计算机语言?是与计算机交流的工具是与计算机交流的工具 n人和人交流用的是双方都能听懂和读懂的自然语言人和人交流用的是双方都能听懂和读懂的自然语言 n人和计算机交流也要用人和计算机都容易接受和理人和计算机交流也要用人和计算机都容易接受和理解的语言解的语言 计算机语言是根据计算机的特点而编制的计算机语言是根据计算机的特点而编制的 n有限规则的集合有限规则的集合 n什么是程序设计语言?什么是程序设计语言?计算机语言又称为计算机语言又称为“程序语言程序语言“n一个计算机程序总是用某种程序语言来编写一个计算机程序总是用某种
6、程序语言来编写6 6 1.程序与程序设计语言程序与程序设计语言n程序设计语言的发展程序设计语言的发展 问题?问题?n怎样从功能和使用方式上来划分程序设计语言?他怎样从功能和使用方式上来划分程序设计语言?他们各有什么特点?举例。们各有什么特点?举例。7 7 2.程序设计程序设计n什么是程序设计?什么是程序设计?使用某种程序语言编写程序的过程使用某种程序语言编写程序的过程 n是用计算机语言对所要解决的问题中的数据以及是用计算机语言对所要解决的问题中的数据以及处理问题的方法和步骤所做的完整而准确的描述处理问题的方法和步骤所做的完整而准确的描述的过程的过程 n怎样进行程序设计?怎样进行程序设计?分析问
7、题分析问题 确定算法确定算法 编制程序编制程序 调试程序调试程序8 8 2.程序设计程序设计n一个完整的程序一个完整的程序 n数据结构、算法、编程语言和程序设计方法数据结构、算法、编程语言和程序设计方法 对数据的描述(数据流)对数据的描述(数据流)指定数据的类型和数据的结构指定数据的类型和数据的结构 对操作的描述(控制流)对操作的描述(控制流)指定操作的步骤,既算法指定操作的步骤,既算法 程序程序=数据结构数据结构+算法算法9 9 3.算法算法n输入三个数,然后输出最大的数输入三个数,然后输出最大的数 n算法的两个要素算法的两个要素 基本功能操作基本功能操作 n数据运算和传输数据运算和传输 控
8、制结构控制结构 n顺序、选择和循环三种基本控制流程顺序、选择和循环三种基本控制流程 算法可以写成:算法可以写成:(1)输入)输入A,B,C;(2)若)若AB,则,则A-MAX;若;若AMAX。(3)若)若CMAX,则,则C-MAX。(4)输出)输出MAX,MAX既是最大数。既是最大数。1010 3.算法算法n算法的特性算法的特性 有穷性有穷性 n应含有有限的操作步骤,不能是无限的。有穷性指在应含有有限的操作步骤,不能是无限的。有穷性指在“合理合理的限度之内的限度之内”唯一性唯一性 n每一个步骤都是确定的,只有一个涵义,不可以为二义性每一个步骤都是确定的,只有一个涵义,不可以为二义性 有零个或多
9、个输入有零个或多个输入 n在执行算法时需要从外界获取必要的信息在执行算法时需要从外界获取必要的信息 有一个或多个输出有一个或多个输出 n算法执行的目的就是为了求解,算法执行的目的就是为了求解,“解解”就是输出的信息就是输出的信息 n没有输出的算法是没有意义的没有输出的算法是没有意义的 正确性正确性 n每一个步骤应当被有效的执行,并得到确定的结果每一个步骤应当被有效的执行,并得到确定的结果1111 3.算法算法n算法的表示算法的表示 流程图流程图 端点:表示程序的转向,常用来表示端点:表示程序的转向,常用来表示程序的开始和结束。程序的开始和结束。处理:操作的功能处理:操作的功能判断:单入口判断:
10、单入口 多出口,表明判断的条件多出口,表明判断的条件流线:表示程序流线:表示程序 的执行方向和顺序。的执行方向和顺序。输入输入/输出:表示数据的名称、类型和用途等。输出:表示数据的名称、类型和用途等。1212 3.算法算法n算法的表示算法的表示 流程图流程图开始开始输入输入A,B,CAB?TN MAX=AMAX=B CMAX?NTMAX=C输出输出MAX结束结束1313 3.算法算法n算法的表示算法的表示 N-S图图 n是适合结构化程序设是适合结构化程序设计方法的图形工具计方法的图形工具 nN-S流程图无法表示流程图无法表示非结构化的程序非结构化的程序 T TN N当当条件条件满足满足 A1=
11、1A1=1i=9i=9当当i=1i=1时,循环时,循环a0=2*a0=2*(a1+1a1+1)a1=a0a1=a0i=i-1i=i-1输出输出a0a01414 3.算法算法(练习练习)n算法的表示算法的表示 其它其它 n典型算法典型算法 1515 4.结构化的程序设计方法结构化的程序设计方法n程序的三种基本结构程序的三种基本结构 问题的提出问题的提出 结构化程序设计必须采用的结构结构化程序设计必须采用的结构 n顺序结构、选择结构和循环结构顺序结构、选择结构和循环结构 被称为程序设计的三种基本结构被称为程序设计的三种基本结构 n算法的实现过程是由一系列操作组成的,这些操作算法的实现过程是由一系列
12、操作组成的,这些操作之间的执行次序就是程序的控制结构之间的执行次序就是程序的控制结构 n总体结构流程都是自上而下顺序执行的。总体结构流程都是自上而下顺序执行的。1616 4.结构化的程序设计方法结构化的程序设计方法n程序的三种基本结构程序的三种基本结构 顺序结构顺序结构 n顺序结构表示程序中的各操作是顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的按照它们出现的先后顺序执行的 选择结构选择结构 n表示程序的处理出现了分支,它表示程序的处理出现了分支,它需要根据某一特定的条件选择其需要根据某一特定的条件选择其中的一个分支执行中的一个分支执行 循环结构循环结构 n程序反复执行某个或某些操作
13、,程序反复执行某个或某些操作,直到某条件为假(或为真)时才直到某条件为假(或为真)时才可终止循环可终止循环 1717 4.结构化的程序设计方法结构化的程序设计方法n结构化程序设计方法结构化程序设计方法 公认的面向过程编程应遵循的基本方法和原则公认的面向过程编程应遵循的基本方法和原则 结构化程序设计特征结构化程序设计特征 n采用模块化结构采用模块化结构 自顶而下的设计方法自顶而下的设计方法 便于对问题的分解和模块的划分便于对问题的分解和模块的划分 程序由三种基本控制结构组成程序由三种基本控制结构组成 有限制地使用转移语句有限制地使用转移语句 n采用结构化程序设计语言书写程序采用结构化程序设计语言
14、书写程序 结构化程序设计语言书写程序结构化程序设计语言书写程序 n注意书写风格注意书写风格1818 5.什么是什么是C语言?语言?n1973年由美国贝尔实验室设计发布的年由美国贝尔实验室设计发布的 目前是计算机程序设计语言的主流语种目前是计算机程序设计语言的主流语种 是世界上最为广泛使用的语言之一是世界上最为广泛使用的语言之一 nC语言的流行归功于两个主要因素语言的流行归功于两个主要因素 使用正确的使用正确的C语言指令几乎可以完成任何任务语言指令几乎可以完成任何任务 是可移植的是可移植的C编译系统的广泛采用编译系统的广泛采用 nC语言是一种能够让软件工程师与计算机进行有效对话的语言是一种能够让
15、软件工程师与计算机进行有效对话的介于汇编语言和高级语言之间的编程语言介于汇编语言和高级语言之间的编程语言 nC语言标准语言标准 1978年,正式出版的年,正式出版的The C Programming Language书中书中介绍的介绍的C语言,称为标准语言,称为标准C语言语言 1983年,美国国家标准化协会(年,美国国家标准化协会(ANSI)根据各种)根据各种C语言版本对语言版本对C的扩充和发展,颁布了的扩充和发展,颁布了C语言的新标准语言的新标准ANSI C nANSI C比标准比标准C有了很大的扩充和发展有了很大的扩充和发展 1987年,美国国家标准化协会又颁布新标准,称为年,美国国家标准
16、化协会又颁布新标准,称为87 ANSI C 1990年,国际标准化组织年,国际标准化组织ISO接受了接受了87 ANSI C作为作为ISO C的标准的标准 n目前功能最完善、性能最优良的目前功能最完善、性能最优良的C新版本新版本 n目前流行的目前流行的C编译系统都是以它为基础的编译系统都是以它为基础的1919 5.什么是什么是C语言?语言?nC语言的特点语言的特点 适合开发系统软件适合开发系统软件 结构化的程序设计语言结构化的程序设计语言 丰富的数据类型和数据结构丰富的数据类型和数据结构 运算符多样化运算符多样化 可移植性好可移植性好 语句简洁紧凑语句简洁紧凑 编程风格灵活,语法限制少,使用灵
17、活编程风格灵活,语法限制少,使用灵活 具有预处理功能具有预处理功能 面向对象程序设计的基础面向对象程序设计的基础2020 编写一个加法运算程序编写一个加法运算程序#includestdio.h main()()int a,b;/*/*定义两个整形变量定义两个整形变量*/a=1;b=5;/*/*给两个两个变量量赋值*/printf(“%d+%d=%dn”,a,b,a+b);/*/*打印打印a a和和b b之和之和*/C C语言言严格区分大、小写格区分大、小写 英文字母。英文字母。C C语言程序言程序习惯上使用小写英文字母上使用小写英文字母,而大写英文字母通常作为常量的宏定而大写英文字母通常作为常
18、量的宏定义和其他特殊的用途。义和其他特殊的用途。5.什么是什么是C C语言?语言?2121#includestdio.h main()()int a,b;/*/*定定义两个整形两个整形变量量*/a=1;b=5;/*/*给两个两个变量量赋值*/printf(“%d+%d=%dn”,a,b,a+b);/*/*打印打印a a和和b b之和之和*/C C语言言严格区分大、小写格区分大、小写 英文字母。英文字母。例:例:编写一个加法运算程序如下:编写一个加法运算程序如下:5.什么是什么是C C语言?语言?C C语言程序是由一个个的言程序是由一个个的 语句句组成。成。每个语句都具有规定的语法格式每个语句都
19、具有规定的语法格式和特定的功能。和特定的功能。编写一个加法运算程序编写一个加法运算程序2222#includestdio.h main()()int a,b;/*/*定定义两个整形两个整形变量量*/a=1;b=5;/*/*给两个两个变量量赋值*/printf(“%d+%d=%dn”,a,b,a+b);/*/*打印打印a a和和b b之和之和*/C C语言言严格区分大、小写格区分大、小写 英文字母。英文字母。例:例:编写一个加法运算程序如下:编写一个加法运算程序如下:5.什么是什么是C C语言?语言?&C C语言程序是由一个个的言程序是由一个个的 语句句组成。成。C C语言程序使用语言程序使用“
20、;”作为作为 语句的句的终止符和分隔符。止符和分隔符。可以任意书写,即一行中可以书写多个语可以任意书写,即一行中可以书写多个语句,一个语句也可以占用任意多行,语句句,一个语句也可以占用任意多行,语句之间必须用之间必须用“;”分隔。初学时建议在一分隔。初学时建议在一行内书写一条语句。行内书写一条语句。编写一个加法运算程序编写一个加法运算程序2323#includestdio.h main()int a,b;/*/*定定义两个整形两个整形变量量*/a=1;b=5;/*/*给两个两个变量量赋值*/printf(“%d+%d=%dn”,a,b,a+b);/*/*打印打印a a和和b b之和之和*/C
21、C语言言严格区分大、小写格区分大、小写 英文字母。英文字母。例:例:编写一个加法运算程序如下:编写一个加法运算程序如下:5.什么是什么是C C语言?语言?C C语言程序是由一个个的言程序是由一个个的 语句句组成。成。C C语言程序使用语言程序使用“;”作为作为 语句的句的终止符和分隔符。止符和分隔符。C C语言程序中用大括号言程序中用大括号对 “”表示程序的结构层表示程序的结构层 次范次范围。一个完整的程序模块要用一对花括号括起一个完整的程序模块要用一对花括号括起来,用以表示模块的范围。为了清晰地表来,用以表示模块的范围。为了清晰地表现出程序的结构,建议使用右缩进锯齿型现出程序的结构,建议使用
22、右缩进锯齿型程序书写格式。程序书写格式。编写一个加法运算程序编写一个加法运算程序2424#includestdio.h main()int a,b;/*/*定定义两个整形两个整形变量量*/a=1;b=5;/*/*给两个两个变量量赋值*/printf(“%d+%d=%dn”,a,b,a+b);/*/*打印打印a a和和b b之和之和*/C C语言言严格区分大、小写格区分大、小写 英文字母。英文字母。例:例:编写一个加法运算程序如下:编写一个加法运算程序如下:5.什么是什么是C C语言?语言?C C语言程序是由一个个的言程序是由一个个的 语句句组成。成。C C语言程序使用语言程序使用“;”作为作为
23、 语句的句的终止符和分隔符。止符和分隔符。C C语言程序中用大括号言程序中用大括号对 “”表示程序的结构层表示程序的结构层 次范次范围。语言程序可以使用注释。语言程序可以使用注释。注释部分的格式是:注释部分的格式是:注释内容注释部分不参与注释内容注释部分不参与程序的执行,对程序的运行结果没程序的执行,对程序的运行结果没有影响,只是用来提示或助记。有影响,只是用来提示或助记。编写一个加法运算程序编写一个加法运算程序2525 5.什么是什么是C语言?语言?n nC C程序结构组成程序结构组成程序结构组成程序结构组成 C程序为函数模块结构,整个程序程序为函数模块结构,整个程序都是由一个或多个函数组成
24、都是由一个或多个函数组成 函数是由函数说明和函数体两部函数是由函数说明和函数体两部分组成分组成 一个一个C程序总是从程序总是从main()函数开始函数开始执行执行 被调用的函数可以是系统提供的被调用的函数可以是系统提供的库函数,也可以是用户根据需要库函数,也可以是用户根据需要自己编制设计的函数(用户自定自己编制设计的函数(用户自定义函数)义函数)一个一个C 程序可以由一个文件组成,程序可以由一个文件组成,也可以由也可以由若干个文件若干个文件组成组成分析下面程序:分析下面程序:#include main()int a=1,b=5,c;c=add(a,b);printf(“c=%dn”,c);in
25、t add(int x,int y)return(x+y);2626 C C程序程序源程序文件源程序文件1 1源程序文件源程序文件i i源程序文件源程序文件n n预编译命令预编译命令函数函数1 1函数函数n n函数体函数体函数首部函数首部n nC C程序结构组成程序结构组成程序结构组成程序结构组成5.什么是什么是C C语言?语言?注意注意注意注意 一个函数名后面必一个函数名后面必须跟一跟一对()(),函数参数可以没有,但这,函数参数可以没有,但这 一一对()不能省略,如()不能省略,如mainmain()()在函数定义中第一行的函数名后没有分号在函数定义中第一行的函数名后没有分号“;”2727
26、 5.什么是什么是C语言?语言?n标识符标识符 每种程序语言都规定了在程序里描述名字的规则每种程序语言都规定了在程序里描述名字的规则 n这些名字包括:变量名、常数名、数组名、函数名、文件名、这些名字包括:变量名、常数名、数组名、函数名、文件名、类型名等,被统称为类型名等,被统称为标识符标识符 n nC C语言标识符语言标识符语言标识符语言标识符 C语言的标识符是满足如下条件的语言的标识符是满足如下条件的字符序列字符序列字符序列字符序列 n只能由英文字母、数字和下划线组成只能由英文字母、数字和下划线组成 n必须以英文字母或下划线开头必须以英文字母或下划线开头 n注意注意 标识符的使用很多,使用时
27、要注意语言规则标识符的使用很多,使用时要注意语言规则 C语言对大、小写字母严格区分语言对大、小写字母严格区分 根据根据ANSI标准,只有前标准,只有前31个字符是有意义,个字符是有意义,但一般系统使但一般系统使用的标识符,其有效长度不超过用的标识符,其有效长度不超过8个字符个字符 标识符不要与关键字同名标识符不要与关键字同名2828 5.什么是什么是C语言?语言?n关键字关键字 具有特定含义的,用作专用的标识符具有特定含义的,用作专用的标识符 n语言中关键字绝大多数是由小写字母构成的字符语言中关键字绝大多数是由小写字母构成的字符序列序列 注意:注意:n这些特定的关键字不允许用户作为自定义的标识
28、符这些特定的关键字不允许用户作为自定义的标识符使用使用 n 例:指出合法的例:指出合法的标识符与关键字标识符与关键字 “ABAABA”S05 S05 file.cfile.c 10page printf 10page printf yellow_redyellow_red a&ba&b -113 _ACG -113 _ACG AbcAbc 2929 5.什么是什么是C语言?语言?n语句语句 语句是组成程序的基本单位语句是组成程序的基本单位 n它能完成特定操作它能完成特定操作 所有程序设计语言都提供了满足编写程序要求所有程序设计语言都提供了满足编写程序要求的一系列语句的一系列语句 n有确定的形式
29、和功能有确定的形式和功能 C语言中的语句语言中的语句3030 6.C语言的开发与运行n开发一个开发一个C程序,一般过程程序,一般过程编辑:使用一个文本编辑器将编写好的编辑:使用一个文本编辑器将编写好的C C程序输入计算机,并以程序输入计算机,并以 文本文件的形式保存文本文件的形式保存C C语言源程序,其文件扩展名为语言源程序,其文件扩展名为“.C.C”编译:使用一个编译:使用一个C C语言编译系统(如语言编译系统(如TurboCTurboC 2.0 2.0)对)对C C语言源程序语言源程序 进行语法检查和翻译,生成同名的进行语法检查和翻译,生成同名的“.OBJ.OBJ”目标文件目标文件链接:将
30、目标文件和系统提供的标准库函数等连接在一起,生成链接:将目标文件和系统提供的标准库函数等连接在一起,生成 一个同名的一个同名的“.EXE.EXE”可执行文件可执行文件 执行:脱离执行:脱离C C语言编译系统,可在操作系统下键入文件名直接运行语言编译系统,可在操作系统下键入文件名直接运行3131 6.C语言的开发与运行n安装安装tc2.0 下载下载 Cd n思考题思考题 C语言程序执行过程是如何进行的?应注意什么问题?语言程序执行过程是如何进行的?应注意什么问题?n 3232 7.小测验小测验 n根据语言标识符的命名规则,以下全部合法的标识符是根据语言标识符的命名规则,以下全部合法的标识符是:A
31、)2xy,x+y,10 xy,xy2 B)main(),printf,int,float C)int,char,printf,scanf D)add,x10,_count,x_y n一个语言程序总是从一个语言程序总是从 A)主过程开始执行主过程开始执行B)主函数开始执行主函数开始执行 C)子程序开始执行子程序开始执行D)主程序开始执行主程序开始执行 3333 n数据数据 数据是程序设计中所要涉及和描述的主要内容数据是程序设计中所要涉及和描述的主要内容 n数据是程序加工、处理的对象数据是程序加工、处理的对象 n数据同样是加工的结果数据同样是加工的结果 n数据类型数据类型 数据类型的概念数据类型的
32、概念 n数据类型是一类数据的抽象表示,这类数据具有相数据类型是一类数据的抽象表示,这类数据具有相同的形式,遵从相同的运算规则同的形式,遵从相同的运算规则 程序处理的基本数据按性质划分程序处理的基本数据按性质划分 属于同一类的各个数据都具有同样的性质属于同一类的各个数据都具有同样的性质 同样的操作同样的操作 同样的编码方式同样的编码方式 把程序语言中具有这样性质的数据集合称为数据类型。把程序语言中具有这样性质的数据集合称为数据类型。.什么是数据和数据类型什么是数据和数据类型 3434 .C语言的数据类型语言的数据类型n数据类型的分类数据类型的分类数据类型数据类型空类型空类型指针类型指针类型构造类
33、型构造类型结结 构构 体体 类类 型型数数 组组 类类 型型共共 用用 体体 类类 型型基本类型基本类型整型整型实型实型字符型字符型标准类型标准类型用户定义类型用户定义类型枚举型枚举型单精度型单精度型 双精度型双精度型指针类型指针类型指针类型指针类型 n n用于存放地址(指针),用用于存放地址(指针),用用于存放地址(指针),用用于存放地址(指针),用来解决动态数据的建立、删来解决动态数据的建立、删来解决动态数据的建立、删来解决动态数据的建立、删除和使用除和使用除和使用除和使用 空类型空类型空类型空类型 n n用于数据类型的转换用于数据类型的转换用于数据类型的转换用于数据类型的转换 基本类型基
34、本类型基本类型基本类型 n n构造简单,已由系统定义好构造简单,已由系统定义好构造简单,已由系统定义好构造简单,已由系统定义好 构造类型构造类型构造类型构造类型 n n由其它数据类型按一定规则由其它数据类型按一定规则由其它数据类型按一定规则由其它数据类型按一定规则构造而成。构造而成。构造而成。构造而成。3535 .C语言的数据类型语言的数据类型n数据类型的分类数据类型的分类 提示提示 n每个数据类型都有固定的表示方式每个数据类型都有固定的表示方式 这个表示方式确定了可能表示的数据范围以及数据在内存中的这个表示方式确定了可能表示的数据范围以及数据在内存中的存放形式存放形式 C程序中所出现的程序中
35、所出现的所有数据所有数据都必须明确指定其数据类型都必须明确指定其数据类型 n数据类型的体现数据类型的体现 常量和变量是在计算机中数据类型的表现形式常量和变量是在计算机中数据类型的表现形式 n不再是抽象的概念而是实在的数据,这些数据符合对数不再是抽象的概念而是实在的数据,这些数据符合对数据类型的规定(形式和运算规则两方面)据类型的规定(形式和运算规则两方面)n常量和变量之间的区别在于程序执行过程中的变化情况常量和变量之间的区别在于程序执行过程中的变化情况 常量是一成不变的常量是一成不变的 变量则可以不断改变变量则可以不断改变3636 .C语言的数据类型语言的数据类型n数据类型的长度数据类型的长度
36、 在计算机中,由于软硬件的各种原因,数据类在计算机中,由于软硬件的各种原因,数据类型必须有一个长度的限制型必须有一个长度的限制 n这个长度是指数据存储在计算机中需要占用多少个这个长度是指数据存储在计算机中需要占用多少个字节数字节数 n 不同类型的数据在内存中占用的字节数是不同的不同类型的数据在内存中占用的字节数是不同的 n溢出处理溢出处理 不同的数据类型规定了不同的机内表示长度,不同的数据类型规定了不同的机内表示长度,也决定了对应数据量的变化范围,当某一数据也决定了对应数据量的变化范围,当某一数据超出该数据类型所规定的范围时,计算机会拒超出该数据类型所规定的范围时,计算机会拒绝接受,而将之转换
37、成范围内的另外某个数,绝接受,而将之转换成范围内的另外某个数,这种情况称之为溢出处理。这种情况称之为溢出处理。3737 10.常量常量n n常量常量 在程序运行过程中其值不能被改变的量值在程序运行过程中其值不能被改变的量值 n例例1:1,200 3.1,-4.0 A,b“abc”,“ABn”提示提示 n在程序中使用常量时,一般不需要具体指出它属于在程序中使用常量时,一般不需要具体指出它属于哪一种类型哪一种类型C语言编译系统会自动根据常量的数据语言编译系统会自动根据常量的数据大小和直观形式来确定它的数据类型大小和直观形式来确定它的数据类型 n例例2:3,3.0,3,“3”3838 10.常量常量
38、n n语言提供的常量语言提供的常量 数值常量数值常量数值常量数值常量 n n整型整型整型整型 n n实型实型实型实型 字符常量字符常量字符常量字符常量 n n字符常量字符常量字符常量字符常量 n n字符串常量字符串常量字符串常量字符串常量 这些类型决定了各种常量所占存储空间的大小这些类型决定了各种常量所占存储空间的大小这些类型决定了各种常量所占存储空间的大小这些类型决定了各种常量所占存储空间的大小和数的表示范围和数的表示范围和数的表示范围和数的表示范围 特殊形式常量特殊形式常量特殊形式常量特殊形式常量 n n符号常量符号常量符号常量符号常量 3939 10.常量常量n整型常量整型常量 一个整数
39、一个整数 常用的整数类型常用的整数类型(IBM PC机及其兼容机上对机及其兼容机上对C语言整型数的规定语言整型数的规定)n整型整型 2字节:字节:-3276832767 n长整型长整型 4字节:字节:-21474836482147483647 n无符号整型无符号整型 2字节:字节:065535 n无符号长整型无符号长整型 4字节字节:04294967295 提示:提示:n整型常量只区别整型和长整型两种形式,而没有无符号整型常量只区别整型和长整型两种形式,而没有无符号值型常量值型常量4040 10.常量常量n整型常量整型常量 三种形式三种形式 n十进制十进制 有效的十进制数字串有效的十进制数字串
40、 例:例:100,32767,-120 n八进制八进制 以数字以数字“0”开头的八进制数字串开头的八进制数字串 例:例:0100,0123,-012 n十六进制十六进制 以数字以数字0 x或或0X开头的十六进制字符串开头的十六进制字符串 例:例:0 x123,0 x100,-0 x12 n长整型常量长整型常量 n可表示为:十进制、八进制、十六进制可表示为:十进制、八进制、十六进制 n在常数之后加上字母在常数之后加上字母或或 35555是否为十进制常量?是否为十进制常量?0358是否为八进制常量?是否为八进制常量?4141 10.常量常量n实型常量实型常量 实数,又称浮点数实数,又称浮点数 类型
41、类型 n单精度型单精度型 4字节:字节:10-38 1038 n双精度型双精度型 8字节:字节:10-30810308 n长双精度型长双精度型 16字节:字节:10-4931 104932 有效位数有效位数 n单精度有效数字位数为十进制数的单精度有效数字位数为十进制数的67位位 n双精度有效数字位数为十进制数的双精度有效数字位数为十进制数的1516位位 n长双精度型有效数字位数为十进制数的长双精度型有效数字位数为十进制数的1819位位 提示:提示:n在语言中,实型常量一般都作为双精度来处理,并且只用十在语言中,实型常量一般都作为双精度来处理,并且只用十进制数表示进制数表示4242 10.常量常
42、量n实型常量实型常量 两种形式两种形式 n小数形式小数形式 由正负符号、整数部分、小数点及小数部分组成由正负符号、整数部分、小数点及小数部分组成 例:例:3.0,5.123,-120.1,0.0 n指数形式指数形式 由尾数、字母由尾数、字母e或或E及指数部分组成及指数部分组成 例:例:123.0E-1,-1.23e3 标准的指数形式是:小数点的左侧只有一位数字标准的指数形式是:小数点的左侧只有一位数字 4343 提示提示 n注意指数必须是不超过数据表示范围的正负整数,注意指数必须是不超过数据表示范围的正负整数,并且在并且在e或或E前必须有数字前必须有数字 n对于超过有效数字位的数位,系统存储时
43、自动舍去对于超过有效数字位的数位,系统存储时自动舍去 问题:问题:n合法的长双精度实型常量的表示形式?合法的长双精度实型常量的表示形式?4444 C语言中字符型数据和整型数据可以通用语言中字符型数据和整型数据可以通用 n字符型数据在计算机中存储的是字符的字符型数据在计算机中存储的是字符的ASCII码码 ASCII码形式上就是码形式上就是0 到到255之间的整数之间的整数 例如例如 字符字符A的的ASCII码值用是码值用是65 A+32;/*执行结果执行结果65+32=97,是,是a的的ASCII码值码值*/4545 10.常量常量n字符常量字符常量 包括可以全部在计算机上显示的符号包括可以全部
44、在计算机上显示的符号 nASCII码表上的全部字符码表上的全部字符 n一个字符的存储占用一个字节一个字符的存储占用一个字节 表示方法表示方法 n用单引号用单引号 括起来的一个字符括起来的一个字符 A,1 n用单引号用单引号 括起来的以括起来的以 字符开始的字符字符开始的字符 n,t 4646 10.常量常量n字符串常量字符串常量 是用一对双引号括起来的字符序列是用一对双引号括起来的字符序列 n双引号仅做定界符使用,本身不算入字符串常量双引号仅做定界符使用,本身不算入字符串常量 n例如例如“ABC”,“”(有空格有空格),“a”,“Happy new Year”,“abcn”,“”(无空格(无空
45、格)等等 C语言规定字符串的最后必须以空字符语言规定字符串的最后必须以空字符0结尾结尾 n编译程序总是自动地在字符串的结尾加上一个转义编译程序总是自动地在字符串的结尾加上一个转义字符字符0 ASCII码是码是0,所对应的字符是空,所对应的字符是空 空字符并不计算在字符串的长度里,但是存储时,空字符空字符并不计算在字符串的长度里,但是存储时,空字符将会额外的占用一个字节空间将会额外的占用一个字节空间 4747 10.常量常量n n字符串常量字符串常量 字符串常量与字符常量的区别字符串常量与字符常量的区别字符串常量与字符常量的区别字符串常量与字符常量的区别 n n形式形式形式形式 字符常量是用单引
46、号括起的单个字符字符常量是用单引号括起的单个字符字符常量是用单引号括起的单个字符字符常量是用单引号括起的单个字符 字符串常量是用双引号括起的一串字符字符串常量是用双引号括起的一串字符字符串常量是用双引号括起的一串字符字符串常量是用双引号括起的一串字符 n n存储方式存储方式存储方式存储方式 字符常量在内存中占一个字节字符常量在内存中占一个字节字符常量在内存中占一个字节字符常量在内存中占一个字节 字符串常量除了每个字符各占一个字节外,其字符串结束字符串常量除了每个字符各占一个字节外,其字符串结束字符串常量除了每个字符各占一个字节外,其字符串结束字符串常量除了每个字符各占一个字节外,其字符串结束符
47、符符符 00也要占一个字节也要占一个字节也要占一个字节也要占一个字节 n n例如例如例如例如 字符常量字符常量字符常量字符常量 aa占一个字节占一个字节占一个字节占一个字节 字符串常量字符串常量字符串常量字符串常量a a 占占占占2 2个字节个字节个字节个字节0110 0001 0110 00010000 0000 a a“a”a”(97)10(97)10(0)10 4848 10.常量常量n符号常量符号常量 在在C语言中允许程序中的常量定义为一个标识符,这个语言中允许程序中的常量定义为一个标识符,这个标识符称为符号常量标识符称为符号常量 n带有名字的常量带有名字的常量 定义格式定义格式 n#
48、define n例如:例如:#define AGE 35#define M 1.9734067e9 提示提示 n简化书写格式、减少出错率简化书写格式、减少出错率 n定义符号常量可以提高程序的可读性,便于程序的调试和修改定义符号常量可以提高程序的可读性,便于程序的调试和修改 n符号常量不同于变量,在其作用域内不能被改变和重新赋值符号常量不同于变量,在其作用域内不能被改变和重新赋值 n习惯上人们把符号常量名用大写字母表示习惯上人们把符号常量名用大写字母表示 10.常量练习常量练习定义常量并输出5050 11.变量变量n变量变量 在程序运行过程中其值发生改变(可以被改变)在程序运行过程中其值发生改变
49、(可以被改变)的量值的量值 C语言规定所有用到的变量都必须在程序中指定语言规定所有用到的变量都必须在程序中指定其数据类型,必须其数据类型,必须“先定义后使用先定义后使用”n一个变量应该有一个名字(标识符)一个变量应该有一个名字(标识符)定义变量时要给其命名定义变量时要给其命名 n一个变量应该有一种数据类型一个变量应该有一种数据类型 编译系统根据定义变量的数据类型为其分配存储编译系统根据定义变量的数据类型为其分配存储单元并在该存储单元中存放变量的值单元并在该存储单元中存放变量的值 5151 11.变量变量每个变量都由一个变量名来标识每个变量都由一个变量名来标识 在在C语言中,变量名作为变量的标识
50、,其命名语言中,变量名作为变量的标识,其命名规则符合标识符的所有规定规则符合标识符的所有规定 n语言规定标识符只能由字母、数字和下划线组成且语言规定标识符只能由字母、数字和下划线组成且第一个字符必须是字母或下划线第一个字符必须是字母或下划线 提示提示 n大、小写字母被认为是不同的变量名大、小写字母被认为是不同的变量名 例:例:Sun、sun、SUN是三个不同的变量是三个不同的变量 为了避免混淆,变量命名应取不同的名字而不是用大小写为了避免混淆,变量命名应取不同的名字而不是用大小写区分区分 n尽量取与变量含义接近的名称尽量取与变量含义接近的名称n变量的命名变量的命名5252 11.变量变量n变量