第02章-顺序结构程序设计.ppt_第1页
第02章-顺序结构程序设计.ppt_第2页
第02章-顺序结构程序设计.ppt_第3页
第02章-顺序结构程序设计.ppt_第4页
第02章-顺序结构程序设计.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、2020/7/24,1,第2章 顺序结构程序设计,程序在执行时总是从main()函数开始,由上往下一条一条地执行遇到的语句。除非遇到控制语句,程序才会按控制语句的控制关系进行有选择的跳转。 语言的语句可分为种类型: 1、控制语句(条) 2、函数调用语句: 3、表达式语句 4、空语句 5、复合语句,2020/7/24,2,1、控制语句(条) (1)if( ) ; else ; (2)switch( ) ; (3)goto,2020/7/24,3,1、控制语句(条) (4)while( ) ; (5)do ; while( ) (6)for( ; ; ) ; ,2020/7/24,4,1、控制语句

2、(条) (7)continue ; (8)break; (9)return exp ;,2020/7/24,5,2、函数调用语句: 函数名(参数列表); 3、表达式语句:每一个合法的表达式后面加一个分号(;)便构成了语言的语句。 4、空语句:只有一个单独的分号构成的语句。 作用主要用来调试程序。 5、复合语句:用一对花括号将若干语句括起来构成一条复合语句。逻辑上可以把它当成一条语句来理解。,2020/7/24,6,注: (1)只要是语句,则必须在其后有一个分号(但是if、switch、while、dowhile、for除外)。语句是没有值的,而所有表达式都有一个确定的值。 (2)复合语句中不仅

3、可以有执行语句,而且可以有定义语句。但定义语句必须在执行语句前。 (3)复合语句可以嵌套。 (4)复合语句可以由一对单独的花括号 组成,即在 内可以没有任何语句。空的也是为了用来调试程序。 (5);空语句与没有语句是两个不同的概念。空语句表示有一条语句,只是该语句不做任何操作。,2020/7/24,7,函数体主要包括: (1)变量定义语句; (2)输入语句; (3)运算语句; (4)输出语句。,2020/7/24,8,输入、输出语句,语言本身不提供输入、输出语句,输入、输出操作是由函数来实现的。 “标准输入输出函数”是以标准输入输出设备(即键盘和显示器)为输入输出对象,它们都是一些库函数。如:

4、 putchar() getchar() printf() scanf() puts() gets(),2020/7/24,9,输入、输出语句,使用库函数时必须先用预编译命令include将相应的头文件包含到所编程文件中。 预编译命令include的功能:是将头文件的代码放到所编写的程序文件中,以便在程序中能够引用头文件中的变量或函数。 printf()、scanf()对应的头文件可以省略。 include #include #include,2020/7/24,10,输入、输出语句,一、字符数据的输入输出 1)putchar( ) 格式:putchar(字符常量或字符变量) 功能:输出一个字

5、符但不输出单引号。其中“字符”可以是一切合法的字符型或整型数据(它会自动将整型数据转换成相应字符后输出) 如: putchar(a); putchar(n); putchar(100); putchar(100); 非法字符,2020/7/24,11,输入、输出语句,一、字符数据的输入输出 2)getchar() 格式:getchar() 功能:接收一个从键盘输入的字符。 注: (1)此函数没有任何参数,函数的返回值就是输入的字符。 (2)可以接收从键盘上输入的任何字符包括回车符、空格符、制表符等。 (3)任何输入都是在回车后按顺序送入内存中,即才能被函数所接收。 如:char a, b; a

6、=getchar(); b=getchar(); 若输入为: 则变量a 的值为字符1,变量b 的值为回车符。,2020/7/24,12,二、格式输入输出函数,1. printf()函数 例 已知圆半径radius=1.5,求圆周长(2r)和圆面积(r2) 。,2020/7/24,13,#include main( ) float r = 1.5, l, s, pi=3.14; l= 2 * pi * r; s= pi * r * r; printf(“r = %fn”, r); printf(“l = %7.2f, s=%7.2fn”, l, s); ,r= 1.500000,l= 9.42,

7、 s = 7.07,2020/7/24,14,printf()格式: (1) printf(“格式控制”,输出列表) (2)printf(“格式控制”) 功能:按格式控制指定的格式输出数据。 其中:“格式控制”是用双引号括起来的字符串,其中包含以开始的“格式说明符”和原样输出的“普通字符”两部分内容。输出列表是需要输出的一批用逗号隔开的数据(常量、变量、表达式)。 如: printf(“c=%d, d=%d”,3,4+7); 输出结果:c=3, d=11 注:这里并不表示c的值为,d的值为。c=和d=还有“,”是格式控制中要原样输出的普通字符,3和11是分别由两个%d控制输出的数据。,2020

8、/7/24,15,格式字符: (1)d或i 说明:控制输入输出带符号的十进制形式整数,其中不输出正号。 (2)u 说明:控制输入输出无符号的十进制整数 (3)o 说明:控制输入输出无符号的八进制整数 (4)X或x 说明:控制输入输出无符号的十六进制形式整数,不输出前导符号0 x.输出时小写x对应小写a,b,c,d,e,f,大写对应A,B,C,D,E,F (5)c 说明:控制输入输出一个字符,不输出单引号。,2020/7/24,16,格式字符: (6)s 说明:控制输入输出一个字符串。在输入时以第一个非空字符开始接收,并以碰到的第一个空白字符(包括空格、回车符)结束,输出时不输出双引号。 (7)

9、f 说明:控制输入输出一个实型数。输入时可以用小数形式亦可用指数形式;输出时以小数形式输出,并隐含输出位小数。 (8)E或e 说明:控制输出指数形式的实型数,输入时与f相同。 (9)G或g 说明:控制输出时自动选用%f或%e格式中输出宽度较短的一种格式,且不输出无意义的0,输入时与f相同。,2020/7/24,17,补充: 附加格式说明符表:(附加符写在百分号与格式字符之间) (1)l 说明:用于输入输出长整型数据或双精度数据 (2) 说明:用于在输出时靠左输出,没用该符号时采用靠右输出 (3) 说明:用于输出时输出八进制数的前导,输出十六进制的前导0 x (4)* 用于表示输入时本输入项指定

10、的数据被跳过。,2020/7/24,18,printf( )函数举例: (1)、d 、i格式: )d 按整型数据的实际长度输出。 )md输出项占用m列,若整数的实际长度小于m,则输出时左边用空格补足m列;若整数的实际长度大于m,则按整数的实际长度输出。 )md输出项占用m列,若整数的实际位数小于m,则输出时右边用空格补足m列;若整数的实际位数大于m,则按整数的实际输出。 )ld用于输出长整型数据。输入输出长整型数据时必须使用该格式。 (2)u格式: u以无符号的十进制形式输出整数。 printf(“%u”,-1); 结果:,2020/7/24,19,printf( )函数举例: (3)o 格式

11、: o以无符号的八进制形式输出整数。不输出前导符0. printf(“%d,%o”,-1,-1); 结果: (4)x或X: %x以无符号的十六进制形式输出整数。不输出前导符0 x或oX,小写对小写,大写对大写。 printf(“%d,%x,%X”,-1,-1,0 xaBc); 结果:-1,ffff,ABC,2020/7/24,20,printf( )函数举例: (5)c格式: d和c可以交换使用,它们会自动进行数据转换。 printf(“c,%d”,a,a); printf(“%c,%d”,100,100); (6)s格式:string )s输出字符串的有效字符。 printf(“%s”,“h

12、ina”); 2)%ms 输出时共占m列,若实际长度小于m,则左端用空格补足,若实际长度大于m,则按字符实际长度输出。 printf(“%5s,%-5s,%5s”,“LJL”,“LJL”,”4332567”) 3)%m.ns 输出时共占m列,但只输出字符串的左n个字符到m列的右端。 printf(“8.5s”,”zhaohaiying”);,2020/7/24,21,printf( )函数举例: (7)f格式:按小数形式输出一个实型数据。 1)%f 默认输出6位小数。 printf(“%f,%f”,123.4,123.4E-2) 2)m.nf 输出时共占m列,其中有n位小数。若输出数据超过m列

13、,则在确保n位小数后按实际输出。 printf(“%7.3f,%-7.3f,%3.1f”,34.67893,34.67893,1234.567); (8)e格式:以指数形式输出一个实数。输出时以规范化指数形式输出,即小数点前有且只有位非零数。共有位小数,位指数。 printf(“%e,%e”,123.4,123.45e-7); (9)g格式: 自动选用%f和%e 格式中输出较短的一种输出,对于小数部分不输出无意义的零。 printf(“%g,%g,%g”,123.45,123.45e-2,123000000.0);,2020/7/24,22,printf( )函数举例: 注: (1)格式说明均

14、是以百分号%开头,格式字符结束。若有两个连续的% 则输出一个%。 printf(“%d=%d”,6,5); 结果:%d=6 printf(“score=%d%”,50); score=50% (2)除格式x、e、g大写小写均可外,其它都只能用小写字母。 printf(“%d=%D”,5,6); 结果:%D (3)输出时格式说明符所能操作的数据类型与对应的输出项类型必须相同。但%d与%c 除外。 printf(“%d”,5.0); printf(“%f”,5); printf(“%c”,”a”);,2020/7/24,23,2、scanf( ) 函数 格式: scanf(“格式控制”,地址列表)

15、 功能:其中的“格式控制”与printf()中使用方法相同,地址列表是一些用逗号隔开的变量地址。取变量地址的方法是在变量名前面加上地址运算符,2020/7/24,24,2、scanf( ) 函数 注: 1)可以指定数据所占的列数,输入后由系统自动截取相应的位数。 scanf(“%3d%2d”, 出现异常,2020/7/24,25,2、scanf( ) 函数 注: 4)”格式控制”中除格式说明符外,若还有其它字符,则在输入时这些字符必须原样输入。 scanf(“%d ,%d”,2020/7/24,26,2、scanf( ) 函数 注: 6)由于%c格式可以将从键盘上输入的任何按键作为有效字符赋给

16、相应的变量。所以即使两个%c之间没有其它字符,输入时两个字符之间不能用空格或回车来分隔。 scanf(“%c%c%c”,2020/7/24,27,小结: (1)输出列表和地址列表都不能出现“空项”,即不能出现多余的逗号。 printf(“%d,%d,%d”,a, ,b); (2)在输出时若格式说明符个数多于输出列表中的项数,则多余说明符随机输出;若格式说明符个数少于输出列表中的项数,则输出列表中多余的输出项不输出。(采用从左到右一一对应的方式)。 printf(“%d,%d,%d”,1,2); printf(“%d,%d,%d”,1,2,3,4,5);,2020/7/24,28,小结: (3)

17、在输入时若格式说明符个数多于地址列表中的项数,则运行时出现异常;若格式说明符个数少于地址列表中的项数,则多余的地址保留原值。 若有定义 int a=5,b=6; scanf(“%d”, 输入: 输出:a=30 b=6 (4)对于double,long double输入时必须在格式字符(f,e,g)前加字母l,输出时可以加也可以不加。 对于float在输入时不能加字母l,输出时可以加也可以不加。 对于long int 在输入输出时都必须在d格式字符前加字母l,int型输出时不能在d前加l,输入时最好不加。,2020/7/24,29,给计算机提供数据,可以使用: (1)赋值语句。 只能解决1个特定

18、的问题。 (2)输入函数scanf() 。 能解决1类特定的问题。 显然,采用scanf( )函数,使得程序具有更好的适应性。,2020/7/24,30,3.2.2 数据输入操作(假设num1=12、num2=36) 1默认分隔符空格、 Tab键、回车 如果不指定分隔符(例如逗号、冒号),则使用默认分隔符。 例如,scanf(%d%d, 正确的输入操作为: 1236 或者:12 36,2020/7/24,31,2普通字符务必原样输入。 (1) scanf(%d ,%d, 正确的输入操作为: num1=12 ,num2=36n 提示:scanf()格式字符串中,没有转义字符概念。 比较(1)、(

19、2)两种设计方式的优缺点?,2020/7/24,32,比较(1)、(2)两种设计方式的优缺点? (1) 仅输入数据,输入量小,但人机交互性差(用户不知道该输入什么,以及输入给谁)。 (2) 同时输入说明和数据,人机交互友好性好,但输入量大。 思考:如何改进设计,既保持良好的人机交互性,又不增加输入量?,2020/7/24,33,提高人机交互性的设计思路: 先用printf()函数输出提示信息,再用scanf()函数进行数据输入。 scanf(num1=%d,num2=%dn,2020/7/24,34,3使用 “%c”输入时,空格和转义字符均作为有效字符被输入。 例如: scanf(%c%c%c

20、, 思考:假设输入“ABC”,printf()输出的内容是什么? 输出结果:ch1= A,ch2=,ch3= B 返回,2020/7/24,35,3.3 顺序结构程序设计,顺序结构程序一般包括两部分: 1程序开头的编译预处理命令。 如果要在程序中使用标准库函数,则必须使用编译预处理命令#include,将相应的头文件包含进来。,2020/7/24,36,2函数体主要包括: (1)变量定义语句; (2)输入语句; (3)运算语句; (4)输出语句。 3 执行流程:各语句是按照物理位置次序,被顺序执行,且每个语句都会被执行到。,2020/7/24,37,案例 输入3个整数,求它们的和及平均值。 #

21、include “stdio.h” #include “conio.h” void main() int num1,num2,num3,sum; float aver; printf(Please input three numbers:); scanf(%d, %d, %d, ,2020/7/24,38,案例3.11 设计一个进行加、减、乘、除和求余数运算练习的程序。 对程序功能的基本要求如下: (1) 使用菜单驱动; (2) 随机产生运算所需的2个操作数(0-99); (3) 程序自动判断用户的计算结果是否正确。 由于所学内容的限制,本案例的设计要求将在本章,以及随后的第4 第7章中分阶段逐步实现并完善。 本案例首先实现设计要求(1) 。,2020/7/24,39,/*功能:菜单程序段*/ #include stdio.h #include conio.h void main() char options; clrscr( );/*清屏。函数原型在conio.h中*/

温馨提示

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

评论

0/150

提交评论