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

下载本文档

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

文档简介

1、主要内容主要内容n数据类型、常量、变量n基本运算与表达式n其它运算与表达式、混合运算n顺序结构程序设计数据类型、常量、变量数据类型、常量、变量主要内容n基本字符、标识符、关键字n数据类型数据类型 n常量常量n十进制、二进制、八进制、十六进制数十进制、二进制、八进制、十六进制数及其转换及其转换n变量变量n数据的输出与输入数据的输出与输入2.1 基本字符、标识符和关基本字符、标识符和关键字键字学一学学一学n基本字符n标识符n关键字 基本字符基本字符 一个一个C程序也可以看成是由程序也可以看成是由C语言的基本字符语言的基本字符按一定的规则组成的一个序列。按一定的规则组成的一个序列。C语言中使语言中使

2、用的基本字符包括:用的基本字符包括: 数字字符:数字字符:09; 大小写英文字母:大小写英文字母:az,AZ; 其他可打印(可显示)字符:其他可打印(可显示)字符: ! # % & * _(下划线下划线) - + = / | . , : ; ? “ ( ) 空白字符:空格符、换行符、制表符等。空白字符:空格符、换行符、制表符等。 和其它高级语言一样,用来标识函数名、变量名、符号常量、数组和其它高级语言一样,用来标识函数名、变量名、符号常量、数组名、类型名、文件名的有效字符序列称为名、类型名、文件名的有效字符序列称为“标识符标识符”(identifier),通俗地讲,标识符就是一个名字。

3、),通俗地讲,标识符就是一个名字。 在在C语言中,标识符的命名规则为:语言中,标识符的命名规则为: (1)有效字符有效字符:只能由字母、数字和下划线组成,且以字母或下:只能由字母、数字和下划线组成,且以字母或下划线开头;划线开头; (2)有效长度有效长度:随系统而异,但至少前:随系统而异,但至少前8个字符有效。如果超长个字符有效。如果超长,则超长部分被舍弃;,则超长部分被舍弃; (3)C语言的关键字(或称保留字)不能用作标识符语言的关键字(或称保留字)不能用作标识符。 例如:例如: sum ,Total,day,_f2048,file_name,a3b06都是合法的标识符,而都是合法的标识符,

4、而99new ,a-b,W.S.Piter,$88,cd#ab,vbase,int都是不合法标识符。都是不合法标识符。标识符标识符关键字关键字由系统预先定义的标识符称“关键字”,它们都有特殊的含意,不能用于其它目的。C语言关键字32个,如表2-1所示。想一想想一想n对于下面的程序,指出其中的关键字。#include stdio.h /*编译预处理命令*/void main() int iMath,iEnglish; float fAverage; /*定义变量*/ iMath = 80; iEnglish = 88; /*给变量赋值*/ fAverage=(iMath+iEnglish)/2.

5、0; /*计算平均分并存入变量faverage*/ printf(The average is %0.1f,fAverage); /*输出结果值*/ getch();2.2 数据类型及常量、变量 学一学n数据类型数据类型n常量常量n变量变量数据类型数据类型 各种类型数据取值范围各种类型数据取值范围 常量n常量常量是在程序的执行过程中其值不变的量。是在程序的执行过程中其值不变的量。n在在C语言中,常量不需要类型说明就可以直接语言中,常量不需要类型说明就可以直接使用,常量的类型是由常量本身隐含决定的。使用,常量的类型是由常量本身隐含决定的。n在在C语言中,从其表现形式常量分为语言中,从其表现形式常

6、量分为普通常量普通常量和符号常量和符号常量。普通常量就是用数字直接表示的。普通常量就是用数字直接表示的常量,符号常量是用一个标识符来代表的常量常量,符号常量是用一个标识符来代表的常量。无论是普通常量,还是符号常量,它们都有。无论是普通常量,还是符号常量,它们都有自己的类型。自己的类型。数值常量数值常量 n1 整型数值常量整型数值常量 n2 实型数值常量实型数值常量: 835.6, 77.2, 0.618 , 1.23E-2 ,1.5E3 n3 字符型常量字符型常量: a, A, $ , n, 105, X7Bn4 字符串常量字符串常量: “Hello”, “Welcome” “_ABC”整型数

7、值常量三种表示法三种表示法 n 十进制十进制 (0-9十个数字构成,逢十个数字构成,逢10进进1): 1, 200,3500n十六进制(十六进制(0-9十个数字,十个数字,A-F六个字符构成,逢六个字符构成,逢16进进1) : 以以0 x或或0X开头的数字序列开头的数字序列 0 x12, 0X706A,0 xF2Bn八进制(八进制(0-7八个数字构成,逢八个数字构成,逢8进进1) :以以0开头的数字序列开头的数字序列 025,0706十进制、二进制、八进制、十六十进制、二进制、八进制、十六进制进制十进制数转换为二进制数十进制数转换为二进制数 n十进制数转换为二进制数使用“除2取余法”, 例如,

8、将十进制数25转换为二进制数 1 用25除以2余数是1,商是12, 2 对商12再除以2得余数是0,商是6, 3 对商6再除以2得余数是0,商是3, 4 对商3再除以2得余数1,商1, 5 对商1再除以2得余数1,商0, 6 当商为0时停止。 此时十进制数25的二进制数为:11001,即把以上每步所得的余数按从右到左的 顺序写出来就可以了。如果是用8位表示这个二进制数,则高位部分补0.即可。比如25的8位二进制数为 00011001252112206203211210这种方法也可用来将十进制数转换为8(或16)进制数,不过在上述过程中要以8(或16)做除数。二进制数转换为十进制数二进制数转换为

9、十进制数n二进制数转换为十进制数比较简单,比如100110对应的十进制数为: 1*25+0*24+0*23+1*22+1*21+0*20=32+4+2=38二进制数转换为八进制数二进制数转换为八进制数n二进制数转换为八进制数时,将二进制数从低位按3位一组进行划分,高位不足三位的补0,将每三位二进制数转换为一个十进制数,即为该二进制数的八进制数。比如1100110,将其分组如下: 001 100 110 则对应的八进制数为146146二进制数转换为十六进制数二进制数转换为十六进制数n二进制数转换为十六进制数时,将二进制数从低位按4位一组进行划分,高位不足4位的补0,将每4位二进制数转换为一个十进

10、制数,即为该二进制数的十六进制数。比如111100100,将其分组如下: 0001 1110 0100 则对应的十六进制数为1E4 1E4课堂练习课堂练习n将十进制数59 转为二进制、八进制和 十六进制数。n将二进制数1100110100转化为十进制、八进制和十六进制数。实型数值常量2种表示法种表示法小数形式小数形式: 835.6, 77.2, 0.618 指数形式指数形式: 1.23E-2 ,1.5E3 字符型常量2种表示法种表示法用单引号引起来的单个字符用单引号引起来的单个字符,如如 a, A, $ . 转义字符表示法转义字符表示法 ,如如n, 105, X7B转义字符及其含义转义字符及其

11、含义课堂练习课堂练习n从附录中查找字母H的ASCII码值,写出其转义字符.n编一程序,定义一个字符型变量cX,赋以字符H的转义字符,然后用字符格式输出变量cX .字符型数据的存储形式n在内存中,一个字符型数据占用一个字节(8bite),以ASCII码的二进制形式存放。比如字符a的 ASCII码值是97,则a在内存中的存放形式如下:字符型数据的使用字符型数据的使用n一个字符型变量可以赋以一个字符常量,也可以赋以一个整数.n字符型数据在输出时可以以字符格式输出,也可以以整数格式输出. 以整数格式输出时,Ascii码值在1-127之间的字符输出正数,128-255之间的字符输出负数.n字符型数据可以

12、进行算术运算,运算时以它们的Ascii码值进行运算.课堂实践课堂实践n编一程序,定义一个字符型变量cX,赋以字符常量a ,然后用字符和整数格式输出cX.n将cX的值减32,赋给cX,再用字符和整数格式输出cX. n有何发现?符号常量符号常量 n符号常量通常在文件的开始定义,它是一个预处理命令,其定义格式如下: #define 其含义是程序中该命令后出现的地方全部用来替代. 比如: #define PI 3.1415926 符号常量字符串符号常量的使用符号常量的使用#define PI 3.1415926 /*圆周率*/#include Stdio.h#include Conio.hint ma

13、in(void) float fR,fArea; fR=10; fArea=PI*fR*fR; printf(the area of this circle is %0.2f,fArea); getch(); return 0; PI是符号常量,程序中的PI在运行时用3.1415926来替换变量变量变量是指在程序执行过程中,其值可以改变的量。n一个变量用一个名字表示,在内存中占据一定的存储单元,用于存放变量的值。n变量必须先定义后使用,变量的值可以通过赋值的方法获得和改变。 变量定义和初始化变量定义和初始化 存储类型存储类型 数据类型数据类型 变量名变量名1=初始数据初始数据,变量名变量名2

14、=初始数据初始数据2,,变量,变量n=初始初始数据数据n ; 比如:比如: int iMath; int iEnglish=90;定义变量定义变量并初始化数据类型变量名当前值变量三要素:数据类型变量名当前值试一试问题问题2.1新生入学需要保存学生数据,现在定义整型变量存放年龄、学号,定义字符变量存放性别,定义浮点型变量存放入学分数和班费。int iAge=20,iNum=201; char cSex=m; /*f:female(女), m:male(男)*/ float fScore,fSum; fScore=580.5;fMoney=78.5 想一想 n生活、学习、工作中有哪些量是其值不变的

15、常量?哪些信息是经常变化的?定义成什么类型的变量比较合适?课堂实践课堂实践n编一程序从键盘输入矩形的长和宽,计算矩形的面积和周长,并输出到屏幕上。小结小结n基本字符n标识符n关键字n数据类型数据类型 n常量常量n变量变量上节课内容回顾上节课内容回顾nprintf()函数 nscanf()函数nputchar()函数ngetchar()函数基本运算与表达式基本运算与表达式n主要内容主要内容n1、算术运算符与算术表达式n2、赋值运算符与赋值表达式n3、关系运算符与关系表达式n4、逻辑运算符与逻辑表达式算术运算符与算术表达式算术运算符与算术表达式n 算术运算符:、算术运算符:、课堂实践课堂实践n调试

16、 31页问题2.6的程序代码。赋值运算赋值运算n如有:如有:nint a3,b=9,x;nfloat f1=2.5,f3=5.8;n则经过以下运算后分析各个变量的值:则经过以下运算后分析各个变量的值:nb=a;nb=b-a;nf3=f2+f3;赋值符号:赋值符号:关系运算符与关系表达式关系表达式:关系表达式:35nInt a=4,b=9,c=5;na=b-cnb、=、3&43&45n53|43|45n!0&4 ,nint iX=3 ,0&(iX=iX+1), 0& (iX=iX+1) 逻辑运算符:(短路与)、(短路或)&(与)、 |(或) 、!(

17、非)&和和&的区别的区别n当多个表达式进行& 运算时,如果第一个表达式的值为假,则整个表达式的值为假, 这时,后面的其它表达式不需要再做运算。n当多个表达式进行& 运算时,需要计算出每个表达式的值后,再将每个表达式的值进行逻辑与运算 。n 课堂实践课堂实践n编一程序,验证短路与(&)和与(&)运算规则。解题步骤如下: 1 定义一个整型变量iA,并赋值2; 2 定义1个整型变量iY; 3 iY赋值0&(iA=iA+2) 4 输出iA,iY 观察程序运行结果,iA的值有何变化? 将程序中的&改为&,运行程序,iA的值有无变化?

18、 |和和| 的区别的区别n当多个表达式进行 |运算时,如果第一个表达式的值为真,则整个表达式的值为真, 这时,后面的其它表达式不需要再做运算。n当多个表达式进行逻辑或 | 运算时,需要计算出每个表达式的值后,再将每个表达式的值进行逻辑或运算 。课堂实践课堂实践n编一程序,验证短路或(|)和或(|)运算规则。解题步骤如下: 1 定义一个整型变量iA,并赋值2; 2 定义1个整型变量iY; 3 iY赋值1|(iA=iA+2) 4 输出iA,iY 观察程序运行结果,iA的值有何变化? 将程序中的|改为|,运行程序,iA的值有无变化?举例:表达闰年的条件举例:表达闰年的条件n 按照历法的规定,某一年要

19、成为闰年按照历法的规定,某一年要成为闰年,则应符合以下两个条件之一:,则应符合以下两个条件之一:n (1)能被能被4整除,但不能被整除,但不能被100整除整除;n (2)能被能被400整除。整除。n 设设year表示年份,用表示年份,用C语言的逻辑表语言的逻辑表达式来表达润年的逻辑表达式即为:达式来表达润年的逻辑表达式即为:n (year % 4 = 0) & (year % 100 !=0) | (year % 400 = 0) 课堂实践课堂实践n写出写出“成绩高于成绩高于90分并且年龄小于分并且年龄小于20岁岁”的条件表达式。成绩的条件表达式。成绩iscore用表示用表示,年龄用,

20、年龄用iage表示表示 n n 设整型变量设整型变量a = 16,b = 5,下列表达,下列表达式的值为真的是式的值为真的是_。n A)!(b = =a/3)n B)b != (a%ll)n C)(a 1) & (b b)n 当当x为偶数时,下列哪一个表达式的值为真为偶数时,下列哪一个表达式的值为真_。n A) x%2 = 0n B) x2*2-xn C) x%2 != 0n D) !(x%2 = 0)n设整型变量设整型变量a = 3,b = 4,c=5,下,下列表达式的值为列表达式的值为0的是的是_。n A)abn B) a (b+5)n C) a | (b+c) & (b-

21、c+8)n D) !(a =y)AND(y=z)n B)(xyz)n C)(x=y)&(y=z)n D)(x=y)&(y=z)请用条件表达式写出下面的条件请用条件表达式写出下面的条件:n1)温度temp介于20度与30度之间;n2) 成绩score大于60小于100;n3)时间time在上午10或者下午3点;n4)上班时间time是上午8至11点和下午2点至5点;作业作业 n从键盘输入一个4位数(1000-9999),输出其千位、百位、十位和个位上的数。babab小小 结结n什么是算术运算符与算术表达式n赋值运算的特点n关系运算符与关系表达式n逻辑运算符与逻辑表达式其它运算与表

22、达式、混合运算其它运算与表达式、混合运算n主要内容 n1、自加、自减运算及其表达式n2、逗号运算符与逗号表达式n3、强制类型转换运算符n4、混合运算与类型转换n5、数学函数的使用上节课内容回顾上节课内容回顾n算术运算 n赋值运算n关系运算n逻辑运算自加、自减运算及其表达式自加、自减运算及其表达式n 自加运算符:自加运算符:+ 自减运算符:自减运算符:-自加、自减运算符是单目运算符。所谓单目运算符就是只对一个运算对象施加运算,运算的结果仍赋予该对象。参见自加和 自减运算 的对象只能是变量。思考: 对二个运算对象施加运算的运算符是什么运算符?课堂实践课堂实践n调试 33页问题2.8的程序代码,学习

23、自加,自减运算符的用法。思考: -5,(x+y)+ 对吗? iX+和+iX一样吗?有何区别? 逗号运算符与逗号表达式逗号运算符与逗号表达式n逗号运算符也称为顺序求值运算符,它的作用是把多个表达式连接起来。n用逗号运算符连接起来的式子称为逗号表达式。n主要用在for循环语句中n比如:比如:iA=4,iX=iA+iB,iY=2*iX; ,课堂实践课堂实践n调试 36页问题2.11的程序代码,学习逗号运算符的用法。思考: 逗号表达式的值是? 逗号表达式中每个表达式的数据类型可以不同吗? 强制类型转换运算符强制类型转换运算符n在实际应用中,常常要把一些表达式的类型转换成所需要的类型.比如:nfloat

24、 iA=1.23; Int iY= (int)(iA+10.25),nfloat iX=(float)(50); 用法格式用法格式:(类型名类型名)(表达式表达式) 课堂实践课堂实践n调试 32页问题2.7的程序代码,学习强制类型转换运算符的用法。注意: 在将胖类型(float,double)转换瘦类型(int)时,可能会丢失数据。混合运算与类型转换混合运算与类型转换 不同数据类型的数据在一起进行混合运算时不同数据类型的数据在一起进行混合运算时 需要进行类型转换。需要进行类型转换。 C语言的类型转换方式有两种:语言的类型转换方式有两种: 自动转换自动转换。一个表达式(特别是算术)在。一个表达式

25、(特别是算术)在 运算中,自动将低运算中,自动将低 级别的类型转换为高级级别的类型转换为高级 别的类型后进行运算。别的类型后进行运算。 强制转换强制转换。数据类型转换规数据类型转换规则则 其中横向向左表示必定的转换。其中横向向左表示必定的转换。 char型、型、short型的数据在运算中必先转型的数据在运算中必先转 换为换为int型,型,float型数据必先转换为型数据必先转换为double 型数据。这是为了提高运算精度,即使是型数据。这是为了提高运算精度,即使是 两个两个float型数据作运算,也都是先转换成型数据作运算,也都是先转换成 double型,然后再进行运算。型,然后再进行运算。

26、纵向的箭头表示数据类型级别的高低。纵向的箭头表示数据类型级别的高低。 当两个不同类型的数据进行运算时,按当两个不同类型的数据进行运算时,按 照照“就高不就低就高不就低”的原则。的原则。 运算中,类型级运算中,类型级 别较低的数据的类型将别较低的数据的类型将 被转换成类型级别被转换成类型级别 较高的数据的类型,且运算结果的数据类较高的数据的类型,且运算结果的数据类 型也为型也为 类型级别较高的数据的类型。类型级别较高的数据的类型。 运算符的优先级与结合方向运算符的优先级与结合方向n参见附录B数学函数的使用数学函数的使用任务: n编一程序,从键盘输入一个实数,求这个数的平方根。课堂实践课堂实践n编

27、一个程序,从键盘输入一个圆的半径值,1)计算并输出这个圆内接正六边形的面积。2)计算并输出这个六边形面积占圆面积的百分比。小小 结结n1、自加、自减运算及其表达式n2、逗号运算符与逗号表达式n3、强制类型转换运算符n4、混合运算与类型转换n5、数学函数的使用结构化程序设计结构化程序设计n主要内容n1、结构化程序设计方法n2、模块化n3、结构化程序的三种基本结构n4、流程图的画法n5、C语句的种类上节课内容回顾上节课内容回顾n1、自加、自减运算及其表达式n2、逗号运算符与逗号表达式n3、强制类型转换运算符n4、混合运算与类型转换n5、数学函数的使用考考你考考你下面程序的运行结果是 。main()

28、int iX,iY,iM,iN;iX=10;iY=20;iM=iX+;iN=+iY;printf(iX=%d,iY=%d,iM=%d,iN=%d,iX,iY,iM,iN);iM=iX-;iN=-iY;printf(iX=%d,iY=%d,iM=%d,iN=%d,iX,iY,iM,iN);考考你考考你下面程序的运行结果是 。main()int iX,iY;iX=80;iY=25;printf(iX=%d,iY=%dn,iX,iY);printf(iX/iY=%d,iX%iY=%dn,iX/iY,iX%iY);结构化程序设计方法结构化程序设计方法n所谓结构化的程序设计方法就是所谓结构化的程序设计方

29、法就是“按照一组按照一组能够提高程序的易读性和易维护性的规则进能够提高程序的易读性和易维护性的规则进行程序设计的方法行程序设计的方法”。n结构化程序设计思想产生于20世纪60年代,是随着计算机的发展、硬件成本的急剧下降、软件规模和复杂性的不断增加而提出的一种至今仍广为使用的计算机软件开发技术。其目的是为了增加程序的易读性(容易理解),保证程序的质量,降低软件成本,从而提高软件的生产和维护的效率。结构化程序设计的特点结构化程序设计的特点n 程序的质量标准是“清晰第一,效率第二”。n 程序的设计采用“自顶向下,逐步求精,模块化设计,结构化编程”的方法。n 程序的结构仅由顺序、分支、循环三种基本结构

30、组合、嵌套而成。n 程序的书写和格式要规范 。n 程序的设计风格要以好的可读性为标准。何为模块化?何为模块化? 模块化模块化是指将一个复杂的问题或任务分解成若干个功能单一、相对独立的小问题来进行设计,每个小问题就是一个模块。n每个模块是一组由三种基本结构(顺序、分支、循环)组成的程序。n模块一定要简单、功能独立,这样才能使程序具有一定的灵活性和可靠性。何为自顶向下?何为自顶向下?n自顶向下自顶向下是指模块的划分要从问题的顶层向下逐层分解、逐步细化,直到最底层的模块的功能达到最简单。何为逐步求精?何为逐步求精?n逐步求精是指在将抽象问题分解成若干个相对对立的小问题时,要逐级地由抽象到具体、由粗到细、由表及里进行细化,直到将问题细化到可以用程序的三种基本结构来实现为止。结构化程序的三种基本结构结构化程序的三种基本结构n顺序结构n选择结构n循环结构顺序结构顺序结构n顺序结构是最简单的基本结构。在顺序结构中,要求顺序地执行且必须执行有先后顺序排列的每一个最基本的处理单位。 传统流程图N-S图选择结构选择结构n选择结构又称做分支结构。在选择结构中,要根据逻辑条件的成立与否,分别选择不同的处理。 传统流程图N-S图循环结构循环结构n循环结构一般分为当型循环和直到

温馨提示

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

评论

0/150

提交评论