单元2-程序设计基础知识_第1页
单元2-程序设计基础知识_第2页
单元2-程序设计基础知识_第3页
单元2-程序设计基础知识_第4页
单元2-程序设计基础知识_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、Page 1 C 课程课程单元二单元二 程序设计基础知识程序设计基础知识Page 2 主要主要内容内容2.1 数据表示数据表示2.1.1数据类型数据类型(难点)(难点)2.1.2常量常量(重点)(重点)2.1.3变量变量(重点)(重点)2.2 数据操作数据操作2.2.1运算符与表达式运算符与表达式(重点难点)(重点难点)2.2.2类型转换类型转换(难点)(难点)2.3 算法与三种基本程序结构算法与三种基本程序结构2.3.1算法及其描述算法及其描述2.3.2三种基本程序结构三种基本程序结构(重点难点)(重点难点)Page 3 程序设计基础程序设计基础问题引入问题引入 通过编程解决问题,其本质是对

2、数据的操作,这些数据通过编程解决问题,其本质是对数据的操作,这些数据可能是数学问题中的可能是数学问题中的数值(整数或小数),数值(整数或小数),可能是信息处理可能是信息处理中的中的文字(字符或字符串),文字(字符或字符串),也可能是更也可能是更复杂的数据或文件复杂的数据或文件 那么在那么在C语言中如何表示这些数据?如何对数据间的运语言中如何表示这些数据?如何对数据间的运算进行描述?算进行描述?【引例引例】根据三角形的三个边长,计算三角形的面积,其计根据三角形的三个边长,计算三角形的面积,其计算公式为:算公式为:area= (其中(其中a、b、c为三角形的三个边长,为三角形的三个边长,s=(a+

3、b+c)/2)试分析:试分析:在这个问题中涉及哪些数据:在这个问题中涉及哪些数据: ;其中已知量有:其中已知量有: ;未知量有:未知量有: 。)()(csbsassabcPage 4 2.1 2.1 数据表示数据表示 2.1.1 数据类型数据类型 2.1.2 常量常量 2.1.3 变量变量 Page 5 2.1.1 数据类型数据类型2.1 2.1 数据表示数据表示 计算机处理数据信息时,需要明确数据到底计算机处理数据信息时,需要明确数据到底是是什么类型,以便分配合适的存储空间什么类型,以便分配合适的存储空间,并按,并按照相应的规则进行操作。所以在程序编写时要照相应的规则进行操作。所以在程序编写

4、时要对数据进行明确的类型说明。对数据进行明确的类型说明。 Page 6 2.1.1 数据类型数据类型2.1 2.1 数据表示数据表示程序程序演示演示 运行结果:运行结果: 【例例2-1】计算并输出半径为r的圆的面积。#include /包含标准输入输出头文件包含标准输入输出头文件void main( ) /主函数主函数 float r,area; /数据准备,定义半径数据准备,定义半径r和面积和面积area printf(请输入半径:请输入半径:); /提示语提示语 scanf(%f,&r); /输入半径值输入半径值r area=3.14*r*r; /数据计算,将结果赋值给数据计算,将

5、结果赋值给area printf(该圆的面积为:该圆的面积为:%f.n,area); /输出面积值输出面积值数据类型:数据类型: r,arear,area为为floatfloat(实型)变量:(实型)变量: r,area r,area 常量常量3.143.14()Page 7 2.1.1 数据类型数据类型2.1 2.1 数据表示数据表示Page 8 1.整型整型2.1.1 数据类型数据类型2.1 2.1 数据表示数据表示名称名称符号符号存储空间存储空间数的范围数的范围短整型短整型short2字节(字节(16位)位)-32768+32767(-215+215-1)基本整型基本整型int2字节(字

6、节(16位)位)-32768+32767(-215+215-1)4字节(字节(32位)位)-2147483648+2147483647(-231+231-1)长整型长整型long4字节(字节(32位)位)-2147483648+2147483647(-231+231-1)无符号短整型无符号短整型unsigned short2字节(字节(16位)位)065535(0216-1)无符号基本整无符号基本整型型unsigned int2字节(字节(16位)位)065535(0216-1)4字节(字节(32位)位)04294967295(0232-1)无符号长整型无符号长整型unsigned long4

7、字节(字节(32位)位)04294967295(0232-1)Page 9 2浮点型浮点型 浮点型又分为浮点型又分为单精度单精度和和双精度双精度。其符号表示、。其符号表示、所占存储空间大小、有效数字及数的范围如表。所占存储空间大小、有效数字及数的范围如表。 2.1.1 数据类型数据类型2.1 2.1 数据表示数据表示名称名称符号符号存储空间存储空间有效数字有效数字数的绝对值范围数的绝对值范围单精度浮点型单精度浮点型float4字节(字节(32位)位)673.410-383.41038双精度浮点型双精度浮点型double8字节(字节(64位)位)15161.710-3081.710308Page

8、 10 程序的结构特点程序的结构特点3.字符型字符型 字符型数据涵盖了字符型数据涵盖了ASCII码字符集中每一个字码字符集中每一个字符,包括可直接显示的字符和符,包括可直接显示的字符和32个控制字符,见个控制字符,见附录附录A。 字符型用字符型用char表示,占存储空间表示,占存储空间1个字节(个字节(8位),实际上存放的是该字符所对应的位),实际上存放的是该字符所对应的ASCII码码值(一个整数),所以字符型和整型的关系非常值(一个整数),所以字符型和整型的关系非常特殊,二者经常特殊,二者经常“混搭混搭”,如,如A+1代表字母代表字母B。 2.1.1 数据类型数据类型2.1 2.1 数据表示

9、数据表示Page 11 2.1.2 常量常量2.1 2.1 数据表示数据表示Page 12 1.直接常量直接常量(1)整型常量整型常量 整型常量有十进制、八进制和十六进制三种表示方式,如整型常量有十进制、八进制和十六进制三种表示方式,如表表2-3所示。所示。 2.1.2 常量常量2.1 2.1 数据表示数据表示表示方式表示方式前置符号标志前置符号标志构成构成示例示例十进制十进制无无09、正负号、正负号65,-57八进制八进制007、正负号、正负号032,027,-033十六进制十六进制0 x或或0X09,af(或(或AF)、)、正负号正负号0 x101,0Xff整型常量默认为基本整型,可以在整

10、型常量后加整型常量默认为基本整型,可以在整型常量后加小写字母小写字母l或或大大写字母写字母L得到相应的长整型常量。得到相应的长整型常量。 例 30000 为int型 65536 为long int 型例例 (1) 200 23L (2) 067 083 02 (3) 0 x20 0 xfff 0 xh3 Page 13 1.直接常量直接常量(2)浮点型常量浮点型常量浮点型常量有十进制小数和指数形式两种表示方式浮点型常量有十进制小数和指数形式两种表示方式 。 2.1.2 常量常量2.1 2.1 数据表示数据表示表示方式表示方式符号标符号标志志构成构成示例示例规则规则十进制小数小数点 .09、正负

11、号和小数点1.23,.23,-1.必须有唯一的小数点指数字母e或E09、正负号、e或E1.23e3,1.23E3字母e或E前必有数,e或E后必为整数34.1335e-1 3413.35E-3 0.341335e2e3、2.1e3.5、e是不合法的指数形式是不合法的指数形式Page 14 1.直接常量直接常量(3) 字符型常量字符型常量 用用单撇引号括起来单撇引号括起来的单一字符称之为字符型常量。的单一字符称之为字符型常量。 转义字符转义字符表示时以反斜杠表示时以反斜杠“”作为标志符号。作为标志符号。 字符型常量在内存中字符型常量在内存中占占1个字节个字节。 2.1.2 常量常量2.1 2.1

12、数据表示数据表示例如:例如:1a,B,9,*是合法的直接字符常量。是合法的直接字符常量。2单引号、双引号和反斜杠等具有特殊用途的字符只能单引号、双引号和反斜杠等具有特殊用途的字符只能用转义字符表示,即用转义字符表示,即、。3n, 030, x19是合法的转义字符常量,分别代表回是合法的转义字符常量,分别代表回车换行、车换行、和、和等控制字符。等控制字符。Page 15 2.1.2 常量常量2.1 2.1 数据表示数据表示表示形式表示形式含义含义n回车换行(将光标移到下一行开头)回车换行(将光标移到下一行开头)t横向跳格(横向跳格(Tab)b退格(将光标前移一列)退格(将光标前移一列)a警告(产

13、生声音提示信号)警告(产生声音提示信号)输出反斜杠输出反斜杠输出单引号输出单引号 输出双引号输出双引号”dddddd为为1至至3为八进制数,如为八进制数,如101代表代表A,37代表符号代表符号xhhHh为为1至至2位十六进制数,如位十六进制数,如x1E代表符号代表符号1.直接常量直接常量(3) 字符型常量字符型常量-常见的转义字符及其含义如表常见的转义字符及其含义如表2-5所示所示 Page 16 2.1.2 常量常量2.1 2.1 数据表示数据表示1.直接常量直接常量(4)字符串常量字符串常量 字符串常量就是用双撇引号括起来的一串字符字符串常量就是用双撇引号括起来的一串字符序列,字符串中含

14、有的字符个数是该字符串的长度序列,字符串中含有的字符个数是该字符串的长度。字符串存储时,每个字符占。字符串存储时,每个字符占1个字符,并在字符串个字符,并在字符串的结尾自动加上一个字符串结束标志的结尾自动加上一个字符串结束标志0,因此字,因此字符串的存储长度比字符串的字符个数多符串的存储长度比字符串的字符个数多1。 a a a 0a 0例例 a a“a a”例例 空串空串 “”“”0Page 17 2符号常量符号常量 符号常量标识符通常大写,以便和其他符号常量标识符通常大写,以便和其他标识符相区别。另外,宏定义命令和头文标识符相区别。另外,宏定义命令和头文件包含命令一样都属于编译预处理,需要件

15、包含命令一样都属于编译预处理,需要写在程序开头位置。写在程序开头位置。 2.1.2 常量常量2.1 2.1 数据表示数据表示#define 符号常量标识符符号常量标识符 常量值常量值Page 18 #include #define PI 3.14 /定义符号常量定义符号常量PI代表代表3.14void main( ) float r,area; printf(请输入半径:请输入半径:); scanf(%f,&r); area=PI*r*r; printf(该圆的面积为:该圆的面积为:%f.n,area); 2.1.2 常量常量2.1 2.1 数据表示数据表示【例2-4】使用符号常量实现

16、【例2-1】计算并输出半径为r的圆的面积。 #define 符号常量标识符符号常量标识符 常量值常量值Page 19 【随堂练习随堂练习2-1】1判断下列常量表示正确与否?判断下列常量表示正确与否?整型常量:整型常量:32768、037、081、0 x4f、0 xAH浮点型常量:浮点型常量:.124、3.0、1e3、2.3E1.5字符型常量:字符型常量:a、101、65、x212字符串常量字符串常量“How are you?n”的字符串长度为的字符串长度为( )个个字节,它占用的存储空间为字节,它占用的存储空间为( )个字节。个字节。3“d:windowsinfo.txt”在在C语言程序设计时

17、应描述为语言程序设计时应描述为( )。4在编程处理物理力学相关运算时,常将重力加速度在编程处理物理力学相关运算时,常将重力加速度G定义定义为符号常量,其定义语句可描述为为符号常量,其定义语句可描述为( )。2.1.2 常量常量2.1 2.1 数据表示数据表示Page 20 1变量变量(1)概念:在程序运行过程中其值可以改变的量称为变量)概念:在程序运行过程中其值可以改变的量称为变量 (2)变量定义的一般格式为:变量定义的一般格式为: 类型标识符类型标识符 变量名变量名1,1,变量名变量名2,2,变量名变量名n;n; 2.1.3变量变量2.1 2.1 数据表示数据表示注意:变量必须先定义,后使用

18、。 数据类型,即决定数据类型,即决定分配字节数分配字节数和数的表示范围和数的表示范围合法标识符例例: int a,b,c; float data;例1 int student; stadent=19; /*Undefined symbol statent in function main*/ Page 21 1变量变量(3)【例例2-5】1)float r,area; 2)double a,b,c; 3)int i=1,s; 4)long m,k; 5)char ch;2.1.3变量变量2.1 2.1 数据表示数据表示变量定义后,系统会根据变量变量定义后,系统会根据变量的类型分配相应的的类型分

19、配相应的存储空间存储空间。 注意区分注意区分变量名变量名与与变量值变量值.地址地址int a=1, b=-3,c;int a=1, b=-3,c;a ab bc c2 2字节字节2 2字节字节2 2字节字节地址地址地址地址.内存内存1 1-3-3随机数随机数Page 22 1变量变量(4)【随堂练习随堂练习2-2】1下列变量定义中合法的是:下列变量定义中合法的是: (1)long do=0 xfd; (2)int max=min=0; (3)double f, int a; (4)char ch=A;2.1.3变量变量2.1 2.1 数据表示数据表示Page 23 2.22.2数据操作数据操作

20、2.2.1运算符与表达式运算符与表达式2.2.2类型转换类型转换 Page 24 运算符:运算符:在运算数据时,用来表示各种运算的符号在运算数据时,用来表示各种运算的符号 1. 运算符的种类运算符的种类1) 算术运算符算术运算符 * / % + -2) 关系运算符关系运算符 = | &5) 赋值运算符赋值运算符 = 及其扩展赋值及其扩展赋值6) 条件运算符条件运算符 ? :7) 逗号运算符逗号运算符 ,8) 指针运算符指针运算符 * &2.2.12.2.1运算符与表达式运算符与表达式2.22.2数据操作数据操作Page 25 2.2.12.2.1运算符与表达式运算符与表达式2.

21、22.2数据操作数据操作运算符运算符含义含义举例举例结果结果说明说明+加法运算符加法运算符a+ba与与b的和的和无无-减法运算符减法运算符a-ba与与b的差的差无无*乘法运算符乘法运算符a*ba与与b的乘积的乘积由于键盘无由于键盘无号,乘法运算以号,乘法运算以*代替。代替。/除法运算符除法运算符a/ba除以除以b的商的商由于键盘无由于键盘无号,除法运算以号,除法运算以/代替。注意:两个整数代替。注意:两个整数相除的结果为整数,如相除的结果为整数,如3/2的结果为的结果为1,舍去小数部,舍去小数部分。分。%求余运算符求余运算符a%ba除以除以b的余数的余数求余运算求余运算%仅用于整数间的运算,若

22、存在负整数,则仅用于整数间的运算,若存在负整数,则余数的正负号与被除数相同,如余数的正负号与被除数相同,如-3%2的结果为的结果为-1。+自增自增1运算符运算符a+或或+a使使a的值加的值加1+和和-为单目运算,且只能用于单一变量为单目运算,且只能用于单一变量运算运算+a和和-a,是在使用,是在使用a之前,先使之前,先使a的的值加值加1或减或减1a+和和a-,是在使用,是在使用a之后,再使之后,再使a的值加的值加1或减或减1-自减自减1运算符运算符a-或或-a使使a的值减的值减11算术运算符和表达式算术运算符和表达式 Page 26 1算术运算符和表达式算术运算符和表达式 【例【例2-6】分析

23、程序输出结果。分析程序输出结果。#include void main( ) int a=3,b=-5,i=2,j=2; printf(%d,%d,%d,%d,%dn,a+b,a-b,a*b,a/b,a%b); printf(%d,%d,%d,%dn,a+,b-,+i,-j); printf(%d,%d,%d,%dn,a,b,i,j);2.2.12.2.1运算符与表达式运算符与表达式2.22.2数据操作数据操作程序程序演示演示 运行结果:运行结果: Page 27 2赋值运算符和表达式赋值运算符和表达式2.2.12.2.1运算符与表达式运算符与表达式2.22.2数据操作数据操作x*=y+8x=x

24、*(y+8)x%=3x=x%3s+=is=s+3例例 int i; float j; i=2.56; /结果结果i=2; j=i; /结果结果i=2.0;例例: a=b=c=5: a=b=c=5 a=(b=5) a=(b=5) a=5+(c=6) a=5+(c=6) a=(b=4)+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) a=(b=10)/(c=2)/表达式值为5,a,b,c值为5/ b=5;a=5/表达式值11,c=6,a=11/表达式值10,a=10,b=4,c=6/表达式值5,a=5,b=10,c=2Page 28 doublefloatLong unsig

25、nedintchar,short低低高高说明说明:必定的转换必定的转换运算对象类型不同时转换运算对象类型不同时转换2.2.22.2.2类型转换类型转换2.22.2数据操作数据操作Page 29 例例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 结果:结果:x=3.600000,i=3精度损失问题较高类型向较低类型转换时可能发生较高类型向较低类型转换时可能发生2.2.22.2.2类型转换类型转换2.22.2数据操作数据操作Page 30 【随堂练习【随堂练习2-3】1.double a=3.14;int b;

26、b=(int)a;,执行该语,执行该语句后,变量句后,变量b的值为的值为3,变量,变量a的值还是的值还是3.14,并且变量,并且变量a的类型也不改变,依旧是的类型也不改变,依旧是double类型。类型。2.有定义语句:有定义语句:char ch=M;,写出将变量,写出将变量ch变为小写字母的表达式:变为小写字母的表达式: 。2.2.12.2.1类型转换类型转换2.22.2数据操作数据操作Page 31 2.3 2.3 算法与三种基本程序结构算法与三种基本程序结构2.3.1算法及其描述算法及其描述 2.3.2三种基本程序结构三种基本程序结构Page 32 1算法的概念算法的概念 对于计算机程序可

27、处理的问题来说,程序中所用到对于计算机程序可处理的问题来说,程序中所用到的数据以及对这些数据的类型和数据组织形式的描述的数据以及对这些数据的类型和数据组织形式的描述称之为称之为“数据结构数据结构”. 对数据处理所采用的方法和步骤等操作的描述称为对数据处理所采用的方法和步骤等操作的描述称为“计算机算法计算机算法”。 作为程序设计人员,必须认真考虑和设计数据结构作为程序设计人员,必须认真考虑和设计数据结构和操作步骤(即算法)。著名计算机科学家沃思(和操作步骤(即算法)。著名计算机科学家沃思(Nikiklaus Wirth)提出一个公式:)提出一个公式:2.3.12.3.1算法及其描述算法及其描述2

28、.3 2.3 算法与三种基本程序结构算法与三种基本程序结构程序程序=数据结构数据结构+算算法法Page 33 2.3.1算法及其描述算法及其描述2.3 2.3 算法与三种基本程序结构算法与三种基本程序结构图形符号图形符号名称名称含义含义起止框起止框算法的起点和终点,是任何流程图比不算法的起点和终点,是任何流程图比不可少的可少的输入、输出框输入、输出框数据的输入和输出操作数据的输入和输出操作处理框处理框各种形式数据的处理各种形式数据的处理判断框判断框判断条件是否成立,成立时在出口处标判断条件是否成立,成立时在出口处标注注“是是”或或“Y”,不成立时标注,不成立时标注“否否”或或“N”特定过程特定

29、过程一个特定过程,如函数一个特定过程,如函数流程线流程线连接各个图框,表示执行的顺序连接各个图框,表示执行的顺序连接点连接点表示与流程图其它部分相连表示与流程图其它部分相连流程图符号流程图符号 Page 34 下面对下面对【例例2-1】的算法描述改用流程图的方法表示的算法描述改用流程图的方法表示 2.3.1算法及其描述算法及其描述2.3 2.3 算法与三种基本程序结构算法与三种基本程序结构开始开始结束结束计算圆的面积计算圆的面积areaareaarea=3.14*r*r输入半径输入半径r r值值输出面积值输出面积值areaareaPage 35 1顺序结构顺序结构 顺序结构指算法顺序结构指算法

30、的实现过程按照相应的实现过程按照相应的步骤依次顺序执行的步骤依次顺序执行,直至结束。顺序结,直至结束。顺序结构是构是最简单的一种基最简单的一种基本结构本结构。2.3.22.3.2三种基本程序结构三种基本程序结构2.3 2.3 算法与三种基本程序结构算法与三种基本程序结构Page 36 1顺序结构顺序结构 2.3.22.3.2三种基本程序结构三种基本程序结构2.3 2.3 算法与三种基本程序结构算法与三种基本程序结构开始开始结束结束计算圆的面积计算圆的面积areaareaarea=3.14*r*r输入半径输入半径r r值值输出面积值输出面积值areaareaPage 37 2选择结构选择结构 又

31、称为又称为分支分支结构结构,此结构中,此结构中必包含一个条件必包含一个条件判断,根据判断判断,根据判断结果从两种或多结果从两种或多种路径中选择其种路径中选择其中的一条执行。中的一条执行。 2.3.22.3.2三种基本程序结构三种基本程序结构2.3 2.3 算法与三种基本程序结构算法与三种基本程序结构Page 38 2选择结构选择结构 2.3.22.3.2三种基本程序结构三种基本程序结构2.3 2.3 算法与三种基本程序结构算法与三种基本程序结构结束结束计算圆的面积计算圆的面积areaareaarea=3.14*r*rr是否合法是否合法输出输出“输入错误输入错误”提示提示输出面积值输出面积值areaarea输入半径输入半径r r值值是是否否开始开始Page 39 3循环结构循环结构 又称重复又称重复结构,其含义结构,其含义是当条件允许是当条件允许时,反复执行时,反复执行某些操作。某些操作。 2.3.22.3.2三种基本程序结构三种基本程序结构2.3 2.3 算法与三种基本程序结构算法与三种基本程序结构否否输入半径输入半径r r值值r是否合法是否合法否否是是开始开始结束结束是否继续是否继续是是计算圆的面积计算圆的面积areaareaarea=3.1

温馨提示

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

评论

0/150

提交评论