C程序设计第三版习题答案10章 谭浩强著Word文档下载推荐.docx
《C程序设计第三版习题答案10章 谭浩强著Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C程序设计第三版习题答案10章 谭浩强著Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
![C程序设计第三版习题答案10章 谭浩强著Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-1/23/84f872c4-61db-4375-bb0a-b3df14096805/84f872c4-61db-4375-bb0a-b3df140968051.gif)
,str1,str2,str3);
}
charswap(p1,p2)
char*p1,*p2;
{char*p[20];
strcpy(p,p1);
strcpy(p1,p2);
strcpy(p2,p);
10.3
{intnumber[10];
input(number);
max_min_value(number);
output(number);
input(number)
intnumber[10];
{inti;
for(i=0;
i<
10;
i++)
%d"
number[i]);
max_min_value(number)
{int*max,*min;
int*p,*end;
end=number+10;
max=min=number;
for(p=number+1;
p<
end;
p++)
if(*p>
*max)max=p;
elseif(*p<
*min)min=p;
*p=number[0];
number[0]=*min;
*min=*p;
*p=number[9];
number[9]=*max;
*max=*p;
return;
output(number)
{int*p;
for(p=number;
number+9;
%d,"
*p);
%d\n"
10.4
{intnumber[20],n,m,i;
n);
m);
n:
move(number,n,m);
n;
%8d"
number[i]);
move(array,n,m)
intarray[20],n,m;
{int*p,end;
end=*(array+n-1);
for(p=array+n-1;
p>
array;
p--)
*p=*(p-1);
*array=end;
m--;
if(m>
0)move(array,n,m);
10.5
#definenmax50
{inti,k,m,n,num[nmax],*p;
p=num;
*(p+i)=i+1;
i=k=m=0;
while(m<
n-1)
{if(*(p+i)!
=0)k++;
if(k==3)
{*(p+i)=0;
k=0;
m++;
i++;
if(i==n)i=0;
while(*p==0)p++;
10.6
{intlen;
char*str[20];
str);
len=length(str);
\nlen=%d\n"
len);
length(p)
char*p;
{intn=0;
while(*p!
='
\0'
)
{n++;
p++;
return(n);
10.7
{intm;
char*str1[20],*str2[20];
if(strlen(str1)<
m)
error"
);
else
{copystr(str1,str2,m);
copystr(p1,p2,m)
intm;
while(n<
m-1)
p1++;
while(*p1!
{*p2=*p1;
p1++;
p2++;
*p2='
;
10.8
#include"
stdio.h"
{intcle=0,sle=0,di=0,wsp=0,ot=0,i;
char*p,s[20];
20;
i++)s[i]=0;
i=0;
while((s[i]=getchar())!
\n'
)i++;
p=s;
{if(*p>
a'
&
*p<
z'
++sle;
elseif(*p>
A'
Z'
++cle;
elseif(*p=='
'
++wsp;
0'
9'
++di;
++ot;
p++;
sle=%d,cle=%d,wsp=%d,di=%d,ot=%d\n"
sle,cle,wsp,di,ot);
10.9
{inta[3][3],*p,i;
3;
%d,%d,%d"
a[i][0],a[i][1],a[i][2]);
p=a;
move(p);
move(pointer)
int*pointer;
{inti,j,t;
2;
for(j=i+1;
j<
j++)
{t=*(pointer+3*i+j);
*(pointer+3*i+j)=*(pointer+3*j+i);
*(pointer+3*j+i)=t;
10.10
{inta[5][5],*p,i,j;
5;
for(j=0;
a[i][j]);
change(p);
{printf("
\n"
a[i][j]);
change(p)
int*p;
{inti,j,change;
int*pmax,*pmin;
pmax=p;
pmin=p;
{if(*pmax<
*(p+5*i+j))pmax=p+5*i+j;
if(*pmin>
*(p+5*i+j))pmin=p+5*i+j;
change=*(p+12);
*(p+12)=*pmax;
*pmax=change;
change=*p;
*p=*pmin;
*pmin=change;
pmin=p+1;
if(((p+5*i+j)!
=p)&
(*pmin>
*(p+5*i+j)))pmin=p+5*i+j;
change=*(p+4);
*(p+4)=*pmin;
=(p+4))&
((p+5*i+j)!
*(p+5*i+j)))
pmin=p+5*i+j;
change=*(p+20);
*(p+20)=*pmin;
=(p+20))
&
change=*(p+24);
*(p+24)=*pmin;
10.11
char*p,str[10][10];
str[i]);
p=str;
sort(p);
%s\n"
sort(p)
{inti,j;
chars[10],*smax,*smin;
{smax=p+10*i;
{smin=p+10*j;
if(strcmp(smax,smin)>
0)
{strcpy(s,smin);
strcpy(smin,smax);
strcpy(smax,s);
10.12
#defineMAX20
char*pstr[10],str[10][MAX];
pstr[i]=str[i];
pstr[i]);
sort(pstr);
sort(pstr)
char*pstr[10];
{for(j=i+1;
{if(strcmp(*(pstr+i),*(pstr+j))>
{p=*(pstr+i);
*(pstr+i)=*(pstr+j);
*(pstr+j)=p;
10.13
math.h"
{intn=20;
floata,b,a1,b1,a2,b2,c,(*p)(),jiff();
%f,%f"
a,&
b);
a1,&
b1);
a2,&
b2);
p=sin;
c=jiff(a,b,n,p);
sin=%f\n"
c);
p=cos;
c=jiff(a1,b1,n,p);
cos=%f\n"
p=exp;
c=jiff(a2,b2,n,p);
exp=%f\n"
floatjiff(a,b,n,p)
floata,b,(*p)();
intn;
floatx,f,h,area;
h=(b-a)/n;
x=a;
area=0;
for(i=1;
=n;
{x=x+h;
area=area+(*p)(x)*h;
return(area);
10.14
{inti,n,num[20];
num[i]);
sort(p,n);
num[i]);
sort(p,m)
charchange,*p1,*p2;
m/2;
{p1=p+i;
p2=p+(m-1-i);
change=*p1;
*p1=*p2;
*p2=change;
10.15
{inti,j,*pnum,num[4];
floatscore[4][5],aver[4],*psco,*pave;
charcourse[5][10],*pcou;
pcou=course[0];
pcou+10*i);
number"
%s"
psco=score;
pnum=num;
4;
{scanf("
pnum+i);
%f"
psco+5*i+j);
pave=aver;
avsco(psco,pave);
avcour1(pcou,psco);
fali2(pcou,pnum,psco,pave);
good(pcou,pnum,psco,pave);
avsco(psco,pave)
float*psco,*pave;
floatsum,average;
{sum=0;
j+)
sum+=(*(psco+5*i+j));
average=sum/5;
*(pave+i)=average;
avcour1(pcou,psco)
char*pcou;
float*psco;
floatsum,average1;
sum=0;
sum+=(*(psco+5*i))
average1=sum/4;
%s%5.2f\n"
pcou,average1);
fali2(pcou,pnum,psco,pave)
int*pnum;
{inti,j,k,label;
\nnumber\n"
%-8s"
\naverage\n"
{label=0;
if(*(psco+5*i+j)<
60.0)label++;
if(label>
=2)
%-8d"
*(pnum+i));
for(k=0;
k<
k++)
%-8.2f"
*(psco+5*i+k));
*(pave+i));
good(pcou,pnum,psco,pave)
average"
if(*(psco+5*i+j)>
=85.0)label++;
if((label>
=5)||(*(pave+i)>
=90))
10.16
{charstr[50],*pstr;
inti,j,k,m,e10,digit,ndigit,a[10],*pa;
gets(str);
pstr=str;
pa=a;
ndigit=0;
i=j=0;
while(*(pstr+i)!
{if((*(pstr+i)>
)&
(*(pstr+i)<
))
j++;
else
{if(j>
{digit=*(pstr+i-1)-48;
k=1;
while(k<
j)
{e10=1;
for(m=1;
m<
=k;
m++)
e10=e10*10;
digit+=(*(pstr+i-1-k)-48)*e10;
k++;
*pa=digit;
ndigit++;
pa++;
j=0;
if(j>
}
ndigit=%d\n"
ndigit);
ndigit;
*(pa+j));
10.17
charstr1[20],str2[20],*p1,*p2;
p1=str1;
p2=str2;
m=strcmp(p1,p2);
m);
strcmp(p1,p2)
{inti=0;
while(*(p1+i)==*(p2+i))
if(*(p+i++)=='
)return(0);
return(*(p1+i)-*(p2+i));
10.18
{staticchar*mname[13]={"
illeagl"
"
January"
February"
March"
"
April"
May"
June"
July"
August"
September"
October"
November"
December"
};
if((n>
=1)&
(n<
=12))
*(mname+n));
10.20
char**p,*pstr[5],str[5][10];
p=pstr;
char**P;
char*pchange;
{if(strcmp(*(p+i),*(p+j))>
{pchange=*(p+i);
*(p+i)=*(p+j);
*(p+j)=pchange;
10.21
{inti,n,digit[20],**p,*pstr[20];
pstr[i]=&
digit[i];
%d"
*pstr[i]);
sort(p,n)
int**p,n;
{inti,j,*pchange;
{if(**(p+i)>
**(p+j))