[4] 第三次上机作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3次上机作业 选择结构
3.1 显示两级成绩
程序填空,不要改变与输入输出有关的语句。
输入一个学生的数学成绩,如果它低于60,输出“Fail”,否则,输出“Pass”。
输入
60
输出
Pass
【1】#include
void main()
{
int mark;
scanf("%d",&mark);
if(mark<60)
printf("Fail\n");
else
printf("Pass\n");
}
3.2 找最小值
程序填空,不要改变与输入输出有关的语句。
输入四个整数,输出其中的最小值。
输入
12 6 1 90
输出
min is 1
【2】#include
void main()
{
int a,b,c,d,min;
scanf("%d%d%d%d",&a,&b,&c,&d);
min=a;
if(belse if(celse if(dprintf("min is %d\n",min);
}
3.3 求三角形的面积和周长
程序填空,不要改变与输入输出有关的语句。
输入三角形的三条边a, b, c,如果能构成一个三角形,输出面积area 和周长perimeter(保
留2 位小数);否则,输出“These sides do not correspond to a valid triangle”。
在一个三角形中,任意两边之和大于第三边。
三角形的面积计算公式:
aere*area = s(s-a)(s-b)(s-c)
其中:s = (a+b+c)/2

输入
5 5 3
输出
area=7.15; perimeter=13.00
【3】#include
#include
void main()
{
float a,b,c,area,perimeter,s;
scanf("%f%f%f",&a,&b,&c);
s=(a+b+c)/2.0;
if((a+b>c)&&(b+c>a)&&(c+a>b))
{
area=sqrt(s*(s-a)*(s-b)*(s-c));
perimeter=a+b+c;
printf("area=%.2f;perimeter=%.2f\n",area,perimeter);
}
else
printf("These sides do not correspond to a valid triangle.\n");
}
3.4 判断数的符号
程序填空,不要改变与输入输出有关的语句。
输入整数x,若x 大于0,y=1;若x 等于0,y=0;否则,y=-1,最后输出y。

输入
2
输出
1
【4】#include
void main()
{
int x,y;
scanf("%d",&x);
if(x>0) y=1;
else if(x=0【应为x==0】) y=0;
else y=-1;
printf("%d\n",y);
}
3.5 计算个人所得税
输入一个职工的月薪salary,输出应交的个人所得税tax(保留2 位小数)。
tax = rate * (salary-850)
当 salary <= 850 时,rate = 0;
当 850 < salary <= 1350 时,rate = 5;
当 1350 < salary <= 2850 时,rate = 10;
当 2850 < salary <= 5850 时,rate = 15;
当 5850 < salary 时,rate = 20;

输入
1010.87
输出
tax=8.04
【5】#include
void main()
{
float rate,salary,tax;
scanf("%f",&salary);
if(salary<=850) rate=0;
else if(salary<=1350) rate=5;
else if(salary<=2850) rate=10;
else if(salary<=5850) rate=15;
else rate=20;
rate=rate/100;
tax=rate*(salary-850);
printf("tax=%0.2f\n",tax);
}
3.6 显示水果的价格
程序填空,不要改变与输入输出有关的语句。
以下4 种水果的单价分别是3.00 元/公斤,2.50 元/公斤,4.10 元/公斤,10.20 元/公斤。
[1] apples
[2] pears
[3] oranges
[4] grapes
输入水果的编号,输出该水果的单价(保留2 位小数)

。如果输入不正确的编号,显示单价为
0。
输入
3
输出
price=4.10

【6】#include
void main()
{
int choice;
float price;
printf("[1] apples\n");
printf("[2] pears\n");
printf("[3] oranges\n");
printf("[4] grapes\n");
scanf("%d",&choice);
switch(choice)
{
case 1:price=3.00;break;
case 2:price=2.50;break;
case 3:price=4.10;break;
case 4:price=10.20;break;
default:price=0;break;
}
printf("price=%0.2f\n",price);
}
3.7 字母转换
程序填空,不要改变与输入输出有关的语句。
输入一个字符,如果它是大写字母,输出相应的小写字母;如果它是小写字母,输出相应的
大写字母;否则,原样输出。
输入
3
输出
3
【7】#include
void main()
{
char ch;
ch=getchar();
if(ch>=65&&ch<=90)
ch=ch+32;
else if(ch>=90&&ch<=122)
ch=ch-32;
else;
putchar(ch);
putchar('\n');
}
3.8 判定三角形
编写程序。实现根据用户输入的三角形的三条边长判定是何种三角形。
不要改变程序中的其他部分,完成程序。

请完成下面的程序。
【8】#include
void main()
{
float a,b,c;
printf("输入三角形的三条边a,b,c:");
scanf("%f%f%f",&a,&b,&c);
if ((a+b>c)&&(b+c>a)&&(c+a>b))
{
if(a==b&&a==c)
printf("等边三角形\n");
else if(a==b||b==c||c==a)
printf("等腰三角形\n");
else if((a*a+b*b==c*c)||(b*b+c*c==a*a)||(c*c+a*a==b*b))
printf("直角三角形\n");
else
printf("一般三角形\n");
}
else
printf("不能组成三角形\n");
}
【8】(下面为简单改进后的程序,综合考虑到“等腰直角三角形”情况。但由于若出现“等腰直角三角形”,斜边长必为直角边的根号二倍,边长中必有无理数的存在,而输入的数是浮点数,并不可能为一个无理数,所以该程序无太大可行性,只是全面考虑下的一种设计。)
#include
void main()
{
float a,b,c;
printf("输入三角形的三条边a,b,c:");
scanf("%f%f%f",&a,&b,&c);
if ((a+b>c)&&(b+c>a)&&(c+a>b))
{
if(a==b&&a==c)
printf("等边三角形\n");
else
{
if(a==b||b==c||c==a)
{
if((a*a+b*b==c*c)||(b*b+c*c==a*a)||(c*c+a*a==b*b))
printf("等腰直角三角形\n");
else printf("等腰三角形\n");
}
else if((a*a+b*b==c*c)||(b*b+c*c==a*a)||(c*c+a*a==b*b))
printf("直角三角形\n");
else printf("一般三角形\n");
}
}
else
printf("不能组成三角形\n");
}
3.9 显示当前月份的最后一天
编写一个程序输入年月,输出该月的最后一天。
不要改变程序中的其他部分,完成程序。

【9】#include
void main()
{
int year,month,lastday;
printf("Please enter year and month:");
scanf("%d%d",&year,&month);
switch(month)
{
case 2:
if(year%4==0)【这一部分的判断可以更简化一些。可以参见教材P108的内容,

用一个逻辑表达式包含所有的条件。】
{
if(year%100==0)
{
if(year%400==0) lastday=29;
else lastday=28;
}
else lastday=29;
}
else
lastday=28;break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
lastday=31;break;
case 4:
case 6:
case 9:
case 11:
lastday=30;break;
}
printf("%d %d %d\n",year,month,lastday);
}
3.10身高预测
每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后的身高与其父母的身高和自身的性别密切相关。
设faHeight为其父身高,moHeight为其母身高,身高预测公式为:
男性成人时身高 = (faHeight + moHeight) * 0.54(cm)
女性成人时身高 = (faHeight * 0.923 + moHeight) / 2(cm)
此外,如果喜爱体育锻炼,那么可增加身高2%,如果有良好的卫生饮食习惯,那么可增加身高1.5%。
编程从键盘输入你的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示喜爱,输入字符N表示不喜爱),利用给定公式和身高预测方法对你的身高进行预测。
不要改变程序中的其他部分,将下面的程序补充完整。
【10】#include
void main()
{
char sex;
char sports;
char diet;
float myHeight;
float faHeight;
float moHeight;
printf("Are you a boy(M) or a girl(F)?");
scanf("%1s",&sex);
printf("Please input your father's height(cm):");
scanf("%f",&faHeight);
printf("Please input your mother's height(cm):");
scanf("%f",&moHeight);
printf("Do you like sports(Y/N)?");
scanf("%1s",&sports);
printf("Do you have a good habit of diet(Y/N)?");
scanf("%1s",&diet);
if (sex=='M')
{
myHeight=(faHeight+moHeight)*0.54;
if(sports=='Y') myHeight=myHeight*(1+0.02);
if(diet=='Y') myHeight=myHeight*(1+0.015);
}
else
{
myHeight=(faHeight*0.923+moHeight)/2;
if(sports=='Y') myHeight=myHeight*(1+0.02);
if(diet=='Y') myHeight=myHeight*(1+0.015);
}
printf("Your future height will be %f(cm)\n", myHeight);
}

相关文档
最新文档