c语言分支结构
C语言-第3章分支结构教学案
第3章 分支结构程序设计(选择结构)
1、掌握if 、if-else 、if 的嵌套语句的语法结构及编程
语句的语法结构及编程 12
3.2.1 单分支if 语句的使用
学习目标:
1、理解选择结构的概念和特点;
2、掌握单分支if 语句的语法结构、执行过程和基本用法,学会正确书写if 语句; 4、能正确阅读if 语句程序,会使用if 语句编写、调试并运行程序。
课前准备:预习P30-32(预习后,将学案上知识点在课本上做记号,并完成相应预习题) 课时分配:2课时 活动课堂
活动一、发现问题(目标——了解分支结构的意义)
实例:从键盘上输入一个数,求这个数的平方根。 算法:
发现问题:
活动二、解决问题(目标——掌握分支结构) 思考:从键盘输入一个数,若为正数和0则 求其平方根,否则不予处理。 算法:
活动三、预习交流(
1 ·语句中a>b ·if 每行的结尾,分支中各语句结尾均有 (符号),但 后没有。·在(2)(3)两语句段中的不同处画上横线,语句(2)中的c=a+b; (属于/不属于)if 分支。
活动五:观察思考(目标——掌握if 的执行流程)
1、观察下列程序的执行,口述程序的执行过程,画出程序的流程图: 例1:#include
#include
main()
{float x,y;clrscr();
scanf("%f",&x);
if (x>=0)
{y=sqrt(x);
printf("%.2f",y);}
}
流程图:
4、说明:
例:表达式 -3+‘d’为________表达式,值为______,作条件判断结果为___________ 表达式 a=0 为__________表达式,值为_______,作条件判断结果为__________ 表达式 a=5 为__________表达式,值为________,作条件判断结果为_________ 表达式a>4为____________表达式,若a=5 则结果为_________
C语言算法表示及结构化程序设计基本结构
C语言算法表示及结构化程序设计基本结构
为了表示一个算法,可以用不同的方法。常用的方法有:自然语言、传统流程图、结构化流程图和伪代码等。
1用自然语言表示算法
自然语言就是人们日常使用的语言,可以是汉语、英语或其他语言。用自然语言表示通俗易懂,但文字冗长,容易出现歧义,往往要根据上下文才能判断正确含义。用自然语言来描述包含分支选择和循环算法不方便,花开两朵,各表一枝,同时只表达一个意思,这是自然语言表示的不足。
2用流程图表示算法
流程图就是用一些图框来表示算法,直观形象,易于理解。如:菱形框的作用是对一个给定的条件进行判断,根据给定的条件是否成立来判定如何执行其后的操作。它有一个入口,两个或多个出口。优于自然语言表示。连接点小圆圈用于将画在不同地方的流程线连接起来,实际上表示一个对象,只是画不下オ分开来画或为了清晰表示而单独绘制,用连接点可以避免流程线出现交叉或过长,不利于阅读。
用流程图表示算法直观形象,比较清楚地显示出各个框之间的逻辑关系。这种流程图占用篇幅较多,一条路走到头,与复杂的实际情况表示有差距有不足,尤其当算法比较复杂时就费时费力。
3.传统流程图的弊端与结构化设计的基本结构
传统的流程图用流程线指出各框的执行顺序,对流程线的使用没有严格限制,不受限制地使流程随意地转来转去,使流程图变得毫无规律,阅读时要花很大精力去追踪流程,使人难以理解算法的逻辑。为了提高算法的质量,使算法的设计和阅读方便,不允许无规律地使流程随意转向,只能顺序地进行下去。但是,算法上难免会包含一些分支和循环,而不可能全部由一个个顺序框组成。
C语言程序-分支结构题目及答案
21.htm
01. 从键盘输入一个字符,如果是大写字母,就转换成小写;如果是小写字母,就转换成大写,如果是其他字符原样保持并将结果输出。
#include <stdio.h>
void main()
{ char c;
scanf("%c",&c);
if(c>='A'&&c<='Z') c=c+32;
else if(c>='a'&&c<='z') c=c-32;
printf("%c",c);
}
02. 从键盘输入一个数,判断其是否是5的倍数而不是7的倍数。如果是,输出Yes,否则输出No。
#include <stdio.h>
void main()
{ int a;
scanf("%d",&a);
if(a%5==0&&a%7!=0) printf("yes");
else printf("no");
}
03. 从键盘输入一个4位正整数,求其逆序数,并输出。例如:若输入1234,则输出应该是4321。
#include <stdio.h>
void main()
{ int n,g,s,b,q,m;
scanf("%d",&n);
q=n/1000; b=n/100%10; s=n/10%10; g=n%10;
m=g*1000+s*100+b*10+q;
printf("%d\n",m);
}
22.htm
01. 从键盘输入一个字符,如果是字母,就输出其对应的ASCII码;如果是数字字符,就转换成对应整数并输出。
#include <stdio.h>
C语言程序设计 第2章 顺序结构与分支结构程序设计
例2:从键盘输入两个整数,若他们有倍数关系,输出最大值, 若他们没有倍数关系,则输出两者的乘积。
分析: a,b中存储数据。 倍数关系:a%b==0,或者b%a==0; 两个数的最大值:c=a>b?a:b;
main() {
int a,b,c; scanf("%d,%d",&a,&b); if(a%b==0||b%a==0)
2.3 顺序程序设计
顺序程序设计的概念
顺序结构是最简单的程序结构,也是最常用的程序结构。 按照解决问题的步骤依次写出相应的语句。 执行顺序是自上而下,依次执行。 所有语句均执行、且仅执行一次。
顺序结构举例
例1:输入三角形的三边长,求三角形的面积。 设输入的三边长a,b,c能构成三角形。
#include "math.h" 变量的定义,
输入时要考虑用户习惯,输入格式应为:(a,b)格式。 则对应的函数应为:sacnf(“(%f,%f)”,&x1,y1);
非格式字符原样输入。
#include "math.h" main() { float x1,y1,x2,y2,d; scanf("(%f,%f)(%f,%f)",&x1,&y1,&x2,&y2); d=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); printf("d=%f",d); }
C语言第4章-分支结构.
4.1.3 多分支if语句
§ 对于解决判断多个条件的问题,可以使用if语句的嵌套,即 在if语句中又包括一个或多个if语句。它的一般格式如下:
§ if (表达式1) § 语句1; § else if (表达式2) § 语句2; § else if (表达式3) § 语句3; §┆ § else if (表达式m) § 语句m; § else § 语句n; § //一般来说表达式之间具备一定的顺序关系
§switch ( 表达式 )
§{
§ case 常量表达式1:语句1;
§ case 常量表达式2:语句2;
§
┆
§ case 常量表达式n:语句n;
§ default
: 语句m;
§}
§说明:其执行过程可描述为:
按整型、配标号、添break、可跳出。
§1.按整型、配标号: 根据整型/字符型表达式的值,从上 到下去找与其相匹配的case标号(整型常量,单值, 故不会进行范围判断,如x>0 ),以此作为入口,执行 其后面的各语句。
❖注意表达式之间的顺序关系 ❖课堂作业:将表达式位置倒过 来后,即低等级先判断,高等级 后判断,完成框图与程序
§【源程序】 §main( ) §{ int grade; printf ( "input the grade:"); § scanf ("%d",&grade); § if (grade>=90) printf("A\n"); § else if(grade>=80) printf("B\n"); § else if(grade>=70) printf("C\n"); § else if(grade>=60) printf("D\n"); § else printf("E\n"); §}
C语言 分支结构程序设计
语句1
语句2
Your site here
C语言教材
2.3求付费金额
源程序:
#include <stdio.h> void main() { int a,b; printf(“Input two integers:\n”); scanf(“%d %d”,&a,&b); if (a>b) printf(“max=%d\n”,a); else printf(“max=%d\n”,b); return 0; }
源程序: #Biblioteka Baidunclude <stdio.h> void main() { float weight,pay; printf(“Please input the weight:\n”); scanf(“%f”,&weight); if (weight>=10) pay=weight*6.5; else pay=weight*8.5; printf(“You should pay %f yuans\n”,pay); }
Your site here
C语言教材
2.3求付费金额
运行结果:
Please input the weight: 12 You should pay 78.000000 yuans Please input the weight: 5 You should pay 42.500000 yuans
分支结构及应用
❖ if (a>0) b++;
❖ if(a==b)printf(“a=b”)
【例4-2】计算函数值。输入实数x,根据下面函数式 计算y的值。
上一页 下一页 返回
第二节 土地登记
❖ (三)权利变更土地登记 ❖ 1.土地所有权变更登记 ❖ 土地所有权变更登记是指因土地征用、土地
交换、土地调整等形式引起的土地所有权变 更。因变换、调整土地而发生所有权变更的,
上一页 下一页 返回
第二节 土地登记
❖ 2.土地使用权变更登记 ❖ 划拨土地使用权依法办理土地使用权出让手
{y=(x+1)/(x-1);
printf("x=%6.2f, y=%6.2f\n\n", x, y);
}
}
❖ 执行程序时,给变量x输入10,程序输出结果为:
当然,如果给变量x输入1,程序将没有输出结果。 注意,该程序if子句中的花括号“{ }”不能省略。
【例4-3】计算函数值。输入整数x,根据下面的分段函数计算y的值。
(3) 逻辑非(!):当表达式的值为0时,逻辑 表达式的值为1,反之当表达式的值为非0时,逻辑 表达式的值为0。
c项目程序结构
在C语言项目中,程序结构主要有三种:顺序结构、选择结构(分支结构)、循环结构。
1.顺序结构:按照代码本身的顺序,一行一行地执行。
2.选择结构:到某个节点后,会根据一次判断结果来决定之后走哪一个分支。
3.循环结构:有一个循环体,循环体是一段代码。对于循环结构来说,关键在于
根据判断的结果,来决定循环体执行多少次。
以上是C语言项目中主要的三种程序结构。请注意,逻辑上有一种类型叫bool类型(又写作boolean类型,中文叫布尔类型),布尔类型只有两个值,真和假。C语言中有一些判断运算符如“==”等,可以写出一个判断表达式,这个判断表达式最终的值就是一个bool类型。如需了解更多信息,建议查阅C语言专业书籍或咨询专业技术人员。
C语言_顺序分支结构_选择题(新)
顺序分支结构
选择题
顺序分支结构选择题:
1. 设ch是char型变量,其值为A,且有下面的表达式: ch=(ch>='A'&&ch<='Z')?(ch+32):ch
上面表达式的值是
A) A B) a
C) Z D) z
B
2. 设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,
值为0的表达式是
A) 'a'&&'b' B) a<=b
C) a||b+c&&b-c D) !((a<b)&&!c||1)
D
3.能正确表示a≥10或a≤0的关系表达式是
A) a>=10 or a<=0 B) a>=10 | a<=0
C) a> =10 || a< =0 D) a>=10 || a<=0
D
4. 设a为整型变量,不能正确表达数学关系:10<a<15 的C语言
表达式是
A) 10<a<15 B) a==11 || a==12 || a==13 || a=14
C) a>10 && a<15 D) !(a<=10) && !(a>=15)
A
5. 设x 、y 、z 、t均为int型变量,则执行以下语句后,t的值为
x=y=z=1;
t=++x || ++y && ++z;
A) 不定值B) 4
C) 1 D) 0
C
6. 语句:printf("%d",(a=2) && (b= -2));的输出结果是
A)无输出B)结果不确定
C)-1 D)1
D
7. 能正确表示a和b同时为正或同时为负的逻辑表达式是A) (a>=0 || b>=0) && (a<0 || b<0)
最新版C语言重新设计基础实验实验二周信东输入输出方法及分支结构程序设计
实验2 输入/输出方法、分支结构程序设计学号:姓名:实验日期:
一、实验目的和要求
(1)掌握C语言各数据类型的概念,变量定义及赋值方法。
(2)掌握整型、字符型、实型等数据的输入输出方法,能正确使用各种格式控制符。(3)掌握C语言的各种运算符,特别是自加(++)和自减(--)运算符,能正确使用这些运算符构成的表达式。
(4)掌握C语言逻辑量的表示方法,能够正确使用逻辑运算符和逻辑表达式或关系表达式。(5)熟练掌握if语句和switch语句,掌握条件表达式构成的选择结构。
(6)理解程序设计的顺序结构基本思想,掌握顺序结构语句特点;能够编写简单的程序解决具体问题。
(7)掌握简单的跟踪调试程序的方法,并学会基本调试程序方法。
二、实验内容
完成实验指导书中实验二的“基础部分”及实验三的“基础部分”和“增强部分”
三、实验步骤及结果
(一)实验题目完成情况
*【说明】实验题号的编写格式为:类型+第几个实验+实验题目序号+小题序号,其中,“类型”分为基础题(用Ex表示)、增强题和提高题(用Eh表示)、课外题(用sup表示)。如:ex2-1-3表示实验二基础题第1题的第3小题,eh4-2表示实验四增强题第2题,等等。后不赘述。
实验二部分:
Ex2-1-分析:S值的计算是先算a除以5取余的值,再算其乘于(x-y)除以2取余的整型数,得到的值除以二,再加上x。
分析: 第一个p的值先调用后自加,第一个 q则是先自加后调用
第二个P直接调用第一个p 的值加上3,第二个q则是先加1后加上4.
●Ex2-2-1请在下面分别插入改正错误后的源程序代码及运行成功时的画面:源程序代码:
第04章 分支结构
第 4 章
分支结构
该程序执行的过程是: 判断商品数量,
数量大于等于50,执行语句A;
数量小于50,执行语句B。 你能画出这个程序的流程图吗?
第 4 章
【注意】
分支结构
(1)if后面的<表达式>一定要有括号。
(2)if和else同属于一个if语句,程序中不可以没有if而
只有else。 (3)if子句与else子句不可能同时执行。 (4) if语句中的各子句必须用分号结束,若子句是由多 个语句组成,必须写成复合语句(用{ }括住),“}”
程序设计有三种基本结构:
ห้องสมุดไป่ตู้
分支结构
顺序结构、选择结构(分支结构)、循环结构
顺序结构的流程图:
处理A
处理B
选择结构和循环结构的流程图后面陆续介绍。
第 4 章 4.3 if语句
分支结构
4.3.1 if语句的一般形式 4.3.2 if语句的缺省形式
4.3.3 较复杂的条件表达式
第 4 章
分支结构
if语句的一般形式: if (<表达式>) <语句1> [else <语句2>] 注:[ ]内的表示是可选的 。
后不能再加“;”
(5)if语句的表达式可以是任意类型的C语言的合法表 达式,其值为0时表示“假”,其值为非0时表示
c语言的三种基本程序结构
c语言的三种基本程序结构
1. 顺序结构
顺序结构是一种基本的程序结构,由一组语句按照顺序执行,每个语句执行后按照顺序执行下一条语句。在C语言程序中,顺序结构是最基本的结构,首先执行主函数中的第一条语句,然后顺序执行每一个语句直到程序结束。
例如:
在上述代码中,语句1和2按照顺序执行,输出结果为“Hello World!”、“Welcome to C Programming!”。
2. 分支结构
分支结构是程序在执行过程中根据条件的不同而选择不同的执行语句,从而实现不同的操作。常见的分支结构有if语句和switch语句。
if语句:
if(condition){
//条件成立执行的语句
}else{
//条件不成立执行的语句
}
switch语句:
switch(expression){
case value1:
//执行语句
break;
case value2:
//执行语句
break;
…
default:
//执行语句
break;
}
在上述代码中,根据输入的值选择不同的输出,如果flag为1,则输出“You chose option 1.”,以此类推。
3. 循环结构
循环结构是程序反复地执行一段语句,直到满足条件时才退出循环。C语言中循环结构分为for循环、while循环和do-while循环。
for循环:
for(initialization; condition; increment/decrement){
//循环体
}
在上述代码中,输出1~5的整数。
while循环:
while(condition){
//循环体
}
第四章 选择(分支)结构程序设计
4.2 逻辑运算符和逻辑表达式
4.2.2 逻辑表达式 作业:写出C语言的表达式
1.|x|>2 2.x≤1+a 并y≤b
3.
的定义域
fabs(x)>2 或 x>2||x<-2 x<=1+a&&y<=b (x>=2||x<=1)&&x!=0 或(x-1)*(x-2)>=0&&x!=0
4.3 if语句
❖ A 和B 可以使单一语句,也可以是复合语句。 ❖ else 部分不能独立存在,前面一定有;和if 语句。
4.3 if语句
4.3.1 if语句三种形式 注意: ▪ 在if和else后面可以是单条语句,也可以是复合语 句,如果使用了复合语句,一定要用花括号括起来, 语句块后面不要“;”号。
Hale Waihona Puke Baidu
4.3 if语句
4.3.1 if语句三种形式
▪ 在C语言中,表达式P的值是非0时,系统均按真 值处理。
例(1) if (‘a’) printf(“ok!”); (2) x=-5; if(x) printf(“ok!”); (3) y=0; if(y==0) printf(“ok!”); if(y) printf(“ok!”);
逻辑运算的真值表:
a b a&&b
程序的分支结构
程序的分支结构
1.1 if语句和用if语句构成的选择结构
if语句是一种选择结构 ,它的基本形式有if选择结构、if~else 选择结构和 if~else if结构等三种。
if选择语句的功能:如果表达式的值为真(非0),则执行语句,否则不执 行该语句。举例说明。点击进入其程序流程图 。
if~else 选择结构语句的功能:如果表达式的值为真(非0),则执行语句 1,否则执行语句2。举例说明。点击进入其程序流程图 。
if~else if结构语句的功能:从上到下依次判断表达式的值,当出现某个值 为真(非0)时,执行与其相对应的语句,并跳过其余条件的判别;如果 所有的表达式均为假(0),则执行语句n。
if(grade>=60)
{ 句用{ }括起来
/* 把多个语 组成一个复合语句 */
printf("恭喜你,通过了!\n");
score+=2;
}
返回
if~else 选择结构例子
• 根据学生的成绩grade是否大于等于60,决定在屏幕上显 示“恭喜你,通过了!”或“很抱歉,没通过!”
• if (grade>=60) • printf("恭喜你,通过了!\n"); • else • printf ("很抱歉,没通过!\n");
1.3 switch语句
C语言顺序分支结构选择题及答案
C语言顺序分支结构选择题及答案
1.设ch是char型变量,其值为a,且有下面的表达
式:ch=(ch>='a'&&ch<='z')?(ch+32):ch上面表达式的值是a)ab)ac)zd)z
b
2.设a,b和c都就是int型变量,且a=3,b=4,c=5,则下面的表达式中,值0的表达式就是
a)'a'&&'b'b)a<=b
c)a||b+c&&b-cd)!((a
3.为表示关系x≥y≥z,应使用c语言表达式
a)(x>=y)&&(y>=z)b)(x>=y)and(y>=z)c)(x>=y>=z)d)(x>=y)||(y>=z)a
4.继续执行下面程序段intx=35;charz='a';intb;
b=((x=15)&&(z
a)0b)1c)2d)3b
5.表达式:10!=9的值是a)trueb)非零值c)0d)1
d
6.能正确表示a≥10或a≤0的关系表达式是
a)a>=10ora<=0b)a>=10|a<=0
c)a>=10||a<=0d)a>=10||a<=0d
7.若建议在if后一对圆括号中则表示a不等同于0的关系,则能够恰当则表示这一关系的表达式为a)a<>0b)!a
c)a=0d)ad
8.设a=5,b=6,c=5,d=8,m=2,n=2,继续执行(m=a>b)&&(n=c>d)后n的值a)1b)2
c)3d)0b
9.设a为整型变量,无法恰当抒发数学关系:10
表达式是
c语言分支结构试题
c语言分支结构试题
C语言的分支结构是编程中常用的一种结构,用于根据条件的不同执行不同的代码块。下面是一些C语言分支结构的试题及其解答。
1. 请解释C语言中的if语句,并给出一个简单的示例代码。
if语句是C语言中用于条件判断的一种结构。它根据条件的真假来决定是否执行特定的代码块。
示例代码:
c.
#include <stdio.h>。
int main() {。
int num = 10;
if (num > 0) {。
printf("num是正数\n");
}。
return 0;
}。
以上代码中,如果变量`num`的值大于0,则会输出"num是正数"。
2. 请解释C语言中的if-else语句,并给出一个示例代码。
if-else语句是C语言中用于条件判断的一种结构,它根据条件的真假来决定执行不同的代码块。
示例代码:
c.
#include <stdio.h>。
int main() {。
int num = 10;
if (num > 0) {。
printf("num是正数\n");
} else {。
printf("num是负数\n");
}。
return 0;
}。
以上代码中,如果变量`num`的值大于0,则会输出"num是正数";否则,会输出"num是负数"。
3. 请解释C语言中的if-else if-else语句,并给出一个示例
代码。
if-else if-else语句是C语言中用于多条件判断的一种结构,它根据多个条件的真假来决定执行不同的代码块。
示例代码:
c.
#include <stdio.h>。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
letter ++;
else if ( ch >= '0' && ch <= '9' )
digit ++; else
other ++;
多层缩进的书写格式 使程序层次分明
}
printf("letter=%d,digit=%d,other=%d\n",letter,digit,othe
r);
return 0;
if(number < 0){ number = -number;
}
Enter a number: -300 The absolute value is 300.
printf("The absolute value is %d.\n", number);
return 0;
}
(2)多分支结构与嵌套的 if 语句和switch语句
printf("Thanks \n"); }
[1] Select crisps [2] Select popcorn [3] Select chocolate [4] Select cola [0] Exit Enter choice: 1 price = 3.0
[1] Select crisps [2] Select popcorn [3] Select chocolate [4] Select cola [0] Exit Enter choice: 7 price = 0.0
{
case 常量表达式1:语句段1; break;
case 常量表达式2:语句段2 ; break;
...…
case 常量表达式n:语句段n ; break;
default :
语句段n+1 ; break;
}
switch (choice) { case 1: price=3.0; break; case 2: price=2.5; break; case 3: price=4.0; break; case 4: price=3.5; break; default: price=0.0; break;
scanf("%d", &number);
if(number % 2 == 0){
printf("Tne number is even. \n");
}
Enter a number: 329
else{
Tne number is odd.
printf("Tne number is odd. \n");
}
char ch;
blank = digit = other = 0;
printf("Enter 10 characters: "); Enter 10 characters: Reold 123?
for(i = 1; i <= 10; i++) { ch = getchar ();
blank=1, digit=3, other=6
case '/': printf("=%.2f\n", value1/value2); break;
default: printf("Unknown operator\n"); break;
} return 0; }
2、在switch中不使用break
switch(表达式)
{
case 常量表达式1:语句段1;
{y = 4 * x / 3; } else
{y = 2.5 * x - 10.5; } printf("f(%.2f) = %.2f\n", x, y); return 0; }
Enter x: -0.5 f(-0.50) = 0.00
Enter x: 9.5 f(9.50) = 12.67
Enter x: 21.3 f(21.30) = 42.75
表达式的值=常量表达式 1 的值
语句段1
表达式的值=常量表达式 2 的值
表
语句段2
达
式
表达式的值=常量表达式 n 的值
语句段n
其他
语句段n+1
3、在switch的某些语句段中使用break
输入10个字符,分别统计出其中空格或回车、数字和其他字符的个数。
int main(void)
{
int blank, digit, i, other;
else – if 语句
n个分支需要n-1次比较
假 假
表达式n-1
真
语句n-1
[1] Select crisps [2] Select popcorn [3] Select chocolate [4] Select cola [0] Exit Enter choice: 0 Thanks
switch语句处理多分支选择
1、在switch语句的每个语句段中都使用break语句
switch(表达式)
第5章 分支结构
◆ 分支结构?作用? ◆ switch 语句中的 break 作用? ◆逻辑运算、关系运算 相同?不同? ◆字符型数据在内存中是如何存储的?
统计输入字符中各类字符的数量
例: 输入10个字符,统计其中英文字母、数字字符和 其他字符的个数。
英文字母 (ch >= 'a' && ch <= 'z' ) || ( ch >= 'A' && ch <= 'Z' )
[1] Select crisps [2] Select popcorn [3] Select chocolate [4] Select cola [0] Exit
int main(void) { int choice, i; double price;
for( i = 1; i <= 5; i++) { printf("[1] Select crisps \n"); printf("[2] Select popcorn \n"); printf("[3] Select chocolate \n"); printf("[4] Select cola \n"); printf("[0] exit \n"); printf("Enter choice: "); scanf("%d", &choice); if(choice == 0) break; switch (choice) { case 1: price=3.0; break; case 2: price=2.5; break; case 3: price=4.0; break; case 4: price=3.5; break; default: price=0.0; break; } printf("price = %0.1f\n", price); }
}
用else-if 如何实现?
表达式的值=常量表达式 1 的值 语句段1
表达式值=常量表达式 2 的值 语句段2
表 达 式
表达式值=常量表达式 n 的值 语句段n
break break
break
其他
语句段n+1
break
例 输入一个形式如 “操作数 运算符 操作数” 的四则 运算表达式,输出运算结果。
digit ++; break;
default: other ++; break;
}
}
printf("blank=%d, digit=%d, other=%d\n", blank, digit, other);
return 0;
}
4 分支结构程序设计
分支结构一般分为 ◆二分支 ◆多分支 (1) 二分支结构和基本的 if 语句 (2) 多分支结构与嵌套的 if 语句和switch语句
Enter 10 characters: Reold 123? letter=5, digit=3, other=2
for(i = 1; i <= 10; i++)
{ ch = getchar();
if ((ch >= 'a' && ch <= 'z' ) || ( ch >= 'A' && ch <= 'Z'))
n-1 真
语句1
语句2
…
语句n-1
语句n
例: 分段计算水费
0
y
f (x)
4x 3
2.5x 10.5
x0 0 x 15
x 15
源程序——分段计算水费
# include <stdio.h> int main(void) { double x, y;
printf("Enter x:"); scanf("%lf", &x); if (x < 0) { y = 0; } else if (x <= 15)
}
Enter 10 characters: Reold 123?
letter=5, digit=3, other=2
else – if 语句
表达式1 真
if (表达式1) 语句1
else if (表达式2) 语句2
假
else if (表达式n-1) 语句n-1
表达式2
else 语句n
假
真
假 …
假 表达式
int main(void) { char operator; double value1, value2;
printf("Type in an expression: "); scanf("%lf%c%lf", &value1, &operator, &value2); switch(operator) {
数字字符 ch >= '0' && ch <= ' 9' 其他字符 除此外
#include <stdio.h> int main(void) {
int i, digit, letter, other; char ch;
处理方法: 逐个输入与判断
digit = letter = other = 0; printf( "Enter 10 characters: ");
查自动售货机中商品的价格
3.2.1 程序解析
假设自动售货机出售4种商品,薯片(crisps)、爆米花(popcorn)、 巧克力(chocolate)和可乐(cola),售价分别是每份3.0、2.5、4.0和3.5元。 在屏幕上显示以下菜单,用户可以连续查询商品的价格,当查询次数 超过5次时,自动退出查询;不到5次时,用户可以选择退出。当用户 输入编号1~4,显示相应商品的价格;输入0,退出查询;输入其他编 号,显示价格为0。
switch (ch)
{ case ' ' : case '\n':
blank ++; break;
case '0' : case '1' : case '2' : case '3' : case '4' :
case '5' : case '6' : case '7' : case '8' : case '9' :
多种形式多分支结构 实现方法: ◆ 嵌套 if 语句
else – if 语句 嵌套的 if - else语句 ◆ switch语句
if (表达式1) 语句1 else if(表达式2) 语句2
…… else if(表达式n-1) 语句n-1 else 语句n
表达式
1
真
假
表达式 2
真
语句1
语句2
case '+': printf("=%.2f\n", value1+value2); break;
case '-': printf("=%.2f\n", value1-value2); break;
case '*': printf("=%.2f\n", value1*value2); break;
case 常量表达式2:语句段2;
Βιβλιοθήκη Baidu
....…
case 常量表达式n:语句段n;
default :
语句段n+1;
}
switch (choice) { case 1: price=3.0; case 2: price=2.5; case 3: price=4.0; case 4: price=3.5; default: price=0.0; }
return 0;
}
例 输入1个整数,输出它的绝对值 。
#include <stdio.h>
int main(void) { int number;
Enter a number: 10 The absolute value is 10.
printf("Enter a number: ");
scanf("%d", &number);
(1) 二分支结构和基本的 if 语句
if (表达式) 语句1
else 语句2
一条语句
if (表达式) 语句1
真
假
表达式
真
假
表达式
语句1
语句1 语句2
例 输入1个整数,判断该数是奇数还是偶数。
int main(void)
{ int number;
Enter a number: 1028
printf("Enter a number: "); Tne number is even.