实验三 选择结构程序设计
实验学时:
2 学时
实验目的:
1.掌握关系表达式和逻辑表达式的使用。
2. 熟练掌握 if 语句、嵌套的 if 语句和 switch 语句。
3. 掌握 break 语句的作用。
4.掌握使用断点调试程序的方法。
实验条件:
PC 计算机,Windows7 或 Windows10 操作系统,Office2010 及以上版本,
Dev-C++5.11 及以上版本或 Code Blocks16.01 及以上版本。
实验内容
1.程序调试
计算 f(x)的值,输入 x,计算并输出下列分段函数
f(x)的值(保留 1 位小数)。
源程序(有错误):
#include<stdio.h>
int main()
{
double x,y;
printf("Enter x:");
scanf("%lf", x);
if(x!=0) {y=1/x
}
else {
y=0;
}
printf("f(%.2f) = %.1f\n", x,y);
return 0;
}
2.基础编程
(1)身高预测
每个做父母的都关心自己孩子成人后的身高,根据有关生理卫生知识和数理
统计分析表明,影响小孩成人后身高的因素包括遗传、饮食习惯与体育锻炼等。
小孩成人后的身高与其父母身高和自身的性别密切相关。
设 faHeight 为父亲身高,moHeitht 为母亲身高,则身高预测公式为:
男性成人时身高=(faHeight+moHeitht)x0.54cm
女性成人时身高=(faHeight x 0.923+moHeitht)/2 cm
此外,若喜欢体育锻炼,则可增加身高 2%;若有良好的卫生饮食习惯,则
可增加身高 1.5%。
请编程从键盘读入用户的性别(用字符型变量 sex 存储,输入字母 F 表示女
性,输入字符 M 表示男性)、父母身高(用实型变量存储,faHeight 为父亲身高,
moHeitht 为母亲身高)、是否喜爱体育锻炼(用字符型变量 sports 存储,输入字
母 Y 表示喜爱,输入字符 N 表示不喜爱),是否有良好的饮食习惯(用字符型变
量 diet 存储,输入字母 Y 表示良好,输入字符 N 表示不好)等条件,利用给定
的公式和身高预测方法对身高进行预测。
#include<stdio.h>
#include<math.h>
int main()
{
float moHeight,faHeight,myHeight;//定义母亲的身高,父亲的身高,自己的身高
char sex,sports,diet;//定义字符串性别,运动,饮食卫生习惯
printf("你是一个男孩(M)还是一个女孩(F)");
scanf(" %c", &sex);//输入性别
printf("是否喜欢运动,喜欢(Y)不喜欢(N)");
scanf(" %c", &sports);//输入是否喜欢运动
printf("是否有良好的卫生饮食习惯,有(Y),没有(N)");
scanf(" %c", &diet);//输入是否有良好的卫生饮食习惯
printf("父亲身高(cm),母亲身高(cm)");
scanf("%f %f",&faHeight,&moHeight);//输入父亲,母亲的身高
if(sex=='M'||sex=='m')//如果是男生
{
myHeight=(faHeight+moHeight)*0.54;//则有自己的身高为
}
else
{
myHeight=(faHeight+moHeight)/2;//否则自己的身高为
}
if(sports=='Y'||sports=='y')//如果喜欢运动
{
myHeight=(1+0.02)*myHeight;//则身高为
}
if(diet=='Y'||diet=='y')//如果有良好的卫生饮食习惯
{
myHeight=(1+0.015)*myHeight;//则身高为
}
printf("你的预测身高为:%f",myHeight);//输出你的预测身高
return 0;
}
2.体型判断
医务工作者经过广泛的调查和统计分析,根据身高与体重因素给出了以下按
“体指数”进行体型判断的方法:
体指数 t=体重 w/(身高 h)2 (w 单位为千克,h 单位为米)
当 t<18 时,为低体重;
当 t 介于 18 和 25 之间时,为正常体重;
当 t 介于 25 和 27 之间时,为超重体重;
当 t≥27 时,为肥胖分别使用 if 语句和 if-else 语句编程,从键盘输入体重 w 和身高 h,根据给定
的上述公式计算体指数 t,然后判断你的体重属于何种类型。
#include<stdio.h>
#include<math.h>
int main()
{
double t,w,h;//定义 t,w,h
printf("input 体重(kg) 身高(m)");//请输入体重和身高
scanf("%lf %lf",&w,&h);//输入 w,h 的值
t=w/(h*h);//求 t
printf("%lf\n",t);
if(t<18)
{
printf("低体重");
}//如果 t 小于 18 则为低体重
if(18<=t&&t<25)
{
printf("正常体重");
}//如果 t 大于等于 18 小于 25 则为正常体重
if(25<=t&&t<27)
{
printf("超重体重");
}//如果 t 大于等于 25 小于 27 则为超重体重
if(t>=27)
{
printf("肥胖");
}//如果 t 大于等于 27 则为肥胖体重
return 0;
}
#include<stdio.h>
#include<math.h>
int main(){
double t,w,h;//定义 t,w,h 变量
printf("input 体重(kg) 身高(m)"); //请输入体重和身高
scanf("%lf %lf",&w,&h);//输入体重和身高
t=w/(h*h);//用体重和身高计算 t
printf("%lf\n",t);//输出 t 的值
if(t<18)
{
printf("低体重");
}//如果 t 小于 18 则输出低体重
else if(t<25)
{
printf("正常体重");
}//如果 t 小于 25 大于等于 18 则输出正常体重
else if(t<27)
{
printf("超重体重");
} //如果 t 小于 27 大于等于 25 则输出超重体重
else if(t>27)
{
printf("肥胖");
}//如果 t 大于等于 27 则输出肥胖
return 0;//结束指令
}
3.个人所得税计算
假设个人所得税为:税率 x (收入-1600)。请编写程序计算应缴的所得税,
其中税率定义为:
收入不超过 1600 时,税率为 0;
当收入位于(1600, 2500]时,税率为 5%;
当收入位于(2500, 3500]时,税率为 10%;
当收入位于(3500, 4500]时,税率为 15%;
当收入大于 4500 时,税率为 20%。
#include<stdio.h>
#include<math.h>
int main()
{
double x,y,z;//定义税率 x,本金 y,税金 z
scanf("%lf",&y);//输入本金 y
if(y<=1600)
{
z=0;
printf("z=0.00");
}//如果 y 小于等于 1600 则税率为 x
if(1600<y&&y<=2500)
{
z=(y-1600)*0.05;
printf("%.2lf",z);
}//如果 y 大于 1600 且小于等于 2500 则税率为 0.05
if(2500<y&&y<=3500)
{
z=(y-1600)*0.10;
printf("%.2lf",z);
}//如果 y 小于等于 3500 且大于 2500 则税率为 0.10
if(3500<y&&y<=4500)
{
z=(y-1600)*0.15;
printf("%.2lf",z);
}//如果 y 大于 3500 且小于等于 4500 则税率为 0.15
if(y>4500)
{
z=(y-1600)*0.20;
printf("%.2lf",z);
}//如果 y 大于 4500 则税率为 0.20
return 0;
}
反思与总结
掌握关系表达式和逻辑表达式的使用。熟练掌握 if 语句、嵌套的 if 语句和 switch
语句。掌握 break 语句的作用。掌握使用断点调试程序的方法。
注意地址符的使用&