课后习题10.docx

上传人:b****2 文档编号:3580378 上传时间:2023-05-06 格式:DOCX 页数:16 大小:16.93KB
下载 相关 举报
课后习题10.docx_第1页
第1页 / 共16页
课后习题10.docx_第2页
第2页 / 共16页
课后习题10.docx_第3页
第3页 / 共16页
课后习题10.docx_第4页
第4页 / 共16页
课后习题10.docx_第5页
第5页 / 共16页
课后习题10.docx_第6页
第6页 / 共16页
课后习题10.docx_第7页
第7页 / 共16页
课后习题10.docx_第8页
第8页 / 共16页
课后习题10.docx_第9页
第9页 / 共16页
课后习题10.docx_第10页
第10页 / 共16页
课后习题10.docx_第11页
第11页 / 共16页
课后习题10.docx_第12页
第12页 / 共16页
课后习题10.docx_第13页
第13页 / 共16页
课后习题10.docx_第14页
第14页 / 共16页
课后习题10.docx_第15页
第15页 / 共16页
课后习题10.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

课后习题10.docx

《课后习题10.docx》由会员分享,可在线阅读,更多相关《课后习题10.docx(16页珍藏版)》请在冰点文库上搜索。

课后习题10.docx

课后习题10

10.1

main()

{intn1,n2,n3;

 int*p1,*p2,*p3;

 scanf("%d,%d,%d",&n1,&n2,&n3);

 p1=&n1;

 p2=&n2;

 p3=&n3;

 if(n1>n2)swap(p1,p2);

 if(n1>n3)swap(p1,p3);

 if(n2>n3)swap(p2,p3);

 printf("%d,%d,%d\n",n1,n2,n3);

}

swap(p1,p2)

int*p1,*p2;

{intp;

 p=*p1;*p1=*p2;*p2=p;

}

10.2

main()

{char*str1[20],*str2[20],*str3[20];

 charswap();

 scanf("%s",str1);

 scanf("%s",str2);

 scanf("%s",str3);

 if(strcmp(str1,str2)>0)swap(str1,str2);

 if(strcmp(str1,str3)>0)swap(str1,str3);

 if(strcmp(str2,str3)>0)swap(str2,str3);

 printf("%s\n%s\n%s\n",str1,str2,str3);

}

charswap(p1,p2)

char*p1,*p2;

{char*p[20];

 strcpy(p,p1);

 strcpy(p1,p2);

 strcpy(p2,p);

}

10.3

main()

{intnumber[10];

 input(number);

 max_min_value(number);

 output(number);

 }

input(number)

intnumber[10];

{inti;

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

  scanf("%d",&number[i]);

}

max_min_value(number)

intnumber[10];

{int*max,*min;

 int*p,*end;

 end=number+10;

 max=min=number;

 for(p=number+1;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)

intnumber[10];

{int*p;

 for(p=number;p

  printf("%d,",*p);

 printf("%d\n",*p);

}

10.4

main()

{intnumber[20],n,m,i;

 scanf("%d",&n);

 scanf("%d",&m);

 for(i=0;i

i++)

  scanf("%d",&number[i]);

 move(number,n,m);

 for(i=0;i

  printf("%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

main()

{inti,k,m,n,num[nmax],*p;

 scanf("%d",&n);

 p=num;

 for(i=0;i

  *(p+i)=i+1;

 i=k=m=0;

 while(m

  {if(*(p+i)!

=0)k++;

   if(k==3)

     {*(p+i)=0;

      k=0;

      m++;

     }

   i++;

   if(i==n)i=0;

   }

 while(*p==0)p++;

 printf("%d",*p);

}

10.6

main()

{intlen;

 char*str[20];

 scanf("%s",str);

 len=length(str);

 printf("\nlen=%d\n",len);

}

length(p)

char*p;

{intn=0;

 while(*p!

='\0')

  {n++;p++;}

 return(n);

}

10.7

main()

{intm;

 char*str1[20],*str2[20];

 scanf("%s",str1);

 scanf("%d",&m);

 if(strlen(str1)

  printf("error");

 else

  {copystr(str1,str2,m);

   printf("%s",str2);

  }

}

copystr(p1,p2,m)

char*p1,*p2;

intm;

{intn=0;

 while(n

  {n++;p1++;}

 while(*p1!

='\0')

  {*p2=*p1;

   p1++;

   p2++;

  }

 *p2='\0';

}

10.8

#include"stdio.h"

main()

{intcle=0,sle=0,di=0,wsp=0,ot=0,i;

 char*p,s[20];

 for(i=0;i<20;i++)s[i]=0;

 i=0;

 while((s[i]=getchar())!

='\n')i++;

 p=s;

 while(*p!

='\n')

  {if(*p>='a'&&*p<='z')

     ++sle;

   elseif(*p>='A'&&*p<='Z')

     ++cle;

   elseif(*p=='')

     ++wsp;

   elseif(*p>='0'&&*p<='9')

     ++di;

   else

     ++ot;

   p++;

  }

 printf("sle=%d,cle=%d,wsp=%d,di=%d,ot=%d\n",sle,cle,wsp,di,ot);

}

10.9

main()

{inta[3][3],*p,i;

 for(i=0;i<3;i++)

  scanf("%d,%d,%d",a[i][0],a[i][1],a[i][2]);

 p=a;

 move(p);

 for(i=0;i<3;i++)

  printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);

}

move(pointer)

int*pointer;

{inti,j,t;

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

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

  {t=*(pointer+3*i+j);

   *(pointer+3*i+j)=*(pointer+3*j+i);

   *(pointer+3*j+i)=t;

  }

}

10.10

main()

{inta[5][5],*p,i,j;

 for(i=0;i<5;i++)

 for(j=0;j<5;j++)

  scanf("%d",&a[i][j]);

 p=a;

 change(p);

 for(i=0;i<5;i++)

  {printf("\n");

   for(j=0;j<5;j++)

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

   }

}

change(p)

int*p;

{inti,j,change;

 int*pmax,*pmin;

 pmax=p;

 pmin=p;

 for(i=0;i<5;i++)

  for(j=0;j<5;j++)

    {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;

 for(i=0;i<5;i++)

  for(j=0;j<5;j++)

    if(((p+5*i+j)!

=p)&&(*pmin>*(p+5*i+j)))pmin=p+5*i+j;

 change=*(p+4);

 *(p+4)=*pmin;

 *pmin=change;

 pmin=p+1;

 for(i=0;i<5;i++)

  for(j=0;j<5;j++)

    if(((p+5*i+j)!

=(p+4))&&((p+5*i+j)!

=p)&&(*pmin>*(p+5*i+j)))

       pmin=p+5*i+j;

 change=*(p+20);

 *(p+20)=*pmin;

 *pmin=change;

 pmin=p+1;

 for(i=0;i<5;i++)

  for(j=0;j<5;j++)

    if(((p+5*i+j)!

=p)&&((p+5*i+j)!

=(p+4))&&((p+5*i+j)!

=(p+20))

           &&(*pmin>*(p+5*i+j)))pmin=p+5*i+j;

 change=*(p+24);

 *(p+24)=*pmin;

 *pmin=change;

}

10.11

main()

{inti;

 char*p,str[10][10];

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

  scanf("%s",str[i]);

 p=str;

 sort(p);

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

  printf("%s\n",str[i]);

}

sort(p)

char*p;

{inti,j;

 chars[10],*smax,*smin;

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

  {smax=p+10*i;

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

     {smin=p+10*j;

      if(strcmp(smax,smin)>0)

        {strcpy(s,smin);

         strcpy(smin,smax);

         strcpy(smax,s);

        }

      }

   }

}

10.12

#defineMAX20

main()

{inti;

 char*pstr[10],str[10][MAX];

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

  pstr[i]=str[i];

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

  scanf("%s",pstr[i]);

 sort(pstr);

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

  printf("%s\n",pstr[i]);

}

sort(pstr)

char*pstr[10];

{inti,j;

 char*p;

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

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

     {if(strcmp(*(pstr+i),*(pstr+j))>0)

        {p=*(pstr+i);

         *(pstr+i)=*(pstr+j);

         *(pstr+j)=p;

         }

      }

   }

}

10.13

#include"math.h"

main()

{intn=20;

 floata,b,a1,b1,a2,b2,c,(*p)(),jiff();

 scanf("%f,%f",&a,&b);

 scanf("%f,%f",&a1,&b1);

 scanf("%f,%f",&a2,&b2);

 p=sin;

 c=jiff(a,b,n,p);

 printf("sin=%f\n",c);

 p=cos;

 c=jiff(a1,b1,n,p);

 printf("cos=%f\n",c);

 p=exp;

 c=jiff(a2,b2,n,p);

 printf("exp=%f\n",c);

}

floatjiff(a,b,n,p)

floata,b,(*p)();

intn;

{inti;

 floatx,f,h,area;

 h=(b-a)/n;

 x=a;

 area=0;

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

  {x=x+h;

   area=area+(*p)(x)*h;

   }

 return(area);

}

10.14

main()

{inti,n,num[20];

 char*p;

 scanf("%d",&n);

 for(i=0;i

  scanf("%d",&num[i]);

 p=num;

 sort(p,n);

 for(i=0;i

  printf("%8d",num[i]);

}

sort(p,m)

char*p;

intm;

{inti;

 charchange,*p1,*p2;

 for(i=0;i

  {p1=p+i;

   p2=p+(m-1-i);

   change=*p1;

   *p1=*p2;

   *p2=change;

   }

}

10.15

main()

{inti,j,*pnum,num[4];

 floatscore[4][5],aver[4],*psco,*pave;

 charcourse[5][10],*pcou;

 pcou=course[0];

 for(i=0;i<5;i++)

  scanf("%s",pcou+10*i);

 printf("number");

 for(i=0;i<5;i++)

  printf(",%s",pcou+10*i);

 printf("\n");

 psco=score;

 pnum=num;

 for(i=0;i<4;i++)

  {scanf("%d",pnum+i);

   for(j=0;j<5;j++)

     scanf(",%f",psco+5*i+j);

  }

 pave=aver;

 printf("\n");

 avsco(psco,pave);

 avcour1(pcou,psco);

 printf("\n");

 fali2(pcou,pnum,psco,pave);

 printf("\n");

 good(pcou,pnum,psco,pave);

}

avsco(psco,pave)

float*psco,*pave;

{inti,j;

 floatsum,average;

 for(i=0;i<4;i++)

  {sum=0;

   for(j=0;j<5;j+)

     sum+=(*(psco+5*i+j));

   average=sum/5;

   *(pave+i)=average;

  }

}

avcour1(pcou,psco)

char*pcou;

float*psco;

{inti;

 floatsum,average1;

 sum=0;

 for(i=0;i<4;i++)

  sum+=(*(psco+5*i))

 average1=sum/4;

 printf("%s     %5.2f\n",pcou,average1);

}

fali2(pcou,pnum,psco,pave)

char*pcou;

int*pnum;

float*psco,*pave;

{inti,j,k,label;

 printf("\nnumber\n");

 for(i=0;i<5;i++)

  printf("%-8s",pcou+10*i);

 printf("\naverage\n");

 for(i=0;i<4;i++)

  {label=0;

   for(j=0;j<5;j++)

     if(*(psco+5*i+j)<60.0)label++;

   if(label>=2)

     {printf("%-8d",*(pnum+i));

      for(k=0;k<5;k++)

        printf("%-8.2f",*(psco+5*i+k));

      printf("%-8.2f",*(pave+i));

     }

   }

}

good(pcou,pnum,psco,pave)

char*pcou;

int*pnum;

float*psco,*pave;

{inti,j,k,label;

 printf("number");

 for(i=0;i<5;i++)

  printf("%-8s",pcou+10*i);

 printf("average");

 for(i=0;i<4;i++)

  {label=0;

   for(j=0;j<5;j++)

     if(*(psco+5*i+j)>=85.0)label++;

   if((label>=5)||(*(pave+i)>=90))

     {printf("%-8d",*(pnum+i));

      for(k=0;k<5;k++)

        printf("%-8.2f",*(psco+5*i+k));

      printf("%-8.2f",*(pave+i));

     }

   }

}

10.16

#include"stdio.h"

main()

{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)!

='\0')

  {if((*(pstr+i)>='0')&&(*(pstr+i)<='9'))

     j++;

   else

     {if(j>0)

        {digit=*(pstr+i-1)-48;

         k=1;

         while(k

           {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;

         }

       }

    i++;

    }

 if(j>0)

  {digit=*(pstr+i-1)-48;

   k=1;

   while(k

     {e10=1;

      for(m=1;m<=k;m++)

         e10=e10*10;

      digit+=(*(pstr+i-1-k)-48)*e10;

      k++;

      }

    *pa=digit;

    ndigit++;

    j=0;

   }   

 printf("ndigit=%d\n",ndigit);

 j=0;

 pa=a;

 for(j=0;j

  printf("%d",*(pa+j));

}

10.17

main()

{intm;

 charstr1[20],str2[20],*p1,*p2;

 scanf("%s",str1);

 scanf("%s",str2);

 p1=str1;

 p2=str2;

 m=strcmp(p1,p2);

 printf("%d\n",m);

}

strcmp(p1,p2)

char*p1,*p2;

{inti=0;

 while(*(p1+i)==*(p2+i))

  if(*(p+i++)=='\0')return(0);

 return(*(p1+i)-*(p2+i));

}

10.18

main()

{staticchar*mname[13]={"illeagl","January","February","March",

  "April","May","June","July","August","September","October",

  "November","December"};

 intn;

 scanf("%d",&n);

 if((n>=1)&&(n<=12))

  printf("%s\n",*(mname+n));

 else

  printf("error");

}

10.20

main()

{inti;

 char**p,*pstr[5],str[5][10];

 for(i=0;i<5;i++)

  pstr[i]=str[i];

 for(i=0;i<5;i++)

  scanf("%s",pstr[i]);

 p=pstr;

 sort(p);

 for(i=0;i<5;i++)

  printf("%s\n",pstr[i]);

}

sort(p)

char**P;

{inti,j;

 char*pchange;

 for(i=0;i<5;i++)

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

     {if(strcmp(*(p+i),*(p+j))>0)

        {pchange=*(p+i);

         *(p+i)=*(p+j

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2