广工anyview79章参考答案.docx
《广工anyview79章参考答案.docx》由会员分享,可在线阅读,更多相关《广工anyview79章参考答案.docx(36页珍藏版)》请在冰豆网上搜索。
广工anyview79章参考答案
广工anyview7-9章参考答案
break;}
}
return1;
}
习题7.030
intf(inti)
/*将偶数i表示为两个素数之和,返回其中较小的素数*/
{
inta,b;
a=3;
for(a;a<=i/2;a++)
{
if((prime(a)==1)&&(prime(b=(i-a))==1))
break;
}
return(a);
}
习题7.050
inti,j;
charmin=str[0];
for(i=1;str[i];i++)
{
if(min>str[i])
{
min=str[i];
j=i;
}
}
for(j;j>0;j--)
{
str[j]=str[j-1];
}
str[0]=min;
习题7.060
inti,j;
chart;
for(j=0;jfor(i=0;i{
t=a[j][i];a[j][i]=a[N-i-1][N-j-1];a[N-i-1][N-j-1]=t;
}
习题7.064
chart;
for(inti=0;ifor(intj=0;j{
t=a[i][j];a[i][j]=a[i+2][j];a[i+2][j]=t;
}
习题7.065
inti,j;
chart;
for(i=0;ifor(j=0;j{
t=a[i][j];a[i][j]=a[i][j+2];a[i][j+2]=t;
}
习题7.067
inti;
chart;
t=a[0][0];//先提取一个值,后面的就可以直接覆盖;
for(i=0;ia[i][0]=a[i+1][0];
for(i=0;ia[N-1][i]=a[N-1][i+1];
for(i=N-1;i>0;i--)
a[i][2]=a[i-1][2];
a[0][2]=a[0][1];
a[0][1]=t;
习题7.068
inti;
chart=a[0][0];
for(i=0;ia[0][i]=a[0][i+1];
for(i=0;ia[i][2]=a[i+1][2];
for(i=0;ia[2][2-i]=a[2][2-i-1];
a[2][0]=a[1][0];
a[1][0]=t;
习题7.072
inti,j;
chart1=a[0][2],t2=a[1][2],t3=a[2][2];
for(i=0;ifor(j=2;j>0;j--)
a[i][j]=a[i][j-1];
a[0][0]=t1;
a[1][0]=t2;
a[2][0]=t3;
习题7.075
inti,j;
chard=a[0][0],b=a[1][0],c=a[2][0];
for(i=0;ifor(j=0;ja[i][j]=a[i][j+1];
a[0][2]=d;a[1][2]=b;a[2][2]=c;
习题7.082
inti,j;
chart1=a[2][0],t2=a[2][1],t3=a[2][2];
for(i=2;i>0;i--)
for(j=0;ja[i][j]=a[i-1][j];
a[0][0]=t1;a[0][1]=t2;a[0][2]=t3;
习题7.085
inti,j;
chart1=a[0][0],t2=a[0][1],t3=a[0][2];
for(i=0;ifor(j=0;ja[i][j]=a[i+1][j];
a[2][0]=t1;a[2][1]=t2;a[2][2]=t3;
习题7.103
intt,r;
if(m{t=m;m=n;n=t;}
while((r=m%n)!
=0)
{
m=n;n=r;
}
returnn;
习题7.105
intt,r,h;
h=m*n;
if(m{t=m;m=n;n=t;}
while((r=m%n)!
=0)
{
m=n;n=r;
}
returnh/n;
习题7.115
intc,a1,a2,b1,b2;
a1=a/10;a2=a%10;
b1=b/10;b2=b%10;
c=a1*1000+b1*100+a2*10+b2;
returnc;
习题7.125
intb;
floatt;
b=r*100;//只保留前三个数
t=b*1.0/100;
if(r-t>=0.005)
t=t+0.01;
returnt;
习题7.135
inta[100],i=1,b=0;
while(n/10!
=0)
{
a[i]=n%10;
n=n/10;
i++;
}
for(i;i>=1;i--)
{
if(i==3)b=b+a[i]*100;
if(i==2)b=b+a[i]*10;
if(i==1)b=b+a[i];
}
returnb;
习题7.175
inti,j,a[1000],b=0;
floats=0.0;
for(i=0,j=1;j{
if(j%3==0&&j%7==0){a[i]=j;i++;}
}
for(i=0;a[i];i++)b+=a[i];
s=sqrt(b);
returns;
习题7.184
floats=0,d=0;
intj=1,i=1;
if(n==1)returns=1.0;
elseif(n>=2)
{
while(i<=n)
{
while(j<=i)
{
d=d+j;
j++;
}
s=s+1/d;
i++;
}
returns;
}
习题7.187
floatd=0,s=0;inti,j=2;
for(i=1;i<=n;i++)
{
d=i*j;
s=s+(1/d);
j++;
}
returns;
习题7.195
intt;
if(minti=1,j=1,k=1;
doublea=1;
doubleb=1;
intc=1;
floats;
for(i=1;i<=m;i++)
a=a*i;
for(j=1;j<=n;j++)
b=b*j;
for(k=1;k<=(m-n);k++)
c=c*k;
s=a/(b*c);
returns;
习题7.205
inta[100],i=2,j=0,s=0;
for(i;i{
if(n%i==0)a[j]=i;
j++;
}
for(j;j>=0;j--)
s+=a[j];
returns;
习题7.255
inti=1,j=1,s=1;
floatn=1.0,t=1.0,si=1.0,sj=1.0;
while(t>=eps)
{si*=i;//si是分子
sj*=(j+2);//分母
t=si/sj;
n+=t;
i++;
j+=2;
}
return(2*n);
习题7.265
inti,j;
j=0;
for(i=0;s[i]!
='\0';i++)
{if(i%2==0)
{
if(s[i]=='8'||s[i]=='6'||s[i]=='4'||s[i]=='2'||s[i]=='0')
{t[j]=s[i];j++;}
}
}
习题7.275
inti,j,k;
charc;
for(i=0;s[i];i++)j++;
for(i=j-1;i>=0;i--){if(s[i]=='*')k++;elsebreak;}
if(k>n)for(i=j-1;i>(j-1-k+n);i--)s[i]='\0';
习题7.315
inti=6,j=0;
for(i;i{
if(i%7==0||i%11==0)
{
a[j]=i;
j++;
}
}
return(j);
习题7.317
inti=1,j=0;
for(i;i<=n;i++)
{
if(i%c==0&&i%d==0)
{
a[j]=i;
j++;
}
}
return(j);
习题7.325
intj=0;
for(j;j<11;j++)
c[j]=0;
inti=0;
for(i;i{
if(0<=a[i]&&a[i]<=9)c[0]++;
if(10<=a[i]&&a[i]<=19)c[1]++;
if(20<=a[i]&&a[i]<=29)c[2]++;
if(30<=a[i]&&a[i]<=39)c[3]++;
if(40<=a[i]&&a[i]<=49)c[4]++;
if(50<=a[i]&&a[i]<=59)c[5]++;
if(60<=a[i]&&a[i]<=69)c[6]++;
if(70<=a[i]&&a[i]<=79)c[7]++;
if(80<=a[i]&&a[i]<=89)c[8]++;
if(90<=a[i]&&a[i]<=99)c[9]++;
if(100<=a[i])c[10]++;
}
习题7.335
inti,j=0;
charb[100];//思路:
提取必要元素到另一个数组中去,再用该数组覆盖原数组
b[j]=a[i];
for(i=1,j=1;a[i]!
='\0';i++)
{
if(a[i]==a[i-1])continue;
b[j]=a[i];
j++;
}
for(i=0;i<=j;i++)
{a[i]=b[i];}
a[j]='\0';
returnj;
习题7.345
inti=0;
intj=0;
for(i;i{
if(s[i]!
=32&&s[i+1]==32)
j++;
}
if(s[i]!
=32)
return(j+1);
elseif(s[i]==32)
returnj;
习题7.355
inti=0,j=0;
for(i;s[i]==42;i++);
for(j;s[i+j]!
=0;j++)
s[j]=s[j+i];
for(j;s[j]!
=0;j++)
s[j]=42;
习题7.513
ints=1;
for(inti=0;is*=a[i];
returns;
习题7.523
ints=0;
for(inti=0;is+=a[i]*a[i];
returns;
习题7.533
inti=0,j;
for(j=1;j<=k;j++)
c[j]=0;
for(i;i{
for(j=1;j<=k;j++)
{
if(v[i]==j){c[j]++;break;}
}
}
习题7.535
inti=0,j,max=0;;
for(j=1;j<=k;j++)
c[j]=0;
for(i;i{
for(j=1;j<=k;j++)
{
if(v[i]==j){c[j]++;break;}
}
}
for(j=1;j<=k;j++)
{
if(max}
returnmax;
习题7.563
inti=0,j,k,t;
while(n)
{
d[i]=n%10;
i++;
n=n/10;
}
returni;
习题7.565
inti=0,a[20],j=0;
while(n)
{
d[i]=n%10;
i++;
n=n/10;
}
for(i-1,j;i-1>=0;i--,j++)
a[j]=d[i-1];
for(i=0;i<=j;i++)
d[i]=a[i];
returnj;
习题7.655
inti=0;
for(i;i<5;i++)
num[i]=0;
i=0;
while(s[i])
{
if(s[i]=='A'||s[i]=='a')num[0]++;
if(s[i]=='E'||s[i]=='e')num[1]++;
if(s[i]=='I'||s[i]=='i')num[2]++;
if(s[i]=='O'||s[i]=='o')num[3]++;
if(s[i]=='U'||s[i]=='u')num[4]++;
i++;
}
习题7.675
inti;
for(i=0;i<5;i++)
p[i]=0;
for(i=0;i{
if(s[i]<60)p[0]++;
if((s[i]>=60)&&(s[i]<=69))p[1]++;
if((s[i]>=70)&&(s[i]<=79))p[2]++;
if((s[i]>=80)&&(s[i]<=89))p[3]++;
if((s[i]>=90)&&(s[i]<=100))p[4]++;
}
习题7.685
inti,j=0,k=0;
for(i=1;i<=m;i++)
if(m%i==0)
{d[j]=i;
j++;
k++;
}
return(n[0]=k);
习题7.755
inti,j,skey=0;
for(j=0;key[j];j++)skey+=key[j]*key[j];
for(i=0;str[i];i++)
{
if(str[i]>='a'&&str[i]<='z')
{
str[i]=(str[i]+skey)%128;
}
}
习题8.011
inti=n-1;
intj=0;
for(i;i>=0;i--)
{
*(t+j)=*(s+i);
j=j+1;
}
习题8.012
intn=strlen(s);
inti=n-1;
intj=0;
for(i;i>=0;i--)
{
*(t+j)=*(s+i);
j=j+1;
}
习题8.015
inti=1,j=1;
chart[10],temp;
for(i;ifor(i=1;ifor(j=1;j{//冒泡排序,由大到小
if(t[j]{
temp=t[j];
t[j]=t[j+1];
t[j+1]=temp;
}
}
for(i=1;is2[i]=t[i];
s2[0]=s1[0];
*(s2+n-1)=*(s1+n-1);
intn=strlen(s1);
inti=1,j=1;
chart[10],temp;
for(i;i习题8.016
for(i=1;ifor(j=1;j{
if(t[j]{
temp=t[j];
t[j]=t[j+1];
t[j+1]=temp;
}
}
for(i=1;is2[i]=t[i];
s2[0]=s1[0];
*(s2+n-1)=*(s1+n-1);
习题8.018
intn=strlen(s);//长度
chara[20],temp;
inti=m,j,k=0;
for(i;ia[i]=s[i];
for(i=m,k;ifor(j=m;j{
if(a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=a[i];
}
}
习题8.020
intt;
for(;*s;s++)
{if(*s==c){t=1;break;}}
if(t==1)returns;
if(t!
=1)returnNULL;
习题8.033
ints[12]={31,28,31,30,31,30,31,31,30,31,30,31},m;
//判断是否闰年
if(year%4==0&&year%100!
=0||year%400==0)s[1]=29;
if(year<1||yearday<1||(s[1]==29&&yearday>366)||(s[1]==28&&yearday>365))return0;
else
{
for(m=0;yearday-s[m]>=0&&m<=10;m++)
yearday-=s[m];
if(yearday==0){m-=1;yearday=s[m];}
*pmonth=m+1;
*pday=yearday;
return1;
}
}
习题8.044
intsum,i;
sum=0;
i=1;
chart;
t=*s;//首元素
for(;*s!
='\0';s++)
{if('0'<=*s&&*s<='9')
{sum=sum*10+(*s-48);
}}
if(t=='-')
{sum=(-1)*sum;}
returnsum;
习题8.105
inti=0,max=0,*p;
p=s;
for(i;i{
if(*p>max)max=*p;
p++;
}
returnmax;
习题8.124
inti=1,min=1000,*p,sum;
p=s[1];
for(i=1;i{//sum=*(p-1)+*p+*(p+1);
sum=s[i-1]+s[i]+s[i+1];
if(min>sum)min=sum;
p++;
}returnmin;
习题8.132
*sum=x+y;
习题8.136
return(*x+*y);
习题8.138
intt;
if(*x>*y)
{
t=*x;
*x=*y;
*y=t;
return1;
}
elsereturn0;
习题8.143
inti=0,j;
for(i;iif(*(a+i)==x){j=1;break;}
if(j==1)return(i+1);
elsereturn0;
习题8.146
inti=0,j=0;
for(i;i{
if(*(a+i)==x)j++;
}
returnj;
习题8.203
inti=0,j=0;
while(s[i]!
=0)
{
if(s[i]!
=32)j++;
i++;
}
returnj;
习题8.212
inti=0,j=0;
while(s[i]!
=0)
{
if(s[i]==c){j=1;break;}
i++;
}
if(j==1)return(i+1);
elsereturn0;
习题8.215
inti=0,j=0;
while(s[i]!
=0)
{
if(s[i]==c)j++;
i++;
}
returnj;
习题8.222
inti=0;
while(s[i]!
=0)
{
t[i]=s[i];
i++;
}
习题8.225
inti=0;
for(i;i{
t[i]=s[i];
}
习题8.228
for(;*s!
='\0';s++);
for(;n>=0;s--,n--)
{*(t+n)=*s;}//一定是指到最后的,不如倒着来赋值
习题8.231
intj;
for(j=0;j{
t[j]=s[i-1];
}
t[j]=0;
习题8.234
inti=0;
while(s[i])
{
if('a'<=s[i]&&s[i]<='z')t[i]=s[i]-32;
elset[i]=s[i];
i++;
}
习题8.237
inti=0;
while(s[i])
{
if('A'<=s[i]&&s[i]<='Z')t[i]=s[i]+32;
elset[i]=s[i];
i++;
}
习题8.243
inti,j=0,flag=1;
for(i=0;s[i];i++,j++)//先找到位置,可能有错
{
if(s[i]==t[0])break;
}
for(intk=0;t[k];k++,i++)
{
if(t[k]!
=s[i])
{
flag=0;
break;
}
}
if(flag==1)returnj+1;
elsereturn0;
习题8.246
inti,c=0,k=0,j=1;inta[100];a[0]=0;
for(i=0;*(s+i)!
='\0';i++,j++)
if((*(s+i)>=65&&*(s+i)<=90)||(*(s+i)>=97&&*(s+i)<=122))
{a[j]=0;
if(a[j]==0&&a[j-1]==1)
{*