第二章  顺序结构流程及应用_第1页
第二章  顺序结构流程及应用_第2页
第二章  顺序结构流程及应用_第3页
第二章  顺序结构流程及应用_第4页
第二章  顺序结构流程及应用_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

第二章 顺序结构流程及应用 n 第一节 标识符与关键字 n 第二节 基本数据类型 n 第三节 常量与变量 n 第四节 常用运算符和表达式 n 第五节 数据的输出和输入 n 第六节 程序算法基础 n 第七节 顺序结构程序设计 n 第八节 项目任务:软件用户界面设计 第一节 标识符与关键字n 一、基本字符n 一个 C程序也可以看成是由 C语言的基本字符按一定的规则组成的一个序列。 C语言中使用的基本字符包括:n 任何程序设计语言都规定了自己的一套基本符号和词汇,C语言也不例外。n 数字字符: 0-9n 大小写英文字母: a-z, A Zn 其他可打印字符: ! # % “ ( ) n 空白字符:空格符、换行符、制表符等n 二、标识符n 程序中用来标识变量名、函数名、数组名、数据类型名等的有效字符序列称为标识符。简单地说,标识符就是一个名字。n 在 C语言中,标识符的命名规则为:n 有效字符:只能由英文字母 (AZ、 az)、数字 (09)和下划线 (_)三类符号组成,但第一字符必须是字母或下划线。n 有效长度:随系统而异,但至少前 8个字符有效;如果超长,则超长部分被舍弃。n C语言的关键字(或称保留字)不能用做标识符。n 例如,下面的标识符是合法的:n sum、 DAY、 n2、 _average、 a_5、 student_2_namen 下面是不合法的标识符:n num-1、 a#3、 2stud、 !sum_2、 number.3n 【 建议 】 定义标识符应做到 “见名知意 ”,以增加程序的可读性。 n 三、标识符关键字n 关键字又称为保留字,是 C语言编译系统所固有的、具有专门意义的标识符。 C语言的关键字有 32个,一般用作 C语言的数据类型名或语句名,如表 2.1所示。表 2.1 C语言关键字typedef void auto extern unsigned for long default static register Char break const while short if float switch double Continueenum goto struct else volatile return int case signed sizeof union do 【 说明 】 所有关键字的字母均采用小写,关键字不能再作为用户的常量、变量、函数和类型等的名字。第二节 基本数据类型n C语言提供了极其丰富的数据类型,在这些数据类型中除被称为基本数据类型的整型、实型和字符型外,数组、结构体、共用体和枚举类型是由基本数据类型组合成的构造类型,而指针是一种使用灵活的数据类型。n 1. 数据n 现实生活中有大量的数据需要管理。例如,每个班级中学生的姓名、性别、照片、出生日期、入学成绩等。从计算机学科的角度来说,数据是指能被计算机存储和处理、反映客观事物的符号,计算机处理的数据不仅有数字、字符、符号,还有图像、声音等。n 2. 数据类型n 在 C语言中,数据类型分为基本类型、构造类型、指针类型和空类型四类。构造类型又分为数组类型、结构类型、共用类型和枚举类型。基本类型又分为数值型和字符型两类。数值型又分为整型和实型两类。例如,姓名、性别等是字符型数据,入学成绩等是可以进行数学运算的数值型数据。如图 2.1所示。图 2.1 C语言的数据类型n C语言对不同类型的数据规定了不同的组织形式和运算方法,对不同类型的数据在内存中分配不同长度的存储空间。本章只介绍基本数据类型中的整型、实型和字符型,其余类型将在以后各章节中陆续介绍。n 一、整型数据n 数值型数据可以分为整型和实型两类。整型数是不带小数点的数,根据整型数的数值范围和是否带有符号,可以进一步把整型数细分为短整型、整型、长整型、无符号短整型、无符号整型、无符号长整型。它们的类型标识符、数值范围和在内存中占用的字节数如表 2.2所示。n 表 2.2 整型数据分类名称 类 型 说 明符 数 值 范 围 长 度 短整型 short -3276832767 2字 节 整型 int -3276832767 4字 节 长 整型 long -21474836482147483647 4字 节 无符号短整型 unsigned short 0 65536 2字 节 无符号短整型 unsigned int 0 65536 2字 节 无符号 长 整型 unsigned long 0 4294967295 4字 节 二、实型数据实型数就是数学中的实数,主要用来处理带小数点的数。根据实型数的数值范围,可以进一步把实型数细分为单精度型和双精度型两类。它们的类型标识符、数值范围和在内存中占用的字节数如表 2.3所示。表 2.3 实型数据分类名称 类 型 说 明符 数 值 范 围 长 度 单 精度型 float 约 -3.41038 3.41038 4字 节 双精度型 double 约 -1.7103081.710308 8字 节 三、字符型数据字符型数据可分为字符和字符串两类。字符是用一对单引号括起来的一个字符,字符串是用一对双引号括起来的一个或多个字符。例如, z和 Z都是字符数据,而 “abcde“和 “C FREE“则是字符串。字符数据的类型标识符为 char,它在内存中占用 1个字节。第三节 常量与变量 n 对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。它们可与数据类型结合起来分类。例如,可分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量。在程序中,常量可以不经说明而直接引用,而变量则必须先定义后使用。n 一、常量n 在程序执行过程中,其值不能被改变的量称为常量。在 C语言中,常量不需要类型说明就可以直接使用,常量的类型由常量本身隐含决定的。如 12、 0、 -7为整型常量, 3.14、 -2.8为实型常量, a、 b、 c则为字符型常量, abcdfr、C-FREE则为字符串常量。这些常量称为直接常量,一般从其字面形式即可判别。n 有时为了使程序更加清晰和便于修改,用一个标识符来代表常量,即给某个常量取个有意义的名字,这种常量称为符号常量。符号常量在使用之前必须先定义,其一般形式为:n #define 标识符 常量n 其中 #define也是一条预处理命令 (预处理命令都以“#”开头 ),称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。n 【 案例 2-1】 符号常量的使用。程序代码如下:n #define PI 3.14n main()n n float area, r;n r = 10; area = r * r * PI;n printf(“r = 10 aera=%fn“, area);n r = 5; area = r * r * PI;n printf(“r = 5 aera=%fn“, area);n n 运行结果:n r = 10 aera=314.000000n r = 5 aera=78.500000n 【 注意 】 符号常量也是常量,它的值在其作用域内不能改变,也不能再被赋值。n 二、变量n 在程序执行过程中,其值可被改变的量称为变量。一个变量必须有一个名字,在内存中占据一定的存储单元,在该存储单元中存放变量的值。n 1.变量的定义n 在 C语言中,变量必须强制定义,即 “先定义,后使用 ”,定义变量语句的一般形式如下:n 数据类型 变量列表 ;变量定义时必须遵守标识符的命名规则。例如: sum、 average、 _total、 Class、 day、 month、student_name、 tan、 li_ling是合法的变量名, Zhang- sun、students、 263.com、 $123、 #33、 3D64是不合法的变量名。n 【 案例 2-2】 定义变量的语句举例。n int a; /*定义 a为整型变量 */n int x,y; /*定义 x、 y为整型变量 */n long n1,n2,n3 /*定义 n1、 n2、 n3为长整型变量 */n float sum1,sum2; /*定义 sum1、 sum2为单精度型变量 */n double d1,d2; /*定义 d1、 d2为双精度型变量 */n char ch1,ch2; /*定义 ch1、 ch2为字符型变量 */n 【 提示 】 变量名应简单易记、见名知意。我们常用有含义的英文单词作变量名,如 price, grade, total等,从变量名就可以大体了解该变量的作用。n 2.变量的赋值n 定义了变量后,才能给变量赋值。给变量赋值的操作由赋值运算符 “=”来完成,给变量赋值语句的一般形式为:n 变量名 =表达式;n 例如在案例 2-1中, r是单精度型变量,它在程序运行过程分别赋以值 10和值 5。n 【 说明 】n 给变量赋值时要特别注意赋值号左边只能是变量名,不能是其它表达式。n 变量名和变量值是两个不同的概念。变量名在程序运行的过程中不会改变,而变量值则可以发生变化。n 3.变量的初始化n C语言提供了灵活的定义变量和给变量赋值的方式。我们可以先定义变量,再给变量赋值。也可以在定义变量时对变量进行赋值,也称变量初始化。就像下面的语句一样:n int a=1,b=5;n char ch1=c,ch2=C;n float x1,x2=3.5;n 其中,第 1条语句定义 a、 b为整型变量,且给变量 a赋值为 1,变量 b赋值为 5。第 2条语句定义 ch1. ch2为字符型变量,且给变量 ch1赋值为 c,变量 ch2赋值为 C。第 3条语句定义x1. x2为单精度型变量,但只给变量 x2赋值为 3.5。第四节 常用运算符和表达式n 运算是对数据进行加工的过程,用来表示各种不同运算的符号称为运算符。参加运算的数据称为运算对象或操作数。用运算符把运算对象连接起来的式子称为表达式。n C语言的运算符相当丰富,应用范围很宽广,可完成 C语言中的除了控制语句和输入输出语句以外的几乎所有的基本操作。 C的运算符分类见表 2.4。表 2.4 C语言的运算符运算符种 类 运 算 符 运算符种 类 运 算 符 算 术 运算符 +、 -、 *、 /、 % 自增、自减运算符 +、 - 关系运算符 、 =、 -、 |、 、 n printf(“A=20 B=5n “);n printf(“A与 B的和是: %d n“,a+b);n printf(“A与 B的差是: %d n“,a-b);n printf(“A与 B的积是: %d n“,a*b);n printf(“A除以 B的商是: %d n“,a/b);n printf(“A除以 B的余数是: %d n“,a%b);n n 2强制类型转换运算符n 强制类型转换可以将一个表达式转换成所需的类型。其格式为:n (类型名 )表达式n 例如:n (float)a /*将 a转换成 float型 */n (int)(x+y) /*将 x+y的值转换成 int型 */n (int)x+y /*将 x的值转换成 int型 */n 注意:n 强制类型转换不能写成 float(a)。n (int)x+y是将 x转换成 int型。而 (int)(x+y)是将 x+y的值转换成 int型n 3. 自增、自减运算符n 自增、自减运算符是单目运算符,即仅对一个运算对象施加运算,运算结果仍赋予该运算对象。表 2.6列出了自增、自减运算符的种类和功能。表 2.6 自增、自减运算符n 【 案例 2-4】 运行下面的程序,观察并分析自增和自减运算符的运算规则n #includen main( )n n int a,b,c,d,e,f,g,h;n a=5; b=5; c=5; d=5;n e=a+; f=+b; g=c-; h=-d;n printf(“a的初值 =5 t e=a+ 值为 %d t a=%d n“,e,a);运算符 名 称 举 例 等价于 + 加 1 i+或 +i i=i+1 - 减 1 i-或 -i i=i-1 n printf(“b的初值 =5 t f=+b 值为 %d t b=%d n“,f,b);n printf(“c的初值 =5 t g=c- 值为 %d t c=%d n“,g,c);n printf(“d的初值 =5 t h=-d 值为 %d t d=%d n“,h,d);n n 运行结果 :n a的初值 =5 e=a+ 值为 5 a=6n b的初值 =5 f=+b 值为 6 b=6n c的初值 =5 g=c- 值为 5 c=4n d的初值 =5 h=-d值为 4 d=4n 从本例的操作结果可以看出,表达式 a+与 +a的值不同,表达式 a-与 -a的值也不同。对于 a+,系统先计算表达式的值,再进行 a增 1的运算;而对 +a,则先进行 a增 1的运算,再计算表达式的值。类似地, a-是先计算表达式的值,再进行 a减 1的运算;而对 -a,则先进行 a减 1的运算,再计算表达式的值。n 【 注意 】 自增运算符 (+)或自减运算符 (-)只能用于变量,而不能用于常量或表达式。n (二)算术表达式n 用算术运算符、圆括号将运算对象 (或称操作数 )连接起来的符合 C语法规则的式子,称为 C算术表达式。其中运算对象可以是常量、变量、函数等。n 1算术表达式的书写形式n C算术表达式的书写形式与数学中表达式的书写形式是有区别的,在使用时要注意以下几点:n C表达式中的乘号不能省略。例如:数学式 b2-4ac,相应的C表达式应写成 b*b-4*a*c。n C表达式中只能使用系统允许的标识符。例如:数学式 r2相应的 C表达式应写成 3.1415926*r*r。n C表达式中的内容必须书写在同一行,不允许有分子分母形式,必要时要利用圆括号保证运算的顺序。例如: 数学式相应的 C表达式应写 (a+b)/(c+d)。n C表达式不允许使用方括号和花括号,只能使用圆括号帮助限定运算顺序。可以使用多层圆括号,但左右括号必须配对,运算时从内层圆括号开始,由内向外依次计算表达式的值。n 2. 算术运算符的优先级和结合性n 优先级:是指当一个表达式中如果有多个运算符时,则计算是有先后次序的,这种计算的先后次序称为相应运算符的优先级。n 结合性:是指当一个运算对象两侧的运算符的优先级别相同时,进行运算 (处理 )的结合方向。按 “从右向左 ”的顺序运算,称为右结合性;按 “从左向右 ”的顺序运算,称为左结合性。表 2.7中给出了算术运算符的优先级和结合性。n 在算术表达式中,若包含不同优先级的运算符,则按运算符的优先级别由高到低进行运算;若表达式中运算符的优先级别相同时,则按运算符的结合方向 (结合性 )进行运算。表 2.7 算术运算符的优先级和结合性n 二、关系运算符和关系表达式n (一)关系运算符n 关系运算是对两个操作数之间进行比较的运算符 ,其运算结果为逻辑值或 “布尔 ”( boolean)值,其值只有两种可能 “真 ”或 “假 ”, C语言提供了六种关系运算符,如表 2.8所示。运算种 类 结 合 性 优 先 级 +、 - 从右到左 高低 *、 /、 % 从左向右 +、 - 从左向右 表 2.8 关系运算符运算符 名称 示例 运算功能 运算符 名称 示例 运算功能 大于 a b a大于 b = 大于等于 a=b a大于等于 b =b、 (a=1)(b=2)等都是合法的关系表达式。对关系表达式运算时,要注意关系运算符的优先级和关系表达式的值。n 1. 关系运算符的优先级n 按优先级可以把关系运算符分成两组。n (大于)、 =(大

温馨提示

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

评论

0/150

提交评论