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!311nn

#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);