《c语言程序设计教程》林芳易云飞》第四章选择结构例题习题详解.docx
- 文档编号:7922480
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:35
- 大小:22.69KB
《c语言程序设计教程》林芳易云飞》第四章选择结构例题习题详解.docx
《《c语言程序设计教程》林芳易云飞》第四章选择结构例题习题详解.docx》由会员分享,可在线阅读,更多相关《《c语言程序设计教程》林芳易云飞》第四章选择结构例题习题详解.docx(35页珍藏版)》请在冰豆网上搜索。
《c语言程序设计教程》林芳易云飞》第四章选择结构例题习题详解
例123911
/******************用菜单的形式显示功能**********************************************************************
1.求三个数中的最大数
2.闰年判断
3.三角形面积计算
4.简单四则运算
0.退出
*****************************************************************************************/
#include
#include
#include
//函数声明
intmenu_select(void);
voidmax(void);
voidrun_nian(void);
voidsan_jiao_xing(void);
voidsi_ze(void);
//进行main()函数
main()
{
for(;;)
{
switch(menu_select())
{
case1:
max();break;//调用其三个数最大值的函数
case2:
run_nian();break;//调用判断闰年的函数
case3:
san_jiao_xing();break;//调用求三角形面积的函数
case4:
si_ze();break;//调用求简单四则运算的函数
case0:
exit(0);
}
}
}
//*****************************************选择菜单********************************
intmenu_select(void)
{
intn;
printf("\n*****************************************************\n");
printf("*1.求三个数中的最大数\n");
printf("*2.闰年判断\n");
printf("*3.三角形面积,周长计算\n");
printf("*4.简单四则运算\n");
printf("*0.退出\n");
printf("********************************************************\n");
do
{
printf("请选择:
\n");
scanf("%d",&n);
}while(n<0||n>4);
returnn;
}
//*****************************************求三个数的最大值**************************
voidmax(void)
{
inta,b,c;
printf("请输入三个数\n");
scanf("%d%d%d",&a,&b,&c);
if(a>b&&a>c)
printf("最大值为%d",a);
elseif(b>c)
printf("最大值为%d",b);
else
printf("最大值为%d",c);
}
//****************************判断闰年*****************
voidrun_nian(void)
{
longy;
do
{
printf("请输入年份0-9999\n");
scanf("%ld",&y);
if(y<0||y>9999)
printf("error!
\n");
}while(y<0||y>9999);
if(y%4==0&&y%100!
=0||y%400==0)
printf("%ld为闰年\n");
else
printf("%ld为平年\n");
}
//*********************************************求三角形面积///*********************
voidsan_jiao_xing(void)
{
inta,b,c,p,s,l;
loop:
printf("请输入三角形的三条边\n");
scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a&&a>0&&b>0&&c>0)//构成三角形的条件
{
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));//计算面积
l=a+b+c;//计算周长
printf("面积=%d\n周长=%d\n",s,l);
}
else
{
printf("不能够成三角形\n");
gotoloop;
}
}
//*****************************简单的四则运算************************************
voidsi_ze(void)
{
inta,b;
floats;
intmenu_select1(void);
printf("输入要计算的两个数\n");
scanf("%d%d",&a,&b);
for(;;)
{
switch(menu_select1())
{
case1:
printf("%d+%d=%f",a,b,s=a+b);break;
case2:
printf("%d-%d=%f",a,b,s=a-b);break;
case3:
printf("%dx%d=%f",a,b,s=a*b);break;
case4:
printf("%d/%d=%f",a,b,s=a*1.0/b);break;
case0:
return;
}
}
}
//********************************选择四则运算的运算方式*************************************
intmenu_select1(void)
{
intn;
printf("\n**************************************************\n");
printf("*1.+\n");
printf("*2.-\n");
printf("*3.x\n");
printf("*4./\n");
printf("*0.退出\n");
printf("****************************************************\n");
do
{
printf("请选择:
\n");
scanf("%d",&n);
}while(n<0||n>4);
returnn;
}
例4
/**********************************************************************
题目:
按照考试成绩的百分比输出成绩等级,90分以上为A级,80-89为B级,70-79的为C级,60-69为D级
低于60为E级
实践:
狼影
时间:
2012.3.414:
43
××××××××××××××××××××××××××××××××××××××××××××××*/
#include
main()
{
charch;
floatn;
do
{
printf("请输入学分\n");
scanf("%f",&n);
//*****************************************进行判断*******************
if(n>=90)
printf("%g为A级。
\n",n);
elseif(n>=80&&n<90)
printf("%g为B级\n",n);
elseif(n>=70&&n<80)
printf("%g为C级",n);
elseif(n>=60&&n<70)
printf("%g为D级",n);
else
printf("%g为E级",n);
//***********************************************************结束判断***************
printf("继续输入成绩吗?
y\n");
getchar();
ch=getchar();
}while(ch=='y'||ch=='Y');
}
/***********************************************************************
请输入学分
32
32为E级继续输入成绩吗?
y
y
请输入学分
60
60为D级继续输入成绩吗?
y
y
请输入学分
70
70为C级继续输入成绩吗?
y
y
请输入学分
80
80为B级
继续输入成绩吗?
y
y
请输入学分
90
90为A级。
继续输入成绩吗?
y
Pressanykeytocontinue
****************************************************************/
例5
/***************************************************************************
题目:
求分段函数y=f(x)的值,函数如下
y=-xx<0;y=2x-10a<=x<2;y=3x+5x>=2
实践:
狼影
时间:
2012-03-0421:
30
目的:
if****elseif的使用
****************************************************************/
#include
main()
{
floatx;
charch;
do
{
printf("请输入x的值\n");
scanf("%f",&x);
//********************对x值进行判断,并且输出相应的y值*****************************************
if(x<0)
printf("y=%g",-x);
elseif(x>=0&&x<2)
printf("y=%g",2*x-10);
else
printf("y=%g",3*x+5);
//*************************************************************
printf("继续输入数据吗?
y\n");
getchar();
ch=getchar();
}while(ch=='y'||ch=='Y');
}
/*********************输入输出结果*****************************************************
请输入x的值
-1
y=1继续输入数据吗?
y
y
请输入x的值
1
y=-8继续输入数据吗?
y
y
请输入x的值
3
y=14继续输入数据吗?
y
Pressanykeytocontinue
*****************************************************************************/
例6
/******************************************************
题目;输入三个数,求这三个数的最小值;
设计:
狼影
时间:
2012-03-0421:
47
*************************************************************/
#include
//函数声明
floatmin(floata,floatb);
main()
{
floata,b,c;
floatmin1,min2;
printf("请输入三个数\n");
scanf("%f%f%f",&a,&b,&c);
//***********************************求最小值*****************
min1=min(a,b);
min2=min(min1,c);
//***************************************************************
printf("最小值为%g\n",min2);
}
//求最小值的函数
floatmin(floata,floatb)
{
if(a
returna;
else
returnb;
}
/****************输入输出结果**********************************************************
请输入三个数
452
最小值为2
Pressanykeytocontinue
*****************************************************************************/
例7
/*********************************************************************
题目:
模拟简单计算器输入两个数和四则运算,输出计算结果
设计;狼影
时间:
2012-03-0422:
01
********************************************************************/
#include
#include
#if0
//函数声明
intselect(void);
main()
{
floata,b;
for(;;)
{
printf("请输入两个值\n");
scanf("%f%f",&a,&b);
switch(select())
{
case1:
printf("%g+%g=%g\n",a,b,a+b);break;
case2:
printf("%g-%g=%g\n",a,b,a-b);break;
case3:
printf("%gx%g=%g\n",a,b,a*b);break;
case4:
printf("%g/%g=%g\n",a,b,a/b);break;
case0:
exit(0);
}
}
}
//用来选择运算符
intselect(void)
{
intn;
printf("\n***********************************\n");
printf("*1.+\n");
printf("*2.-\n");
printf("*3.x\n");
printf("*4./\n");
printf("*0.退出\n");
printf("************************************\n");
do
{
printf("请选择\n");
scanf("%d",&n);
}while(n<0||n>4);
returnn;
}
#endif
/******************************输入输出结果*************************************
请输入两个值
23
***********************************
*1.+
*2.-
*3.x
*4./
*0.退出
************************************
请选择
2
2-3=-1
请输入两个值
24
***********************************
*1.+
*2.-
*3.x
*4./
*0.退出
************************************
请选择
0
Pressanykeytocontinue
**************************************************************************/
#if1
main()
{
floata,b;
charch,c;
do
{
printf("请输入a运算符b:
\n");
scanf("%f%c%f",&a,&ch,&b);
//************************进行选择计算*************************
switch(ch)
{
case'+':
printf("%g%c%g=%g\n",a,ch,b,a+b);break;
case'-':
printf("%g%c%g=%g\n",a,ch,b,a-b);break;
case'*':
printf("%g%c%g=%g\n",a,ch,b,a*b);break;
case'/':
printf("%g%c%g=%g\n",a,ch,b,a/b);break;
default:
printf("输入错误\n");
}
//****************************************************************
printf("继续输入吗?
y\n");
getchar();
c=getchar();
}while(c=='y'||c=='Y');
}
#endif
/*******************************************************************************
请输入a运算符b:
1+7
1+7=8
继续输入吗?
y
y
请输入a运算符b:
2-7
2-7=-5
继续输入吗?
y
y
请输入a运算符b:
2*8
2*8=16
继续输入吗?
y
y
请输入a运算符b:
8/2
8/2=4
继续输入吗?
y
y
请输入a运算符b:
2&8
输入错误
继续输入吗?
y
Pressanykeytocontinue
**************************************************************/
例8
/*********************************************************************
题目:
输入数字,要求输入1-5数字时显示为英文的星期几,输入是6或7时显示Weekend
设计:
狼影
时间:
2012-03-0422:
47
**********************************************************************/
#include
#include
main()
{
intn;
ints;//s为标志符,当用户输入0值时s被标记为0,结束程序;当输入其他值时,标记为1通过goto继续循环执行
loop:
do//为了保证用户输入合法值
{
printf("请输入星期数1-7安0结束\n");
scanf("%d",&n);
}while(n<0||n>7);
switch(n)//输入值,输出相应的英语星期
{
case1:
printf("Monday\n");s=1;break;
case2:
printf("Tuesday\n");s=1;break;
case3:
printf("Wednesday\n");s=1;break;
case4:
printf("Tursday\n");s=1;break;
case5:
printf("Friday\n");s=1;break;
case6:
case7:
printf("Weekend\n");s=1;break;
case0:
s=0;break;
}
if(s)
gotoloop;
else
exit(0);
}
/********************输入输出结果*******************************************************
请输入星期数1-7安0结束
1
Monday
请输入星期数1-7安0结束
2
Tuesday
请输入星期数1-7安0结束
3
Wednesday
请输入星期数1-7安0结束
4
Tursday
请输入星期数1-7安0结束
5
Friday
请输入星期数1-7安0结束
6
Weekend
请输入星期数1-7安0结束
7
Weekend
请输入星期数1-7安0结束
0
Pressanykeytocontinue
***********************************************************/
例10
/*/********************************************************************************
题目:
求一元二次方程的跟
设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言程序设计教程 语言程序设计 教程 林芳易云飞 第四 选择 结构 例题 习题 详解