第3章顺序和选择结构程序设计
合集下载
C语言程序设计第3章选择结构程序设计
√
!注意 if 与 else 的配对关
系,else总是与它上面最近 的未配对的 if 配对,若if与 else 的数目不一致,可以加 { }来确定配对关系。
整理课件
例:有一函数
y=
-1 0
(x<0) 输入X值,输出Y值。 (x=0)
1 (x>0)
main( ) { int x, y; scanf("%d",&x);
if (x<0) y= -1; else if (x= =0) y=0;
if(x<=0)
else y=1;
if (x= =0) y=0; y= -1;
else y=-1;
if (x>=0)
eplrsientfy(="1x;=%d,y=%d\n{"i,xf ,(yx)>;0) y=1; }
}
else y=0;
整理课件
程序设计基本步骤
定义变量 产生数据 数据处理、计算 输出结果
整理课件
√
程序举例
编程1:判断某一年是否闰年。 能被4整除但不能被100整除的是闰年; 能被400整除的是闰年。
main( ) { int y; scanf("%d",&y);
if ((y%4==0&&y%100!=0)||(y%400==0)) printf("yes\n",y);
}
15 x 30 30 x 100 100 x 200 其它
整理课件
读程序段
m,n,x,y,z均为整型变量,求执行完该段 程序后各变量的值。
m=10;n=5;
x=(--m==n++)?--m:++n;
简单介绍程序设计的三种基本结构。
简单介绍程序设计的三种基本结构。
介绍如下:
程序设计的三种基本结构是顺序结构、选择结构、循环结构。
•顺序结构:程序中各个操作按照在源代码中的排列顺序,自上而下,依次执行。
•选择结构:根据某个特定的条件进行判断后,选择其中一支执行。
•循环结构:在程序中需要反复执行某个或某些操作,直到条件为假或为真时才停止循环。
它由循环体中的条件判断继续执行某个功能还是退出循环。
另外,循环结构由循环变量、循环体和循环终止条件三部分组成。
C语言_第3章
第3章 顺序结构程序设计
简单程序的流程一般分为顺序结构、选择结构和循环结 构。其中顺序结构是最基本的控制结构,其包含的语句 是按照书写的顺序执行,且每条语句都将被执行。
程序流程如图3.1所示, #include<stdio.h> 语句按书写顺序执行。 main( ) 先执行A,再执行B。 {int a=10,x=5,y=6;
三、复合语句
用一对花括号,把若干条语句括起来,
就形成了一条复合语句。形式如下:
{[内部数据描述语句]
其中定义的变量是
语句1; …… 语句n;}
复合语句结束的 “}”之后,不需
局部变量,仅在复 合语句中有效。
要再加分号。
花括号中的语句,可以是简单语句、空语句、复合 语句、流程控制语句,所有这些语句括在一起,在 语法上看成是一条语句,执行时顺序执行花括号中 的每条语句。复合语句多用于流程控制语句中。
printf(“\n%d,%d”,a+i,i++);}
四、格式输入函数 格式输入函数一般形式 scanf(“格式控制字符串”,地址列表); 功能:按指定的格式从键盘上把数据输入到指定的 变量之中 。 在scanf语句的格式控制字符串中,有两类字符: 普通字符:必须按原样输入,不能省略; 格式说明部分:由%引导的格式字符串组成。
scanf语句格式说明部分的一般格式为: %[*][width][F|N][h|L]type type是必须的,表示输入后转换的数据类型。
d(D) o(O) x(X) i(I) u(U)
c s f,e,g F,E,G n
%
十进制整数 八进制整数 十六进制整数 自动根据数头分辨十、八、十六进制 无符号十进制整数 单个字符 字符串 实数
简单程序的流程一般分为顺序结构、选择结构和循环结 构。其中顺序结构是最基本的控制结构,其包含的语句 是按照书写的顺序执行,且每条语句都将被执行。
程序流程如图3.1所示, #include<stdio.h> 语句按书写顺序执行。 main( ) 先执行A,再执行B。 {int a=10,x=5,y=6;
三、复合语句
用一对花括号,把若干条语句括起来,
就形成了一条复合语句。形式如下:
{[内部数据描述语句]
其中定义的变量是
语句1; …… 语句n;}
复合语句结束的 “}”之后,不需
局部变量,仅在复 合语句中有效。
要再加分号。
花括号中的语句,可以是简单语句、空语句、复合 语句、流程控制语句,所有这些语句括在一起,在 语法上看成是一条语句,执行时顺序执行花括号中 的每条语句。复合语句多用于流程控制语句中。
printf(“\n%d,%d”,a+i,i++);}
四、格式输入函数 格式输入函数一般形式 scanf(“格式控制字符串”,地址列表); 功能:按指定的格式从键盘上把数据输入到指定的 变量之中 。 在scanf语句的格式控制字符串中,有两类字符: 普通字符:必须按原样输入,不能省略; 格式说明部分:由%引导的格式字符串组成。
scanf语句格式说明部分的一般格式为: %[*][width][F|N][h|L]type type是必须的,表示输入后转换的数据类型。
d(D) o(O) x(X) i(I) u(U)
c s f,e,g F,E,G n
%
十进制整数 八进制整数 十六进制整数 自动根据数头分辨十、八、十六进制 无符号十进制整数 单个字符 字符串 实数
c语言顺序和选择结构程序设计
如: if (3) prinft("o.k");
if ('a')… 2. 上述形式中的语句必须以分号结束
3. 上述形式中的语句可以是由{ }括起来的复合语 句。此时,在{ }外可以不用分号.
形式2 if(表达式) 语句A
else 语句B
功能: 表达式为非0, 执行语句A 表达式为0, 执行语句B
0 表达式 = 0
顺序结构程序举例
例4-1:已知圆柱体半径6米,高7米,求体积。
分析:
输入量: 底面半径 高 输出量: 体积
都是实型数据
假设:用变量 r 表示半径 变量 h 表示高
变量 s 表示底面积 变量 v 表示体积
中间的处理过程: s=PI*r*r;
v=s*h;
例4-1程序流程:
❖ 整个程序的流程:
定义4个实型变量 r,h,v,s
用如下程序表示: #include "stdio.h" main() {
int score; scanf("%d",&score); if (score<60)
printf("不及格"); else if(score<70)
printf("及格"); else if(score<80)
printf("中"); else if(score<90)
❖ else
❖
max=b;
❖ if (c>max)
如果c大于max,则把c放到max
❖
max=c;
中
❖ printf("max is :%d\n",max);
if ('a')… 2. 上述形式中的语句必须以分号结束
3. 上述形式中的语句可以是由{ }括起来的复合语 句。此时,在{ }外可以不用分号.
形式2 if(表达式) 语句A
else 语句B
功能: 表达式为非0, 执行语句A 表达式为0, 执行语句B
0 表达式 = 0
顺序结构程序举例
例4-1:已知圆柱体半径6米,高7米,求体积。
分析:
输入量: 底面半径 高 输出量: 体积
都是实型数据
假设:用变量 r 表示半径 变量 h 表示高
变量 s 表示底面积 变量 v 表示体积
中间的处理过程: s=PI*r*r;
v=s*h;
例4-1程序流程:
❖ 整个程序的流程:
定义4个实型变量 r,h,v,s
用如下程序表示: #include "stdio.h" main() {
int score; scanf("%d",&score); if (score<60)
printf("不及格"); else if(score<70)
printf("及格"); else if(score<80)
printf("中"); else if(score<90)
❖ else
❖
max=b;
❖ if (c>max)
如果c大于max,则把c放到max
❖
max=c;
中
❖ printf("max is :%d\n",max);
C语言程序设计ppt课件-第3章-选择结构
1.表达式 2. if语句 3. switch语句 4. 选择结构的嵌套 5. 选择结构的应用
本章主要内容
1
选择结构
在解决大量的实际问题时,常常需要根据不同的 情况或条件,制定出不同的解决方案或对策。
选择结构是通过对条件 的判断来选择执行不同 的程序语句。
选择结构
一个程序若具有了判断和选择功 能,就具备了最基本的智能。
的完整的解题步骤。
void main() { int x,y,z,max;
printf("“\n Please input x,y,z: ");
➢将同影一响问到题算可法用乃不至同程算序法的解效决率,sifc(a。xm而n>afy(一一x)"=%x个个;d%算算d法法%d的的",&评质x价,量&y主优,&要z劣); 从时间复杂度和空间复杂度来els考e 虑。
max=y;
例从键盘输入三个不同的、无序if(mm的aaxx整<=zz)数; ,并分别存放 到变量x、y、z中,然后通过pr判int断f("输\n 出ma三x=%个d数\n"中,m的ax)最;
大数。要求将最大数存放在} 变量max中。
25
语法练习(单选题)
1.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中
switch语句的应用
关例键从语键句盘:上输入一个学生的总平均成 绩能用(i大f- e于ls0e且if来小替于换10吗0)? swi,tc按h(分(i数nt段)(评sc定or出e/成10绩.的0)相) 应等级,90以上为A级,80~
{89为caBs级e ,97:0~g7r9a为dCe=级'A,'6;0~br6e9a为k;D级,59以下为E级。 问题分ca析se:s8w:itchg语ra句de中='的B表';达b式re只ak能; 是整型或字符型,所 以可c用as成e 绩7的:高位gr数ad字e=来'C确';定b其re对a应k;的分数段,而每一个 分数c段as又e对6应:swigtrcha中de的='一D'路; 选br择ea。k;可用表达式“((int)(成 绩/1c0)a)s”e 计5算:出成绩的高位数字 ,其中,“(int)”的功能 是将c表as达e式的4:值强制转换成整数。
本章主要内容
1
选择结构
在解决大量的实际问题时,常常需要根据不同的 情况或条件,制定出不同的解决方案或对策。
选择结构是通过对条件 的判断来选择执行不同 的程序语句。
选择结构
一个程序若具有了判断和选择功 能,就具备了最基本的智能。
的完整的解题步骤。
void main() { int x,y,z,max;
printf("“\n Please input x,y,z: ");
➢将同影一响问到题算可法用乃不至同程算序法的解效决率,sifc(a。xm而n>afy(一一x)"=%x个个;d%算算d法法%d的的",&评质x价,量&y主优,&要z劣); 从时间复杂度和空间复杂度来els考e 虑。
max=y;
例从键盘输入三个不同的、无序if(mm的aaxx整<=zz)数; ,并分别存放 到变量x、y、z中,然后通过pr判int断f("输\n 出ma三x=%个d数\n"中,m的ax)最;
大数。要求将最大数存放在} 变量max中。
25
语法练习(单选题)
1.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中
switch语句的应用
关例键从语键句盘:上输入一个学生的总平均成 绩能用(i大f- e于ls0e且if来小替于换10吗0)? swi,tc按h(分(i数nt段)(评sc定or出e/成10绩.的0)相) 应等级,90以上为A级,80~
{89为caBs级e ,97:0~g7r9a为dCe=级'A,'6;0~br6e9a为k;D级,59以下为E级。 问题分ca析se:s8w:itchg语ra句de中='的B表';达b式re只ak能; 是整型或字符型,所 以可c用as成e 绩7的:高位gr数ad字e=来'C确';定b其re对a应k;的分数段,而每一个 分数c段as又e对6应:swigtrcha中de的='一D'路; 选br择ea。k;可用表达式“((int)(成 绩/1c0)a)s”e 计5算:出成绩的高位数字 ,其中,“(int)”的功能 是将c表as达e式的4:值强制转换成整数。
C语言_3_顺序、选择、循环结构
格式输出(续)
printf()要求
有些系统要求格式字符要用小写字母,如%d不 能写成%D 可以在printf函数中格式控制字符串中包含的转 义字符,如\n,\t,\b,\r,\f,\377 一个格式说明以%开头,以上述9格式字符之一 为结束,中间可以插入附加格式字符 如果想输入字符%,则应该在格式控制字符串 中用连续两个%%表示 不同的系统在实现格式输出时,输出的结果可 能会有一些小差别
格式字符——c格式符
格式输出(续)
格式字符——s格式符
%s:输出一个字符串 %ms:输出的字符串占m列,如果字符串本身长度大于 m,则突破m的限制,将字符串全部输出;若长度小于 m,则左补空格 %-ms:如果串长小于m,则在m列范围内,字符串向左 靠,右补空格 %m.ns:输出占m列,但只取字符串中左端n个字符, 这n个字符输出在m列的右侧,左补空格 %-m.ns:其中m、n含义同上,n个字符输出在m列范围 的左侧,右补空格;如果n>m,则m自动取n值,即保 证n个字符正常输出
说明
c
s
用来输入单个字符
用来输入字符串,将字符串送到一个字符数组中, 在输入时以非空白字符开始,以第一个空白字符结 束。字符串以串结束标志\0作为其最后一个字符。 用来输入实数,可以用小数形式或指数形式输入
f
e
与f作用相同,e和f可以互相替换
格式输入(续)
附加格式字符
字符
字母l
h
说明
用于输入长整型数据(可用%ld、%lo、%lx), 以及double型数据(用%lf或%le)
格式字符——g格式符
格式输出(续)
C语言程序设计第3章 选择结构流程和应用
2 单分支和双分支选择结构程序设计
简单if语句 if-else语句 条件运算符与条件表达式
简单if语句
学一学 简单if语句的形式为: if ( 条件表达式 ) 语句
其流程图如图3-1所示。语句的执 行过程是先计算“条件表达式”, 若值为“真”,则执行“语句”; 否则什么也不做。此处的“语句” 可以是简单语句,也可以是用一对 大括号“{ }”括起来的复合语句。
本章内容中我们将学习 1 选择结构判定条件的构成 2 单分支与双分支选择结构程序设计 3 多分支选择结构程序设计
1 选择结构判定条件的构成
关系运算符与关系表达式 逻辑运算符与逻辑表达式
关系运算符
关系运算是对两个操作数之间进行比较的运算符,其 运算结果为逻辑值(或称“布尔”值,boolean) “真”或“假”。 C语言中提供六种关系运算符,如 表3-1所示。
条件
Y
N
语句
试一试
问题3.4 从键盘输入一个数,输出其绝对值。 解题步骤 1.定义变量二个int变量iX,iY,其中iX用来接收 用户从键盘输入的数据,iY用来存放iX的绝对值。 2.从键盘输入一个整数放iX; 3.把iX放iY; 4.正数的绝对值是正数本身,负数的绝对值是其 相反数。所以,如果iX<0,则iY= -iX,否则不 需要做什么; 5.输出iX和iY。
练一练
问题:小明去参加一个同学的生日聚会, 同学的家长规定18岁以上的才可以饮酒, 所以需要编一程序根据输入的年龄打印一 张饮酒卷,使的能饮酒的同学可以获取饮 酒卷。
if-else语句
学一学 if-else语句是标准的if语句。 用来实现双分支选择结构, 其一般形式为: if ( 条件 ) 语句1; else 语句2;
高级程序语言设计第3章
#include <stdio.h>
或
#include "stdio.h" 1.格式输入输出(printf函数,scanf函数) (1)scanf函数 scanf函数用于输入指定类型的多个数据,函数的一般形式为:
scanf(“格式控制字符串”,地址列表);
一定要注意,地址列表中直接给变量名将会出错,因为这是非
返回本章目录
第3章 高级语言程序设计概述
l 指定数据所占字符数(宽度)
scanf("%3d%2d",&a,&b); 输入:12345678↙ 系统将把123赋值给a,把45赋值给b,而678则被丢掉。 l scanf函数中没有精度控制 scanf("%3.2f",&a); 将是非法的,即使输入12345↙,也不会将变量a赋值 为123.45; l 跳过某输入数据 scanf("%d %*d %d",&a,&b); 输入:11 22 33↙
{
char c1='H',c2='E',c3='L',c4='O'; /*定义字符变量并赋值*/
putchar(c1);
/*输出字符变量的值*/
putchar(c2);putchar(c3);putchar(c3);putchar(c4);
putchar('\t');
/*输出Tab制表键*/
putchar(87);
/*输出字符W,87是其ASCII编码值
*/ putchar('!'); putchar('\n');
/*输出字符*/ /*输出回车换行符*/
或
#include "stdio.h" 1.格式输入输出(printf函数,scanf函数) (1)scanf函数 scanf函数用于输入指定类型的多个数据,函数的一般形式为:
scanf(“格式控制字符串”,地址列表);
一定要注意,地址列表中直接给变量名将会出错,因为这是非
返回本章目录
第3章 高级语言程序设计概述
l 指定数据所占字符数(宽度)
scanf("%3d%2d",&a,&b); 输入:12345678↙ 系统将把123赋值给a,把45赋值给b,而678则被丢掉。 l scanf函数中没有精度控制 scanf("%3.2f",&a); 将是非法的,即使输入12345↙,也不会将变量a赋值 为123.45; l 跳过某输入数据 scanf("%d %*d %d",&a,&b); 输入:11 22 33↙
{
char c1='H',c2='E',c3='L',c4='O'; /*定义字符变量并赋值*/
putchar(c1);
/*输出字符变量的值*/
putchar(c2);putchar(c3);putchar(c3);putchar(c4);
putchar('\t');
/*输出Tab制表键*/
putchar(87);
/*输出字符W,87是其ASCII编码值
*/ putchar('!'); putchar('\n');
/*输出字符*/ /*输出回车换行符*/
C语言程序设计第3章 顺序结构编程2018版
printf("输入红包金额:"); scanf("%d",& money); printf("输入红包个数:"); scanf("%d",& num); printf("计算红包总金额:"); total = num * money; printf("红包总金额:%d元\n", total); return 0; }
类型 变量长度(单位:字节) 数值范围
short int
2
-215 ~ 215-1
4
-23311 ~ 23311-1
long
unsigned short
unsigned int
unsigned long
4
-231 ~ 231-1
2
0 ~ 216-1
4
0 ~ 232-1
4
0 ~ 232-1
➢ 整型常量三种形式
例:total = money*num; int money=10, num=10;
注:int money=num=10;
3.2.3 赋值语句
➢ 复合赋值运算符 a += b 等价于 a = a + b a -= b 等价于 a = a – b a *= b 等价于 a = a * b a /= b 等价于 a = a / b a %= b 等价于 a = a % b
案例二:共享单车费用程序运行结果
案例三:孩子身高预测
问题描述:孩子的身高可以利用遗传因素 即利用父母的身高进行预测。女儿身高计 算公式为:女儿成人时的身高=(父高× 0.96 + 母高)÷2 (注:此方法未考虑环 境因素的影响)。
类型 变量长度(单位:字节) 数值范围
short int
2
-215 ~ 215-1
4
-23311 ~ 23311-1
long
unsigned short
unsigned int
unsigned long
4
-231 ~ 231-1
2
0 ~ 216-1
4
0 ~ 232-1
4
0 ~ 232-1
➢ 整型常量三种形式
例:total = money*num; int money=10, num=10;
注:int money=num=10;
3.2.3 赋值语句
➢ 复合赋值运算符 a += b 等价于 a = a + b a -= b 等价于 a = a – b a *= b 等价于 a = a * b a /= b 等价于 a = a / b a %= b 等价于 a = a % b
案例二:共享单车费用程序运行结果
案例三:孩子身高预测
问题描述:孩子的身高可以利用遗传因素 即利用父母的身高进行预测。女儿身高计 算公式为:女儿成人时的身高=(父高× 0.96 + 母高)÷2 (注:此方法未考虑环 境因素的影响)。
大学vb 第3章 顺序结构
(1)说明:变量声明
(2)输入: 文本框、 InputBox
(3)加工:数据处理
(4)输出: 文本框、标签、窗体、MsgBox
赋值语句
2013-10-29
赋值语句 P76
[ Let ] 变量名| 对象名.属性名 = 表达式
注:1、与等于号的区别。 2、左边通常是变量。 3、一次只能为一个变量赋值。 4、两边类型不一致时,强制转换为左边类型。 ★ 非数字字符串赋给数值变量时会出错。 例:Dim a% a = "sf " 会出现“类型不匹配”错误
2013-10-29
输入的几种实现方法: a=1 a=text1.text a = InputBox("请输入所需的数据:")
输出的几种实现方法: text1.text=a Print a Label1.caption=a MsgBox "该数据是" & a
演示
2013-10-29
2013-10-29
2、MsgBox函数
格式:
MsgBox prompt [,buttons][,title] 变量[%]= MsgBox(prompt [,buttons][,title]) 功能: MsgBox函数打开一个信息框,等待用户选 择一个按钮,并可根据用户在对话框上的选择 进行对应的响应,此函数返回一个整型值,以
2013-10-29
举例: MsgBox "确实要删除吗?请选择!" 执行该语句后屏幕出现一个对话窗口,如下图 所示:
2013-10-29
dim a as Integer
a= MsgBox("提示信息" ,1, "标题")
第3章 顺序结构程序设计
2016年12月12日星期一 6
第3章 顺序结构程序设计
【例题3.1】阅读下列程序,认识格式输出函数的用法,写结果 #include<stdio.h> int main() { int i,j,m,n; 格式控制字符串 输出列表项 i=5; j=15; m=i++; n=++j; printf("i=%d, j=%d, m=%d, n=%d\n",i,j,m,n); return 0; }
※ %s:输出一个字符串。
※ %f:按实型数据输出且有6位的小数点。 ※ %e: 按实型数据输出且按指数形式
※ %g:按实型数据输出由系统自动选择f格式或e格式。
2016年12月12日星期一 8
第3章 顺序结构程序设计
3.3.2 格式输入函数scanf
阅读下列程序,认识scanf()函数的用法
#include<stdio.h> int main() 格式控制字符串(注意表示形式) { 输入地址列表 int a,b,c; float aver; printf("请输入三个数a,b,c:"); scanf("%d%d%d",&a,&b,&c); aver=(a+b+c)/3; printf("aver=%f\n",aver); return 0; }
第3章 顺序结构程序设计
3.4 字符输入/输出函数
【例题3.4.1】 通过键盘输入一个小写字母,输出该 字母的大写。 分析:输入可采用格式输入函数scanf()实现,输出可 采用格式输出函数printf()实现,使用格式符%c。小 写字母与大写字母的ASCII码值相差32。 思考:不用格式输入/输出函数能不能完成?能,用C 语言提供的另一类函数即字符输入/输出函数。
第3章 顺序结构程序设计
【例题3.1】阅读下列程序,认识格式输出函数的用法,写结果 #include<stdio.h> int main() { int i,j,m,n; 格式控制字符串 输出列表项 i=5; j=15; m=i++; n=++j; printf("i=%d, j=%d, m=%d, n=%d\n",i,j,m,n); return 0; }
※ %s:输出一个字符串。
※ %f:按实型数据输出且有6位的小数点。 ※ %e: 按实型数据输出且按指数形式
※ %g:按实型数据输出由系统自动选择f格式或e格式。
2016年12月12日星期一 8
第3章 顺序结构程序设计
3.3.2 格式输入函数scanf
阅读下列程序,认识scanf()函数的用法
#include<stdio.h> int main() 格式控制字符串(注意表示形式) { 输入地址列表 int a,b,c; float aver; printf("请输入三个数a,b,c:"); scanf("%d%d%d",&a,&b,&c); aver=(a+b+c)/3; printf("aver=%f\n",aver); return 0; }
第3章 顺序结构程序设计
3.4 字符输入/输出函数
【例题3.4.1】 通过键盘输入一个小写字母,输出该 字母的大写。 分析:输入可采用格式输入函数scanf()实现,输出可 采用格式输出函数printf()实现,使用格式符%c。小 写字母与大写字母的ASCII码值相差32。 思考:不用格式输入/输出函数能不能完成?能,用C 语言提供的另一类函数即字符输入/输出函数。
第3章 三种基本程序结构
左”。即上述表达式求解时,先计算并得到(b>c ? b : c)
的值,然后再将此值作为外层表达式的表达式3部分。 3、条件表达式一般使用在赋值语句中。虽然它快捷方
便,但功能上相比if语句还嫌不够。所以在实际应用中,
应视具体情况合理使用。
三、switch语句
switch语句的一般形式为:
switch(表达式){ case 常量表达式1: [语句1;] [break;] case 常量表达式2: [语句2;] [break;] …… case 常量表达式n: [语句n;] [break;] [default: 语句n+1;] }
2.格式控制符区分大小写; 如实数型量不能按%d形式输出,字符串量不能
first=3, second=4, third=2268
2.格式输入函数scanf 一般形式: scanf(格式控制,输入列表); 如:
scanf(“%d, %f”, &m, &n);
scanf函数是从标准输入设备(通常是键盘)读取输
/*两个%d之间没有空格*/
3 4↙
将3赋给a,4赋给b,也可以: 下面是体现“可取有效输入”含义的一个例子: 3↙ scanf(“%d%c%d”, &m, &ch, &n); 如果想输入123给m,字符’w’给ch,456给n,则以下3种 4↙
输入方式应采用哪一种呢? 123↙ 123w456↙ ① 123 w 456↙ ② w↙
和
(4)if子句是必须的,而else子句是可选的。但反过来
不成立,即else子句不能脱离if子句单独存在。流程图可以
变化如下:
是
下雨了?
不是
if(x>y) z=x; else
C++程序设计基础课件第3章 程序控制结构
setw(int n)
说明
输出换行符
整数按十进制 输出 整数按十六进 制输出 整数按八进制 输出
设置数据输出 的宽度
示例
语句
结果
cout<<123<<endl<<4 123
56;
456
cout<<dec<<18;
18
cout<<hex<<18;
12
cout<<oct<<18;
22
cout<<'a'<<setw(3)< <'b';
定点格式输出
setiosflags(ios:: scientific)
指数格式输出
cout<<setprecision(5) <<63.3156;
63.316
cout<<setiosflags(ios: :fixed) << 32.1456789;
32.14567 9
cout<<setiosflags(ios: :scientific) <<72.3456789;
操作,增量、减量操作,函数调用操作和输入
输出操作。
❖ 例如:
n++;
s=x+y;
--m;
m=n=t;
abs(x);
a=10,b=20;
cin>>x>>y;
z*=w;
cout<<x+y;
5
3.1.3 复合语句
❖形式:
例如:
说明
输出换行符
整数按十进制 输出 整数按十六进 制输出 整数按八进制 输出
设置数据输出 的宽度
示例
语句
结果
cout<<123<<endl<<4 123
56;
456
cout<<dec<<18;
18
cout<<hex<<18;
12
cout<<oct<<18;
22
cout<<'a'<<setw(3)< <'b';
定点格式输出
setiosflags(ios:: scientific)
指数格式输出
cout<<setprecision(5) <<63.3156;
63.316
cout<<setiosflags(ios: :fixed) << 32.1456789;
32.14567 9
cout<<setiosflags(ios: :scientific) <<72.3456789;
操作,增量、减量操作,函数调用操作和输入
输出操作。
❖ 例如:
n++;
s=x+y;
--m;
m=n=t;
abs(x);
a=10,b=20;
cin>>x>>y;
z*=w;
cout<<x+y;
5
3.1.3 复合语句
❖形式:
例如:
VB6.0理论第三版第3-4章
以下部分不要
⑶ MsgBox函数和MsgBox过程
MsgBox函数格式:变量% = MsgBox (prompt [, buttons] [,title]) MsgBox过程格式:MsgBox (prompt [, buttons] [,title]) 功能:打开一个消息框,等待用户选择一个按钮。MsgBox函数返回所 选按钮对应的整数值,以便告诉用户单击哪一个按钮。若不需要返回 值,则可作为MsgBox过程使用。 说明:① “prompt‖和“title‖的含义与InputBox()函数中对应的参数 相同。 ② “buttons(按钮)”:可选项,为整型参数。用来设定要显示的按 钮的数目、类型和出现在消息框中的图标类型。 ③ “变量%‖: 返回值。当用户按下消息框按钮时,系统将返回按键 相对应的数值,利用这个返回信息,用户可以在以后的程序中作出不 同的响应。例如,在打印文件时,如果选择“确定”按钮,那么程序 就应该打印文件;如果选择“取消”按钮,程序就不再打印文件;如 果选择“重试”,那么程序就应该能重新开始打印文件。
⑶ End语句 格式:End 功能:在过程中关闭代码执行、关闭以Open语句打开的文件 并清除变量,停止执行程序。 说明: ① End语句可以放在过程中的任何位置。 ② End语句在执行时会重新设置所有模块级变量和所有模块 的静态局部变量。如果不想改变这些变量的值,应将End语 句改为Stop语句,此时在保留这些变量值的基础上可以恢复 执行。 ③ End语句提供的是一种强迫中止程序的方法。VB程序正常 结束应该卸载所有的窗体,只要没有其他程序引用该程序公 共类模块创建的对象并无代码执行,程序将立即关闭。
第3章 流程控制语句
本章主要内容:
3.1 顺序结构程序设计 3.2 选择结构程序设计
计算机程序设计基础_精讲多练CC++_第3章
// 累加求和
22
例 3-7:制作乘法表---多重循环结构(循环的嵌套)
#include <iostream> using namespace std; int main() { int i, j; for(i=1; i<10; i++) { for(j=1; j<=i; j++) cout << j <<"*"<< i <<"="<<i*j <<"\t"; cout << endl; } return 0; }
算法分析:
取一个百分成绩经过运算得到5级制成绩。构造什么 样的表达式呢?
“百分成绩/10 =” ?
共有5个分数档,选择分支大于2,因此用多路开关语 句switch。 计算结果应该是唯一的。转换后应从switch中break 出来。
15
#include <iostream> using namespace std; int main() { int grade; cout<<"请输入(百分制)分数:"; cin >>grade; switch (grade/10) // 根据转换值进行分支选择 { case 10: case 9: cout<<"优秀"<<endl; break; case 8: cout<<"良好"<<endl; break; case 7: cout<<"中等"<<endl; break; case 6: cout<<"及格"<<endl; break; default: cout<<"不及格"<<endl; } return 0; }
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.3 C语句
1.表达式语句
任何一个表达式加上一个分号就可以组成一条
语句。
例如: 表达式 a=b+c*(d+3) a+b+c i++
表达式语句 a=b+c*(d+3); a+b+c; i++;
函数调用也是表达式,在其后加一个分 号,就变成了函数调用语句。
eg:printf函数调用语句和scanf函数调 用语句
-1.0 (x<0) y= 0 (x=0) 1.0 (x>0)
运行结果: -88 y=-1.000000
3.4.4
if语句的嵌套
条件语句的嵌套就是在if语句中包含另一 个if语句。 从语法上讲,if语句中所包含的语句是一 个语句或一个复合语句,这个语句当然也 可以是另一个if语句,即内嵌if语句。
3.1 程序设计概述
程序设计的最终目的是能在计算机上计算出正确的 结果来。 1969年,Dijkstra首先提出了结构程序设计的概念, 强调从程序的结构和风格上来研究和设计程序。 首先应从全局上把握系统所具备的功能是什么,并 将系统划分成几个相对独立的子系统,而每个子系 统只涉及局部的环境和条件。 然后,进入第二步的实现阶段,即进行编码。在第 一阶段,只要知道“做什么”,而在实现阶段,才 考虑“如何做”。
用交换变量值的方法按顺序输出这两个数
交换变量值的思想: 不改变变量名,但变量值可改变的性质。 若a的值大于b的值,则a与b的值不交换;若a的值 小于b的值,则两者互相交换值。从而使得无论何 时,变量a的值始终大于变量b的值。最后,按先a 后b的顺序输出,即可实现按由大到小的顺序输出 的功能。 实现方法: 为了能够进行相互交换,必须引进一个临时变量 t。用以下三个赋值语句可实现交换。 t=a; a=b;b=t; /*t=a,a=b,b=t;*/
3.4.1 if结构
if结构的一般格式为:
if(表达式)
语句
功能:首先计算表达式的值,若其值为非0(即 “真”),则执行表达式后的语句;若其值为 0(即“假”),则跳过这个语句去执行if语句 的后继语句。
注: if(表达式)后面的语句只能是一个语句或 一个复合语句。
流程图
入口
假(0) 表达式为真吗? 真(非0) 表达式为真吗? 假(0)
小结:
在表达式之后加一个分号,从而构 成一个语句,这是C语言的一个特色。它 使C语言的程序设计的表达能力更强。
2.复合语句
定义:将多个相关联的简单语句用一对大括号 括起来就构成了复合语句,在程序中当作一 个语句看待。 例如: { a=1.0; b=2.0; i++; }
3.4 if条件语句
1.if结构 2.if-else结构 3.if-else-if结构
3.4.2 if-else结构
if-else结构的一般格式为: if(表达式) 语句1 else 语句2 功能:首先计算表达式的值,若其值为非0,则执 行语句1,然后跳过语句2,往下执行if结构的后 继语句;若其值为0,则跳过语句1,执行语句2, 然后往下执行if结构的后继语句。 注意:语句1和语句2分别都是一个语句或一个复 合语句。
程序如下:
#include <stdio.h> void main( ) { float a,b,t; printf("Please input two numbers:\n"); scanf("%f%f",&a,&b); if(a<b) { t=a; a=b; /*复合语句*/ b=t; } printf("%f,%f",a,b); }
修改后的程序:
#include <stdio.h> void main( ) { float a,b,c,max; scanf("%f%f%f",&a,&b,&c); if(a>b) max=(a>c)?a:c; else max=(b>c)?b:c; printf("Max=%f\n",max); }
选择结构:程序的执行流程根据给定条件进行判 断,由判断的结果决定在两支或多支程序段中选 择一条分支执行,程序执行流程见图3-3。
图3-3
选择结构流程图
循环结构:在给定条件成立的情况下程序的执行流程反 复执行某个程序段,这种程序结构称为循环结构,其 有两种实现形式: ①“当型”循环结构。即当条件成立就执行循环。 ②“直到型”循环结构。即执行循环直到条件不成立 时才停止循环。
例:输入一个任意整数i,试判断这个数是奇数还是偶数?
分析:先判断这个数是否为正数,在正数(i>0)的前提下, 再判断:若i能被2整除,则i为偶数;若i不能被2整除, 则i为奇数。 可写出如下if语句: if(i>0)
if(i%2==0)
printf("positive and even\n");
/*i>0&&(i%2 == 0)*/
第 三 章
顺序和选择结构程序设计
本章重点
了解C语言程序的特点 C程序的三种基本结构 能编写简单的顺序结构程序。 熟练掌握if语句的三种形式,掌握if语句的 基本结构以及if语句的嵌套,并能将条件运 算符给出的语句转化成if语句的形式。 掌握switch语句的一般形式,并能把复杂的 分支选择性结构化成switch语句来解决问题。
例:输入两个实数,按由大到小的顺序输出这两个数。
#include <stdio.h> 分析: 输入两个实 void main() 数时,这两个实数的 { 大小顺序是任意的。 但是题中要求输出 float a,b; 的顺序是由大到小。 scanf("%f,%f",&a,&b); 若a>b,则先a后b; 若a<b,则先b后a。 if(a>b) printf("%f,%f",a,b); if(a<b) printf("%f,%f",b,a); }
实现上述各种程序流程的语句称为流程控制语句。
顺序结构:其按语句书写的先后顺序依次执行。
例: 输入两个变量,交换两者的值后输出。 #include <stdio.h> void main( ) { int x,y,z; printf("please input x and y:\n"); scanf("%d,%d",&x,&y); printf("x=%d,y=%d\n&intf("x=%d,y=%d\n",x,y); }
/*正数且偶数*/
else
printf(“postive and odd\n”); else printf(“not positive\n”);
/*否则,i>0&&(i%2!=0)*/
/*正数且奇数*/
C语言规定的配对关系
else与前面最近(未曾配对)的if配对。如果要改变 上页中所确定的配对关系,即else要与外层的if 配对,则第二个if语句必须用花括号括起来。 例如: if(i>0) 花括号将内嵌的if { 语句孤立,形成一 if(i%2==0) 个独立的复合语句, printf(“positive and even\n”); 使内嵌的if不与后 面的else配对,从 } 而else必定与外一 else 层的if配对 printf(“not positive\n”);
#include <stdio.h> 例:从键盘输入三个实数,求其最大者。 void main( ) { float a,b,c,max; scanf(“%f%f%f”,&a,&b,&c); if(a>b) { if(a>c) max=a; 说明: else (1)程序引进了一个中间 max=c; 变量max,用以存放最大 } else 数。 { (2)嵌套在内层的if语句 if(b>c) max=b; 可以不用花括号括起来。 else 但为了使结构更清晰, max=c; 添加花括号也决不是多 } printf(“Max=%f\n”,max); 余的。 }
3.4.1 if结构
if结构的一般格式为:
if(表达式)
语句
注: if(表达式)后面的语句只能是一个语句或 一个复合语句。
3.4.2 if-else结构
if-else结构的一般格式为: if(表达式) 语句1 else 语句2 注意:语句1和语句2分别都是一个语句或一 个复合语句。
3.4.3 if-else-if结构
例:输入一个x值,求下列相应的y值
#include <stdio.h> void main( ) { float x,y; scanf(“%f”,&x); if (x>0) y=1.0; else if(x<0) y=-1.0; else y=0; printf(“y=%f\n”,y); }
例:从键盘输入圆的半径,若为10,则计算圆的面积, 若为20,则计算圆的周长。若既不等于10又不等于 20,则不进行计算。
#include <stdio.h> void main( ) { float r; printf("Input the radiut:"); scanf("%f",&r); if(r==10) printf("Area=%f\n",3.14159*r*r); if(r==20) printf("Cycle=%f\n",2.0*3.14159*r); }