此练习为本人自己练习完成的答案,答案方法不止一种,仅供参考!!!
练习题列表
1-1 计算分段函数[1] (10 分)1-2 分段函数 (10 分)1-3 打折促销* (10 分)1-4 12-24小时制 (10 分)1-5 分数等级转换 (10 分)1-1 计算分段函数[1] (10 分)
本题目要求计算下列分段函数f(x)的值:
输入格式:
输入在一行中给出实数x。
输出格式:
在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。
输入样例1:
10
输出样例1:
f(10.0) = 0.1
输入样例2:
0
输出样例2:
f(0.0) = 0.0
答案:
#include <stdio.h>int main(){double x,result;scanf ("%lf",&x);if (x==0){result=0;}else{result=1/x;}printf("f(%.1f) = %.1f\n",x,result);return 0;}
1-2 分段函数 (10 分)
根据如下分段函数,输入的x的值,输出对应的y值。
输入格式:
输入x的值。
输出格式:
输出对应的y值,小数点后保留3位小数。
输入样例:
10.5
输出样例:
27.083
答案:
#include <stdio.h>#include <math.h>int main(){double x,y;scanf ("%lf",&x);if (x>6){y=5*(pow(x,2)+4*x-6)/27;}else if (x<=0){y=23*fabs(pow(x,3)+4)/7;}else{y=log(16)/log(3)+x;}printf("%.3f",y);return 0;}
1-3 打折促销* (10 分)
某商场推出打折促销活动:若顾客购物额不满 100 元则不优惠;达到或超过 100 元则九五折优惠;达到或超过 200 元则九折优惠;达到或超过 500 元则八五折优惠;达到或超过 1000 元则八折优惠。请编写程序,根据购物金额计算优惠后的实际付款金额。
输入格式
购物金额
输出格式
付款金额
输入样例1
87.5
输出样例1
87.50
输入样例2
2403.85
输出样例2
1923.08
答案:
#include <stdio.h>int main(){double price,discount,finally;scanf ("%lf",&price);if (price<100){discount=1;}if (price>=100 && price<200){discount=0.95;}if (price>=200 && price<500){discount=0.9;}if (price>=500 && price<1000){discount=0.85;}if (price>=1000){discount=0.8;}finally=price*discount;printf("%.2f",finally);return 0;}
1-4 12-24小时制 (10 分)
编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。
输入格式:
输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。
提示:在scanf的格式字符串中加入:,让scanf来处理这个冒号。
输出格式:
在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。如5:6 PM表示下午5点零6分。注意,在英文的习惯中,中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:0 PM;而0点被认为是第二天的时间,所以是0:0 AM。
输入样例:
21:11
输出样例:
9:11 PM
答案:
#include <stdio.h>int main(){int hour,min;scanf("%d:%d",&hour,&min);if(hour>12){hour=hour-12;printf("%d:%d PM",hour,min);}else if(hour==12){printf("%d:%d PM",hour,min);}else{printf("%d:%d AM",hour,min);}return 0;}
1-5 分数等级转换 (10 分)
从键盘上输入一个学生的成绩(双精度实数),按照如下规则转换成相应的等级输出。 分数在范围[90,100],等级为“优秀”,[75,90) ,等级为“良好”,[60,75),等级为“及格”, [0,60),等级为“不及格”。
输入格式:
输入一个实数。
输出格式:
输出相应汉字等级,最后换行。
输入样例1:
100
输出样例1:
优秀
输入样例2:
90
输出样例2:
优秀
输入样例3:
75
输出样例3:
良好
输入样例4:
60
输出样例4:
及格
输入样例5:
0
输出样例5:
不及格
答案:
#include <stdio.h>int main(){int grade;scanf("%d",&grade);if(grade>=90 && grade<=100){printf("优秀");}if(grade>=75 && grade<90){printf("良好");}if(grade>=60 && grade<75){printf("及格");}if(grade>=0 && grade<60){printf("不及格");}return 0;}