C语言程序设计上机习题与参考答案.docx
《C语言程序设计上机习题与参考答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计上机习题与参考答案.docx(16页珍藏版)》请在冰豆网上搜索。
C语言程序设计上机习题与参考答案
C语言程序设计上机习题与参考答案
C语言程序设计上机习题
1、给出三角形的三边a、b、c,求三角形的面积(应先判断a、b、c三边是否能构成一个三角形)。
2、某幼儿园只收2~6岁的小孩,2~3岁编入小班,4岁编入中班,5~6岁编入大班,编制程序实现每输入一个年龄,输出该编入什么班。
3、编写程序,输入一个整数,判断它能否被3、5、7整除,并根据情况输出下列信息:
(1)能同时被3、5、7整;
(2)能同时被3、5、7中的两个数整除,并输出这两个数;(3)只能被3、5、7中的一个数整除;(4)不能被3、5、7中的任何一个数整除。
4、请列出所有的个位数是6,且能被3整除的两位数。
5、求1~500中能被5整除的数的倒数之和。
6、编写程序,输入某门功课的若干个同学的成绩,以-1作为终值,计算平均成绩并输出。
7、若口袋里放入12个球,3个红球,3个白的,6个黑的,从中任取8个,编写程序,列出所有可能的取法。
8、编写一个程序,求2012!
的末尾有多少个0?
9、一个自然数平方的末几位与该数相同时,称该数为同构数。
例如:
252=625,则25为同构数。
编程求出1~1000中的同构数。
10、输入一个较大的整数,求小于该整数的最大5个素数。
11、求下列数列的近似值:
S=1-1/22+1/33-1/44+…(-1)n/nn.输入精度,当某一项的精度小于该值时停止计算。
floatfun(floatesp)
{}
voidmain()
{floatesp;
scanf(“%f”,&esp);
printf(“%f\n”,fun(esp));}
12、编写一个函数change(intx,intr),将十进制整数x转换成r(113、求1000以内的亲密数对。
亲密数对的定义为:
若整数a的所有因子(不包括本身)之和为b,b的所有因子(不包括b本身)之和为a,且a和b不相等,则称a与b为亲密数对。
intfun(intx)
{}
voidmain()
{intn,a,b;
参考答案
1.
#include
#include
voidmain()
{
floata=3,b=4,c=5,p=0,s=0;
if((a+b>c)&&(a+c>b)&&(b+c>a))
{
p=0.5*(a+b+c);
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("面积是%f\n",s);
}
elseprintf("不能构成三角形\n");
}
2.
#include
#include
voidmain()
{
intage;
printf("请输入年龄:
");
scanf("%d",&age);
if(age>=2&&age<=6)
if(age<=3)
printf("编入小班\n");
else
if(age<=5)
printf("编入中班\n");
else
printf("编入大班\n");
else
printf("您的输入有误!
\n");
}
3.
(1)#include
voidmain()
{
intn;
printf("请输入数n:
\n");
scanf("%d",&n);
if(n%3==0&&n%5==0&&n%7==0)
printf("能同时被3,5,7整除");
}
(2)#include
voidmain()
{
intn;
printf("请输入数n:
\n");
scanf("%d",&n);
if(n%3==0&&n%5==0&&n%7!
=0)printf("能同时被3,5整除\n");
if(n%3==0&&n%5!
=0&&n%7==0)printf("能同时被3,7整除\n");
if(n%3!
=0&&n%5==0&&n%7==0)printf("能同时被5,7整除\n");
}
(3)
#include
voidmain()
{
intn;
printf("请输入数n:
");
scanf("%d",&n);
if(n%3==0&&n%5!
=0&&n%7!
=0)printf("只能被3整除\n");
if(n%3!
=0&&n%5==0&&n%7!
=0)printf("只能被5整除\n");
if(n%3!
=0&&n%5!
=0&&n%7==0)printf("只能被7整除\n");
}
(4)#include
voidmain()
{
intn;
printf("请输入数n:
");
scanf("%d",&n);
if(n%3!
=0&&n%5!
=0&&n%7!
=0)
printf("不能被3、5、7中的任何一个数整除\n");
}
4..
#include
voidmain()
{
inti;
for(i=1;i<100;i++)
{
if(i%10==6&&i%3==0)
printf("%d",i);
}
printf("\n");
}
5.
#include
voidmain()
{
floatsum=0;
for(inti=1;i<=500;i++)
{
if(i%5==0)
sum+=(1.0/i);
}
printf("sum=%f\n",sum);
}
6.
#include
voidmain()
{
intn=0;
floats=0,sum=0;
printf("请输入若干学生成绩(输入-1结束):
");
while(s!
=-1)
{
sum+=s;
scanf("%f",&s);
n++;
}sum=sum/(n-1);
printf("该课程的平均成绩是:
%5.2f\n",sum);
}
7.
#include
voidmain()
{
intRed,White,Black;
intCount=0;
for(Red=0;Red<=3;Red++)
for(White=0;White<=3;White++)
{
Black=8-Red-White;
if(Black>=0&&Black<=6)
printf("%2d.%d个红球,%d个白球,%d个黑球\n",++Count,Red,White,Black);
}
printf("\n共有%d种!
\n\n",Count);
}
8.(这道题目就是看可以分解成多少个5相乘的数)
#include
intmain(){
intresult=0;
for(inti=1;i<=2012;++i)
for(intn=i;n%5==0;n/=5)
++result;
printf("%d\n",result);
return0;
}
9.
#include
voidmain()
{
longi,j,k;
k=10;
for(i=1;i<=1000;i++)
{
if(i==k)
{
k*=10;
}
j=i*i;
if(j%k==i)
{
printf("%ld\t%ld\n",i,j);
}
}
}
10.
#include
voidmain()
{
intn,count=0;
printf("请输入一个整数n:
");
scanf("%d",&n);
for(inti=n;i>=2;i--)
for(intt=2;t*t<=i;t++)
{
if(i%t==0)
break;
else
{
count++;
if(count<=5)
printf("%d\t",i);
break;
}
}
printf("\n");
}
11.
#include
#include
floatfun(floatesp)
{
intn=0;
floats=0;
do{
n++;
s+=pow(-1,n-1)*1.0/pow(n,n);
}while(1.0/pow(n,n)>esp);
returns;
}
voidmain()
{floatesp;
scanf("%f",&esp);
printf("%f\n",fun(esp));
}
12.
#include
voidchange(intx,intr)
{
inta[32],i;
for(i=0;x!
=0;i++)
{
a[i]=x%r;
x/=r;
}
for(i--;i>=0;i--)
printf("%d",a[i]);
printf("\n");
}
voidmain()
{
intx,r;
printf("请输入x和r:
");
scanf("%d%d",&x,&r);
change(x,r);
}
13.
#include
intfun(intx)
{
inty=0;
for(inti=1;i{
if(x%i==0)
y+=i;
}
returny;
}
voidmain()
{
intn,a,b;
for(n=1;n<1000;n++)
{
b=fun(n);
a=fun(b);
if(a!
=b&&a==n)
printf("%d%d\n",a,b);
}
}
14.
#include
intfunc(intn)
{
if(n==1||n==0)
return1;
elsereturn2*func(n-1)+func(n-2);
}
voidmain()
{
printf("%d\n",func(20));
}
15.
#include
#include
longf(chars[])
{longt=0;
for(inti=0;i<10;i++)
{
t+=(s[i]-48)*pow(10,9-i);
}
returnt;
}
voidmain()
{chars[10];
longintres;
gets(s);
res=f(s);
printf("%ld\n",res);
}
16.
#include
intfun(floataa[],intn)
{int