C语言练习题山东科技大学吐血整理知识讲解.docx
《C语言练习题山东科技大学吐血整理知识讲解.docx》由会员分享,可在线阅读,更多相关《C语言练习题山东科技大学吐血整理知识讲解.docx(51页珍藏版)》请在冰豆网上搜索。
C语言练习题山东科技大学吐血整理知识讲解
C语言练习题(山东科技大学吐血整理)
数学11-1C语言平时训练题
1、算术基本运算
Description
计算两整数x和y(0Input
输入只有一行。
Output
输出为多行,按顺序每行输出x,y的和、差、积、商、余数、x的平方和y的三次方。
SampleInput
x=11,y=3
SampleOutput
x+y:
14
x-y:
8
x*y:
33
x/yquotient:
3,remainder:
2
x^2:
121
y^3:
27
Answer
#include
intmain()
{
intx,y,a,b,c,d,e,f,g;
0scanf("x=%d,y=%d",&x,&y);
a=x+y;
b=x-y;
c=x*y;
d=x/y;
e=x%y;
f=x*x;
g=y*y*y;
printf("x+y:
%d\n",a);
printf("x-y:
%d\n",b);
printf("x*y:
%d\n",c);
printf("x/yquotient:
%d,remainder:
%d\n",d,e);
printf("x^2:
%d\n",f);
printf("y^3:
%d\n",g);
return0;
}
2、求圆的面积和周长
Description
从键盘输入圆的半径,求圆的面积和周长,圆周率取3.14。
Input
输入一个浮点型数据,有效数字不会超过十进制的6位。
Output
输出为两行。
第一行为圆的面积,第二行为圆的周长,格式见sample。
SampleInput
3
SampleOutput
Area:
28.260000
Perimeter:
18.840000
Answer
#include
#definePI3.14
intmain()
{
floatr,s,c;
scanf("%f",&r);
s=PI*r*r;
c=2*PI*r;
printf("Area:
%f\n",s);
printf("Perimeter:
%f\n",c);
return0;
}
3、平均值
Description
求3个数的平均值。
Input
输入只有一行,为3个较小的整数。
Output
输出为这3个整数的平均值,保留3位小数。
SampleInput
123
SampleOutput
2.000
Answer
#include
intmain()
{
inta,b,c;
floatd;
scanf("%d%d%d",&a,&b,&c);
d=(a+b+c)/3.0;
printf("%.3f\n",d);
return0;
}
4、货币兑换
Description
给出人民币对美元、欧元、日元的当日汇率,求给定金额的人民币能兑换成外币的金额,求给定金额的外币能兑换成人民币的金额。
要计算的外币有三种:
美元、欧元、日元。
Input
输入有三行。
第一行依次为美元、欧元、日元外币汇率,用空格分开。
汇率用100外币为单位,精确到小数点后4位,如668.5200表示“100美元=668.5200人民币”。
汇率浮动范围为(0,10000)。
第二行为外币金额x,第三行为人民币金额y。
x,y均为整数,且0Output
输出为两行。
第一行为金额为x的美元、欧元、日元兑换成人民币的金额,用空格分开。
第二行为金额为y的人民币兑换成美元、欧元、日元的金额,用空格分开。
所有金额精确到小数点后两位。
SampleInput
668.5200908.06857.9852
1500
1500
SampleOutput
10027.8013621.03119.78
224.38165.1918784.75
Answer
#include
intmain()
{
doublex,y,a,b,c,d,e,f,g,h,i;
scanf("%lf%lf%lf",&a,&b,&c);
scanf("%lf",&x);
scanf("%lf",&y);
d=x/100*a;
e=x/100*b;
f=x/100*c;
g=y/a*100;
h=y/b*100;
i=y/c*100;
printf("%.2lf%.2lf%.2lf\n",d,e,f);
printf("%.2lf%.2lf%.2lf\n",g,h,i);
return0;
}
5、求字符的值
Description
从键盘输入3个字符(不含双字节字符),分别输出每个字符的十进制值(ASCII码)、八进制值和十六进制值。
Input
输入为3个字符。
Output
输出为3行。
每一行为每个字符(对应输入顺序)的十进制、八进制和十六进制值,用空格分隔开。
每个输出的值占3个字符,不足3个字符前面补0。
SampleInput
0A
SampleOutput
048060030
032040020
065101041
Answer
#include
intmain()
{
chara,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);
return0;
}
6、奇数还是偶数?
Description
输入一个整数,判读它是奇数还是偶数。
Input
输入只有一行,为一个100以内的正整数。
Output
输出为一行。
若输入为偶数则输出“even”,奇数输出“odd”。
SampleInput
30
SampleOutput
even
Answer
#include
intmain()
{
inta;
scanf("%d",&a);
if(a>=0&&a<=100)
{
if(a%2==0)
printf("even\n");
else
printf("odd\n");
}
else
printf("error");
return0;
}
7、绝对值
Description
求整型数据和浮点型数据的绝对值。
Input
输入两个数,第一个是整数,第二个是浮点数。
Output
输出为两行,第一行为整数的绝对值,第二行为浮点数的绝对值,注意浮点数的绝对值不输出无意义的0。
SampleInput
-1
1
SampleOutput
1
1
Answer
#include
#include
#include
intmain()
{
inta,c;
doubleb,d;
scanf("%d\n%lf",&a,&b);
c=abs(a);
d=fabs(b);
printf("%d\n%g",c,d);
return0;
}
8、简单的打折计算
Description
商店规定:
消费满n元,可以打八八折。
设某件商品标价m元,输入购买的件数x,计算出需要支付的金额(单位:
元),精确到分。
Input
输入只有一行,三个整数m、n和x,且0Output
输出金额,精确到分。
SampleInput
953004
SampleOutput
334.40
Answer
#include
intmain()
{
intm,x,n,a;
floatb;
scanf("%d%d%d",&m,&n,&x);
0xma=m*x;
if(a>n)
b=0.88*a;
else
b=a;
printf("%.2f\n",b);
return0;
}
9、判断闰年
Description
输入一个正整数的年份,判断是否为闰年。
Input
输入只有一行,为一个10000以内的正整数。
Output
输出为一行。
若输入为闰年偶数则输出“Yes”,否则输出“No”。
SampleInput
2010
SampleOutput
No
答案
#include
intmain()
{
inta;
scanf("%d",&a);
if(a>0&&a<10000)
{
if(a%4==0&&a%100!
=0)
printf("Yes\n");
elseif(a%400==0)
printf("Yes\n");
else
printf("No\n");
}
else
printf("error");
return0;
}
10、水仙花数
Description
如果一个三位十进制数等于其各位数字的立方和,则称这个数为水仙花数。
如:
13+53+33=153。
Input
一个整数x,100<=x<=999。
Output
x是水仙花数,则输出“YES”,否则为“NO”。
SampleInput
153
SampleOutput
YES
Answer
#include
intmain()
{
inta,b,c,d,e;
scanf("%d",&a);
b=a/100;
c=(a-b*100)/10;
d=(a-b*100-c*10);
e=b*b*b+c*c*c+d*d*d;
if(a==e)
printf("YES\n");
else
printf("NO\n");
return0;
}
11、三个数比较大小
Description
从键盘上输入0~100之间的三个数,按从小到大的顺序输出。
Input
输入只有一行,为三个整数。
Output
按从小到大输出这三个数。
SampleInput
151020
SampleOutput
101520
Answer
#include
intmain()
{
inta,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a>=b)
{
if(b>=c)
printf("%d%d%d\n",c,b,a);
elseif(a>c)
printf("%d%d%d\n",b,c,a);
else