c语言3选择结构流程及应用.docx

上传人:b****5 文档编号:6132346 上传时间:2023-01-04 格式:DOCX 页数:16 大小:34.92KB
下载 相关 举报
c语言3选择结构流程及应用.docx_第1页
第1页 / 共16页
c语言3选择结构流程及应用.docx_第2页
第2页 / 共16页
c语言3选择结构流程及应用.docx_第3页
第3页 / 共16页
c语言3选择结构流程及应用.docx_第4页
第4页 / 共16页
c语言3选择结构流程及应用.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

c语言3选择结构流程及应用.docx

《c语言3选择结构流程及应用.docx》由会员分享,可在线阅读,更多相关《c语言3选择结构流程及应用.docx(16页珍藏版)》请在冰豆网上搜索。

c语言3选择结构流程及应用.docx

c语言3选择结构流程及应用

第3章选择结构流程及应用

序号:

学习内容与目标:

在程序中使用选择结构

■选择结构判定条件的构成

■单分支与双分支选择结构程序设计

■多分支选择结构程序设计

知识小结

知识点

知识细节或者格式

示例

关系运算

关系运算符:

>,>=,<,<=,==,!

=

关系表达式:

表达式1关系运算符表达式2

关系表达式的值:

真,为1,假,为0

X>0

Y!

=0

A+1>=0

逻辑运算

逻辑运算符:

!

&&,||

逻辑表达式:

双操作数表达式格式:

表达式1逻辑运算符表达式2

单操作数表达式格式:

逻辑运算符表达式

逻辑表达式的值:

同关系表达式

(Y%4==0)&&(y%100!

=0)

!

(I/2==0)

If语句

简单if语句格式:

If(条件)语句;

if(x%2==0)printf(“\nxiseven”);

if–else语句格式:

if(条件)语句1;

else语句2;

if(x%2==0)printf(“\nxiseven”);

elseprintf(“\nxisodd”);

嵌套if–else语句格式:

if(条件1)语句1;

elseif(条件2)语句2;

:

elseif(条件n-1)语句n-1;

else语句n;

条件运算

条件运算符:

?

:

条件表达式:

表达式1?

表达式2:

表达式3

y=x>0?

x:

-x;

Switch语句

Switch语句格式:

switch(表达式)

{

case常量表达式1:

语句序列1;

case常量表达式2:

语句序列2;

case常量表达式n:

语句序列n;

default:

语句序列n+1;

}

例题

P301

/***************************************************

问题3.1:

关系运算符和关系表达式

知识点说明:

1)关系运算符;

2)用途:

用于比较两个操作数之间的关系;

3)关系运算:

比较两个操作数,如果符合关系运算符指定的关系,则关系运算结果为1,否则为0

4)关系运算的取值:

0或者1,0即逻辑“假”,1即逻辑“真”

****************************************************/

#include"stdio.h"

voidmain()

{intiX=3,iY=4,iZ=5;/*变量定义*/

printf("iX=%d,iY=%d,iZ=%d\n",iX,iY,iZ);

printf("iX>iYis%d\n",iX>iY);/*关系运算与关系表达式*/

printf("iX

printf("iXiYis%d\n",iXiY);/*复杂的关系运算*/

printf("iX<=iYis%d\n",iX<=iY);

printf("(iX+iY)==iZis%d\n",(iX+iY)==iZ);

/*含有算术表达式的关系运算*/

getch();

}

P302

/***************************************************

问题3.2:

逻辑运算符和逻辑表达式

知识点说明:

1)逻辑运算符;

2)用途:

对操作数(操作对象)作逻辑“与”、“或”、“非”运算;

3)真值表;

4)逻辑表达式:

用逻辑运算符连接操作对象的表达式

5)复合运算:

先算算术表达式,再算关系表达式,最后算逻辑表达式

****************************************************/

#include"stdio.h"

voidmain()

{intiX=3,iY=4;

printf("iX=%d,iY=%d\n",iX,iY);

printf("iX<=5&&iX>=-5is%d\n",iX<=5&&iX>=-5);/*逻辑运算与复合表达式*/

printf("iX

printf("'A'&&iX-iY<0is%d\n",'A'&&iX-iY<0);/*含字符常量的复合表达式*/

printf("!

2.56is%d\n",!

2.56);/*逻辑非运算*/

printf("!

99&&iX

99&&iX

getch();

}

P303

/***************************************************

问题3.3:

逻辑运算符

知识点说明:

1)==运算与=运算的区别:

前者是关系运算,后者是赋值运算;

2)数学中的不等式:

用c语言来写时要注意写法的区别;

****************************************************/

#include"stdio.h"

voidmain()

{intiX=3,iY=4;/*变量与变量的初始化*/

printf("iX>iY&&(iX=10)is%d\n",iX>iY&&(iX=10));/*&&运算前的表达式为0,则整个表达式为0*/

printf("iX=%d\n",iX);

printf("iX

printf("iY=%d\n",iY);

getch();

}

P304

/***************************************************

问题3.4:

数的绝对值

知识点说明:

1)简单if语句:

if(条件表达式)语句

2)条件表达式的构成:

关系表达式、逻辑表达式、复合表达式

3)if语句的作用:

有条件地执行语句,或者有选择地执行语句

****************************************************/

#include"stdio.h"

voidmain()

{intiX,iY;

printf("Pleaseinputaninteger:

");

scanf("%d",&iX);/*输入一个整数*/

iY=iX;

if(iX<0)/*单分支的选择结构,根据条件(iX<0),选择是否执行语句iY=-iX*/

iY=-iX;

printf("\n|%d|=%d",iX,iY);

getch();}

P305

/***************************************************

问题3.5:

电灯开关

知识点说明:

1)if-else语句:

if(条件表达式)

语句1;

else

语句2;

2)if-else语句的含意:

根据条件,选择执行语句1或者语句2

****************************************************/

#include"stdio.h"

voidmain()

{intiOnOff;

printf("Pleaseinput1oraninteger:

");

scanf("%d",&iOnOff);

if(iOnOff!

=0)/*双分支选择结构,根据条件决定跑哪一分支*/

printf("\nThelightison.");/*条件成立时执行的语句*/

else

printf("\nThelightisoff.");/*条件不成立时执行的语句*/

getch();

}

P306

/*****************************/

#include"stdio.h"

voidmain()

{intiX,iY,iMax;

printf("Pleaseinput2integers:

");

scanf("%d%d",&iX,&iY);

iMax=iX>iY?

iX:

iY;/*用条件运算符?

:

来实现双分支选择结构*/

printf("iMax=%d",iMax);

getch();

}

P307

***********************************************************

问题3.7:

分段函数

知识点说明:

1)多分支选择结构的格式

2)多分支选择结构的执行过程:

-遇到第1个条件为真时执行相应的语句,

然后跳到if之后的下一个语句执行

-如果没有一个条件为真,则执行最后一个else之后的语句

***********************************************************/

#include"stdio.h"

voidmain()

{intiX,iY;

printf("Pleaseinputanintegers:

");

scanf("%d",&iX);

if(iX>5)/*多分支选择结构的实现*/

iY=iX+3;

elseif(iX<0)

iY=2*iX+30;

else

iY=0;

printf("f(%d)=%d",iX,iY);

getch();

}

P308

/***************************************************

问题3.8:

成绩等级转换

知识点说明:

1)多分支选择结构的应用

****************************************************/

#include"stdio.h"

voidmain()

{floatfScore;

printf("Pleaseinputyourscore:

");

scanf("%f",&fScore);

if(fScore>=90&&fScore<=100)/*复杂的多分支选择结构*/

printf("YourgradeisA.");

elseif(fScore>=80&&fScore<90)

printf("YourgradeisB.");

elseif(fScore>=70&&fScore<80)

printf("YourgradeisC.");

elseif(fScore>=60&&fScore<70)

printf("YourgradeisD.");

elseif(fScore>0&&fScore<60)

printf("YourgradeisE.");

else

printf("Invalidinput.");

getch();

}

P309

/***************************************************

问题3.9:

驾照判别

知识点说明:

1)switch语句的格式

2)用switch语句实现多分支选择

3)switch语句的执行过程

-当表达式遇到第1个匹配的case时,执行该case之后相应的语句

-一般每个case之后的语句组中,最后一个语句应该是break语句

-break语句用于使程序跳出switch语句体

****************************************************/

#include"stdio.h"

voidmain()

{charchLicence;

printf("Pleaseinputyourdrivinglicence:

");

scanf("%c",&chLicence);

switch(chLicence)/*用switch语句实现多分支选择结构*/

{

case'A':

printf("Youcandrivebus,car,truck.");

break;

case'B':

printf("Youcandrivecar,truck.");

break;

case'C':

printf("Youcandrivecar.");

break;

case'D':

printf("Youcandriveautobikeonly.");

break;

default:

printf("InputError.");

}

getch();

}

P310

/***************************************************

问题3.10:

成绩等级转换

知识点说明:

1)switch语句的应用

2)switch语句

-允许case后为空

****************************************************/

#include"stdio.h"

voidmain()

{floatfScore;

intiTemp=-1;

printf("Pleaseinputascore:

");

scanf("%f",&fScore);

if(fScore>=0&&fScore<=100)

iTemp=fScore/10;

switch(iTemp)

{

case0:

/*0-59分,"E"*/

case1:

case2:

case3:

case4:

case5:

printf("E");break;

case6:

printf("D");break;

case7:

printf("C");break;

case8:

printf("B");break;

case9:

/*90-100分,"A"*/

case10:

printf("A");break;

default:

printf("InvalidInput!

");

}

getch();

}

P311

/***************************************************

问题3.11:

对一个随机数的判断

知识点说明:

1)随机数产生:

涉及的函数

-srand函数为随机函数初始化,头文件为"stdlib.h"

-time函数时间函数,产生系统时间,头文件为"time.h"

-rand函数随机函数,产生随机的正整数,头文件为"stdlib.h"

2)srand((unsigned)time(NULL)):

以系统时钟作为随机数初始化的随机种子;

3)rand():

无需参数,直接产生随机数

****************************************************/

#include"stdio.h"

#include"stdlib.h"

#include"time.h"

voidmain()

{inta;

srand((unsigned)time(NULL));

a=rand();

if(a%2==0)

printf("\n%d:

EVEN",a);

else

printf("\n%d:

ODD",a);

getch();

}

P312

/***************************************************

问题3.12:

产生100个两位随机整数

 

****************************************************/

#include"stdio.h"

#include"stdlib.h"

#include"time.h"

voidmain()

{inta,i;

srand((unsigned)time(NULL));

for(i=0;i<100;i++){

a=10+rand()%90;

printf("%d\t",a);

if(i%10==9)printf("\n");

}

getch();

}

练习

任务1(P301):

求以下列函数的值。

 

注:

1)当输入自变量x的值后,求出对应的函数y的值,将x和y的值显示出来;2)输入的x值大于等于0时的y值与x值小于0时的y值,计算方法是不一样的。

任务2(P302):

编一程序,从键盘输入3个整数,显示输出较大的一个。

注:

程序涉及到1)变量的定义;2)数据的输入;3)数据之间的大小关系的判断;4)判断结果的显示。

任务3(P303):

从键盘上输入一整数,判断它的奇偶性。

如果输入的是奇数,则在屏幕上输出“ODD”,如果输入的是偶数,则在屏幕上输出“EVEN”。

任务5(P304):

输入三个实数a,b,c(满足a≠0),解一元二次方程ax2+bx+c=0。

a当b2-4ac>0时,方程有两个不等的实根;

a当b2-4ac=0时,方程有两个相等的实根;

a当b2-4ac<0时,方程有一对共轭复根;

注:

编程时1)要对输入的参数a判断,如果a=0时,显示“Invalida!

”,然后结束程序;2)要对方程的根的判断式进行判断,并进行相应的计算,给出相应的显示结果。

任务6(P305):

判断一个年份是否闰年。

答案

/***************************************************

p301

****************************************************/

#include"stdio.h"

voidmain()

{intX,Y;

printf("Pleaseinputaninteger:

");

scanf("%d",&X);

if(X<0)

Y=2*X-1;

else

Y=3*X-1;

printf("Y\n%d",Y);

getch();

}

/***************************************************

p302

****************************************************/

#include"stdio.h"

voidmain()

{inta,b,c,Max;

printf("Pleaseinputthreeinteger:

");

scanf("%d%d%d",&a,&b,&c);

if(a>b&&b>c)/*a>b>c是错误的表达方式*/

Max=a;

else

{if(b>c&&b>a)

Max=b;

else

Max=c;}

printf("Max\n%d",Max);

getch();

}

/***************************************************

p303

****************************************************/

#include"stdio.h"

voidmain()

{intx;

printf("Pleaseenteranumber:

");

scanf("%d",&x);

if(x%2==0)

printf("\nEVEN");

else

printf("\nODD");

getch();

}

/***************************************************

p304

****************************************************/

#include"stdio.h"

#include"math.h"

voidmain()

{inta,b,c;

floatx1,x2;

printf("pleaseenter3numbers");

scanf("%d%d%d",&a,&b,&c);

if(a==0)

printf("Invalida!

");

else

{if(b*b-4*a*c>0)

{x1=(-b+sqrt(b*b-4*a*c))/(2*a);

x2=(-b-sqrt(b*b-4*a*c))/(2*a);

printf("%f%f",x1,x2);}

elseif(b*b-4*a*c==0)

{x2=x1=(-b+sqrt(b*b-4*a*c))/(2*a);

printf("%f%f",x1,x2);}

else

printf("Norealrootexist");}

getch();

}

/***************************************************

p305

****************************************************/

#include"stdio.h"

#include"conio.h"

voidmain()

{inty;

printf("pleaseenterayear:

");

scanf("%d",&y);

if(y%4==0&&y%100!

=0||400)

printf("\ntheyearisrunnian");

else

printf("\ntheyearisnotpinnian");

getch();

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1