C语言-选择结构
C语言_选择结构

4
例 应避免对实数作相等或不等的判断 如 1.0/3.0*3.0==1.0 结果为 0 可改写为:fabs(1.0/3.0*3.0-1.0)<1e-6
C Programming Language
逻辑运算符和表达式
逻辑运算符
种类: ! && || 逻辑运算真值表(见教材) (逻辑运算--->产生真假值的运算)
关系运算符
3
种类:< <= = = >= > != 结合方向:自左向右 优先级7 (低) 优先级别: 关系表达式的值:是逻辑值“真”或“假”, 用1和0表示c>a+b 例 int a=3,b=2,c=1,d,f; 例 //c>(a+b) a>b!=c //(a>b)!=c a>b //表达式值1 a==b<c //a==(b<c) (a>b)==c //表达式值1 a=b>c //a=(b>c) b+c<a //表达式值0 d=a>b // d=1 C Programming Language f=a>b>c // f=0
11
C Programming Language
7. 已知int x=15,y=5; 执行语句 printf(“%d\n”,x%=(y%=2));后,输出结果为____。 8. 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) 9. “20<x<30或x<-100”的C语言表达式是____。 10. main( ) { int a=-1,b=4,k; k=(a++<=0)&&(!(b--<=0)); printf(“%d%d%d”,k,a,b); } 若改为++a<0呢?
C语言选择结构

选择结构(if & switch)If语句一、if的三种结构1、单分支结构(if结构)If(表达式)语句;2、双分支结构(if-else结构)If(表达式)语句1;else语句2;3、多分支结构(if-else-if结构)If(表达式1)语句1;else if(表达式2)语句2;……else(表达式n-1)语句n-1;else语句n;说明:(建议在分支语句上加大括号,以减少错误)○1语句中的表达式可以是任意表达式:if(x) y=1\x;else y=10000;○2一个if结构不可分割;○3一个分支中包含多个语句时,要用{};○4else和else-if不是独立的,其前方必须有与之配对的if语句;二、if语句的嵌套在if语句中,又包含一个或多个if语句:if(score>=80)if(score>=90) printf(“A”);else printf(“B”);elseif(score>=60) printf(“C”);else printf(“D”);注意else与if的匹配三、条件运算符如果两个分支的内容都是给同一个变量赋值,则可用简单的条件运算符处理:if(a>b) max=a;else max=b;可用: max=a>b ? a : b;赋值运算符右边为一条件表达式。
条件表达式的一般形式:表达式1 ?表达式2 :表达式3条件表达式的执行过程: a>b ? a : b优先级:低于关系运算符,高于赋值运算符。
结合性:右结合性。
Switch(多分支)1、适用于根据一个表达式的值就可确定走哪个分支的情况。
switch(表达式){常量表达式1:语句1常量表达式2:语句2┋常量表达式n:语句ndefault:语句n+1}注意:常量表达式不可以是字符串2、switch一般配合break使用:switch (控制表达式) {case 常量表达式:语句列表;break;case 常量表达式:语句列表;break;...default:语句列表}说明:1、break用来跳出switch语句块。
C语言选择结构

C语言选择结构选择结构是C语言中的一种流程控制结构,用于根据给定的条件选择不同的执行路径。
本文将详细介绍C语言中的选择结构以及其使用。
选择结构主要包括if语句、if-else语句、else if语句和switch 语句。
1. if语句if语句是最简单的选择结构,用于根据给定条件决定是否执行段代码。
其语法结构为:if (condition)//如果条件为真,执行这里的代码其中,condition是一个表达式,如果它的值为真,则执行if语句中的代码块。
if语句也可以与else语句结合使用,使得在条件为假时执行不同的代码块。
2.if-else语句if-else语句是在if语句的基础上增加了一个分支,用于在条件为假时执行另外一段代码。
其语法结构为:if (condition)//如果条件为真,执行这里的代码else//如果条件为假,执行这里的代码如果if语句的条件为真,则执行if语句中的代码块,否则执行else语句中的代码块。
3.else if语句else if语句用于在多个条件之间进行选择,并根据不同的条件执行相应的代码块。
其语法结构为:if (condition1)//如果条件1为真,执行这里的代码else if (condition2)//如果条件1为假,条件2为真,执行这里的代码else//如果条件1和条件2都为假,执行这里的代码在多个else if语句中,只有第一个满足条件的语句会被执行,其他的else if和else语句会被忽略。
4.switch语句switch语句是用来根据不同的取值来执行不同的代码块。
其语法结构为:switch (expression)case constant1:// 如果expression的值等于constant1,执行这里的代码break;case constant2:// 如果expression的值等于constant2,执行这里的代码break;...default:// 如果expression的值与之前的常量都不匹配,执行这里的代码expression 表达式的值会与每个 case 后面的常量进行比较,如果匹配则执行相应的代码块,可以使用 break 语句来跳出 switch 代码块。
选择结构c语言

选择结构c语言选择结构是C语言中的一种重要语句,它可以根据条件的真假来选择执行相应的语句块,从而实现程序的不同流程控制。
本篇文章将详细介绍C语言中选择结构的使用方法及注意事项。
一、if语句if语句是C语言中最基本的选择结构,其语法结构为:if(条件表达式){//当条件表达式为真时执行的语句块}其中,条件表达式一般是关系表达式或逻辑表达式,其返回值为真或假。
当条件表达式为真时,执行花括号中的语句块;当条件表达式为假时,跳过整个if语句块,继续执行下一条语句。
示例代码:#include<stdio.h>int main(){int age;printf("请输入您的年龄:");scanf("%d",&age);if(age>=18){printf("您已经成年!\n");}printf("程序结束!\n");return 0;}该程序根据输入的年龄判断是否成年,并输出相应的提示信息。
二、else语句如果if语句的条件表达式为假,程序会直接跳过整个if语句块。
如果需要在条件为假时执行一些操作,可以使用else语句。
else语句的语法结构为:if(条件表达式){//当条件表达式为真时执行的语句块}else{//当条件表达式为假时执行的语句块}示例代码:#include<stdio.h>int main(){int age;printf("请输入您的年龄:");scanf("%d",&age);if(age>=18){printf("您已经成年!\n");}else{printf("您还未成年!\n");}printf("程序结束!\n");return 0;}该程序根据输入的年龄判断是否成年,并输出相应的提示信息。
C语言-第4章 选择结构程序设计

第4章选择结构程序设计注:选择结构的考点,最重要的有两个,一个是逻辑表达式的值,另一个是分支界限。
弄明白这两个知识点,就能够以不变应万变了。
一、单项选择题1. 在C语言中,能代表逻辑值"真"的是。
A) true B)大于0的数C)非0整数D)非0的数2. 表示关系x<=y<=z的c语言表达式为。
A) (x<=y)&&(y<=z) B) (x<=y)AND(y<=z) C) (x<=y<=z) D) (x<=y)&(y<=z)3. 能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是。
A) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10 &&a<=0 D) a>=10‖a<=04、判断char型变量c1是否为大写字母的表达式为。
A)’A’<=c1<=’Z’ B)(c1>=’A’) & (c1<=’Z’)C)(’A’<=c1)AND (‘Z’>=c1) D)(c1>=’A’)&& (c1<=’’Z’)5. 有定义char c; c=getchar(); 判断字符变量c为大写字母的正确表达式为。
A) ‘A’=<c<=’Z’ B)c>=‘A’&& c<=’Z C)A=<c<=Z D) c>=A && c<=Z6. 设有语句“int a=4;b=3,c=-2,d=2;”,则逻辑表达式“a>0&&b&&c<0&&d>0”的值是。
A)1B)0 C)-1 D)出错7. 设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是。
C语言基础入门算法的基础招式--选择结构

Raptor综合图
选择 结构
分类
单分支选择 结构
双分支选择 结构
多分支选择 结构
内容小结
谢谢聆听
创新教育 引领未来
65/47
步骤五:支路5上输出提示符号有误
Raptor图
66/47
Raptor图
步骤六:思考如果输入的是2/0,刚才的设计会提示错误吗? 如何修改程序? 1. 加上除数不能为零判断 2. 先判断再计算除法,如果除数不为零,计算并输出结果,
否则提示wrong
67/47
步骤七:完成最终Raptor图。
1. 151. <. 1=2.a0aag<ggee=e!=a&=g1&=e51&a&5&g&ea<&gs=eesx<1e=0=x“=3|0|“女2&男”0&<”saegxe=&“&男ag”e<30 && sex=“女” 2. 252. <. 2=2.a0aag<ggee=e!=aa=gn1=ed51aa5ngnadedn<asd=gesxe1e=<0x“==o3“女r02男”0a”<ndagseexa=n“d 男ag”e<30 and sex=“女”
本节课目标
案例1.1:输入两个数,输出较大值 要求: 1. 分析问题(自然语言描述) 2. 画出程序流程图 3. 设计Raptor图,输出结果
案例一
38/47
案例1.1:输入两个数,输出较大值 要求: 1. 分析问题(自然语言描述) 2. 画出程序流程图 3. 设计Raptor图,输出结果
案例一
自然语言描述
步骤一:先画出主体部分
C语言-switch选择结构

C语⾔-switch选择结构⽬录switch 选择结构/*if(条件表达式){代码块}switch(条件表达式){case 整数:语句;break;case 整数:语句;break;default:语句;break;}// switch 会取出条件表达式的值,如果与 case 后⾯整数相等就会执⾏这个 case 下的语句,break 就会跳出,如果前⾯的都不满⾜,那么就会执⾏ default// 1,拿到的条件表达式的值必须是整数才⾏// 2,利⽤条件表达式的值与 case 后⾯的整数是否相等,如相等,就会执⾏该 case 后⾯的语句,// 3,执⾏完该语句,遇到 break 就会结束整个 switch 语句,也就是说后⾯得有语句都不会执⾏// 4,如果前⾯的 case 后⾯值与条件表达式的值不相等就会继续执⾏后⾯的 case// 5,如果前⾯的条件表达式与 case 的整数都不相等就会执⾏ default 的case*/int age = 1;switch (age) {case 3:printf("还在喝奶的阶段");break; // 执⾏到 break 就会结束 switch 语句case 6:printf("该上⼩学了");break;case 18:printf("该去⽹吧打游戏了");break;default:printf("该好好上班,挣钱养家");break;}switch 的结束执⾏到相等的 case 后⾯的整数,遇到 break执⾏到 switch 语句的⼤括号如果执⾏到对应的 case 时,但是没有写 break,此时后⾯的 case 和 default 语句会失效,但是⾥⾯的代码块不会失效(case 的穿透问题) int age = 6; // age = 6 的时候switch (age) {case 3:printf("还在喝奶的阶段");break;case 6:printf("该上⼩学了"); // 执⾏到这个 case 的代码,但是没有写 break,后⾯的 case 和 default 代码就会失效.但是⾥⾯的代码块像 parinf 不会失效// 没有写 breakcase 18:printf("该去⽹吧打游戏了");// 没有写 breakdefault:printf("该好好上班,挣钱养家");// ,没有写 break}// 相当于执⾏了这个代码int age = 6; // age = 6 的时候switch (age) {case 3:printf("还在喝奶的阶段");break;printf("该上⼩学了"); // 执⾏到这个 case 的代码,但是没有写 break,后⾯的 case 和 default 代码就会失效.但是⾥⾯的代码块像 parinf 不会失效 // 没有写 break// case 18:printf("该去⽹吧打游戏了");// 没有写 break// default:printf("该好好上班,挣钱养家");// ,没有写 break}// 控制台输出:该上⼩学了该去⽹吧打游戏了该好好上班,挣钱养家最后⼀个case 或者 default后⾯的 break 可以省略,因为后⾯就是switch 的⼤括号,也是代表 switch 的结束switch 的注意点Switch的条件表达式必须是返回整数的格式,也就是说()中只能放整数// 只有整数类型才可以哦float num = 10.3f;switch (num) { // 报错case 10:printf("是⼀个⼩数,会打印么?");break;default:break;}// char 类型可以,char 类型可以转换为整数char str = 'a';switch (str) {case 'a':printf("char 类型是可以的,因为 char 类型可以转换为整数,char 类型的底层是阿斯克码 ");break;default:printf(" ");break;}case 的取值必须是整数,或者能够转换为整数的类型case 的取值不能重复int num = 10;switch (num) {case 10:printf("10");break;case 10: // 报错,case 不能重复printf("10");break;default:printf(" ");break;}case 后⾯不能放变量因为系统在编译的时候会对 switch后⾯的 case进⾏优化,会根据后⾯ case 的值⽣成⼀个取值表 int num = 10;switch (10) {case num: // 报错,不能放变量printf("10");break;default:printf(" ");break;}default 的位置⽆论 default 的位置写在哪个位置,都是最后执⾏如果 default 放在前⾯了,那么就⼀定要加上 break,不能省略只要 default 满⾜,那么后⾯的 case 也会失效,所以注意写上 breakswitch 练习/*要求⽤户输⼊⼀个分数,根据⽤户输⼊的分数输出对应的等级*/printf("请您输⼊⼀个分数,已回车结束\n");int garde = 0;scanf("%i",&garde);// 第⼀种⽅法switch (garde / 10) { // 分数除以 10 再利⽤隐式转换为 int 类型就可以得到整数case 10: // 利⽤ case 的穿透case 9:printf("A");break;case 8:printf("B");break;case 7:printf("C");break;case 6:printf("D");break;default:printf("E");break;}// 第⼆种⽅法if (garde >= 90 && garde <= 100){printf("A");}else if (garde >= 80 && garde <= 89){printf("B");}else if (garde >= 70 && garde <= 79){printf("C");}else if (garde >= 60 && garde <= 69){printf("D");}else if (garde >= 0 && garde <= 59){printf("E");}else{printf("输⼊成绩错误");}// 第三种⽅法(巧妙的利⽤ if else if 的结构,从上往下执⾏,第⼀条不满⾜执⾏到第⼆条,执⾏到后⾯的 else if 代表肯定前⾯的条件不符合.所以) if (garde < 0 || garde > 100){printf("您输⼊的分数不对");}else if (garde >= 90 && garde <= 100){printf("A");}else if (garde >= 80){printf("B");}else if (garde >= 70){printf("C");}else if (garde >= 60){printf("D");}else{printf("E");}return 0;}switch 的局限性在开发中中 if ⽐较多,⽐较灵活如果说是对固定的值,进⾏判断,并且这些值的数量不多的时候可以使⽤ switch从理论上来说 switch的性能效率要⽐ if ⾼// 练习 2/*// 从键盘输⼊⼀个数字,判断其是哪个季节printf("请您输⼊⼀个数字,以回车结束");int num = 0;scanf("%i",&num);switch (num) {case 12:case 1:printf("春节");break;case 6:case 7:case 8:printf("夏季");break;case 9:case 10:case 11:printf("秋季");break;default:printf("你输⼊的是啥玩意");break;}*/// 写⼀个计算器,⽤户输⼊⼀个数,操作符,再⼀个数,根据操作符计算结果/*printf("请您输⼊第⼀个数,操作符,和第三个数,以逗号分割,以回车结束\n");printf("操作符:1:+,2:-,3:/,4:*\n");int num1,num2,num3;;scanf("%i,%i,%i",&num1,&num2,&num3);switch (num2) {case 1:printf("两数相加:result = %i\n",num1+num3);break;case 2:printf("两数相减:result = %i\n",num1-num3);break;case 3:printf("两数相除:result = %i\n",num1/num3);break;case 4:printf("两数相乘:result = %i\n",num1*num3);break;default:printf("num2只接受 1-4 的整数");break;}*/printf("请您输⼊第⼀个数,以回车结束\n");int num1,num2;scanf("%i",&num1);printf("请您输⼊操作符,以回车结束\n");// char temp;// scanf("%c",&temp);getchar(); // 使⽤getchar()将前⾯的\n 取出来char op;scanf("%c",&op); // 此时注意前⾯有⼀个scanf 函数,输⼊了回车后此时输⼊缓冲区中还是保留的\n,所以第⼆个 scanfr 让输⼊⼀个%c 类型的字符时就不会让你输⼊了 printf("请您输⼊第⼆个数,以回车结束\n");scanf("%i",&num2);int result = -1;switch (op) {case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':result = num1 / num2;break;default:printf("只接受 '+','-','*','/' 操作符");break;}printf("result = %i\n",result);return 0;}。
C语言程序设计—选择结构

C语言程序设计—选择结构C语言是一门广泛应用于计算机科学和软件开发领域的编程语言。
它提供了丰富的选择结构,允许程序根据条件来选择不同的执行路径。
选择结构是控制程序流程的重要组成部分,它基于条件的真假来决定不同的操作。
1. if语句if语句是C语言中最常用的选择结构之一。
它用于根据条件的真假来执行不同的代码块。
if语句的基本格式如下:```if (条件) {// 条件为真时执行的代码块}```可以根据需要添加else语句来处理条件为假的情况。
若条件为假,则执行else后的代码块。
示例如下:```if (条件) {// 条件为真时执行的代码块} else {// 条件为假时执行的代码块}```2. switch语句switch语句用于在多个可能的选项之间选择一个执行路径。
它将某个变量的值与一系列case标签进行比较,并根据匹配的结果执行相应的代码块。
switch语句的基本格式如下:```switch (表达式) {case 值1:// 执行代码块1break;case 值2:// 执行代码块2break;default:// 默认执行代码块break;}在switch语句中,表达式的值会与每个case标签进行比较,如果匹配则执行相应的代码块。
在每个代码块的末尾,使用break语句来跳出switch语句,以避免执行其他不相关的代码块。
如果没有匹配到任何一个case标签,将执行默认的代码块。
3. 嵌套选择结构C语言允许选择结构的嵌套使用,即在一个选择结构中嵌入另一个选择结构。
这样可以根据多个条件进行判断,实现更灵活和复杂的程序逻辑。
```if (条件1) {if (条件2) {// 执行代码块1} else {// 执行代码块2}} else {// 执行代码块3}在上述示例中,先判断条件1,如果条件1为真,则进一步判断条件2。
根据不同的条件结果执行相应的代码块。
选择结构是C语言程序设计中非常重要的部分,它使程序能够根据不同的条件来选择不同的执行路径。
C语言程序设计ppt课件-第3章-选择结构

本章主要内容
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语言-选择结构程序设计

if (‘A’) printf(‚%d‛,‘a’);也是合法的。
⑵ 后面两种形式的if语句中,每个else前面有一个分 号,不要错认为是两个语句。 如: if (x>0)
printf("%f",x); else printf("%f",-x);
各有一个分号
⑶ if 和else后面有多个语句时,可以使用复合语 句,即用‚{}‛将多个 语句括起来。
Y
表达式
N
else printf("%d",y);
语句1 语句2
例:编程,判断任意输入一个整数x是不 是正数,若是则将该数输出。
程序如下:
main() { int x; scanf(“%d”,&x); if (x>0) printf(“\nx=%d\n”,x); }
例:编程,判断任意输入的一个正整数是 不是偶数,若是则输出YES,否则输出 NO。
5.3.2 if语句的嵌套
在 if 语句中又包含一个或多个 if 语句称为 if 语句的嵌套。其一般形式为: if ( ) if ( ) 语句1; 内嵌 if 语句 else 语句2; else if ( ) 语句3; 内嵌 if 语句 else 语句4;
说明:应注意 if 与 else 的对应关系,else总是与 它上面最近的 if 配对,若if与 else 的数目不一致, 可以加{ }来确定配对关系。
程序如下:
main() { int x; scanf(“%d”,&x); if (x%2==0) printf(“YES”); else printf(“NO”); }
3. if(表达式1) 语句1; else if(表达式2) 语句2; …… else if(表达式m) 语句m; else 语句n;
c语言选择结构程序设计教案

C语言选择结构程序设计教案第一章:选择结构概述1.1 选择结构的概念介绍选择结构的基本概念和作用解释条件语句的语法和用法1.2 条件运算符介绍条件运算符的概念和语法演示条件运算符的使用方法和注意事项1.3 选择结构的执行流程解释选择结构的执行流程和条件判断原理通过示例程序展示选择结构的执行过程第二章:if语句2.1 if语句的基本语法介绍if语句的语法结构和使用方法解释条件表达式的真假判断2.2 if语句的嵌套讲解if语句的嵌套结构和规则通过示例程序演示if语句的嵌套应用2.3 if语句的注意事项强调if语句的注意事项,如条件表达式的正确性、代码的可读性等第三章:switch语句3.1 switch语句的基本语法介绍switch语句的语法结构和用法解释case标签和break语句的作用3.2 switch语句的执行流程解释switch语句的执行流程和条件判断原理通过示例程序展示switch语句的执行过程3.3 switch语句的注意事项强调switch语句的注意事项,如输入变量的类型、case标签的覆盖等第四章:选择结构的综合应用4.1 综合应用实例一:成绩判断程序介绍一个简单的成绩判断程序实例分析程序中的选择结构和逻辑运算符的使用4.2 综合应用实例二:员工福利计算程序介绍一个员工福利计算程序实例分析程序中的选择结构和循环结构的使用4.3 综合应用实例三:日期判断程序介绍一个日期判断程序实例分析程序中的选择结构和时间处理的方法第五章:选择结构的编程技巧5.1 选择结构的优化介绍选择结构的优化方法和原则通过示例程序展示优化前后的差异5.2 选择结构的扩展讲解选择结构的扩展方法和注意事项通过示例程序展示扩展选择结构的应用5.3 选择结构与其他程序结构的结合介绍选择结构与其他程序结构(如循环结构、函数结构)的结合方法和原则通过示例程序展示结合后的应用第六章:选择结构与用户输入6.1 用户输入的基本方法介绍如何使用C语言中的输入函数(如`scanf`)获取用户输入。
【c语言程序设计】选择结构程序设计

【c语言程序设计】选择结构程序设计C语言程序设计 - 选择结构程序设计C语言是一种通用的程序设计语言,广泛应用于计算机科学和软件开发领域。
选择结构是C语言中的一种重要控制结构,用于根据条件的真假来决定程序运行的路径。
本文将介绍选择结构在C语言程序设计中的应用以及相关的编程技巧。
一、IF语句IF语句是最简单的选择结构,用于根据一个条件的真假来决定程序的下一步动作。
它的基本语法如下:if (条件) {// 如果条件为真,执行这里的代码}例如,如果我们想判断一个数字是否为正数,可以使用如下的C代码:```c#include <stdio.h>int main() {int num;printf("请输入一个数字:");scanf("%d", &num);if (num > 0) {printf("这是一个正数。
\n");}return 0;}```上述代码中,用户输入一个数字,程序会判断这个数字是否大于0,如果是,则输出"这是一个正数"。
二、IF-ELSE语句IF-ELSE语句是在条件为真或假的情况下,分别执行不同的代码块。
它的基本语法如下:if (条件) {// 如果条件为真,执行这里的代码} else {// 如果条件为假,执行这里的代码}例如,我们想判断一个数字是否为奇数,可以使用如下的C代码:```c#include <stdio.h>int main() {int num;printf("请输入一个数字:");scanf("%d", &num);if (num % 2 == 0) {printf("这是一个偶数。
\n");} else {printf("这是一个奇数。
\n");}return 0;}```上述代码中,用户输入一个数字,程序会通过判断这个数字是否能被2整除来确定是奇数还是偶数,并输出相应的结果。
C语言第四章选择结构ppt课件

/* 求 x 的绝对值并赋给 y */
/* 输入 x 的值 */
/* 输出 x 的绝对值 */
/* 编译预处理:包含头文件 */
二、if ... else 语句
对这一句话“如果x>=0则y=x,如果x<0则y=-x”,可以写出以下语句:
表达式1 ? 表达式2 :表达式3
表达式1为真,结果为表达式2的值 表达式为假,结果为表达式3的结果; 运算符 “ ?:”的优先级只在逗号和赋值运算 符之前;表达式2和表达式3只可能执行一个;这是C语言中的唯一一个三目运算符;条件运算符的结合方向为“自右自左”。
例:已知a=5,b=6,c=7,d=8,n=2 ; 执行以下语句后表达式的值为多少? n的值为多少? (a < b ) ? ( c + d ) : ( + + n )
if ( 表达式1 ) if ( 表达式2 ) 语句1; else 语句2;else if ( 表达式3 ) 语句3; else 语句4;
实现if ~ else 正确配对方法:加{ }
五、条件运算符
能否把两条语句合成一句,更好地体现这种逻辑关系呢?这就是 if ...... else 语句的功能。
简单的if 语句只能表达“如果 ,那么 ”的含义,而if ...... else 语句却能表达“如果 那么 否则 ”的含义。
If ( x>=0) y=x;if (x<0) y=-x;
a>b?a:c>d?c:d
a>b?a:(c>d?c:d)
表达式值为15,n=2
六、 switch 语句
switch 语句是多分支的选择语句又称开关语句。
c语言-选择结构程序设计实验报告4范文

实验报告实验题目:选择结构程序设计实验目的:(1)了解C语言表示逻辑量的方法(以0代表“假”以非0代表“真”)。
(2)学会正确使用逻辑运算算符和逻辑表达式。
(3)熟练掌握if语句的使用(包括if语句的嵌套)。
(4)熟练掌握多分支选择语句——switch语句。
(5)结合程序掌握一些简单的算法。
(6)进一步学习调试程序的方法。
实验内容:本实验要求事先编好解决下面问题的程序,然后上级输入程序并调试运行程序。
(1)有一函数:⎪⎩⎪⎨⎧≥-<≤-<=10113)101(12)1(x x x x x x y 输入x 的值,输出y 相应的值。
用scanf 函数输入x 的值,求y值(第四章第六题) 运行程序,输入x 的值(分别为x<1、101<≤x 、10≥x 这三种情况),检查输出y 值是否正确。
答:1)调试通过的程序清单如下:#include<stdio.h>void main(){ int x,y;printf("请输入X:");scanf("%d",&x);if(x<1)y=x;else if(x<10)y=2*x-1;程序设计基础实验报告――选择结构程序设计else y=3*x-11;printf("y=%d\n",y);}3)调试过程出现的问题说明及处理方法:编译提示信息如下:Compiling...c4_4.cF:\_选择结构程序设计\第四次实验\c4_4.c(10) : error C2059: syntax error : 'bad suffix on number'F:\_选择结构程序设计\第四次实验\c4_4.c(10) : error C2146: syntax error : missing ';' before identifier 'x'F:\_选择结构程序设计\第四次实验\c4_4.c(10) : warning C4552: '-' : operator has no effect; expected operator with side-effect F:\_选择结构程序设计\第四次实验\c4_4.c(11) : error C2181: illegal else without matching ifF:\_选择结构程序设计\第四次实验\c4_4.c(11) : error C2059: syntax error : 'bad suffix on number'作者:花开2011年11月2日F:\_选择结构程序设计\第四次实验\c4_4.c(11) : error C2146: syntax error : missing ';' before identifier 'x'F:\_选择结构程序设计\第四次实验\c4_4.c(11) : warning C4552: '-' : operator has no effect; expected operator with side-effect 执行cl.exe 时出错.c4_4.obj - 1 error(s), 0 warning(s)原因分析:由于习惯在数学上习惯于用2x表示2*x,导致在这里忽略了“*”,以致程序出现严重错误。
C语言选择结构

C语言选择结构C语言选择结构选择结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程。
以下是店铺分享给大家的C语言选择结构,帮助大家巩固C语言基础,欢迎阅读学习!1.1 用if语句实现选择结构1.在C语言中,if语句有两种形式:形式1:if(表达式)语句形式2:if(表达式)语句1else 语句22.if语句执行时,首先计算紧跟在if后面一对圆括号中的表达式的值,如果表达式的值为非零(″真″),则执行if后的″语句″,然后去执行if语句后的下一个语句。
如果表达式的值为零(″假″),直接执行if语句后的下一个语句。
3.if语句后面的表达式并不限于是关系表达式或逻辑表达式,而可以是任意表达式。
If语句中可以再嵌套if语句。
C语言规定,在嵌套的if语句中,else子句总是与前面最近的不带else的if相结合。
1.2 用switch语句实现多分支选择结构1.switch语句是用来处理多分支选择的一种语句。
它的一般形式如下:switch(表达式){ case 常量表达式1:语句1case 常量表达式2:语句2case 常量表达式n:语句ndefault :语句n+1}2.switch语句的`执行过程是:首先计算紧跟switch后面的一对圆括号中的表达式的值,当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句体并将流程转移到下一个case继续执行,直至switch语句的结束;若所有的case中的常量表达式的值都没有与表达式值匹配,又存在default,则执行default后面的语句,直至switch语句结束;如果不存在default,则跳过switch语句体,什么也不做。
1.3 选择结构的嵌套if语句和switch语句都可以嵌套使用,特别要注意,对于构成嵌套的if语句,else子句总是和离它最近的、不带else的if子句相匹配,不能弄混;在一个switch语句中的case后面又嵌套了一个switch语句,在执行内嵌的switch语句后还要执行一条break语句才跳出外层的switch语句。
C语言程序设计—选择结构

int main()
{
char ch;
scanf("%c",&ch);
ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
printf("%c\n",ch);
return 0;
}
条件表达式“(ch>='A'&&ch<='Z')?(ch+32):ch”的作用是:
else y=0;
if (0) 语句5
//表达式是整数0,条件判断结果为假,不执行语句5,接着执行下一语句
if(x+3.5) 语句6
//表达式是实数表达式,若x+3.5不等于0,则条件判断结果为真,执行语句6
小例子
判别用year表示的某一年是否
闰年,可以用一个逻辑表达式
来表示。闰年的条件是符合下
面二者之一: ①能被4整除,
scanf("%f,%f",&a,&b);
if(a>b)
{
//将a和b的值互换
t=a;
a=b;
b=t;
}
printf("%5.2f,%5.2f\n",a,b);
return 0;
}
两个变量值的互换
a=b; //把变量b的值赋给变量a,a的值等于b的值
b=a; //再把变量a的值赋给变量b,变量b值没有改变
再执行关系运算“1>c”,得值0,赋给f,所以f的值为0
逻辑运算符和逻辑表达式
C语言程序设计 实验报告2--选择结构

福建农林大学金山学院实验报告系(教研室):专业:年级:实验课程:C语言程序设计姓名:学号:实验室号:计算机号:实验时间:指导教师签字:成绩:实验2:选择结构程序设计一、实验目的和要求1.了解C语言表示逻辑量的方法2.正确使用逻辑运算符和逻辑表达式,掌握if语句和switch语句3.结合程序掌握一些简单算法,并学习调试程序二、实验内容和原理1.有一函数:x2+2x-6(x<0,x≠-3)y = x2-5x+6(0≤x<10,x≠2,x≠3)x2-x-15(x=-3,x=2,x=3,x≧10)写一程序,用scanf函数输入x,输出y值。
2.分别用if语句和switch语句编程实现:给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。
90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
3.输入4个整数,要求按由小到大顺序输出。
4.有三个整数a,b,c,由键盘输入,输出其中最大的数,请编写程序。
(用两种方法实现)5.输入出租车类型和里程,计算打车的费用。
计算方式为:3公里以内10元;3公里以上0车型每公里1.5元,1车型每公里2元。
三、实验环境1. 硬件:PC机;2. 软件:Windows操作系统、Visual C++ 6.0,DEV-CPP 。
四、算法描述及实验步骤1、先用scanf函数输入,再用if语句的嵌套来计算该方程。
2、(1)用switch语句时,对输入的数据进行检查,在用score/10将其强制转换得到一个整型。
最后用switch语句执行使其得到一个字符型字母。
(2)用if语句分成各个分数段将符合要求的输出对应的字符。
3、用if语句依次比较的方法排出其大小顺序。
4、(1)先用scanf函数输入,再用if语句的嵌套比较其大小顺序。
(2)带入一个中间数用条件表达式比较其大小顺序。
5、在标题写入条件,3公里以下直接输出。
3公里以上判断车型,再带入相应车型计算车费。
C语言学习-选择结构if语句、switch语句

C语⾔学习-选择结构if语句、switch语句今天主要学习了,if语⾔和switch语句,下⾯直接进⼊正题。
C语⾔为我们提供了3种流程控制结构,分别为:顺序结构,选择结构,循环结构。
顺序结构:默认的流程结构。
按照书写顺序执⾏每⼀条语句。
选择结构:对给定的条件进⾏判断,根据不同的结果执⾏不同的代码断。
循环结构:对给定条件成⽴的情况下,反复执⾏某⼀代码断。
3种流程图如下:⼀、顺序结构1int main(){23 printf("hello world!\n");45 printf("I like iOS!\n");67return0;89 }以上程序的运⾏结果如下:⼆、选择结构C语⾔中选择结构的实现⽅式有两种:if语句和switch语句。
先来看下if语句的使⽤,⽽if语句的形式是有好多种的。
先来看看if语句最简单的形式if ( 条件 ){语句1;语句2;....}如果if右边⼩括号()中的条件成⽴,也就是为“真”时,就会执⾏第2~6⾏⼤括号{}中的语句;如果条件为假,就不执⾏⼤括号{}中的语句。
这⾥的if是关键字。
例如:1int main(){23int a = 7;45if ( a ){6 printf("条件a成⽴\n");7 printf("a的值为真");8 }910 }C语⾔规定所有⾮0值都为“真”,⽽a的值是7,因此第3⾏的条件是成⽴的,接着就会执⾏第5、6⾏代码。
输出结果如下:条件a成⽴a的值为真如果将a的值改为0,那么第3⾏的条件就不成⽴,就不会执⾏第5、6⾏代码语句嵌套if1int main(){23int a = 7;45if ( a > 0 ){67 printf("a的值⼤于0\n");89if ( a<9 ){1011 printf("a的值⼩于9");12 }13 }14 }第3⾏的a>0是成⽴的,因此会按顺序执⾏第4~11⼤括号中的代码。
C语言程序设计 第3章 选择结构 -

如果条件满足了,就执行{}里的语句, 如果条件不满足,直接越过{}里的语句。
3.2 关系运算符与关系表达式
关系运算符
< (小于) <= (小于或等于) > (大于) >= (大于或等于) == (等于) != (不等于)
3.2 关系运算符与关系表达式
关系表达式: 用关系运算符将两个表达式连接起来的式子
case 常量表达式2:语句2; ... default:语句n+’键向上运动,‘s’键向下运动, ‘a’键向左运动,‘d’键向右运动。
char ch = getch(); // 获得按键按下的值
switch(ch){ case 'w' : row = row - 1; case 's': row = row + 1; case 'a' : col = col - 1;
a > 60 x == 1 关系表达式的值是一个逻辑值,即“真”或“假”。
3.2 关系运算符与关系表达式
C语言中, 1表示“真”,0 表示“假”
例: 5 > 3 为真,值为1。 2 == 3 为假,值为0。 (2 > 3) == (3 > 5) 为真,值为1,
3.2 关系运算符与关系表达式
例:当按下‘w’键,方块向上运动
3.3 逻辑运算符与表达式
逻辑运算符
&& (逻辑与) || (逻辑或) ! (逻辑非) 运算规则: a&&b 若a,b为真,则a&&b为真。 a||b 若a,b之一为真,则a||b为真。 !a 若a为真,则!a为假。
3.3 逻辑运算符与表达式
逻辑表达式: 用逻辑运算符将关系表达式连接起来的 式子
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
clr scr(); /*清屏*/选择结构一、单分支选择语句1. 格式if(表达式)语句2. 功能当表达式的值为非0(真、条件成立)时,执行“语句”。
否则执行if之后的下一句。
3. 说明(1)表达式可以是任意类型的表达式(结果是数值型),但通常是关系或逻辑表达式。
也可以是数值型的常量或变量(它们是最简单的表达式)。
(2)“语句”可以是以分号结束的单个语句,也可以是..复合语句。
不可以是多一个..个语句。
4. 举例例1、任意读入两个整数,然后输出其中的较大者。
main(){int x,y;scanf("%d%d",&x,&y);if(x>y)printf("%d\n",x);if(y>=x)printf("%d\n",y );}二、双分支if语句【格式】if(表达式)语句1else语句2【功能】【说明】1.“语句1”和“语句2”可以分别是以分号结束的单个语句,也可以分别是一个复合语句。
都不可以是多个语句。
2. else子句不可以独立存在。
改写上例:任意读入2个整数,输出较大数。
main(){int x,y;scanf("%d%d",&x,&y); if(x>y)printf("%d\n",x); else /*暗含两种情况:<和=*/printf("%d\n",y);}例如:任意读入2个整数,按从小到大的顺序输出这2个数。
【法1】main(){int x,y;scanf("%d%d",&x,&y); if(x<y)printf("%d,%d\n",x,y); elseprintf("%d,%d\n",y,x);}【法2:借助第三数,完成两数的交换】让x中放较小数,y中放较大数。
main(){int x,y;int t; /*中间变量*/ scanf("%d%d",&x,&y);if(x>y){t=x; x=y; y=t;} printf("%d,%d\n",x,y); }【基本算法一:两数交换,借助第三数】t=x; x=y; y=t;【思考:本题改成“任意读入3数,从小到大输出”】三、多分支if语句【格式】if(表达式1)语句1else if(表达式2)语句2else if(表达式3)语句3……else语句n+1【功能】【注意】else和if之间有空格。
最后的else子句可以省。
【举例】例1、批发铅笔,批发量x,100≤x<300,打7折;300≤x<500,打5折;500≤x<1000,打4.5折;x>=1000,打4折。
其余不打折。
求顾客应付款。
(1元/支)【法1:多分支选择语句】main(){int x;float cost; scanf("%d",&x); if(x>=1000)cost=1*x*0.4; else if(x>=500)cost=1*x*0.45; else if(x>=300)cost=1*x*0.5;else if(x>=100)cost=1*x*0.7;elsecost=1*x;printf("cost=%f\n",cost );}%m.n f(m、n是正整数,通常m>n,m表示整个实数所占显示宽度,包含小数点,实数宽度不够时,左补空格;n表示小数点右边的位数。
)例如:printf("%6.2f\n",3.1415 9);UU3.14(U代表空格)又如:printf("%3.4f\n",3.1415 9);3.1416【注意】%m.nf的格式可以省写成“%.n f”,即可将m 省略。
%-m.n f(若数宽度不够,则右补空格)%.nf(m可以省,满足小数点后保留n位,该实数实际需要占多少位,就占多少位。
)关于整数:%md: 输出的整数若位数不足m位,左补空格。
%-md: 输出的整数若位数不足m位,右补空格。
例:任意读入一个年份,判断其是否为闰年。
(能被400整除,或能被4整除且不能被100整除的,就是闰年)四、if语句的嵌套(if语句中含有另一个if语句)例1:铅笔打折的改写。
main(){int x;float cost;scanf("%d",&x); if(x<100)cost=1*x;elseif(x<300)cost=1*x*0.7;elseif(x<500)cost=x*1*0.5;elseif(x<1000)cost=1*x*0.45;elsecost=1*x*0.4; printf("cost=%.2f\n",cost);}【注意】(1)外选择语句必须完整地包含内选择语句,请缩进书写。
(2)else总是和前面最近的一个没有配对且有资格配对的if配对。
例2、任意读入一个字符,判断其是否为数字字符,若是,进一步判断其是否为’5’,是就输出该字符及其ASCII码值;若不是数字字符,就输出“Is not digit!”。
【法一:利用ASCII值判断】#include<stdio.h> main(){char c;c=getchar();if(c>='0'&&c<='9'){if(c=='5')printf("%c,%d\n",c,c);}elseputs("Is not digit!\n");}【用{}取消内if的配对资格!】【法二:利用系统函数isdigit判断数字字符】用系统函数(库函数):isdigit(字符型数据)含义是判断“字符型数据”是否为数字字符。
(是,则函数返回值为非0;否则为0),使用时一定要加头文件“c type.h”。
#include <stdio.h>#include <ctype.h> main(){char x;scanf("%c",&x);if(isdigit(x)!=0) /*逻辑等价于isdigit(x)*/{if(x=='5')printf("%c:%d\n",x,x);} elseprintf("Is notdigit!\n");}【将光标移到系统函数名下方,然后按Ctrl+F1,弹出对应头文件名。
按Esc键回到蓝色编辑环境。
】【结论】(1)用{}扩住某单分支if 语句,可以取消其与else的配对资格!(2)两组逻辑等价式:【解释:】所谓“逻辑等价”就是,当某式子的结果被当做逻辑值用时,其逻辑等价式的真值与该式子完全一致。
五、多分支switch语句【格式】switch(表达式){case 常量1:语句块1;break;case 常量2:语句块2;break;case 常量3:语句块2;break;……default: 语句n+1;}【说明】(1)switch后的表达式通常是整型或字符型表达式(常量、变量);(2)case后的常量必须是整型或字符型。
(3)“break;”语句只能出现在switch或循环语句中。
作用是跳出所在语句结构。
(4)“语句块1;……语句块n+1;”可以是若干个语句,不必构成一个复合语句。
(5)default分支可以省略。
【功能】例1:改写铅笔。
#include<stdio.h> main(){int x;float cost;scanf("%d",&x);switch(x/100){case 0: cost=1*x; break;case 1:case 2: cost=1*x*0.7;break; case 3:case 4: cost=1*x*0.5;break;case 5: case 6: case 7: case 8:case 9: cost=1*x*0.45; break;default:cost=1*x*0.4; }printf("%.2f\n",cost); }【而以下也正确】#include<stdio.h> main(){int x;float cost;scanf("%d",&x); switch(x/100){case 1:case 2: cost=1*x*0.7;break;default:cost=1*x*0.4;br eak;case 3:case 4: cost=1*x*0.5;break; case 5:case 6:case 7:case 8:case 9: cost=1*x*0.45;break;case 0: cost=1*x;}printf("%.2f\n",cost); }【注意】(1)各分支位置可以不分先后(不好!应试的)。
但依然只有最后一个分支可以不加break;语句!。
(2)两个(或以上)相邻分支的操作一样,可将对应语句写在最后一个分支上。
(3)如果前面的分支缺了break语句,则无条件地接着做下一个分支的语句,直到遇到break;或switch 的}为止。
【补充:4个数学函数,要加#include <math.h>】1、pow(x,y)功能:计算x y2、abs(数值型表达式)求“数值型表达式”的绝对值,即|数值型表达式|。
注意:必须是整型数据。
3、fabs(实数表达式) 求绝对值4、sqrt(正数)求“正数”的平方根。