C语言-第四章-控制结构作业解答(一)教学文案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章控制结构作业解答(一)
1、按“体指数”对肥胖程度进行划分:
体指数t = w / h2
(体重w单位为公斤,身高h单位为米)–当t < 18时,为低体重;
–当18 ≤ t < 25时,为正常体重;
–当25 < t < 27时,为超重体重;
–当t ≥ 27时,为肥胖。
编程从键盘输入你的身高h和体重w,根据给定公式计算体指数t,然后判断你的体重属于何种类型。
【程序】
#include
V oid main()
{
float h, w, t;
printf("Please enter h,w:");
scanf("%f, %f", &h, &w);
t = w / (h * h);
if (t < 18)
{
printf("t=%f\tLower weight!\n", t);
}
if (t >= 18 && t < 25)
{
printf("t=%f\tStandard weight!\n", t);
}
if (t >= 25 && t < 27)
{
printf("t=%f\tHigher weight!\n", t);
}
if (t >= 27)
{
printf("t=%f\tToo fat!\n", t);
}
}//main
2、编程设计一个简单的计算器程序,要求根据用户从键盘输入如下形式的表达式:
操作数1 运算符op 操作数2
然后,计算并输出表达式的值
指定的运算符为
加(+)
减(-)
乘(*)
除(/)
【程序】
#include
void main()
{
int data1, data2; /*定义两个操作符*/
char op; /*定义运算符*/
printf("Please enter the expression:");
scanf("%d%c%d", &data1, &op, &data2); /*输入运算表达式*/
switch (op)
{
case '+': /*处理加法*/
printf("%d + %d = %d\n", data1, data2, data1 + data2);
break;
case '-': /*处理减法*/
printf("%d - %d = %d\n", data1, data2, data1 - data2);
break;
case '*': /*处理乘法*/
printf("%d * %d = %d\n", data1, data2, data1 * data2);
break;
case '/': /*处理除法*/
if (0 == data2)
printf("Division by zero!\n");
else
printf("%d/%d = %d\n", data1, data2, data1/data2);
break;
default:
printf("Unknown operator! \n");
}
}
3、键盘输入任一年的公元年号year,编程判断该年是否是闰年。
判断某一年year是否闰年;闰年的条件符合下列二者之一
①能被4整除,但不能被100整除;
②能被100整除。
【程序】
# include
void main()
{
int year,leap; //leap是1时,表示闰年;是0时,不是闰年
scanf(“%d”,&year);
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0) leap=1;
else leap=0;
}
else leap=0;
}
else leap=0;
if (leap==1) printf(“%d is a leap year\n”,year); //是闰年
else printf(“%d is not a leap year\n”,year); //不是闰年
}//main
4、运输公司对用户计算运费。距离(s)越远,每公理运费越低。标准如下:
s<250km 没有折扣
250≤s<500 2%折扣
500≤s<1000 5%折扣
1000≤s<2000 8%折扣
2000≤s<3000 10%折扣
3000≤s 15%折扣
设每公理每吨货物的基本运费为p,货物重为w,距离为s,折费为d,则总运费的f的计算公式为:f=p*w*s*(1-d)
要求程序中输入p、w、s, 用switch语句完成该题。
【程序】
# include
void main()
{
int c,s;
float p,w,d,f;
scanf(%f,%f,%d”,&p,&w,&s);
if(s>=3000)
c=12;
else c=int(s/250);
switch(c)
{
case 0:d=0;break;
case 1:d=2;break;
case 2:
case 3:d=5;break;
case 4:
case 5:
case 6:
case 7: d=8;break;
case 8: