C语言作业题解析.doc
文本预览下载声明
1005货币兑换
Description
给出人民币对美元、欧元、日元的当日汇率,求给定金额的人民币能兑换成外币的金额,求给定金额的外币能兑换成人民币的金额。要计算的外币有三种:美元、欧元、日元。
Input
输入有三行。第一行依次为美元、欧元、日元外币汇率,用空格分开。汇率用100外币为单位,精确到小数点后4位,如668.5200表示“100美元=668.5200人民币”。汇率浮动范围为(0,10000)。第二行为外币金额x,第三行为人民币金额y。x,y均为整数,且0x,y10000。
Output
输出为两行。第一行是金额为x的美元、欧元、日元兑换成人民币的金额,用空格分开。第二行是金额为y的人民币兑换成美元、欧元、日元的金额,用空格分开。所有金额精确到小数点后两位。
Sample Input
668.5200 908.0685 7.9852 1500 1500
Sample Output
10027.80 13621.03 119.78 224.38 165.19 18784.75
HINT
了解浮点数据类型的精确度和输出控制。
#include stdio.h
int main()
{
double a,b,c;
double x;
double y;
scanf (%lf%lf%lf,a,b,c);
scanf (%lf,x);
scanf (%lf,y);
printf (%.2lf %.2lf %.2lf\n,x*0.01*a,x*0.01*b,x*0.01*c);
printf (%.2lf %.2lf %.2lf\n,y/a*100,y/b*100,y/c*100);
return 0;
}
1006求字符的值
Description
从键盘输入3个字符(不含双字节字符),分别输出每个字符的十进制值(ASCII码)、八进制值和十六进制值。
Input
输入为3个字符。
Output
输出为3行。每一行为每个字符(对应输入顺序)的十进制、八进制和十六进制值,用空格分隔开。每个输出的值占3个字符,不足3个字符前面补0。
Sample Input
0 A
Sample Output
048 060 030
032 040 020
065 101 041
HINT
了解字符值的存储和整型的关系。
#include stdio.h
int main()
{
char a,b,c;
scanf (%c%c%c,a,b,c);
printf(%.3d %.3o %.3x\n,a,a,a);
printf(%.3d %.3o %.3x\n,b,b,b);
printf(%.3d %.3o %.3x\n,c,c,c);
return 0;
}
1007奇数还是偶数?
Description
输入一个整数,判读它是奇数还是偶数。
Input
输入只有一行,为一个100以内的正整数。
Output
输出为一行。若输入为偶数则输出“even”,奇数输出“odd”。
Sample Input
30
Sample Output
even
HINT
用整数运算可以解决,练习“?:”表达式。
法1:
#include stdio.h
int main()
{
int a;
(0a)(a100);
scanf (%d,a);
if(a%2==0)
printf (even\n);
else
printf (odd\n);
return 0;
}
法2:
#include stdio.h
#include stdlib.h
int main()
{
int a;
scanf(%d,a);
if(a100a0)
return a%2==0?printf(even\n):printf(odd\n);
}
1008绝对值
Description
求整型数据和浮点型数据的绝对值。
Input
输入两个数,第一个是整数,第二个是浮点数。
Output
输出为两行,第一行为整数的绝对值,第二行为浮点数的绝对值,注意浮点数的绝对值不输出无意义的0。
Sample Input
-1 1
Sample Output
1 1
HINT
求绝对值可以用标准库函数来完成,也可以自己判断。注意浮点数的输出格式。求绝对值的函数在哪个头文件?貌似很多人会搞错,包括很多编书的人!
#include stdio.h
#include math.h
#include stdlib.h
int main()
{
int a,b;
double c,d;
scanf(%d,a);
b=abs(a);
scanf(%lf,c);
d=fabs(
显示全部