/**//**/
}
printf(“min1=%d,min2=%d\n”,min1,min2);
getch();
}
3.补充程序Ccon103.c,使其实现用递归算法求平方根。
求平方根的迭代公式如下:
#include
main()
{doublex,y;
/**//**/
printf(”Pleaseinputx:
\n”);
scanf(”%lf”,&x);
y=mysqrt(x,1.0);
printf(”Thesqrtof%f=%f\n”,x,y);
getch();
}
doublemysqrt(doublea,doublex0)
{doublex1,y;
x1=/**//**/
if(fabs(x1-x0)>0.00001)y=mysqrt(/**//**/);
elsey=x1;
return(y);}
四、编程题(共2小题,每题8分)
1.打开程序cprog101.c,完成其中的fun()函数,该函数的功能是:
根据输入的x和n的值,计算
,将计算结果存入数组元素a[0]中,并将该计算结果的小数部分存入a[1]中。
#include
voidfun(doublea[],doublex,intn)
{/**/
/**/
}
voidmain()
{intn;
doublea[2],x;
printf(”\nPleaseenterx,n:
”);
scanf(”%lf,%d”,&x,&n);
while(x<1.0||x>2.0||x<0||x>15)
{printf(”\nInvaiddata(1.0<=x<=2.0,0”);
scanf(”%lf,%d”,&x,&n);}
fun(a,x,n);
printf(”\nResult:
a[0]=%f,a[1]=%f”,a[0],a[1]);
getch();
}
2.打开程序cprog102.c,完成其中的fun()函数,该函数的功能是:
将已按升序排列好的数组a和已按降序排列好的数组b中的所有元素按降序存入数组c中。
#defineN6
#defineM9
voidfun(inta[],intb[],intc[])
{/**/
/**/
}
main()
{inta[N]={2,5,8,10,18,24},b[M]={96,88,70,36,24,18,11,10,2};
intc[N+M],n;
fun(a,b,c);
printf(”Theresultis:
”);
for(n=0;ngetch();
}
a第一套参考答案:
一、选择题
1.D 2.B 3.A 4.B 5.D
6.B7.A 8.B 9.B 10.B
11.C12.A13.A14.D15.D16.D
17.B18.A19.A20.A
二、改错题
1.j=0;if((str1[i]%2==0)&&(i%2==0))
2.if((i>10)&&(i%3==0))y+=1.0/i;
三、填空题
1.longintfor
2.(float)a/b;(int)
3.p+nmax<*qnum
四、编程题
1.doubley;
y=(1+sin(x)+exp(x))/(1+x);
returny;
2.inti,j,k=0,t;
for(i=0;iif(a[i]>-20){b[k]=c[k]=a[i];k++;}
for(i=0;ifor(j=i+1;jif(c[i]>c[j]){t=c[i];c[i]=c[j];c[j]=t;}
returnk;
第二套参考答案:
一、选择题
1.B 2.A 3.C 4.A 5.D
6.A 7.AC 8.B 9.D 10.A
11.B12.D13.A14.B15.C
16.B17.B18.D19.A20.A
二、改错题
1.inti,j,k;printf(“*”);
2.intfun()if(cock+hen+chicken==100)
三、填空题
1.403(b*10+a)
2.a=0,b=0;n!
=0b++;
3.0num-a
四、编程题
1.doubley;
y=(exp(x)+fabs(x-6))/(x+1.3);
returny;
2.chart[20];
if(strcmp(a,b)>0){strcpy(t,a);strcpy(a,b);strcpy(b,t);}
if(strcmp(a,c)>0){strcpy(t,a);strcpy(a,c);strcpy(c,t);}
if(strcmp(b,c)>0){strcpy(t,b);strcpy(b,c);strcpy(c,t);}
第三套参考答案:
一、选择题
1.C 2.D 3.B 4.A 5.B
6.A 7.A 8.B 9.B 10.C
11.D12.D13.D14.A15.B
16.D17.B18.A19.C20.A
二、改错题
1.charch;switch(ch)
2.chartab[4][2]t[j]=tab[i][1];
三、填空题
1.main()while
2.charstrstr[i]Λ15
3.floataverage(intpa[],intn);pa[k]
四、编程题
1.doubley;
if(x<5)y=exp(x)+0.9;
elseif(x==5)y=12.5;
elsey=((sin(x)-7.8)/(2*x);
returny;
2.inti,j,s=0;
for(i=101;i<=200;i++)
{for(j=2;j
if(i%j==0)break;
if(j>=i)s++;
}
returns;
第四套参考答案:
一、选择题
1.C 2.D 3.C 4.B 5.B
6.D 7.A 8.B 9.B 10.B
11.A12.B13.5+3=614.C15.D
16.117.C18.A19.A20.C
二、改错题
1.inti,len,sum=0;if(str1[i]>=’a’&&str[i]<=’z’)
2.scanf(“%d”,&a[i]);for(i=M-1;i>=0;i--)
三、填空题
1.charelseif
2.m-1a[j]3.floata,floatb,floatca*a
四、编程题
1.if(x>0)return(fabs(x)+3.2)/(sin(x)+2);
elsereturn0;
2.inti,j;
a[0]=a[1]=1;
for(i=2;ia[i]=a[i-1]+a[i-2];
第五套参考答案:
一、选择题
1.B 2.C 3.C 4.AC 5.D
6.A 7.B 8.D 9.B 10.A
11.A12.C13.D14.A15.C
16.B17.C18.C19.B20.D
二、改错题
1. charstr[100];sum++;
2.defineM5if(a[i]%2==0)
三、填空题
1.&xx*x
2.mk=jt
3.floatfmax(floatx,floaty,floatz);n=(y>z)?
y:
z;m=(x>n)?
x:
n;
四、编程题
1.doubley;
if(fabs(x)<700.0)y=sqrt(5.8+fabs(x))/(cos(x)+2.1);
elsey=-1;
returny;
2.该答案错误!
inti,j;
for(i=0;ifor(j=0;j
if(a[i][j]==a[j][i])return1;
elsereturn0;
应改为:
第六套参考答案:
一、选择题
1.D 2.A 3.B 4.C 5.D
6.A 7.A 8.C 9.D 10.D
11.C12.B13.B14.C15.B
16.C17.D18.B19.A20.C
二、改错题
1.for(i=0;i2.Ps1=s1;while(*ps1!
=NULL)
三填空题、
1.j0sum+=a[i][0];
2.intq(left+right)/2
3.floatrsqrt(x*x+y*y)
四、编程题
1.doubley;
if(x<2)y=x;
else
if(x<5&&y>=2)y=3-tan(3.5-x);
elsey=3*log10(x)-11;
returny;
2.charcode;
floatc;
c=(f-32)*5.0/9;
if(c<0)code=’W’;
if(c>=0&&c<25)code=’B’;
if(c>=25&&c<35)code=’0’;
if(c>=35)code=’R’;
returncode;
第七套参考答案:
一、选择题
1.D 2.B 3.A 4.B 5.A
6.C 7.A 8.C 9.B 10.D
11.D12.B13.D14.A15.D
16.A17.D18.B19.B20.B
二、改错题
1.scanf(“%f”,&a[i]);if(a[0]+a[1]>a[2]&&a[1]+a[2]>a[0]&&a[0]+a[2]>a[1])
2.intfun()if(large+middle+small==100)
三、填空题
1.#includereturn(x*x-2*x+6);sin(x)
2.p*=i;p=p*1.0/i;
3.findmax(a,sizeof(a)/sizeof(int))max=*array或max=array[0]
四、编程题
1.doulbey;
if(x<=1600)y=0;
if(x>1600&&x<=2100)y=(x-1600)*0.05;
if(x>2100&&x<=3100)y=(x-1600)*0.1-25;
if(x>3100)y=(x-1600)*0.15-125;
returny;
2.inti,j,s=0,k=0;
for(i=0;ifor(j=0;j
if(a[i][j]<0)continue;
elseif(a[i][j]==0)break;
else{b[k++]=a[i][j];s=s+a[i][j];}
for(i=0;ireturns;
第八套参考答案:
一、选择题
1.C 2.B 3.B 4.B 5.B 6.D 7.C 8.C 9.C 10.C
11.C12.A13.D14.C15.A16.A17.D18.A19.C20.C
二、改错题
1.for(i=100;i<=200;i++)rintf(“%d\n”,i);
2.intswap(intp1,intp2)*p1=*p2;
三、填空题
1.sum=0returnsum;sum(m)
2.kj=strlen(str)-1
3.STUtempps[i].num>ps[i+1].numflag==0
四、编程题
1.doubley;
if(x<0)y=(x+2)*exp(x);
elsey=(x+2)*log(2*x);
returny;
2.char*a[5];
chart[20];
inti,j;
for(i=0;ifor(i=0;ifor(j=i+1;jif(strcmp(a[i],a[j]>0)
{strcpy(t,a[i]);strcpy(a[i],a[j]);strcpy(a[j],t);}
第九套参考答案:
一、选择题
1.C 2.A 3.C 4.B 5.D 6.A 7.C 8.D 9.B 10.A
11.A12.B13.B14.B15.B16.A17.D18.A19.C20.D
二、改错题
1.inta=0,c=0;printf(“totalofoddnumber:
%d\n”,c-101);
2.for(z=0;z
|