C语言课本编程题答案,c语言程序设计课本编程题答案

部分编程答案

书P158

1.

#include

main()

{

char c,a[10]="abcdefg";

int i,top,bot,mid;

printf("input c:\n");

scanf("%c",&c);

printf("c=\'%c\'\n",c);

for(top=0,bot=10;top<=bot;)

{

mid=(top+bot)/2;

if(c==a[mid])

{

printf("The position is %d\n",mid+1);

break;

}

else if(c>a[mid]) top=mid+1;

else bot=mid-1;

}

if(top>bot) printf("**\n");

}

2.

#include

#include

main()

{

int x[21],i,j;

x[1]=0,x[2]=1;

i=3;

do

{

x[i]=x[i-2]+x[i-1];

x[i+1]=(int)fabs((x[i-1]-x[i]));

i=i+2;

}while(i<=20);

for(i=1;i<=20;i++)

{

printf("%6d",x[i]);

if(i%4==0) printf("\n");

}

}

3.

#include

main()

{

int num[20],i=0,d,n,j;

printf("\ninput d:");

scanf("%d",&d);

printf("input n:\n");

scanf("%d",&n);

printf("d=%d,n=%d==>",d,n);

do

{

i++;

num[i]=d%n;

d=d/n;

}while(d!=0);

for(j=i;j>=1;j--)

printf("%d",num[j]);

}

4.

#include

main()

{

int i,n,ns,flag,count,r,rs;

static int a[50];

count=0;

for(i=1;i<700;i++)

{

n=i;

ns=i*i;flag=1;

while(n>0&&flag)

{

r=n%10;n=n/10;

rs=ns%10;ns=ns/10;

if(rs!=r) flag=0;

}

if(flag)

{

a[count]=i;count++;

printf("%5d",i);

}

}

printf("\ncount=%d,max=%d",count,a[count-1]);

}

5.

#include

main()

{

int n;

double f[181],max=0;

f[0]=f[1]=1;

f[2]=0;

for(n=3;n<=50;n++)

{

f[n]=f[n-1]-2*f[n-2]+f[n-3];

if(max

}

printf("\nmax=%.0lf\n",max);

}

6.

#include

main()

{

int a[1001],i,s=0,n=1;

for(i=1;i<=1000;i++) a[i]=i;

a[1]=0;

for(i=1;i<=1000;i++)

{

if(a[i]!=0)

{

s+=1;

if(s==50)

{

n++;

if(n==1000)

{

printf("\na[%d]=%d",i,a[i]);

break;

}

a[i]=0;s=0;

}

}

if(i==1000) i=0;

}

}

7.

#include

main()

{

int a[10][10],i,j,t;

printf("input lines<10:\n");

scanf("%d",&t);

for(i=1;i<=t;i++)

{

for(j=1;j<=i;j++)

{

if((i==j)||(j==1)) a[i][j]=1;

else a[i][j]=a[i-1][j-1]+a[i-1][j];

printf("%5d",a[i][j]);

}

printf("\n");

}

}

8.

#include

int sushu(int n)

{

int flag=1,i;

for(i=2;i<=n/2;i++)

if(n%i==0) {flag=0;break;}

return flag;

}

main()

{

int i,b,max1=0,max2=0,count=0;

for(i=2;i<=299;i++)

{

if(sushu(i))

{

b=i+2;

if(sushu(b))

{

if(i>max1) {max1=i;max2=b;}

count++;

}

}

}

printf("count=%d\nmax1=%4dmax2=%4d\n",count,max1,max2);

}

9.

#include

main()

{

int a[10]={2,4,6,8,10,12,14,16,18,20},b[10]={1,3,5,7,9,11,13,15,17,19},c[20],i,j,t,k;

i=j=t=0;

do

{

if(a[i]

else {c[t]=b[j];t++;j++;}

}while(i<10&&j<10);

if(i<10)

for(k=i;k<10;k++)

{

c[t]=a[k];t++;

}

else

for(k=i;k<10;k++)

{

c[t]=b[k];t++;

}

fo

r(j=0;j<20;j++)

printf("%4d",c[j]);

}

10.

#include

main()

{

int a[10][10],i,j,k=0,m,n;

printf("iput n

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值