C语言编程个人真情奉献答案

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

C语⾔编程个⼈真情奉献答案
1.4 ⼩明上⼩学⼀年级了,⽼师已经教会了他们进⾏整数的+、-、*、/、% 计算,下⾯⽼师开始出题,给出⼀个简单的算术表达式,请⼩明给出计算结果。

输⼊:
接受两个整数,每个整数之间使⽤空格分隔。

例如输⼊格式为:123 444
输出:
分别输出进⾏+、-、*、/、*之后的运⾏结果。

#include
#include
int main()
{
int a, 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);
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
int main()
{
int m,h;
double a;
scanf("%d%d",&h,&m);
a=fabs(5.5*m-30*h);
if (a>180)
a=360-a;
printf("the angle is %.1f degrees.\n",a);
return 0;}
3.3如果已知圆柱的底⾯半径r ,以及⾼h ,则可计算出圆柱的侧⾯积s=2πrh ,体积v=π r 2 h 。

其中π=3.1415926 输⼊第⼀⾏输⼊圆柱的底⾯半径r
第⼆⾏输⼊圆柱的⾼h
输出
s=< 圆柱的侧⾯积>,v=< 圆柱的体积>
要求
1. 所有变量都定义为双精度类型
2. 结果精确到⼩数点后两位
#include
#include
#include
#define PI 3.1415926
int main()
{
double h,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);
}
3.4 任意从键盘上输⼊⼀个三位正整数,要求正确地分离出它的个位、⼗位和百位,并分别在屏幕上输出。

⽐如输⼊的三位正整数
#include
#include
#include
#define PI 3.1415926
int main()
{
int a,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);
return 0;
}
3.5已知笼中有头h个,有脚f条,问笼中鸡兔各有多少只?
输⼊:头和脚的数⽬
输出:兔⼦和鸡的数⽬(输出语句为:printf("rabbit=%d,chicken=%d",rabbit,chicken);)Sample
输⼊:10 20
输出:
rabbit=0,chicken=10
#include
#include
#define PI 3.1415926
int main()
{
int h,f,a,b;
scanf("%d%d",&h,&f);
b=f/2-h;
a=h-b;
printf("%d,%d",a,b);
return 0;
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
#define PI 3.1415926
int main()
{
double C,F,a;
scanf("%d%lf",&c,&a);
if(c==1)
{
C=(a-32)*5/9;
printf("%5.2f",C);
}
else if (c==2)
{
F=(a*9/5)+32;
printf("%5.2f",F);
}
return 0;
}
有⼀分段函数,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
#define PI 3.1415926 int main()
{
int x,y;
scanf("%d",&x);
if(x<6)
{
y=x-12;
}
else if(x>=6&&x<15) {
y=3*x-1;
}
else
{
y=5*x+9;
}
printf("%d",y); return 0;
}
(2)法#include
#include
#define PI 3.1415926 int main()
{
int x,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);
return 0;
}
4.4输⼊⼀个四位数,判断千位、百位、⼗位和个位数字之和是否为偶数,如果是,输出Yes,如果不是,输出No;如果不是四位数,输出Invalid data。

#include
#include
int main()
int a,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");
}
return 0;
}
4.5输⼊三⾓型的三条边,判断三⾓形的形状。

假设输⼊的三边边长均>0。

三⾓型的3条边的长度(int型)。

等边三⾓形:equilateral triangle.
等腰三⾓形:isoceles triangle.
不构成三⾓形:non-triangle.
4.6⼀年有365天,有的⽉份有31天,有的有30天,2⽉份闰年的时候是29天,⾮闰年的时候是28天。

现在要求从键盘上输⼊⼀个年份和⽉份,输出其对应的天数。

#include
#include
int main()
{
int a,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");
}
return 0;
}
4.7你去邮局给朋友寄礼物。

发现邮局对邮寄包裹的费⽤是这样规定的:如果包裹长宽⾼任意⼀个尺⼨超过1⽶,或重量超过30千克,不予邮寄;对可以邮寄的包裹每件收⼿续费0.2 元,不同重量的邮资按下表计算:
编写程序,输⼊包裹的长、宽、⾼尺⼨和重量,输出所需的邮资(输出结果中包含两位⼩数即可),超出尺⼨或重量的输出"Error” .
#include
#include
int main()
{int d;
float a,b,c,e,f;
scanf("%f%f%f%d",&a,&b,&c,&d);
if(a>1||b>1||c>1||d>30)
{
printf("error");
}
else if(d<10)
{
printf("%.2f",e,e=0.8*d+0.2);
}
else if(d<20&&d>=10)
{
printf("%.2f",e,e=0.75*d+0.2);
}
else
{
printf("%.2f",e,e=0.7*d+0.2);
}
return 0;
}
4.9输⼊⽤数字(1--7)表⽰的星期⼏,输出星期⼏的英⽂表⽰,输⼊的数字有误,输出单词"Error(回车)"。

提醒:周⼀到周⽇必须都判断,单词拼法Sunday Saturday Friday Thursday Wednesday Tuesday Monday,另外还要对不合法的数据进⾏判断。

4.10我们将字符分为五类:⼤写字母、⼩写字母、数字、控制字符、其他字符。

编写程序,从键盘输⼊⼀个字符,输出字符所属的类型:⼤写字母时输出capital letters,⼩写字母时输出small letters,数字是输出figures,其他字符时输出others。

#include
{
char c;
c = getchar ( );
if (c >= '0' && c <= '9')
printf ("figures\n");
else if (c >= 'A' && c <= 'Z')
printf ("capital letters\n");
else if (c >= 'a' && c <= 'z')
printf ("small letters\n");
else
printf ("others\n");
return 0;
}
5.3编写程序,输⼊n的值,求:1-1/2+1/3-1/4+1/5-1/6+1/7-...+1/n (保留四位⼩数) #include
#include
#include
int main()
{
int b,c,n;
float sum=0.0;
scanf("%d",&n);
for(b=1;b<=n;b++)
{
if (b%2==0)
;else
c=1;
sum=sum+c*1.0/b;}
printf("%.4f",sum);
return 0;
}
5.4有⼀个分数序列:...............,输⼊整数n,求出其前n项的和。

输出语句格式为:printf("sum=%1
6.10f\n",s);
#include
int main()
{
int n,i;
float a=2.0,sum;
int b=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);
return 0;
5.5编写程序,从键盘输⼊整数n , 求e 的值. e=1+1/1!+1/2!+1/3!+..+1/n! 注意:⽤double 型数据计算输出语句:printf("e=%1
6.10f\n",e);
#include
int main()
{
double a, 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);
return 0;
}
5.6输⼊两个正整数m和n,求它们的最⼤公约数和最⼩公倍数
⽐如,输⼊m和n的值分别为14和21,则最⼤公约数为7,最⼩公倍数为42。

#include
#include
int main()
{
long int m,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);}
}
5.7输出所有的⽔仙花数。

所谓的⽔仙花数是指⼀个3位数,其各位数字⽴⽅和等于该数本⾝。

例如153是⼀⽔仙花数,因为153=13+53+33
输出语句:printf("%d\n",n);
#include
int main()
{
int a,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);
}
return 0;
}
5.8⼀个数如果恰好等于它的因⼦之和,这个数就称为完数。

例如,6的因⼦为1,2,3,且6=1+2+3,因此6是完数,从键盘上输⼊⼀个正整数,判断其是否为完数。

如果是,则按照如下格式输出。

⽐如,输⼊6,则输出Yes,its factors are 1 2 3;如果输⼊8,则输出No
#include
int main()
{
int a,b,c,n,s=0;
scanf("%d",&n);
for(a=1; a
{
if(n%a==0)
s=s+a;
}
if(s==n)
{
printf("yes") ;
{
if(n%b==0)
printf("%d",b);
}
}
else
{
printf("no");
}
return 0;
}
5.9输⼊两个正整数m和n,求出[m,n]区间的所有素数
#include
int main()
{
int a,b,c,n,m,s=0;
scanf("%d%d",&m,&n);
if(m
{for(a=m; a<=n; a++)
{for(b=2;b
if(a%b==0)
break;
if(b==a)
printf("%d",a);
}}
else
{for(a=n; a<=m; a++)
{
for(b=2;b
if(a%b==0) //if(a%b!=0)
//printf("%d",a);
break; //(则输出111111111111.。

121212.。

1313.。

202020.。

)
if(b==a)
printf("%d",a);//
} }
return 0;
}
5.10输⼊⼀个数,判断是否为回⽂数,如果是,输出Yes,否则输出No(121逆序121,即为回⽂数)
#include
int main()
{
int a,b,c,n,m,s=0;
scanf("%d",&n);
// for(a=1;a>=1;a++)可⽤for循环,也可⽤式⼦循环。

//此处不可⽤,因为⽆需连续运算,故只⽤式⼦循环即可。

b=n;
while(b!=0) //do。

相关文档
最新文档