最新C语言编程个人真情奉献答案.docx
《最新C语言编程个人真情奉献答案.docx》由会员分享,可在线阅读,更多相关《最新C语言编程个人真情奉献答案.docx(41页珍藏版)》请在冰豆网上搜索。
最新C语言编程个人真情奉献答案
1.4小明上小学一年级了,老师已经教会了他们进行整数的+、-、*、/、%计算,下面老师开始出题,给出一个简单的算术表达式,请小明给出计算结果。
输入:
接受两个整数,每个整数之间使用空格分隔。
例如输入格式为:
123 444
输出:
分别输出进行+、-、*、/、*之后的运行结果。
#include
#include
intmain()
{
inta,b,c,d,e,f,g;
scanf("%d%d",&a,&b);
g=a+b;
c=a-b;
d=a*b;
e=a/b;
f=a%b;
printf("%d\n",g);
printf("%d\n",c);
printf("%d\n",d);
printf("%d\n",e);
printf("%d\n",f);
return0;}
3.2钟面上的时针和分针之间的夹角总是在0度~359度之间。
举例来说,在十二点的时候两针之间的夹角为0度,而在六点的时候夹角为180度,在三点的时候为90度。
本题要解决的是计算0:
00到12:
00之间任意一个时间的夹角。
输入:
每组测试数据包含两个数字:
第一个数字代表小时(大于等于0小于等于12),第二个数字代表分(在区间[0,59]上)。
输出:
对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。
友情提示:
以表中心到12点的连线为基准,分针每走1分钟是6度,时针与基准的夹角每个小时也是30度,从整点开始,每过1分钟时针再增加0.5度。
提示:
时钟夹角计算公式|5.5m-30h|,h为时针,m为分针。
求浮点型绝对值的函数为fabs,需要包含math.h头文件
#include
#include
#include
intmain()
{
intm,h;
doublea;
scanf("%d%d",&h,&m);
printf("At%d:
%02d",h,m);
a=fabs(5.5*m-30*h);
if(a>180)
a=360-a;
printf("theangleis%.1fdegrees.\n",a);
return0;}
3.3如果已知圆柱的底面半径r,以及高h,则可计算出圆柱的侧面积s=2πrh,体积v=πr2h。
其中π=3.1415926
输入
第一行输入圆柱的底面半径r
第二行输入圆柱的高h
输出
s=<圆柱的侧面积>,v=<圆柱的体积>
要求
1.所有变量都定义为双精度类型
2.结果精确到小数点后两位
#include
#include
#include
#definePI3.1415926
intmain()
{
doubleh,r,s,v;
scanf("%lf%lf",&h,&r);
s=2*PI*r*h;
v=PI*r*r*h;
printf("%6.2lf,v=%6.2lf\n",s,v);
return0;
}
3.4 任意从键盘上输入一个三位正整数,要求正确地分离出它的个位、十位和百位,并分别在屏幕上输出。
比如输入的三位正整数
#include
#include
#include
#definePI3.1415926
intmain()
{
inta,b,c,d;
scanf("%d",&a);
b=a/100;
c=a%100/10;
d=a%100%10;
printf("b=%d,c=%d,d=%d",b,c,d);
return0;
}
3.5已知笼中有头h个,有脚f条,问笼中鸡兔各有多少只?
输入:
头和脚的数目
输出:
兔子和鸡的数目(输出语句为:
printf("rabbit=%d,chicken=%d",rabbit,chicken);)
Sample
输入:
1020
输出:
rabbit=0,chicken=10
#include
#include
#include
#definePI3.1415926
intmain()
{
inth,f,a,b;
scanf("%d%d",&h,&f);
b=f/2-h;
a=h-b;
printf("%d,%d",a,b);
return0;
4.1经常出国旅行的驴友都知道,需要时时了解当地的气温状况,但不少国家采用了不同的温度计量单位:
有些使用华氏温度标准(F),有些使用摄氏温度(C)。
现在,请你根据温度转换公式设计一个温度转换程序,可以进行温度转换。
如果输入摄氏温度,显示转换的华氏温度;如果输入华氏温度,显示转换的摄氏温度。
温度转换的公式为:
F=(C×9/5)+32;C=(F-32)×5/9;式中F--华氏温度,C--摄氏温度。
输入:
第一个数据(1或2)确定转换的类型:
华氏转摄氏
(1);摄氏转华氏
(2);
第二个数据是相应需要转换的温度值。
输出:
相应的转换后的温度值(保留小数点后2位)。
(1法)#include
#include
#include
#definePI3.1415926
intmain()
{
intc;
doubleC,F,a;
scanf("%d%lf",&c,&a);
if(c==1)
{
C=(a-32)*5/9;
printf("%5.2f",C);
}
elseif(c==2)
{
F=(a*9/5)+32;
printf("%5.2f",F);
}
return0;
}
1.
(2)法#include
2.int main()
3.{
4. int a;
5. double f,c;
6. scanf("%d",&a);
7. if(a==1)
8. {
9. scanf("%lf",&f);
10. c=(f-32)*5/9;
11. printf("The Centigrade is %.2f\n",c);
12. }
13.
14. else{
15. scanf("%lf",&c);
16. f=(c*9/5)+32;
17. printf("The Fahrenheit is %.2f\n",f); }
18. return 0;
19.}
有一分段函数,y=f(x)。
当x小于6时,y=x-12;当x大于等于6且小于15时,y=3x-1;当x大于等于15时,y=5x+9.从键盘上输入一个整数x,输出对应的y值。
(1)法#include
#include
#include
#definePI3.1415926
intmain()
{
intx,y;
scanf("%d",&x);
if(x<6)
{
y=x-12;
}
elseif(x>=6&&x<15)
{
y=3*x-1;
}
else
{
y=5*x+9;
}
printf("%d",y);
return0;
}
(2)法#include
#include
#include
#definePI3.1415926
intmain()
{
intx,y;
scanf("%d",&x);
if(x<6)
{
y=x-12;
}
if(x>=6&&x<15)
{
y=3*x-1;
}
if(x>=15)
{
y=5*x+9;
}
printf("%d",y);
return0;
}
4.4输入一个四位数,判断千位、百位、十位和个位数字之和是否为偶数,如果是,输出Yes,如果不是,输出No;如果不是四位数,输出Invaliddata。
#include
#include
intmain()
{
inta,b,c,d,e,f;
scanf("%d",&a);
if(a<999||a>9999)
{printf("involide");}
else
{
b=a/1000;
c=a%1000/100;
d=a%1000%100/10;
e=a%1000%100%10;
f=b+c+d+e;
if(f%2==0)
printf("yes");
if(f%2!
=0)
printf("no");
}
return0;
}
4.5输入三角型的三条边,判断三角形的形状。
假设输入的三边边长均>0。
输入:
三角型的3条边的长度(int型)。
输出:
等边三角形:
equilateraltriangle.
等腰三角形:
isocelestriangle.
不构成三角形:
non-triangle.
一般三角形:
triangle.
1.#include
2.#include
3.
4.int main()
5.{
6. float a,b,c;
7. scanf("%f%f%f",&a,&b,&c);
8. if(a+b9. printf("non-triangle.\n");
10. else if(a==b&&b==c)
11. printf("equilateral triangle.\n");
12. else if(a==b||b==c||a==c)
13. printf("isoceles triangle.\n");
14. else
15. printf("triangle.\n");
16. return 0;
17.}
4.6一年有365天,有的月份有31天,有的有30天,2月份闰年的时候是29天,非闰年的时候是28天。
现在要求从键盘上输入一个年份和月份,输出其对应的天数。
#include
#include
intmain()
{
inta,b,c,d,e,f;
scanf("%d%d",&a,&b);
if(b==1||b==3||b==5||b==7||b==8||b==10||b==12)
{
printf("31");
}
if(b==4||b==6||b==9||b==11)
{
printf("30");
}
if(b==2&&a%4==0&&a%100!
=0||a%400==0)
{printf("29");}
if(b==2&&a%4!
=0||a%100==0)
{
printf("28");
}
return0;
}
4.7你去邮局给朋友寄礼物。
发现邮局对邮寄包裹的费用是这样规定的:
如果包裹长宽高任意一个尺寸超过1米,或重量超过30千克,不予邮寄;对可以邮寄的包裹每件收手续费0.2元,不同重量的邮资按下表计算:
重量(千克)
收费标准(元)
小于10
0.80
大于等于10但不超过20
0.75
大于等于20但不超过30
0.70
编写程序,输入包裹的长、宽、高尺寸和重量,输出所需的邮资(输出结果中包含两位小数即可),超出尺寸或重量的输出"Error”.
#include
#include
intmain()
{intd;
floata,b,c,e,f;
scanf("%f%f%f%d",&a,&b,&c,&d);
if(a>1||b>1||c>1||d>30)
{
printf("error");
}
elseif(d<10)
{
printf("%.2f",e,e=0.8*d+0.2);
}
elseif(d<20&&d>=10)
{
printf("%.2f",e,e=0.75*d+0.2);
}
else
{
printf("%.2f",e,e=0.7*d+0.2);
}
return0;
}
4.9输入用数字(1--7)表示的星期几,输出星期几的英文表示,输入的数字有误,输出单词"Error(回车)"。
提醒:
周一到周日必须都判断,单词拼法Sunday Saturday Friday Thursday Wednesday TuesdayMonday,另外还要对不合法的数据进行判断。
1.#include
2.int main()
3.{
4. int a;
5. scanf("%d",&a);
6. switch(a)
7.{
8. case 1:
printf("Monday\n");break;
9. case 2:
printf("Tuesday\n");break;
10. case 3:
printf("Wednesday\n");break;
11. case 4:
printf("Thursday\n");break;
12. case 5:
printf("Friday\n");break;
13. case 6:
printf("Saturday\n");break;
14. case 7:
printf("Sunday\n");break;
15. default:
printf("Error\n");
16.}
17. return 0;
18.}
4.10我们将字符分为五类:
大写字母、小写字母、数字、控制字符、其他字符。
编写程序,从键盘输入一个字符,输出字符所属的类型:
大写字母时输出capitalletters,小写字母时输出smallletters,数字是输出figures,其他字符时输出others。
#include
intmain()
{
charc;
c=getchar();
if(c>='0'&&c<='9')
printf("figures\n");
elseif(c>='A'&&c<='Z')
printf("capitalletters\n");
elseif(c>='a'&&c<='z')
printf("smallletters\n");
else
printf("others\n");
return0;
}
5.3编写程序,输入n的值,求:
1-1/2+1/3-1/4+1/5-1/6+1/7-...+1/n(保留四位小数)
#include
#include
#include
intmain()
{
intb,c,n;
floatsum=0.0;
scanf("%d",&n);
for(b=1;b<=n;b++)
{
if(b%2==0)
c=-1
;else
c=1;
sum=sum+c*1.0/b;}
printf("%.4f",sum);
return0;
}
5.4有一个分数序列:
...............,输入整数n,求出其前n项的和。
输出语句格式为:
printf("sum=%16.10f\n",s);
#include
intmain()
{
intn,i;
floata=2.0,sum;
intb=1,c;
scanf("%d",&n);
for(i=1;i<=n;i++)//控制第几项;
{
sum+=a/b;
c=b;
b=a;
a=c+b;}
printf("%16.10f",sum);
return0;
}
5.5编写程序,从键盘输入整数n,求e的值.e=1+1/1!
+1/2!
+1/3!
+..+1/n!
注意:
用double型数据计算输出语句:
printf("e=%16.10f\n",e);
#include
intmain()
{
intn;
doublea,b=1,c,d,e=1.0;
scanf("%d",&n);
for(a=1;a<=n;a++)
{
e=e+1.0/(b*a);
b=b*a;
}
printf("%16.10f\n",e);
return0;
}
5.6输入两个正整数m和n,求它们的最大公约数和最小公倍数
比如,输入m和n的值分别为14和21,则最大公约数为7,最小公倍数为42。
#include
#include
intmain()
{
longintm,i,j,k,n;
scanf("%d%d",&m,&n);
if(m<=n)
{
for(i=m;i<=m;i--)
{if(m%i==0&&n%i==0)
break;}
printf("%ld\n",i);
j=m/i*n;
printf("%ld",j);}
else
{
for(i=n;i<=n;i--)
{if(n%i==0&&m%i==0)
break;}
printf("%d\n",i);
j=m/i*n;
printf("%d",j);}
return0;
}
5.7输出所有的水仙花数。
所谓的水仙花数是指一个3位数,其各位数字立方和等于该数本身。
例如153是一水仙花数,因为153=13+53+33
输出语句:
printf("%d\n",n);
#include
intmain()
{
inta,b,c,n=100;
for(n>=100&&n<1000)
{
a=n/100;
b=n%100/10;
c=n%100%10;
if(n==a*a*a+b*b*b+c*c*c)
printf("%d\n",n);
}
return0;
}
5.8一个数如果恰好等于它的因子之和,这个数就称为完数。
例如,6的因子为1,2,3,且6=1+2+3,因此6是完数,从键盘上输入一个正整数,判断其是否为完数。
如果是,则按照如下格式输出。
比如,输入6,则输出Yes,itsfactorsare123;如果输入8,则输出No
#include
intmain()
{
inta,b,c,n,s=0;
scanf("%d",&n);
for(a=1;a{
if(n%a==0)
s=s+a;
}
if(s==n)
{
printf("yes");
for(b=1;b{
if(n%b==0)
printf("%d",b);
}
}
else
{
printf("no");
}
return0;
}
5.9输入两个正整数m和n,求出[m,n]区间的所有素数
#include
intmain()
{
inta,b,c,n,m,s=0;
scanf("%d%d",&m,&n);
if(m{for(a=m;a<=n;a++)
{for(b=2;bif(a%b==0)
break;
if(b==a)
printf("%d",a);
}}
else
{for(a=n;a<=m;a++)
{
for(b=2;bif(a%b==0)//if(a%b!
=0)
//printf("%d",a);
break;//(则输出111111111111.。
。
121212.。
。
1313.。
202020.。
)
if(b==a)
printf("%d",a);//
}}
return0;
}
5.10输入一个数,判断是否为回文数,如果是,输出Yes,否则输出No(121逆序121,即为回文数)
#include
intmain()
{
inta,b,c,n,m,s=0;
scanf("%d",&n);
//for(a=1;a>=1;a++)可用for循环,也可用式子循环。
//此处不可用,因为无需连续运算,故只用式子循环即可。
b=n;
while(b!
=0)//do
//{
//}while(b!
=0);效果一样;
{
a=b%10;
b=b/10;
s=s*10+a;
}
if(s==n)
{
printf("yes");
}
elseif(s!
=n)
{
printf("no");
}
return0;
}
5.11有一只猴子,第一天摘了若干个桃子,当即吃了一半,但还觉得不过瘾,就又多吃了一个。
第2天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃了两个。
以后每天早上都吃了前一天剩下的一半加天数个(例如,第5天吃了前一天剩下的一半加5个)。
到第n天早上再想吃的时候,就只剩下一个桃子了。
输入:
天数n
输出:
第一天的桃子个数,输出语句为printf("The monkey got %d peachs in first day.\n",sum);
Smaple:
Input:
5
Output
The monkey got 114 peachs i