《C语言程序设计》课件第三章11.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《C语言程序设计》课件第三章11.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 语言程序设计 课件 第三 11
- 资源描述:
-
1、C语言程序语言程序电子教案电子教案本章内容本章内容学习结构化程序设计方法学习结构化程序设计方法简单语句简单语句选择语句选择语句 一个高质量的程序必须是运行可靠、清晰易读、一个高质量的程序必须是运行可靠、清晰易读、高效率和可适应性及可移植性的。高效率和可适应性及可移植性的。可靠性可靠性为为首位。必须掌握如下几个避免错误的技术首位。必须掌握如下几个避免错误的技术和方法:和方法:正确的程序设计方法正确的程序设计方法 正确性证明正确性证明 校对校对 编译检查编译检查 运行检查运行检查 系统测试系统测试自顶向下的结构程序设计方法自顶向下的结构程序设计方法标识符的合理选择标识符的合理选择程序格式的规范书写
2、程序格式的规范书写 C C语言是结构化程序设计的语言,具有结构化语言的语言是结构化程序设计的语言,具有结构化语言的一系列特征。一系列特征。C C语言的主要结构成分是函数,利用它很容易构造出语言的主要结构成分是函数,利用它很容易构造出相对独立的子系统模块。调用函数时仅需知道它实现相对独立的子系统模块。调用函数时仅需知道它实现什么功能,不必知道其功能是如何实现的,符合结构什么功能,不必知道其功能是如何实现的,符合结构化设计的特点。在书写格式上允许采取逐层缩进的形化设计的特点。在书写格式上允许采取逐层缩进的形式,增强了程序的可读性。式,增强了程序的可读性。#include“stdio.h”#incl
3、ude“stdio.h”void main void main()printf printf(hellon hellon);#include“stdio.h”#include“stdio.h”void main()void main()printf(hellon)printf(hellon);请看下面求圆面积的程序:请看下面求圆面积的程序:#include“stdio.h”#include“stdio.h”#define PI 3.14159#define PI 3.14159void main()void main()float r,area float r,area;r=4;r=4;are
4、a=PI area=PI*r r*r;r;printf(The area is%fn,area);printf(The area is%fn,area);编译连接执行这个程序以后,将输出半径为4 的圆的面积,但不能输出其他不同半径的圆面积scanfscanf函数是从键盘得到输入数据的函数。函数是从键盘得到输入数据的函数。scanfscanf函数的一般格式为:函数的一般格式为:scanf(“scanf(“输入控制输入控制”,输入数据表列,输入数据表列);(1)(1)“输入控制输入控制”的含义与的含义与printfprintf函数的函数的“输出输出 控制控制 相同相同(2)(2)输入数据表列是一个
5、或多个用逗号分隔的变输入数据表列是一个或多个用逗号分隔的变量的地址或字符串的首地址量的地址或字符串的首地址,变量的地址可变量的地址可以通过地址运算符以通过地址运算符&得到。例如,得到。例如,r r的地址的地址就是就是&r&r。#include“stdio.h”#include“stdio.h”#define PI 3.14159#define PI 3.14159void main()void main()float r,area float r,area;scanf(%f,&r)scanf(%f,&r);area=PIarea=PI*r r*r r;printf(The eara is%fn
6、,area)printf(The eara is%fn,area);从键盘输入r的值地址运算符#include“stdio.h”#include“stdio.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);/scanf(%d,&a1);/*从键盘输入从键盘输入a1a1的值的值*/printf(Enter a value of a2:);printf(E
7、nter 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(a1=%d,a2=%d,a3=%fn,a1,a2,a3);#include“stdio.h”#include“stdio.h”void main()vo
8、id 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,a2,a3);printf(a1=%d,a2=%d,a3=%fn,a1,a2,a3);数据输入方式数据输入方式:(c)123:(c)123回车回车 (a)123 456 7.89 45
9、6(a)123 456 7.89 456回车回车 (b)123TAB456TAB7.89 7.89(b)123TAB456TAB7.89 7.89回车回车#include“stdio.h”#include“stdio.h”void main()void main()float a,b,c,t;float a,b,c,t;scanf(%f,%f,%f,&a,&b,&c);scanf(%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
10、,8.32结果结果:8.320000:8.320000 字符输入函数字符输入函数getchar()getchar()是专门用于输入一个是专门用于输入一个字符常量的函数。字符常量的函数。它没有参数,函数的值就是从键盘输入的一个它没有参数,函数的值就是从键盘输入的一个字符。字符。使用使用getchar()getchar()函数之前,必须用函数之前,必须用#include#include包包含含“stdio.h”stdio.h”。【例例3.63.6】编程序判断输入的字符是否为编程序判断输入的字符是否为aa,若是,若是 ,则输出,则输出aa,否则输出,否则输出NN。程序如下:程序如下:#include
11、 stdio.h#include stdio.h void main()void main()char c;char c;printf(%c,(c=getchar()=a)?c:N);printf(%c,(c=getchar()=a)?c:N);输入输入:a :a 输入输入 :b:b 输出输出:a :a 输出输出 :N:N 与与getchar()getchar()相对应,相对应,putchar()putchar()是字符输是字符输出函数,它向标准设备出函数,它向标准设备(通常是显示器通常是显示器)输出输出一个字符一个字符例如:例如:putchar(c)putchar(c);/*输出字符变量输出
12、字符变量c c的值的值*/注意注意:与与getchar()getchar()一样,使用一样,使用putchar()putchar()之前必之前必须用须用#include#include包含包含“stdio.h”stdio.h”。#include stdio.h#include stdio.h void main()void main()char c;char c;c=getchar();/c=getchar();/*putchar(getchar();putchar(getchar();*/putchar(c);putchar(c);键盘输入键盘输入:a :a 键盘输入键盘输入:A:A屏幕输出
13、屏幕输出:a :a 屏幕输出屏幕输出:A:A 在第二章中已经学习了在第二章中已经学习了C C语言中众多的表达式。语言中众多的表达式。在每一种表达式的后面加一个分号,都可以构成在每一种表达式的后面加一个分号,都可以构成一个最简单的语句一个最简单的语句表达式语句。表达式语句。例如例如:表达式表达式 表达式语句表达式语句 a=a+ca=a+c*(d+3)a=a+c(d+3)a=a+c*(d+3)(d+3);a+b+c a+b+ca+b+c a+b+c;i+i+i+i+;例如例如:函数调用也是表达式,在其后加一个分函数调用也是表达式,在其后加一个分号,就变成了函数调用语句。号,就变成了函数调用语句。例
14、:例:printfprintf函数调用语句函数调用语句 scanfscanf函数调用语句函数调用语句小结小结:在表达式之后加一个分号,从而构成一在表达式之后加一个分号,从而构成一个语句,这是个语句,这是C C语言的一个特色。它使语言的一个特色。它使C C语语言的程序设计的表达能力更强。言的程序设计的表达能力更强。定义定义:用花括号括起来的程序段就是一个复合用花括号括起来的程序段就是一个复合语句。语句。例如:例如:a=1.0;a=1.0;b=2.0;b=2.0;i+;i+;用用C C语言求解实际问题时,经常会遇到要进行判断语言求解实际问题时,经常会遇到要进行判断的情况。的情况。例如:从键盘输入圆
15、半径的值。如果输入的值大于例如:从键盘输入圆半径的值。如果输入的值大于等于等于0 0,则程序就计算圆的面积;如果输入的值小于,则程序就计算圆的面积;如果输入的值小于0 0,则显示错误信息,以提醒用户纠正输入的错误。,则显示错误信息,以提醒用户纠正输入的错误。像这样根据条件判断决定其后的动作,在像这样根据条件判断决定其后的动作,在C C语言中可语言中可以使用以使用ifif条件语句来实现。条件语句来实现。C C语言语言 中中ifif条件语句有三种结构形式,它们是:条件语句有三种结构形式,它们是:1.if1.if结构结构 2.if-else2.if-else结构结构 3.else-if3.else-
16、if结构结构 ifif结构的一般格式为:结构的一般格式为:if(if(表达式表达式)语句语句 功能:首先计算表达式的值,若其值为非功能:首先计算表达式的值,若其值为非0(0(即即“真真”),则执行表达式后的语句;若其,则执行表达式后的语句;若其值为值为0(0(即即“假假”),则跳过这个语句去执行,则跳过这个语句去执行ifif语句的后继语句。语句的后继语句。注注:if(if(表达式表达式)后面的语句只能是一个语句或一后面的语句只能是一个语句或一个复合语句。个复合语句。假假(0)表达式为真吗?执行语句真真(非非0)入口入口表达式为真吗?执行语句真真(非非0)假假(0)入口入口 ifif结构的功能流
17、程图中棱形框、矩形框和指向线是结构的功能流程图中棱形框、矩形框和指向线是构成流程图的基本元素。构成流程图的基本元素。棱形框:表示对表达式的判断。它有一个入口,两棱形框:表示对表达式的判断。它有一个入口,两 个出口。一个是个出口。一个是“真真”出口,一个是出口,一个是“假假”出口。棱形框中的出口取哪个角为出口。棱形框中的出口取哪个角为 “真真”,哪个角为,哪个角为“假假”是任意的。是任意的。矩形框:表示执行处理的内容。它只能有一个入口矩形框:表示执行处理的内容。它只能有一个入口 和一个出口。和一个出口。带箭头的线:是指向线,表示程序的流向。带箭头的线:是指向线,表示程序的流向。#include
18、stdio.h#include stdio.h void main()void main()float r;float r;printf(Input the radiut:);printf(Input the radiut:);scanf(%f,&r);scanf(%f,&r);if(r0)printf(area=%fn,3.14159 if(r0)printf(area=%fn,3.14159*r r*r);r);#include stdio.h#include stdio.h void main()void main()float r;float r;printf(Input the ra
19、diut:);printf(Input the radiut:);scanf(%f,&r);scanf(%f,&r);if(r=10)printf(Area=%fn,3.14159 if(r=10)printf(Area=%fn,3.14159*r r*r);r);if(r=20)printf(Cycle=%fn,2.0 if(r=20)printf(Cycle=%fn,2.0*3.141593.14159*r);r);分析分析:输入两个实数时,这两个实数的大小顺序是任输入两个实数时,这两个实数的大小顺序是任 意的。但是题中要求输出的顺序是由大到小。意的。但是题中要求输出的顺序是由大到小。若若
20、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的值的值大于大于b b的值,则的值,则a a与与b b的值不交换;若的值不交换;若a a的值小于的值小于b b的的值,则两者互相交换值。从而使得无论何时,变量值,则两者互相交换值。从而使得无论何时,变量a a的值始终大于变量的值始终大于变量b b的
21、值。最后,按先的值。最后,按先a a后后b b的顺序输的顺序输出,即可实现按由大到小的顺序输出的功能。出,即可实现按由大到小的顺序输出的功能。实现方法:实现方法:为了能够进行相互交换,必须引进一个临时变量为了能够进行相互交换,必须引进一个临时变量t t。用以下三个赋值语句可实现交换。用以下三个赋值语句可实现交换。t=a;a=b;b=t;/t=a;a=b;b=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(Plea
22、se 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=ch1;ch1=ch2;ch2=c;printf(“%c%cn”,ch1,ch2);printf(“%c%cn”,ch1,ch2);输入输入:ab :ab 输入:ba 输出输出:ab :ab 输出:ab 注意输入方式if-elseif-else结构的一般格式
23、为:结构的一般格式为:if(if(表达式表达式)语句语句1 1 else else 语句语句2 2功能:首先计算表达式的值,若其值为非功能:首先计算表达式的值,若其值为非0 0,则执行语,则执行语 句句1 1,然后跳过语句,然后跳过语句2 2,往下执行,往下执行ifif结构的后继结构的后继 语句;若其值为语句;若其值为0 0,则跳过语句,则跳过语句1 1,执行语句,执行语句2 2,然后往下执行然后往下执行ifif结构的后继语句。结构的后继语句。假(0)表达式为真吗?执行语句1真(非0)入口执行语句2#include stdio.h#include stdio.h void main()void
24、 main()int a,b,max;int a,b,max;scanf(%d,%d,&a,&b);scanf(%d,%d,&a,&b);if(ab)if(ab)max=a;max=a;else else max=b;max=b;printf(Maxnum is%d,max);printf(Maxnum is%d,max);分析:因为对一个正整数,不是奇数就是偶数,只有分析:因为对一个正整数,不是奇数就是偶数,只有 两种选择,故使用两种选择,故使用if-elseif-else结构语句。结构语句。#include stdio.h#include stdio.h void main()void m
25、ain()int number;int number;printf(Input a number for testing:);printf(Input a number for testing:);scanf(%d,&number);scanf(%d,&number);if(number%2=1)/if(number%2=1)/*或或!(n/2!(n/2*2=n)2=n)*/printf(%d printf(%dis odd.n,number);is odd.n,number);else else printf(%d printf(%dis even.n,number);is even.n,n
展开阅读全文