收藏 分享(赏)

第三讲 顺序程序设计.ppt

上传人:dzzj200808 文档编号:5749899 上传时间:2019-03-15 格式:PPT 页数:57 大小:347KB
下载 相关 举报
第三讲 顺序程序设计.ppt_第1页
第1页 / 共57页
第三讲 顺序程序设计.ppt_第2页
第2页 / 共57页
第三讲 顺序程序设计.ppt_第3页
第3页 / 共57页
第三讲 顺序程序设计.ppt_第4页
第4页 / 共57页
第三讲 顺序程序设计.ppt_第5页
第5页 / 共57页
点击查看更多>>
资源描述

1、第三讲 顺序程序设计,本讲主要内容: 程序的三种典型结构 C语句概述及分类 赋值运算符,表达式及语句 数据的输入输出 顺序结构程序设计举例,1. 程序的三种基本结构,程序的三种典型结构:顺序结构、选择结构、循环结构用这三种基本结构作为表示一个良好算法的基本单元,可以编写各种复杂的程序。,顺序结构,1. 程序的三种基本结构,选择结构,1. 程序的三种基本结构,当型(While型)循环结构,直到型(Until型)循环,循环结构,1. 程序的三种基本结构,三种基本结构的共同特点: (1)只有一个入口; (2)只有一个出口;(请注意:一个菱形判断框中间过程有两个出口,而一个选择结构只有一个出口,但它们

2、最终都只有1个出口。) (3)结构内的每一部分都有机会被执行到; (4)结构内不存在“死循环”(无终止的循环)。,1. 程序的三种基本结构,由三种基本结构顺序组成的算法结构,可以解决任何复杂的问题。由基本结构所构成的算法属于“结构化”的算法,它不存在无规律的转向,只在本基本结构内才允许存在分支和向前或向后的跳转。,2. C语句概述及分类,2. C语句概述及分类,C语句分为,2. C语句概述及分类,(一)控制语句 完成一定的控制功能1 if() else 条件语句2 for() 循环语句3 while() 循环语句4 do while(); 循环语句5 continue 结束本次循环语句6 br

3、eak 间断语句中止执行Switch或循环语句7 switch() 多分支选择语句8 goto 转向语句9 return 从函数返回语句,2. C语句概述及分类,2. C语句概述及分类,(三)表达式语句由一个表达式加一个分号构成一个语句a = 3 ;,2. C语句概述及分类,(四)空语句 只有一个分号的语句; (什么也不做) 用来做流程的转向点 用来作为循环语句中的循环体,2. C语句概述及分类,3. 赋值运算符,表达式,语句,(1)赋值运算符赋值符号“”就是赋值运算符,它的作用是将一个数据赋给一个变量。如“”的作用是执行一次赋值操作(或称赋值运算)。把常量赋给变量。也可以将一个表达式的值赋给

4、一个变量。,3. 赋值运算符,表达式,语句,2 复合的赋值运算符在赋值符“”之前加上其他运算符,可以构成复合的运算符。 例如: 等价于 * 等价于 *() 等价于 ,3. 赋值运算符,表达式,语句,如: x %= y+3 x %= (y+3)|_ x = x %(y+3)(不要错写成x=x%y+3)凡是二元(二目)运算符,都可以与赋值符一起组合成复合赋值符。,语言中算术运算的复合赋值运算符: ,*,,3. 赋值运算符,表达式,语句,3 类型转换如果赋值运算符两侧的类型不一致,但都 是数值型或字符型时,在赋值时要进行类型 转换。 将浮点型数据(包括单、双精度)赋给整 型变量时,舍弃浮点数的小数部

5、分。 如:为整型变量,执行“i=3.56”的结果是使的值为,以整数形式存储在整型变量中.,3. 赋值运算符,表达式,语句,将整型数据赋给单、双精度变量时,数值不变, 但以浮点数形式存储到变量中如: 将赋给float变量,即执行,先 将转换成0,再存储在中。将赋给型变量,即执行 ,则将补足有效位数字为 ,然后以双精度浮点数形式存储 到变量中。 将一个double型数据赋给float变量时,截取其前 面7位有效数字,存放到float变量的存储单元(4个 字节)中。但应注意数值范围不能溢出。如:float f;double d=123.456789e100; f=d;就出现溢出的错误。如果将一个fl

6、oat型数据赋给double变量时,数值不 变,有效位数扩展到16位,在内存中以8个字节存储,3. 赋值运算符,表达式,语句,字符型数据赋给整型变量时,由于字符只占1个字节,而整型变量为个字节,因此将字符数据(个 二进位)放到整型变量存储单元的低位中。,3. 赋值运算符,表达式,语句,将一个int、short、long型数据赋给一个char型变量时,只将其低8位原封不动地送到char型变量(即截断)。 例如:int i=289;char c=a;c=i;,3. 赋值运算符,表达式,语句,将带符号的整型数据(int型)赋给long型变量时,要进行符号扩展,将整型数的16位送到long型低16位中

7、: 如果int型数据为正值(符号位为),则long型变量的高16位补; 如果int型变量为负值(符号位为),则long型变量的高16位补,以保持数值不改变。 反之,若将一个long型数据赋给一个int型变量,只将long型数据中低16位原封不动地送到整型变量(即截断)。(参见例312,13,14) 将一个unsigned类型数据赋给一个占字节数相同 的非unsigned型整型变量(例如:unsigned int -int,unsigned long-long,unsigned short -short),将unsigned型变量的内容原样送到非 unsigned型变量中,但如果数据范围超过相应

8、整型 的范围,则会出现数据错误。 将非unsigned型数据赋给长度相同的unsigned型变量,也是原样照赋(连原有的符号位也作为数值一起传送),参见例3.9的分析。,3. 赋值运算符,表达式,语句,例 有符号数据传送给无符号变量。 #include void main() unsigned ; int ; ; printf(n,); ,运行结果:,说明:“%u”是输出无符号数时所用的格式符。如果为正值,且在32767之间,则赋值后数值不变;否则,会出现“意外”的结果。,3. 赋值运算符,表达式,语句,(4) 赋值表达式由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。 一

9、般形式为:例如: “5”是一个赋值表达式,3. 赋值运算符,表达式,语句,对赋值表达式求解的过程是:求赋值运算符右侧的“表达式”的值;赋给赋值运算符左侧的变量。 例如: 赋值表达式“=3*5”的值为15,执行表达式后,变量a的值也是15。,3. 赋值运算符,表达式,语句,左值 (lvalue) : 赋值运算符左侧的标识符 变量可以作为左值; 而表达式就不能作为左值(如a+b); 常量也不能作为左值, 右值 (lvalue) :出现在赋值运算符右侧的表达式 左值也可以出现在赋值运算符右侧,因而左值都可以作为右值。,3. 赋值运算符,表达式,语句,赋值表达式中的“表达式”,又可以是一个赋值表达式.

10、例如: a=(b=5),分析:括弧内的“b=5”是一个赋值表达式,它 的值等于5。执行表达式“a=(b=5)”相当于执行 “b=5”和“ab”两个赋值表达式。 赋值运算符 按照“自右而左”的结合顺序,因此,“(b5)” 外面的括弧可以不要,即“a=(b=5)”和“a=b=5” 等价.,3. 赋值运算符,表达式,语句,赋值语句是由赋值表达式加上一个分号构成 例:a=100 赋值表达式 a=100; 赋值语句 条件中不能含有赋值符号,但是赋值表达式可以包含于条件表达式中 例:if(a=b) t=a; 错误if(a=b)0) t=a; 正确,4. 数据的输入输出,(一).所谓输入输出是以计算机主机为

11、主体而言的输出:从计算机向外部输出设备(显示器,打印机)输出数据 输入:从输入设备(键盘,鼠标,扫描仪)向计算机输入数据.,数据输入输出的概念,4. 数据的输入输出,(二).C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的 例如: 字符输入函数: getchar 字符输出函数:putchar 格式输入函数: scanf 格式输出函数: printf 字符串输入函数:gets 字符串输出函数:puts,4. 数据的输入输出,(三).在使用系统库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中. 例如:在调用标准输入输出库函数时,文件开头应该有

12、:#include “stdio.h”或:#include ,头文件,4.1 字符数据的输入输出,(一).字符输出函数#include 一般形式:putchar(c)函数作用:向终端输出一个字符,字符型变量整型变量,4.1 字符数据的输入输出,运行结果:BOY,putchar(a);putchar(n);putchar(b);putchar(n);putchar(c);putchar(n);,运行结果:BOY,例4.1 输出单个字符。 #include void main() char a,b,c; a=B;b=O;c=Y; putchar(a);putchar(b);putchar(c);p

13、utchar(n); ,4.1 字符数据的输入输出,(二)字符输入函数一般形式:getchar()函数作用:从终端(或系统隐含指定的输入设备)输入一个字符。 函数值: 从输入设备得到的字符。,4.1 字符数据的输入输出,例4.2 输入单个字符。 #include void main() char c; c=getchar(); putchar(c); putchar(n); ,4.2 格式输入与输出,(一)格式输出函数 函数作用:向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。 一般格式:printf(格式控制,输出表列),%d:以带符号的十进制形式输出整数 %o:以八进制无符号形

14、式输出整数 %x:以十六进制无符号形式输出整数 More。,4.2 格式输入与输出,%u:以无符号十进制形式输出整数 %c:以字符形式输出,只输出一个字符 %s:输出字符串 %f:以小数形式输出单,双精度数,隐含输出六位小数 %e:以指数形式输出实数 %g:选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0,4.2 格式输入与输出,格式符。用来输出int型十进制整数。 几种用法: :按十进制整型数据的实际长度输出。 :为指定的输出字段的宽度。如果数 据的位数小于,则左端补以空格,若大于, 则按实际位数输出。例: printf(,);若,则输出结果为, :输出长整型数据。例: long

15、 ;printf(,);,4.2 格式输入与输出,(2) 格式符。以八进制整数形式输出。输出的数值不带符号,符号位也一起作为八进 制数的一部分输出。 例:int a=-1;printf(“%d,%o“,a,a); 在内存单元中的存放形式如下:1111111111111111输出为:,对长整数(long型)可以用“”格式输出。,4.2 格式输入与输出,(3)格式符。以十六进制数形式输出整数。同样不会出现负的十六进制数。例:int ;printf(,); 输出结果为:ffff,可以用“”输出长整型数. 也可以指定输出字段的宽度 例: “”,4.2 格式输入与输出,(4)格式符,用来输出型数据. 一

16、个有符号整数(型)也可以用格式输出; 一个型数据也可以用格式输出。 型数据也可用或格式输出。(5)格式符,用来输出一个字符。 如: d;(,d);输出字符. 如果用(d,d),什么结果?,4.2 格式输入与输出,例4.3 无符号数据的输出。 #include void main() unsigned int a=65535;int b=-2; printf(“a=%d,%o,%x,%un”,a,a,a,a); printf(“b=%d,%o,%x,%un”,b,b,b,b); ,运行结果: a=-1,177777,ffff,65535 b=-2,177776,fffe,65534,4.2 格式

17、输入与输出,例4.4 字符数据的输出。 #include void main() char c=a; int i=97; printf(“%c,%dn”,c,c); printf(“%c,%dn”,i,i); ,运行结果: a,97 a,97,4.2 格式输入与输出,(6)s格式符 输出字符串. 。例如:(,)输出字符串“”(不包括双引号)。 %ms,输出的字符串占m列,若串长大于m,则全部输出,若串长 小于m,则左补空格。 %-ms,若串长小于m,字符串向左靠,右补空格。 %m. ns,输出占m列,只取字符串中左端n个字符,输出在m列的右侧,左补空格。 %-m.ns,n个字符输出在m列的左侧

18、,右补空格,若nm,m自动取n值。,4.2 格式输入与输出,(7)格式符。用来以小数形式输出实数(包括单双精度) 有以下几种用法: 。不指定字段宽度,由系统自动指定字段宽度,使整数 部分全部输出,并输出位小数。应当注意,在输出的数字中 并非全部数字都是有效数字。单精度实数的有效位数一般为位。.。指定输出的数据共占列,其中有位小数。如果 数值长度小于,则左端补空格。.与.基本相同,只是使输出的数值向左端 靠,右端补空格。,4.2 格式输入与输出,(8)格式符,以指数形式输出实数。,(9)格式符,用来输出实数的简洁型式. 它根据数值的大小,自动选格式或格式(选择输出时占宽度较小的一种),且不输出无

19、意义的零。,4.2 格式输入与输出,说明: 除了x,e,g外,其他格式字符必须用小写。 可以在printf函数中的“格式控制”字符串中包含转义字符。 一个格式说明必须以“%”开头,以9个格式字符之一为结束,中间可以插入附加格式字符。 想输出%,则应该在格式控制字符串中用连续两个%表示,4.2 格式输入与输出,(一)格式输入函数 函数作用:按照变量在内存的地址将变量值存进去。 一般格式:scanf(格式控制,地址表列),同printf函数,是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址,4.2 格式输入与输出,例4.9 用scanf函数输入数据。 #include void mai

20、n() int a,b,c; scanf(“%d%d%d”, ,a在内存中的地址 &是地址运算符,4.2 格式输入与输出,使用函数时应注意的问题 : (1)函数中的“格式控制”后面应当是变量地址,而不应是变量名。 (2) 如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符。 (3) 在用“”格式输入字符时,空格字符和“转义字符”都作为有效字符输入 (4) 在输入数据时,遇以下情况时认为该数据结束。 遇空格,或按“回车”或“跳格”(Tab)键; 按指定的宽度结束,如“”,只取列; 遇非法输入。,5 顺序结构程序设计举例,例4.10 输入三角

21、形的三边 长,求三角形面积。假设:三个边长a,b,c能构 成三角形。 已知面积公式: area= s=(a+b+c)/2,5 顺序结构程序设计举例,#include #include void main() float a,b,c,s,area; scanf(“%f,%f,%f, ,数学函数库 因为要用到其中的sqrt函数,5 顺序结构程序设计举例,例4.11 从键盘输入一个大写字母,要求改用小写字母输出。 include void main() char ,; getchar(); printf(,); ; printf(,); ,运行情况: , ,,5 顺序结构程序设计举例,例4.12 求

22、x2方程的根。 a,b,c由键盘输入,设 。 众所周知,一元二次方程式的根为 x1= x2= 可以将上面的分式分为两项: p= , q= x1=p+q, x2=p-q,5 顺序结构程序设计举例,#include #include void main ( ) float a,b,c,disc,x1,x2,p,q; scanf(“a=%f,b=%f,c=%f“, ,运行情况: , ,课后要求,验证课后习题。 预习第四章内容。 作业:习题1、7,进制转换的实例,求-32在内存中的存放形式 求负数的补码方法是将其绝对值按位取反再加1 步骤: 求32原码为0000000000100000 按位取反1111111111011111 加1 1111111111100000 八进制 1fff40(三位一组) 十六进制 ffe0(四位一组),本节课到此结束,谢谢大家,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 职业教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报