c语言部分习题及答案
- 格式:doc
- 大小:43.50 KB
- 文档页数:7
1.求出分段函数:
|x+1| x<0
y= 5x+1 0≤x≤10
5+cos(x) x>10
#include
#include
void main()
{
double x,y;
scanf("%lf",&x);
if(x<0)
y=fabs(x+1);
else if(x<=10)
y=5*x+1;
else y=5+cos(x);
printf("y=%lf\n",y);
}
2.找出200以内最大的能被17整除的数。
#include
void main()
{
int i;
for(i=200;i>0;i--)
if(i%17==0) break;
printf("200以内能被17整除最大数为:%d\n",i);
}
3.输入两个正整数,求它们的最大公约数和最小公倍数。
法一:
#include
void main()
{
int x,y,t,a,i;
scanf("%d,%d",&x,&y);
if(x
t=x;x=y;y=t;
}
for(i=y;i>0;i--)
if(x%i==0&&y%i==0) break;
printf("最大公约数为:%d\n",i);
a=x;i=2;
while(a%y!=0)
{
a=x*i;
i++;
}
printf("最小公倍数为:%d\n",a);
}
求最大公约数:{
int x,y,t,q;
scanf("%d,%d",&x,&y);
if(x
{
t=x;x=y;y=t;
}
do{
q=x%y;
x=y;
y=q;
}while(q!=0);
printf("最大公约数为:%d\n",x);
}
法二:
#include
void main()
{
int a,b,t,x,y;
scanf("%d,%d",&a,&b);
if(a
{
t=a;a=b;b=t;
}
x=a;
while(x%b!=0)
x+=a;
y=a*b/x;
printf("最小公倍数为:%d,最大公约数为:%d\n",x,y);
} 4. 求一分数序列2/1,3/2,5/3,8/5,13/8,21/13…的前n项之和。
#include
void main()
{
int f1,f2,n,i;
double sum1,sum2;
scanf("%d",&n);
sum1=sum2=0;
if(n%2==0)
{
{
f1=0;f2=1;
for(i=1;i<=n/2;i++)
{
f1=f1+f2;
f2=f2+f1;
sum1=sum1+(double)f2/f1;
}
}
{
f1=1;f2=1;
for(i=1;i<=n/2;i++)
{
f1=f1+f2;
f2=f2+f1;
sum2=sum2+(double)f2/f1;
}
}
sum1=sum1+sum2;
}
else
{
{
f1=0;f2=1;
for(i=1;i<=(n+1)/2;i++)
{
f1=f1+f2;
f2=f2+f1;
sum1=sum1+(double)f2/f1;
}
}
{
f1=1;f2=1; for(i=1;i<=(n-1)/2;i++)
{
f1=f1+f2;
f2=f2+f1;
sum2=sum2+(double)f2/f1;
}
}
sum1=sum1+sum2;
}
printf("%lf\n",sum1);
}
5. 编程求 )!12(1)1(!71!51!311nn
#include
#include
int a(int);
void main()
{
int i,n;
double sum;
sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum+pow(-1,i-1)/(double)a(2*i-1);
printf("sum=%lf\n",sum);
}
int a(int x)
{
int i,t=1;
for(i=1;i<=x;i++)
t=t*i;
return(t);
}
6.求出200以内的素数 。
#include
#include
void main()
{
int i,m;
double k;
for(m=1;m<=200;m+=2)
{
k=sqrt((double)m); for(i=2;i<=k;i++)
if(m%i==0) break;
if(i>k)
printf("%5d",m);
}
printf("\n");
}
7. 编写程序,输出如下图形。
*
* *
* * *
* * * *
* * *
* *
*
#include
void main()
{
int i,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=4-i;j++)
printf(" ");
for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
for(i=1;i<=3;i++)
{
for(j=1;j<=i;j++)
printf(" ");
for(j=1;j<=4-i;j++)
printf("*");
printf("\n");
}
}
8. 编写程序生成一个对角线元素为4,上三角元素为0,下三角元素为1的3*3的二维数组。
#include
void main()
{
int i,j,a[3][3];
for(i=0;i<=2;i++)
a[i][i]=4;
for(i=0;i<2;i++)
for(j=i+1;j<3;j++) a[i][j]=0;
for(i=1;i<3;i++)
for(j=0;j
a[i][j]=1;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d",a[i][j]);
printf("\n");
}
}
9.输入一组整数给一个数组a[3][3],编程以矩阵形式输出该数组,并求此矩阵的所有元素之和。
#include
void main()
{
int i,j,a[3][3],sum=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%5d",a[i][j]);
printf("\n");
}
printf("\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
sum+=a[i][j];
printf("%d",sum);
printf("\n");
}
10. 编写一函数求s=1+2+3+。。。n。在主函数中输入n,调用函数求s,输出结果。
#include
int sum(int);
void main()
{
int n,a;
scanf("%d",&n);
a=sum(n);
printf("sum=%d\n",a);