《C语言程序设计》课件第三章11.ppt
《《C语言程序设计》课件第三章11.ppt》由会员分享,可在线阅读,更多相关《《C语言程序设计》课件第三章11.ppt(65页珍藏版)》请在文库网上搜索。
1、C语言程序语言程序电子教案电子教案算法语言程序设计算法语言程序设计第三章第三章 简单语句和选择语句简单语句和选择语句本章内容本章内容学习结构化程序设计方法学习结构化程序设计方法简单语句简单语句选择语句选择语句3.1结构化程序设计概述结构化程序设计概述 一个高质量的程序必须是运行可靠、清晰易读、一个高质量的程序必须是运行可靠、清晰易读、高效率和可适应性及可移植性的。高效率和可适应性及可移植性的。可靠性可靠性为为首位。必须掌握如下几个避免错误的技术首位。必须掌握如下几个避免错误的技术和方法:和方法:正确的程序设计方法正确的程序设计方法 正确性证明正确性证明 校对校对 编译检查编译检查 运行检查运行
2、检查 系统测试系统测试注:程序的清晰易读性越来越被人们所强调。注:程序的清晰易读性越来越被人们所强调。有效的方法有有效的方法有:自顶向下的结构程序设计方法自顶向下的结构程序设计方法标识符的合理选择标识符的合理选择程序格式的规范书写程序格式的规范书写 C C语言是结构化程序设计的语言,具有结构化语言的语言是结构化程序设计的语言,具有结构化语言的一系列特征。一系列特征。C C语言的主要结构成分是函数,利用它很容易构造出语言的主要结构成分是函数,利用它很容易构造出相对独立的子系统模块。调用函数时仅需知道它实现相对独立的子系统模块。调用函数时仅需知道它实现什么功能,不必知道其功能是如何实现的,符合结构
3、什么功能,不必知道其功能是如何实现的,符合结构化设计的特点。在书写格式上允许采取逐层缩进的形化设计的特点。在书写格式上允许采取逐层缩进的形式,增强了程序的可读性。式,增强了程序的可读性。#include“stdio.h”void main()printf(hellon);#include“stdio.h”void main()printf(hellon);#include“stdio.h”void main()printf(hellon);#include“stdio.h”void main()printf(hellon);#include include“stdio.hstdio.h”voi
4、d main void main()printf printf(hellon hellon);#include#include“stdio.hstdio.h”void main()void main()printf(hellon)printf(hellon);3.2.1 为何要输入数据为何要输入数据 请看下面求圆面积的程序:请看下面求圆面积的程序:#include#include“stdio.hstdio.h”#define PI 3.14159#define PI 3.14159void main()void main()float r,area float r,area;r=4;r=4;a
5、rea=PI*r*r;area=PI*r*r;printf(The area is%fn,area);printf(The area is%fn,area);编译连接执行这个程序以后,将输出半径为4 的圆的面积,但不能输出其他不同半径的圆面积3.2 scanf函数和字符输入、输出函数函数和字符输入、输出函数3.2.2 scanf函数函数 scanfscanf函数是从键盘得到输入数据的函数。函数是从键盘得到输入数据的函数。scanfscanf函数的一般格式为:函数的一般格式为:scanf(scanf(“输入控制输入控制”,输入数据表列,输入数据表列);(1)(1)“输入控制输入控制”的含义与的含
6、义与printfprintf函数的函数的“输出输出 控制控制 相同相同(2)(2)输输入入数数据据表表列列是是一一个个或或多多个个用用逗逗号号分分隔隔的的变变量量的的地地址址或或字字符符串串的的首首地地址址,变变量量的的地地址址可可以以通通过过地地址址运运算算符符&得得到到。例例如如,r r的的地地址址就是就是&r&r。【例3.1】编写求圆面积的通用程序#include#include“stdio.hstdio.h”#define PI 3.14159#define PI 3.14159void main()void main()float r,area float r,area;scanf(
7、%f,&r)scanf(%f,&r);area=PI*r*rarea=PI*r*r;printf(The eara is%fn,area)printf(The eara is%fn,area);从键盘输入r的值地址运算符【例3.2】运行下面C程序#include#include“stdio.hstdio.h”void main()void main()int a1,a2;float a3;int a1,a2;float a3;printf(Please enter a value of a1:)printf(Please enter a value of a1:);scanf(%d,&a1);
8、/*scanf(%d,&a1);/*从键盘输入从键盘输入a1a1的值的值*/printf(Enter a value of a2:);printf(Enter a value of a2:);scanf(%d,&a2);/*scanf(%d,&a2);/*从键盘输入从键盘输入a2a2的值的值*/printf(Enter a value of a3:);printf(Enter a value of a3:);scanf(%f,&a3);/*scanf(%f,&a3);/*从键盘输入从键盘输入a3a3的值的值*/printf(a1=%d,a2=%d,a3=%fn,a1,a2,a3);printf
9、(a1=%d,a2=%d,a3=%fn,a1,a2,a3);【例3.3】在同一行中输入三个数据#include#include“stdio.hstdio.h”void main()void main()int a1,a2;float a3;int a1,a2;float a3;printf(Please enter value of a1,a2,a3:);printf(Please enter value of a1,a2,a3:);scanf(%d%d%f,&a1,&a2,&a3);scanf(%d%d%f,&a1,&a2,&a3);printf(a1=%d,a2=%d,a3=%fn,a1,
10、a2,a3);printf(a1=%d,a2=%d,a3=%fn,a1,a2,a3);数据输入方式数据输入方式:(c)123:(c)123回车回车 (a)123 456 7.89 456(a)123 456 7.89 456回车回车 (b)123TAB456TAB7.89 7.89(b)123TAB456TAB7.89 7.89回车回车【例3.4】输入三个实数,求最大者。#include#include“stdio.hstdio.h”void main()void main()float a,b,c,t;float a,b,c,t;scanf(%f,%f,%f,&a,&b,&c);scanf(
11、%f,%f,%f,&a,&b,&c);t=(ab)?a:b;t=(ab)?a:b;printf(%fn,(tc)?t:c);printf(%fn,(tc)?t:c);输入输入:2.5,6.7,8.32:2.5,6.7,8.32结果结果:8.320000:8.3200003.2.3 字符输入函数字符输入函数 字符输入函数字符输入函数getchar()getchar()是专门用于输入一个是专门用于输入一个字符常量的函数。字符常量的函数。它没有参数,函数的值就是从键盘输入的一个它没有参数,函数的值就是从键盘输入的一个字符。字符。使用使用getchar()getchar()函数之前,必须用函数之前,必
12、须用#include#include包包含含“stdio.hstdio.h”。例例3.5 3.5 显示从键盘输入的一个字符。显示从键盘输入的一个字符。#include stdio.h#include stdio.h void main()void main()char c;char c;c=getchar();c=getchar();printf(%c,c);printf(%c,c);输入输入:a:a 输出输出:a:a【例例3.63.6】编程序判断输入的字符是否为编程序判断输入的字符是否为a a,若是,若是 ,则输出,则输出a a,否则输出,否则输出N N。程序如下:程序如下:#include
13、 stdio.h#include stdio.h void main()void main()char c;printf(%c,(c=getchar(char c;printf(%c,(c=getchar()=)=a a)?c:)?c:N N););输入输入:a :a 输入输入 :b:b 输出输出:a :a 输出输出 :N:N3.2.4 字符输出函数 与与getchar()getchar()相对应,相对应,putchar()putchar()是字符输是字符输出函数,它向标准设备出函数,它向标准设备(通常是显示器通常是显示器)输出输出一个字符一个字符例如:例如:putchar(c)putchar
14、(c);/*/*输出字符变量输出字符变量c c的值的值*/注意注意:与与getchar()getchar()一样,使用一样,使用putchar()putchar()之前必之前必须用须用#include#include包含包含“stdio.hstdio.h”。【例3.7】用putchar函数显示从键盘输入的字符#include stdio.h#include stdio.h void main()void main()char c;char c;c=getchar();/*putchar(getchar();*/c=getchar();/*putchar(getchar();*/putchar(
15、c);putchar(c);键盘输入键盘输入:a :a 键盘输入键盘输入:A:A屏幕输出屏幕输出:a :a 屏幕输出屏幕输出:A:A3.3表达式语句表达式语句 在第二章中已经学习了在第二章中已经学习了C C语言中众多的表达式。语言中众多的表达式。在每一种表达式的后面加一个分号,都可以构成在每一种表达式的后面加一个分号,都可以构成一个最简单的语句一个最简单的语句表达式语句。表达式语句。例如例如:表达式表达式 表达式语句表达式语句 a=a+c*(d+3)a=a+c*(d+3)a=a+c*(d+3)a=a+c*(d+3);a+b+c a+b+ca+b+c a+b+c;i+i+i+i+;例如例如:函数
16、调用也是表达式,在其后加一个分函数调用也是表达式,在其后加一个分号,就变成了函数调用语句。号,就变成了函数调用语句。例:例:printfprintf函数调用语句函数调用语句 scanfscanf函数调用语句函数调用语句小结小结:在表达式之后加一个分号,从而构成一在表达式之后加一个分号,从而构成一个语句,这是个语句,这是C C语言的一个特色。它使语言的一个特色。它使C C语语言的程序设计的表达能力更强。言的程序设计的表达能力更强。3.4复合语句复合语句 定义定义:用花括号括起来的程序段就是一个复合用花括号括起来的程序段就是一个复合语句。语句。例如:例如:a=1.0;a=1.0;b=2.0;b=2
17、.0;i+;i+;3.5 if条件语句条件语句 用用C C语言求解实际问题时,经常会遇到要进行判断语言求解实际问题时,经常会遇到要进行判断的情况。的情况。例如:从键盘输入圆半径的值。如果输入的值大于例如:从键盘输入圆半径的值。如果输入的值大于等于等于0 0,则程序就计算圆的面积;如果输入的值小于,则程序就计算圆的面积;如果输入的值小于0 0,则显示错误信息,以提醒用户纠正输入的错误。,则显示错误信息,以提醒用户纠正输入的错误。像这样根据条件判断决定其后的动作,在像这样根据条件判断决定其后的动作,在C C语言中可语言中可以使用以使用ifif条件语句来实现。条件语句来实现。C C语言语言 中中if
18、if条件语句有三种结构形式,它们是:条件语句有三种结构形式,它们是:1.if1.if结构结构 2.if-else2.if-else结构结构 3.else-if3.else-if结构结构 3.5.1 if结构结构ifif结构的一般格式为:结构的一般格式为:if(if(表达式表达式)语句语句 功能:首先计算表达式的值,若其值为非功能:首先计算表达式的值,若其值为非0(0(即即“真真”),则执行表达式后的语句;若其,则执行表达式后的语句;若其值为值为0(0(即即“假假”),则跳过这个语句去执行,则跳过这个语句去执行ifif语句的后继语句。语句的后继语句。注注:if(if(表达式表达式)后面的语句只能
19、是一个语句或一后面的语句只能是一个语句或一个复合语句。个复合语句。ifif结构的功能流程图结构的功能流程图假假(0)表达式为真吗?执行语句真真(非非0)入口入口表达式为真吗?执行语句真真(非非0)假假(0)入口入口 ifif结构的功能流程图中棱形框、矩形框和指向线是结构的功能流程图中棱形框、矩形框和指向线是构成流程图的基本元素。构成流程图的基本元素。棱形框:表示对表达式的判断。它有一个入口,两棱形框:表示对表达式的判断。它有一个入口,两 个个出出口口。一一个个是是“真真”出出口口,一一个个是是“假假”出口。棱形框中的出口取哪个角为出口。棱形框中的出口取哪个角为 “真真”,哪个角为,哪个角为“假
20、假”是任意的。是任意的。矩形框:表示执行处理的内容。它只能有一个入口矩形框:表示执行处理的内容。它只能有一个入口 和一个出口。和一个出口。带箭头的线:是指向线,表示程序的流向。带箭头的线:是指向线,表示程序的流向。例例3.8 3.8 从键盘输入圆的半径,若半径小于等于从键盘输入圆的半径,若半径小于等于 0 0,则不进行计算;否则,计算圆面积。,则不进行计算;否则,计算圆面积。#include stdio.h#include stdio.h void main()void main()float r;float r;printf(Input the radiut:);printf(Input t
21、he radiut:);scanf(%f,&r);scanf(%f,&r);if(r0)if(r0)printf(area=%fn,3.14159*r*r);printf(area=%fn,3.14159*r*r);例例3.9 3.9 从键盘输入圆的半径,若为从键盘输入圆的半径,若为1010,则计算圆,则计算圆 的面积,若为的面积,若为2020,则计算圆的周长。若既,则计算圆的周长。若既 不等于不等于1010又不等于又不等于2020,则不进行计算。,则不进行计算。#include stdio.h#include stdio.h void main()void main()float r;flo
22、at r;printf(Input the radiut:);printf(Input the radiut:);scanf(%f,&r);scanf(%f,&r);if(r=10)printf(Area=%fn,3.14159*r*r);if(r=10)printf(Area=%fn,3.14159*r*r);if(r=20)printf(Cycle=%fn,2.0*3.14159*r);if(r=20)printf(Cycle=%fn,2.0*3.14159*r);例例3.10 3.10 输入两个实数,按由大到小的顺序输出输入两个实数,按由大到小的顺序输出 这两个数。这两个数。分析分析:输
23、入两个实数时,这两个实数的大小顺序是任输入两个实数时,这两个实数的大小顺序是任 意的。但是题中要求输出的顺序是由大到小。意的。但是题中要求输出的顺序是由大到小。若若abab,则先,则先a a后后b b;若;若abab)printf(%f,%f,a,b);if(ab)printf(%f,%f,a,b);if(ab)printf(%f,%f,b,a);if(ab)printf(%f,%f,b,a);用交换变量值的方法按顺序输出这两个数用交换变量值的方法按顺序输出这两个数 交换变量值的思想:交换变量值的思想:不改变变量名,但变量值可改变的性质。若不改变变量名,但变量值可改变的性质。若a a的值的值大
24、于大于b b的值,则的值,则a a与与b b的值不交换;若的值不交换;若a a的值小于的值小于b b的的值,则两者互相交换值。从而使得无论何时,变量值,则两者互相交换值。从而使得无论何时,变量a a的值始终大于变量的值始终大于变量b b的值。最后,按先的值。最后,按先a a后后b b的顺序输的顺序输出,即可实现按由大到小的顺序输出的功能。出,即可实现按由大到小的顺序输出的功能。实现方法:实现方法:为了能够进行相互交换,必须引进一个临时变量为了能够进行相互交换,必须引进一个临时变量t t。用以下三个赋值语句可实现交换。用以下三个赋值语句可实现交换。t=a;a=b;b=t;/*t=a,a=b,b=
25、t;*/t=a;a=b;b=t;/*t=a,a=b,b=t;*/程序如下:#include stdio.h#include stdio.h void main()void main()float a,b,t;float a,b,t;printf(Please input two numbers:n);printf(Please input two numbers:n);scanf(%f%f,&a,&b);scanf(%f%f,&a,&b);if(ab)if(a(ch2=getchar()if(ch1=getchar()(ch2=getchar()c=ch1;ch1=ch2;ch2=c;c=ch
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 语言程序设计 课件 第三 11