C程序设计第四版谭浩强习题例题第8章.docx
《C程序设计第四版谭浩强习题例题第8章.docx》由会员分享,可在线阅读,更多相关《C程序设计第四版谭浩强习题例题第8章.docx(64页珍藏版)》请在冰豆网上搜索。
C程序设计第四版谭浩强习题例题第8章
第8章
例8.1
#include
intmain()
{
inta=100,b=10;
int*pointer_1,*pointer_2;//可以直接写为int*pointer_1=&a,*pointer_2=&b;
pointer_1=&a;
pointer_2=&b;
printf("a=%d,n=%d\n",a,b);
printf("*pointer_1=%d,*pointer_2=%d\n",pointer_1,pointer_2);
return0;
}
例8.2
int*p1,*p2,*p,a,b;
printf("pleaseentertwointegernumbers:
\n");
scanf("%d,%d",&a,&b);
p1=&a;
p2=&b;
if(a
p=p1;
p1=p2;
p2=p;
}//if{}可换为{p1=&b;p2=&a},p也不用定义了.
printf("a=%d,b=%d\n",a,b);
printf("max=%d,min=%d\n",*p1,*p2);
例8.3
voidswap(int*p1,int*p2);
inta,b;
int*pointer_1,*pointer_2;
printf("pleaseenteraandb:
printf("max=%d,min=%d\n",*pointer_1,*pointer_2);
voidswap(int*p1,int*p2)//必须是定义地址的函数.
inttemp;
temp=*p1;
*p1=*p2;
*p2=temp;//这里不能直接调换p1,p2的地址值.
例8.4
printf("%d,%d\n",a,b);
voidswap(int*p1,int*p2)
int*p;
例8.5
voidexchange(int*q1,int*q2,int*q3);
inta,b,c,*p1,*p2,*p3;
printf("pleaseenterthreeintegernumbers:
scanf("%d,%d,%d",&a,&b,&c);
p3=&c;
exchange(p1,p2,p3);
printf("Theorderis:
%d,%d,%d\n",a,b,c);
voidexchange(int*q1,int*q2,int*q3)
voidswap(int*pt1,int*pt2);
if(*q1<*q2)swap(q1,q2);
if(*q1<*q3)swap(q1,q3);
if(*q2<*q3)swap(q2,q3);
voidswap(int*pt1,int*pt2)
temp=*pt1;
*pt1=*pt2;
*pt2=temp;
例8.6
数组下标法:
inta[10];
inti;
printf("pleaseenter10integernumbers:
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("%d",a[i]);
printf("\n");
数组名指向法
printf("%d",*(a+i));
指针变量法:
int*p,i;
for(p=a;pprintf("%d",*p);printf("\n");return0;}进一步改进:#includeintmain(){inta[10];int*p;printf("pleaseenter10integernumbers:\n");for(p=a;pscanf("%d",p);for(p=a;pprintf("%d",*p);printf("\n");return0;}例8.7#includeintmain(){inta[10],*p,i;p=a;printf("pleaseenter10integernumbers:\n");for(i=0;i<10;i++)scanf("%d",p++);for(i=0;i<10;i++,p++)printf("%d",*p);printf("\n");return0;}#includeintmain(){inta[10],*p,i;p=a;printf("pleaseenter10integernumbers:\n");for(i=0;i<10;i++)scanf("%d",p++);for(i=0,p=a;i<10;i++,p++)printf("%d",*p);//这里可改为for(i=0,p=a;i<10;i++)printf("%d",*p++);printf("\n");return0;}例8.8#includeintmain(){voidinv(intx[],intn);inti,a[10]={3,7,9,11,0,6,7,5,4,2};printf("Theoriginalarray:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");inv(a,10);printf("Thearrayhasbeeninverted:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");return0;}voidinv(intx[],intn){inttemp,i,j,m=(n-1)/2;for(i=0;i<=m;i++){j=n-1-i;temp=x[i];x[i]=x[j];x[j]=temp;}return;}#includeintmain(){voidinv(int*x,intn);inti,a[10]={3,7,9,11,0,6,7,5,4,2};printf("Theoriginalarray:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");inv(a,10);printf("Thearrayhasbeeninverted:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");return0;}voidinv(int*x,intn){int*p,temp,*i,*j,m=(n-1)/2;i=x;j=x+n-1;p=x+m;for(;i<=p;i++,j--){temp=*i;*i=*j;*j=temp;}return;}例8.9#includeintmain(){voidinv(int*x,intn);inti,arr[10],*p=arr;printf("Theoriginalarray:\n");for(i=0;i<10;i++,p++)scanf("%d",p);printf("\n");p=arr;inv(p,10);printf("Thearrayhasbeeninverted:\n");for(p=arr;pprintf("%d",*p);printf("\n");return0;}voidinv(int*x,intn){int*p,m,temp,*i,*j;m=(n-1)/2;i=x;j=x+n-1;p=x+m;for(;i<=p;i++,j--){temp=*i;*i=*j;*j=temp;}return;}例8.10#includeintmain(){voidsort(intx[],intn);inti,*p,a[10];p=a;printf("pleaseenter10integernumbers:\n");for(i=0;i<10;i++)scanf("%d",p++);p=a;sort(p,10);for(p=a,i=0;i<10;i++)printf("%d",*p++);//书中为{printf("%d",*p);p++;}printf("\n");return0;}voidsort(intx[],intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(x[j]>x[k])k=j;if(k!=i){t=x[i];x[i]=x[k];x[k]=t;}}}#includeintmain(){voidsort(int*x,intn);inti,*p,a[10];p=a;printf("pleaseenter10integernumbers:\n");for(i=0;i<10;i++)scanf("%d",p++);p=a;sort(p,10);for(p=a,i=0;i<10;i++)printf("%d",*p++);printf("\n");return0;}voidsort(int*x,intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}例8.11#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};printf("%d,%d\n",a,*a);printf("%d,%d\n",a[0],*(a+0));printf("%d,%d\n",&a[0],&a[0][0]);printf("%d,%d\n",a[1],a+1);printf("%d,%d\n",&a[1][0],*(a+1)+0);printf("%d,%d\n",a[2],*(a+2));printf("%d,%d\n",&a[2],a+2);printf("%d,%d\n",a[1][0],*(*(a+1)+0));printf("%d,%d\n",*a[2],*(*(a+2)+0));return0;}例8.12#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int*p;for(p=a[0];p{if((p-a[0])%4==0)printf("\n");printf("%4d",*p);}printf("\n");return0;}例8.13#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int(*p)[4],i,j;p=a;printf("pleaseenterrowandcolum:");scanf("%d,%d",&i,&j);printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));return0;}#includeintmain(){inta[4]={1,3,5,7};int(*p)[4];p=&a;printf("%d\n",(*p)[3]);return0;}例8.14#includeintmain(){voidaverage(float*p,intn);voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};average(*score,12);search(score,2);return0;}voidaverage(float*p,intn){float*p_end;floatsum=0,aver;p_end=p+n-1;for(;p<=p_end;p++)sum=sum+(*p);aver=sum/n;printf("average=%5.2f\n",aver);}voidsearch(float(*p)[4],intn){inti;printf("ThescoreofNo.%dare:\n",n);for(i=0;i<4;i++)printf("%5.2f",*(*(p+n)+i));printf("\n");}例8.15#includeintmain(){voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,57,70,60},{58,87,90,81},{90,99,100,98}};search(score,3);return0;}voidsearch(float(*p)[4],intn){inti,j,flag;for(j=0;j{flag=0;for(i=0;i<4;i++)if(*(*(p+j)+i)<60)flag=1;if(flag==1){printf("No.%dfails,hisscoresare:\n",j+1);for(i=0;i<4;i++)printf("%5.2f",*(*(p+j)+i));printf("\n");}}}例8.16#includeintmain(){charstring[]="IloveChina";printf("%s\n",string);printf("%c\n",string[7]);return0;}例8.17#includeintmain(){char*string="IloveChina";printf("%s\n",string);return0;}例8.18字符数组#includeintmain(){chara[]="Ianastudent.",b[20];inti;for(i=0;*(a+i)!='\0';i++)*(b+i)=*(a+i);*(b+i)='\0';printf("stringais:%s\n",a);printf("stringbis:");for(i=0;*(b+i)!='\0';i++)printf("%c",b[i]);//这三句可替换为printf("stringbis:%s\n",b);printf("\n");return0;}例8.19指针变量指向字符数组#includeintmain(){chara[]="Ianastudent.",b[20],*p1,*p2;p1=a;p2=b;for(;*p1!='\0';p1++,p2++)*p2=*p1;*p2='\0';printf("stringais:%s\n",a);printf("stringbis:%s\n",b);return0;}例8.20字符数组名做函数参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,b);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";char*from=a,*to=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(from,to);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做形参和实参#includeintmain(){voidcopy_string(char*from,char*to);char*a="Ianateacher.";charb[]="Youareastudent.";char*p=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,p);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(c
printf("%d",*p);
进一步改进:
for(p=a;pscanf("%d",p);for(p=a;pprintf("%d",*p);printf("\n");return0;}例8.7#includeintmain(){inta[10],*p,i;p=a;printf("pleaseenter10integernumbers:\n");for(i=0;i<10;i++)scanf("%d",p++);for(i=0;i<10;i++,p++)printf("%d",*p);printf("\n");return0;}#includeintmain(){inta[10],*p,i;p=a;printf("pleaseenter10integernumbers:\n");for(i=0;i<10;i++)scanf("%d",p++);for(i=0,p=a;i<10;i++,p++)printf("%d",*p);//这里可改为for(i=0,p=a;i<10;i++)printf("%d",*p++);printf("\n");return0;}例8.8#includeintmain(){voidinv(intx[],intn);inti,a[10]={3,7,9,11,0,6,7,5,4,2};printf("Theoriginalarray:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");inv(a,10);printf("Thearrayhasbeeninverted:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");return0;}voidinv(intx[],intn){inttemp,i,j,m=(n-1)/2;for(i=0;i<=m;i++){j=n-1-i;temp=x[i];x[i]=x[j];x[j]=temp;}return;}#includeintmain(){voidinv(int*x,intn);inti,a[10]={3,7,9,11,0,6,7,5,4,2};printf("Theoriginalarray:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");inv(a,10);printf("Thearrayhasbeeninverted:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");return0;}voidinv(int*x,intn){int*p,temp,*i,*j,m=(n-1)/2;i=x;j=x+n-1;p=x+m;for(;i<=p;i++,j--){temp=*i;*i=*j;*j=temp;}return;}例8.9#includeintmain(){voidinv(int*x,intn);inti,arr[10],*p=arr;printf("Theoriginalarray:\n");for(i=0;i<10;i++,p++)scanf("%d",p);printf("\n");p=arr;inv(p,10);printf("Thearrayhasbeeninverted:\n");for(p=arr;pprintf("%d",*p);printf("\n");return0;}voidinv(int*x,intn){int*p,m,temp,*i,*j;m=(n-1)/2;i=x;j=x+n-1;p=x+m;for(;i<=p;i++,j--){temp=*i;*i=*j;*j=temp;}return;}例8.10#includeintmain(){voidsort(intx[],intn);inti,*p,a[10];p=a;printf("pleaseenter10integernumbers:\n");for(i=0;i<10;i++)scanf("%d",p++);p=a;sort(p,10);for(p=a,i=0;i<10;i++)printf("%d",*p++);//书中为{printf("%d",*p);p++;}printf("\n");return0;}voidsort(intx[],intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(x[j]>x[k])k=j;if(k!=i){t=x[i];x[i]=x[k];x[k]=t;}}}#includeintmain(){voidsort(int*x,intn);inti,*p,a[10];p=a;printf("pleaseenter10integernumbers:\n");for(i=0;i<10;i++)scanf("%d",p++);p=a;sort(p,10);for(p=a,i=0;i<10;i++)printf("%d",*p++);printf("\n");return0;}voidsort(int*x,intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}例8.11#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};printf("%d,%d\n",a,*a);printf("%d,%d\n",a[0],*(a+0));printf("%d,%d\n",&a[0],&a[0][0]);printf("%d,%d\n",a[1],a+1);printf("%d,%d\n",&a[1][0],*(a+1)+0);printf("%d,%d\n",a[2],*(a+2));printf("%d,%d\n",&a[2],a+2);printf("%d,%d\n",a[1][0],*(*(a+1)+0));printf("%d,%d\n",*a[2],*(*(a+2)+0));return0;}例8.12#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int*p;for(p=a[0];p{if((p-a[0])%4==0)printf("\n");printf("%4d",*p);}printf("\n");return0;}例8.13#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int(*p)[4],i,j;p=a;printf("pleaseenterrowandcolum:");scanf("%d,%d",&i,&j);printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));return0;}#includeintmain(){inta[4]={1,3,5,7};int(*p)[4];p=&a;printf("%d\n",(*p)[3]);return0;}例8.14#includeintmain(){voidaverage(float*p,intn);voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};average(*score,12);search(score,2);return0;}voidaverage(float*p,intn){float*p_end;floatsum=0,aver;p_end=p+n-1;for(;p<=p_end;p++)sum=sum+(*p);aver=sum/n;printf("average=%5.2f\n",aver);}voidsearch(float(*p)[4],intn){inti;printf("ThescoreofNo.%dare:\n",n);for(i=0;i<4;i++)printf("%5.2f",*(*(p+n)+i));printf("\n");}例8.15#includeintmain(){voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,57,70,60},{58,87,90,81},{90,99,100,98}};search(score,3);return0;}voidsearch(float(*p)[4],intn){inti,j,flag;for(j=0;j{flag=0;for(i=0;i<4;i++)if(*(*(p+j)+i)<60)flag=1;if(flag==1){printf("No.%dfails,hisscoresare:\n",j+1);for(i=0;i<4;i++)printf("%5.2f",*(*(p+j)+i));printf("\n");}}}例8.16#includeintmain(){charstring[]="IloveChina";printf("%s\n",string);printf("%c\n",string[7]);return0;}例8.17#includeintmain(){char*string="IloveChina";printf("%s\n",string);return0;}例8.18字符数组#includeintmain(){chara[]="Ianastudent.",b[20];inti;for(i=0;*(a+i)!='\0';i++)*(b+i)=*(a+i);*(b+i)='\0';printf("stringais:%s\n",a);printf("stringbis:");for(i=0;*(b+i)!='\0';i++)printf("%c",b[i]);//这三句可替换为printf("stringbis:%s\n",b);printf("\n");return0;}例8.19指针变量指向字符数组#includeintmain(){chara[]="Ianastudent.",b[20],*p1,*p2;p1=a;p2=b;for(;*p1!='\0';p1++,p2++)*p2=*p1;*p2='\0';printf("stringais:%s\n",a);printf("stringbis:%s\n",b);return0;}例8.20字符数组名做函数参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,b);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";char*from=a,*to=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(from,to);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做形参和实参#includeintmain(){voidcopy_string(char*from,char*to);char*a="Ianateacher.";charb[]="Youareastudent.";char*p=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,p);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(c
scanf("%d",p);
for(p=a;pprintf("%d",*p);printf("\n");return0;}例8.7#includeintmain(){inta[10],*p,i;p=a;printf("pleaseenter10integernumbers:\n");for(i=0;i<10;i++)scanf("%d",p++);for(i=0;i<10;i++,p++)printf("%d",*p);printf("\n");return0;}#includeintmain(){inta[10],*p,i;p=a;printf("pleaseenter10integernumbers:\n");for(i=0;i<10;i++)scanf("%d",p++);for(i=0,p=a;i<10;i++,p++)printf("%d",*p);//这里可改为for(i=0,p=a;i<10;i++)printf("%d",*p++);printf("\n");return0;}例8.8#includeintmain(){voidinv(intx[],intn);inti,a[10]={3,7,9,11,0,6,7,5,4,2};printf("Theoriginalarray:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");inv(a,10);printf("Thearrayhasbeeninverted:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");return0;}voidinv(intx[],intn){inttemp,i,j,m=(n-1)/2;for(i=0;i<=m;i++){j=n-1-i;temp=x[i];x[i]=x[j];x[j]=temp;}return;}#includeintmain(){voidinv(int*x,intn);inti,a[10]={3,7,9,11,0,6,7,5,4,2};printf("Theoriginalarray:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");inv(a,10);printf("Thearrayhasbeeninverted:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");return0;}voidinv(int*x,intn){int*p,temp,*i,*j,m=(n-1)/2;i=x;j=x+n-1;p=x+m;for(;i<=p;i++,j--){temp=*i;*i=*j;*j=temp;}return;}例8.9#includeintmain(){voidinv(int*x,intn);inti,arr[10],*p=arr;printf("Theoriginalarray:\n");for(i=0;i<10;i++,p++)scanf("%d",p);printf("\n");p=arr;inv(p,10);printf("Thearrayhasbeeninverted:\n");for(p=arr;pprintf("%d",*p);printf("\n");return0;}voidinv(int*x,intn){int*p,m,temp,*i,*j;m=(n-1)/2;i=x;j=x+n-1;p=x+m;for(;i<=p;i++,j--){temp=*i;*i=*j;*j=temp;}return;}例8.10#includeintmain(){voidsort(intx[],intn);inti,*p,a[10];p=a;printf("pleaseenter10integernumbers:\n");for(i=0;i<10;i++)scanf("%d",p++);p=a;sort(p,10);for(p=a,i=0;i<10;i++)printf("%d",*p++);//书中为{printf("%d",*p);p++;}printf("\n");return0;}voidsort(intx[],intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(x[j]>x[k])k=j;if(k!=i){t=x[i];x[i]=x[k];x[k]=t;}}}#includeintmain(){voidsort(int*x,intn);inti,*p,a[10];p=a;printf("pleaseenter10integernumbers:\n");for(i=0;i<10;i++)scanf("%d",p++);p=a;sort(p,10);for(p=a,i=0;i<10;i++)printf("%d",*p++);printf("\n");return0;}voidsort(int*x,intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}例8.11#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};printf("%d,%d\n",a,*a);printf("%d,%d\n",a[0],*(a+0));printf("%d,%d\n",&a[0],&a[0][0]);printf("%d,%d\n",a[1],a+1);printf("%d,%d\n",&a[1][0],*(a+1)+0);printf("%d,%d\n",a[2],*(a+2));printf("%d,%d\n",&a[2],a+2);printf("%d,%d\n",a[1][0],*(*(a+1)+0));printf("%d,%d\n",*a[2],*(*(a+2)+0));return0;}例8.12#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int*p;for(p=a[0];p{if((p-a[0])%4==0)printf("\n");printf("%4d",*p);}printf("\n");return0;}例8.13#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int(*p)[4],i,j;p=a;printf("pleaseenterrowandcolum:");scanf("%d,%d",&i,&j);printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));return0;}#includeintmain(){inta[4]={1,3,5,7};int(*p)[4];p=&a;printf("%d\n",(*p)[3]);return0;}例8.14#includeintmain(){voidaverage(float*p,intn);voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};average(*score,12);search(score,2);return0;}voidaverage(float*p,intn){float*p_end;floatsum=0,aver;p_end=p+n-1;for(;p<=p_end;p++)sum=sum+(*p);aver=sum/n;printf("average=%5.2f\n",aver);}voidsearch(float(*p)[4],intn){inti;printf("ThescoreofNo.%dare:\n",n);for(i=0;i<4;i++)printf("%5.2f",*(*(p+n)+i));printf("\n");}例8.15#includeintmain(){voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,57,70,60},{58,87,90,81},{90,99,100,98}};search(score,3);return0;}voidsearch(float(*p)[4],intn){inti,j,flag;for(j=0;j{flag=0;for(i=0;i<4;i++)if(*(*(p+j)+i)<60)flag=1;if(flag==1){printf("No.%dfails,hisscoresare:\n",j+1);for(i=0;i<4;i++)printf("%5.2f",*(*(p+j)+i));printf("\n");}}}例8.16#includeintmain(){charstring[]="IloveChina";printf("%s\n",string);printf("%c\n",string[7]);return0;}例8.17#includeintmain(){char*string="IloveChina";printf("%s\n",string);return0;}例8.18字符数组#includeintmain(){chara[]="Ianastudent.",b[20];inti;for(i=0;*(a+i)!='\0';i++)*(b+i)=*(a+i);*(b+i)='\0';printf("stringais:%s\n",a);printf("stringbis:");for(i=0;*(b+i)!='\0';i++)printf("%c",b[i]);//这三句可替换为printf("stringbis:%s\n",b);printf("\n");return0;}例8.19指针变量指向字符数组#includeintmain(){chara[]="Ianastudent.",b[20],*p1,*p2;p1=a;p2=b;for(;*p1!='\0';p1++,p2++)*p2=*p1;*p2='\0';printf("stringais:%s\n",a);printf("stringbis:%s\n",b);return0;}例8.20字符数组名做函数参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,b);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";char*from=a,*to=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(from,to);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做形参和实参#includeintmain(){voidcopy_string(char*from,char*to);char*a="Ianateacher.";charb[]="Youareastudent.";char*p=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,p);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(c
例8.7
inta[10],*p,i;
p=a;
scanf("%d",p++);
for(i=0;i<10;i++,p++)
for(i=0,p=a;i<10;i++,p++)
printf("%d",*p);//这里可改为for(i=0,p=a;i<10;i++)printf("%d",*p++);
例8.8
voidinv(intx[],intn);
inti,a[10]={3,7,9,11,0,6,7,5,4,2};
printf("Theoriginalarray:
inv(a,10);
printf("Thearrayhasbeeninverted:
voidinv(intx[],intn)
inttemp,i,j,m=(n-1)/2;
for(i=0;i<=m;i++)
j=n-1-i;
temp=x[i];
x[i]=x[j];
x[j]=temp;
return;
voidinv(int*x,intn);
voidinv(int*x,intn)
int*p,temp,*i,*j,m=(n-1)/2;
i=x;j=x+n-1;p=x+m;
for(;i<=p;i++,j--)
temp=*i;
*i=*j;
*j=temp;
例8.9
inti,arr[10],*p=arr;
p=arr;
inv(p,10);
for(p=arr;pprintf("%d",*p);printf("\n");return0;}voidinv(int*x,intn){int*p,m,temp,*i,*j;m=(n-1)/2;i=x;j=x+n-1;p=x+m;for(;i<=p;i++,j--){temp=*i;*i=*j;*j=temp;}return;}例8.10#includeintmain(){voidsort(intx[],intn);inti,*p,a[10];p=a;printf("pleaseenter10integernumbers:\n");for(i=0;i<10;i++)scanf("%d",p++);p=a;sort(p,10);for(p=a,i=0;i<10;i++)printf("%d",*p++);//书中为{printf("%d",*p);p++;}printf("\n");return0;}voidsort(intx[],intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(x[j]>x[k])k=j;if(k!=i){t=x[i];x[i]=x[k];x[k]=t;}}}#includeintmain(){voidsort(int*x,intn);inti,*p,a[10];p=a;printf("pleaseenter10integernumbers:\n");for(i=0;i<10;i++)scanf("%d",p++);p=a;sort(p,10);for(p=a,i=0;i<10;i++)printf("%d",*p++);printf("\n");return0;}voidsort(int*x,intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}例8.11#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};printf("%d,%d\n",a,*a);printf("%d,%d\n",a[0],*(a+0));printf("%d,%d\n",&a[0],&a[0][0]);printf("%d,%d\n",a[1],a+1);printf("%d,%d\n",&a[1][0],*(a+1)+0);printf("%d,%d\n",a[2],*(a+2));printf("%d,%d\n",&a[2],a+2);printf("%d,%d\n",a[1][0],*(*(a+1)+0));printf("%d,%d\n",*a[2],*(*(a+2)+0));return0;}例8.12#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int*p;for(p=a[0];p{if((p-a[0])%4==0)printf("\n");printf("%4d",*p);}printf("\n");return0;}例8.13#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int(*p)[4],i,j;p=a;printf("pleaseenterrowandcolum:");scanf("%d,%d",&i,&j);printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));return0;}#includeintmain(){inta[4]={1,3,5,7};int(*p)[4];p=&a;printf("%d\n",(*p)[3]);return0;}例8.14#includeintmain(){voidaverage(float*p,intn);voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};average(*score,12);search(score,2);return0;}voidaverage(float*p,intn){float*p_end;floatsum=0,aver;p_end=p+n-1;for(;p<=p_end;p++)sum=sum+(*p);aver=sum/n;printf("average=%5.2f\n",aver);}voidsearch(float(*p)[4],intn){inti;printf("ThescoreofNo.%dare:\n",n);for(i=0;i<4;i++)printf("%5.2f",*(*(p+n)+i));printf("\n");}例8.15#includeintmain(){voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,57,70,60},{58,87,90,81},{90,99,100,98}};search(score,3);return0;}voidsearch(float(*p)[4],intn){inti,j,flag;for(j=0;j{flag=0;for(i=0;i<4;i++)if(*(*(p+j)+i)<60)flag=1;if(flag==1){printf("No.%dfails,hisscoresare:\n",j+1);for(i=0;i<4;i++)printf("%5.2f",*(*(p+j)+i));printf("\n");}}}例8.16#includeintmain(){charstring[]="IloveChina";printf("%s\n",string);printf("%c\n",string[7]);return0;}例8.17#includeintmain(){char*string="IloveChina";printf("%s\n",string);return0;}例8.18字符数组#includeintmain(){chara[]="Ianastudent.",b[20];inti;for(i=0;*(a+i)!='\0';i++)*(b+i)=*(a+i);*(b+i)='\0';printf("stringais:%s\n",a);printf("stringbis:");for(i=0;*(b+i)!='\0';i++)printf("%c",b[i]);//这三句可替换为printf("stringbis:%s\n",b);printf("\n");return0;}例8.19指针变量指向字符数组#includeintmain(){chara[]="Ianastudent.",b[20],*p1,*p2;p1=a;p2=b;for(;*p1!='\0';p1++,p2++)*p2=*p1;*p2='\0';printf("stringais:%s\n",a);printf("stringbis:%s\n",b);return0;}例8.20字符数组名做函数参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,b);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";char*from=a,*to=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(from,to);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做形参和实参#includeintmain(){voidcopy_string(char*from,char*to);char*a="Ianateacher.";charb[]="Youareastudent.";char*p=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,p);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(c
int*p,m,temp,*i,*j;
m=(n-1)/2;
例8.10
voidsort(intx[],intn);
inti,*p,a[10];
sort(p,10);
for(p=a,i=0;i<10;i++)
printf("%d",*p++);//书中为{printf("%d",*p);p++;}
voidsort(intx[],intn)
inti,j,k,t;
for(i=0;i{k=i;for(j=i+1;jif(x[j]>x[k])k=j;if(k!=i){t=x[i];x[i]=x[k];x[k]=t;}}}#includeintmain(){voidsort(int*x,intn);inti,*p,a[10];p=a;printf("pleaseenter10integernumbers:\n");for(i=0;i<10;i++)scanf("%d",p++);p=a;sort(p,10);for(p=a,i=0;i<10;i++)printf("%d",*p++);printf("\n");return0;}voidsort(int*x,intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}例8.11#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};printf("%d,%d\n",a,*a);printf("%d,%d\n",a[0],*(a+0));printf("%d,%d\n",&a[0],&a[0][0]);printf("%d,%d\n",a[1],a+1);printf("%d,%d\n",&a[1][0],*(a+1)+0);printf("%d,%d\n",a[2],*(a+2));printf("%d,%d\n",&a[2],a+2);printf("%d,%d\n",a[1][0],*(*(a+1)+0));printf("%d,%d\n",*a[2],*(*(a+2)+0));return0;}例8.12#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int*p;for(p=a[0];p{if((p-a[0])%4==0)printf("\n");printf("%4d",*p);}printf("\n");return0;}例8.13#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int(*p)[4],i,j;p=a;printf("pleaseenterrowandcolum:");scanf("%d,%d",&i,&j);printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));return0;}#includeintmain(){inta[4]={1,3,5,7};int(*p)[4];p=&a;printf("%d\n",(*p)[3]);return0;}例8.14#includeintmain(){voidaverage(float*p,intn);voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};average(*score,12);search(score,2);return0;}voidaverage(float*p,intn){float*p_end;floatsum=0,aver;p_end=p+n-1;for(;p<=p_end;p++)sum=sum+(*p);aver=sum/n;printf("average=%5.2f\n",aver);}voidsearch(float(*p)[4],intn){inti;printf("ThescoreofNo.%dare:\n",n);for(i=0;i<4;i++)printf("%5.2f",*(*(p+n)+i));printf("\n");}例8.15#includeintmain(){voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,57,70,60},{58,87,90,81},{90,99,100,98}};search(score,3);return0;}voidsearch(float(*p)[4],intn){inti,j,flag;for(j=0;j{flag=0;for(i=0;i<4;i++)if(*(*(p+j)+i)<60)flag=1;if(flag==1){printf("No.%dfails,hisscoresare:\n",j+1);for(i=0;i<4;i++)printf("%5.2f",*(*(p+j)+i));printf("\n");}}}例8.16#includeintmain(){charstring[]="IloveChina";printf("%s\n",string);printf("%c\n",string[7]);return0;}例8.17#includeintmain(){char*string="IloveChina";printf("%s\n",string);return0;}例8.18字符数组#includeintmain(){chara[]="Ianastudent.",b[20];inti;for(i=0;*(a+i)!='\0';i++)*(b+i)=*(a+i);*(b+i)='\0';printf("stringais:%s\n",a);printf("stringbis:");for(i=0;*(b+i)!='\0';i++)printf("%c",b[i]);//这三句可替换为printf("stringbis:%s\n",b);printf("\n");return0;}例8.19指针变量指向字符数组#includeintmain(){chara[]="Ianastudent.",b[20],*p1,*p2;p1=a;p2=b;for(;*p1!='\0';p1++,p2++)*p2=*p1;*p2='\0';printf("stringais:%s\n",a);printf("stringbis:%s\n",b);return0;}例8.20字符数组名做函数参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,b);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";char*from=a,*to=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(from,to);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做形参和实参#includeintmain(){voidcopy_string(char*from,char*to);char*a="Ianateacher.";charb[]="Youareastudent.";char*p=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,p);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(c
k=i;
for(j=i+1;jif(x[j]>x[k])k=j;if(k!=i){t=x[i];x[i]=x[k];x[k]=t;}}}#includeintmain(){voidsort(int*x,intn);inti,*p,a[10];p=a;printf("pleaseenter10integernumbers:\n");for(i=0;i<10;i++)scanf("%d",p++);p=a;sort(p,10);for(p=a,i=0;i<10;i++)printf("%d",*p++);printf("\n");return0;}voidsort(int*x,intn){inti,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}例8.11#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};printf("%d,%d\n",a,*a);printf("%d,%d\n",a[0],*(a+0));printf("%d,%d\n",&a[0],&a[0][0]);printf("%d,%d\n",a[1],a+1);printf("%d,%d\n",&a[1][0],*(a+1)+0);printf("%d,%d\n",a[2],*(a+2));printf("%d,%d\n",&a[2],a+2);printf("%d,%d\n",a[1][0],*(*(a+1)+0));printf("%d,%d\n",*a[2],*(*(a+2)+0));return0;}例8.12#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int*p;for(p=a[0];p{if((p-a[0])%4==0)printf("\n");printf("%4d",*p);}printf("\n");return0;}例8.13#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int(*p)[4],i,j;p=a;printf("pleaseenterrowandcolum:");scanf("%d,%d",&i,&j);printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));return0;}#includeintmain(){inta[4]={1,3,5,7};int(*p)[4];p=&a;printf("%d\n",(*p)[3]);return0;}例8.14#includeintmain(){voidaverage(float*p,intn);voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};average(*score,12);search(score,2);return0;}voidaverage(float*p,intn){float*p_end;floatsum=0,aver;p_end=p+n-1;for(;p<=p_end;p++)sum=sum+(*p);aver=sum/n;printf("average=%5.2f\n",aver);}voidsearch(float(*p)[4],intn){inti;printf("ThescoreofNo.%dare:\n",n);for(i=0;i<4;i++)printf("%5.2f",*(*(p+n)+i));printf("\n");}例8.15#includeintmain(){voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,57,70,60},{58,87,90,81},{90,99,100,98}};search(score,3);return0;}voidsearch(float(*p)[4],intn){inti,j,flag;for(j=0;j{flag=0;for(i=0;i<4;i++)if(*(*(p+j)+i)<60)flag=1;if(flag==1){printf("No.%dfails,hisscoresare:\n",j+1);for(i=0;i<4;i++)printf("%5.2f",*(*(p+j)+i));printf("\n");}}}例8.16#includeintmain(){charstring[]="IloveChina";printf("%s\n",string);printf("%c\n",string[7]);return0;}例8.17#includeintmain(){char*string="IloveChina";printf("%s\n",string);return0;}例8.18字符数组#includeintmain(){chara[]="Ianastudent.",b[20];inti;for(i=0;*(a+i)!='\0';i++)*(b+i)=*(a+i);*(b+i)='\0';printf("stringais:%s\n",a);printf("stringbis:");for(i=0;*(b+i)!='\0';i++)printf("%c",b[i]);//这三句可替换为printf("stringbis:%s\n",b);printf("\n");return0;}例8.19指针变量指向字符数组#includeintmain(){chara[]="Ianastudent.",b[20],*p1,*p2;p1=a;p2=b;for(;*p1!='\0';p1++,p2++)*p2=*p1;*p2='\0';printf("stringais:%s\n",a);printf("stringbis:%s\n",b);return0;}例8.20字符数组名做函数参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,b);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";char*from=a,*to=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(from,to);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做形参和实参#includeintmain(){voidcopy_string(char*from,char*to);char*a="Ianateacher.";charb[]="Youareastudent.";char*p=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,p);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(c
if(x[j]>x[k])k=j;
if(k!
=i)
t=x[i];
x[i]=x[k];
x[k]=t;
voidsort(int*x,intn);
printf("%d",*p++);
voidsort(int*x,intn)
for(i=0;i{k=i;for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}例8.11#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};printf("%d,%d\n",a,*a);printf("%d,%d\n",a[0],*(a+0));printf("%d,%d\n",&a[0],&a[0][0]);printf("%d,%d\n",a[1],a+1);printf("%d,%d\n",&a[1][0],*(a+1)+0);printf("%d,%d\n",a[2],*(a+2));printf("%d,%d\n",&a[2],a+2);printf("%d,%d\n",a[1][0],*(*(a+1)+0));printf("%d,%d\n",*a[2],*(*(a+2)+0));return0;}例8.12#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int*p;for(p=a[0];p{if((p-a[0])%4==0)printf("\n");printf("%4d",*p);}printf("\n");return0;}例8.13#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int(*p)[4],i,j;p=a;printf("pleaseenterrowandcolum:");scanf("%d,%d",&i,&j);printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));return0;}#includeintmain(){inta[4]={1,3,5,7};int(*p)[4];p=&a;printf("%d\n",(*p)[3]);return0;}例8.14#includeintmain(){voidaverage(float*p,intn);voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};average(*score,12);search(score,2);return0;}voidaverage(float*p,intn){float*p_end;floatsum=0,aver;p_end=p+n-1;for(;p<=p_end;p++)sum=sum+(*p);aver=sum/n;printf("average=%5.2f\n",aver);}voidsearch(float(*p)[4],intn){inti;printf("ThescoreofNo.%dare:\n",n);for(i=0;i<4;i++)printf("%5.2f",*(*(p+n)+i));printf("\n");}例8.15#includeintmain(){voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,57,70,60},{58,87,90,81},{90,99,100,98}};search(score,3);return0;}voidsearch(float(*p)[4],intn){inti,j,flag;for(j=0;j{flag=0;for(i=0;i<4;i++)if(*(*(p+j)+i)<60)flag=1;if(flag==1){printf("No.%dfails,hisscoresare:\n",j+1);for(i=0;i<4;i++)printf("%5.2f",*(*(p+j)+i));printf("\n");}}}例8.16#includeintmain(){charstring[]="IloveChina";printf("%s\n",string);printf("%c\n",string[7]);return0;}例8.17#includeintmain(){char*string="IloveChina";printf("%s\n",string);return0;}例8.18字符数组#includeintmain(){chara[]="Ianastudent.",b[20];inti;for(i=0;*(a+i)!='\0';i++)*(b+i)=*(a+i);*(b+i)='\0';printf("stringais:%s\n",a);printf("stringbis:");for(i=0;*(b+i)!='\0';i++)printf("%c",b[i]);//这三句可替换为printf("stringbis:%s\n",b);printf("\n");return0;}例8.19指针变量指向字符数组#includeintmain(){chara[]="Ianastudent.",b[20],*p1,*p2;p1=a;p2=b;for(;*p1!='\0';p1++,p2++)*p2=*p1;*p2='\0';printf("stringais:%s\n",a);printf("stringbis:%s\n",b);return0;}例8.20字符数组名做函数参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,b);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";char*from=a,*to=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(from,to);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做形参和实参#includeintmain(){voidcopy_string(char*from,char*to);char*a="Ianateacher.";charb[]="Youareastudent.";char*p=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,p);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(c
for(j=i+1;jif(*(x+j)>*(x+k))k=j;if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}例8.11#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};printf("%d,%d\n",a,*a);printf("%d,%d\n",a[0],*(a+0));printf("%d,%d\n",&a[0],&a[0][0]);printf("%d,%d\n",a[1],a+1);printf("%d,%d\n",&a[1][0],*(a+1)+0);printf("%d,%d\n",a[2],*(a+2));printf("%d,%d\n",&a[2],a+2);printf("%d,%d\n",a[1][0],*(*(a+1)+0));printf("%d,%d\n",*a[2],*(*(a+2)+0));return0;}例8.12#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int*p;for(p=a[0];p{if((p-a[0])%4==0)printf("\n");printf("%4d",*p);}printf("\n");return0;}例8.13#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int(*p)[4],i,j;p=a;printf("pleaseenterrowandcolum:");scanf("%d,%d",&i,&j);printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));return0;}#includeintmain(){inta[4]={1,3,5,7};int(*p)[4];p=&a;printf("%d\n",(*p)[3]);return0;}例8.14#includeintmain(){voidaverage(float*p,intn);voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};average(*score,12);search(score,2);return0;}voidaverage(float*p,intn){float*p_end;floatsum=0,aver;p_end=p+n-1;for(;p<=p_end;p++)sum=sum+(*p);aver=sum/n;printf("average=%5.2f\n",aver);}voidsearch(float(*p)[4],intn){inti;printf("ThescoreofNo.%dare:\n",n);for(i=0;i<4;i++)printf("%5.2f",*(*(p+n)+i));printf("\n");}例8.15#includeintmain(){voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,57,70,60},{58,87,90,81},{90,99,100,98}};search(score,3);return0;}voidsearch(float(*p)[4],intn){inti,j,flag;for(j=0;j{flag=0;for(i=0;i<4;i++)if(*(*(p+j)+i)<60)flag=1;if(flag==1){printf("No.%dfails,hisscoresare:\n",j+1);for(i=0;i<4;i++)printf("%5.2f",*(*(p+j)+i));printf("\n");}}}例8.16#includeintmain(){charstring[]="IloveChina";printf("%s\n",string);printf("%c\n",string[7]);return0;}例8.17#includeintmain(){char*string="IloveChina";printf("%s\n",string);return0;}例8.18字符数组#includeintmain(){chara[]="Ianastudent.",b[20];inti;for(i=0;*(a+i)!='\0';i++)*(b+i)=*(a+i);*(b+i)='\0';printf("stringais:%s\n",a);printf("stringbis:");for(i=0;*(b+i)!='\0';i++)printf("%c",b[i]);//这三句可替换为printf("stringbis:%s\n",b);printf("\n");return0;}例8.19指针变量指向字符数组#includeintmain(){chara[]="Ianastudent.",b[20],*p1,*p2;p1=a;p2=b;for(;*p1!='\0';p1++,p2++)*p2=*p1;*p2='\0';printf("stringais:%s\n",a);printf("stringbis:%s\n",b);return0;}例8.20字符数组名做函数参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,b);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";char*from=a,*to=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(from,to);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做形参和实参#includeintmain(){voidcopy_string(char*from,char*to);char*a="Ianateacher.";charb[]="Youareastudent.";char*p=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,p);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(c
if(*(x+j)>*(x+k))k=j;
t=*(x+i);
*(x+i)=*(x+k);
*(x+k)=t;
例8.11
inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
printf("%d,%d\n",a,*a);
printf("%d,%d\n",a[0],*(a+0));
printf("%d,%d\n",&a[0],&a[0][0]);
printf("%d,%d\n",a[1],a+1);
printf("%d,%d\n",&a[1][0],*(a+1)+0);
printf("%d,%d\n",a[2],*(a+2));
printf("%d,%d\n",&a[2],a+2);
printf("%d,%d\n",a[1][0],*(*(a+1)+0));
printf("%d,%d\n",*a[2],*(*(a+2)+0));
例8.12
for(p=a[0];p{if((p-a[0])%4==0)printf("\n");printf("%4d",*p);}printf("\n");return0;}例8.13#includeintmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int(*p)[4],i,j;p=a;printf("pleaseenterrowandcolum:");scanf("%d,%d",&i,&j);printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));return0;}#includeintmain(){inta[4]={1,3,5,7};int(*p)[4];p=&a;printf("%d\n",(*p)[3]);return0;}例8.14#includeintmain(){voidaverage(float*p,intn);voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};average(*score,12);search(score,2);return0;}voidaverage(float*p,intn){float*p_end;floatsum=0,aver;p_end=p+n-1;for(;p<=p_end;p++)sum=sum+(*p);aver=sum/n;printf("average=%5.2f\n",aver);}voidsearch(float(*p)[4],intn){inti;printf("ThescoreofNo.%dare:\n",n);for(i=0;i<4;i++)printf("%5.2f",*(*(p+n)+i));printf("\n");}例8.15#includeintmain(){voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,57,70,60},{58,87,90,81},{90,99,100,98}};search(score,3);return0;}voidsearch(float(*p)[4],intn){inti,j,flag;for(j=0;j{flag=0;for(i=0;i<4;i++)if(*(*(p+j)+i)<60)flag=1;if(flag==1){printf("No.%dfails,hisscoresare:\n",j+1);for(i=0;i<4;i++)printf("%5.2f",*(*(p+j)+i));printf("\n");}}}例8.16#includeintmain(){charstring[]="IloveChina";printf("%s\n",string);printf("%c\n",string[7]);return0;}例8.17#includeintmain(){char*string="IloveChina";printf("%s\n",string);return0;}例8.18字符数组#includeintmain(){chara[]="Ianastudent.",b[20];inti;for(i=0;*(a+i)!='\0';i++)*(b+i)=*(a+i);*(b+i)='\0';printf("stringais:%s\n",a);printf("stringbis:");for(i=0;*(b+i)!='\0';i++)printf("%c",b[i]);//这三句可替换为printf("stringbis:%s\n",b);printf("\n");return0;}例8.19指针变量指向字符数组#includeintmain(){chara[]="Ianastudent.",b[20],*p1,*p2;p1=a;p2=b;for(;*p1!='\0';p1++,p2++)*p2=*p1;*p2='\0';printf("stringais:%s\n",a);printf("stringbis:%s\n",b);return0;}例8.20字符数组名做函数参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,b);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";char*from=a,*to=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(from,to);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做形参和实参#includeintmain(){voidcopy_string(char*from,char*to);char*a="Ianateacher.";charb[]="Youareastudent.";char*p=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,p);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(c
if((p-a[0])%4==0)printf("\n");
printf("%4d",*p);
例8.13
int(*p)[4],i,j;
printf("pleaseenterrowandcolum:
");
scanf("%d,%d",&i,&j);
printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));
inta[4]={1,3,5,7};
int(*p)[4];
p=&a;
printf("%d\n",(*p)[3]);
例8.14
voidaverage(float*p,intn);
voidsearch(float(*p)[4],intn);
floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};
average(*score,12);
search(score,2);
voidaverage(float*p,intn)
float*p_end;
floatsum=0,aver;
p_end=p+n-1;
for(;p<=p_end;p++)
sum=sum+(*p);
aver=sum/n;
printf("average=%5.2f\n",aver);
voidsearch(float(*p)[4],intn)
printf("ThescoreofNo.%dare:
\n",n);
for(i=0;i<4;i++)
printf("%5.2f",*(*(p+n)+i));
例8.15
floatscore[3][4]={{65,57,70,60},{58,87,90,81},{90,99,100,98}};
search(score,3);
inti,j,flag;
for(j=0;j{flag=0;for(i=0;i<4;i++)if(*(*(p+j)+i)<60)flag=1;if(flag==1){printf("No.%dfails,hisscoresare:\n",j+1);for(i=0;i<4;i++)printf("%5.2f",*(*(p+j)+i));printf("\n");}}}例8.16#includeintmain(){charstring[]="IloveChina";printf("%s\n",string);printf("%c\n",string[7]);return0;}例8.17#includeintmain(){char*string="IloveChina";printf("%s\n",string);return0;}例8.18字符数组#includeintmain(){chara[]="Ianastudent.",b[20];inti;for(i=0;*(a+i)!='\0';i++)*(b+i)=*(a+i);*(b+i)='\0';printf("stringais:%s\n",a);printf("stringbis:");for(i=0;*(b+i)!='\0';i++)printf("%c",b[i]);//这三句可替换为printf("stringbis:%s\n",b);printf("\n");return0;}例8.19指针变量指向字符数组#includeintmain(){chara[]="Ianastudent.",b[20],*p1,*p2;p1=a;p2=b;for(;*p1!='\0';p1++,p2++)*p2=*p1;*p2='\0';printf("stringais:%s\n",a);printf("stringbis:%s\n",b);return0;}例8.20字符数组名做函数参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,b);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做参数#includeintmain(){voidcopy_string(charfrom[],charto[]);chara[]="Ianateacher.";charb[]="Youareastudent.";char*from=a,*to=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(from,to);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}字符型指针变量做形参和实参#includeintmain(){voidcopy_string(char*from,char*to);char*a="Ianateacher.";charb[]="Youareastudent.";char*p=b;printf("stringa=%s\nstringb=%s\n",a,b);printf("copystringatostringb:\n");copy_string(a,p);printf("\nstringa=%s\nstringb=%s\n",a,b);return0;}voidcopy_string(c
flag=0;
if(*(*(p+j)+i)<60)flag=1;
if(flag==1)
printf("No.%dfails,hisscoresare:
\n",j+1);
printf("%5.2f",*(*(p+j)+i));
例8.16
charstring[]="IloveChina";
printf("%s\n",string);
printf("%c\n",string[7]);
例8.17
char*string="IloveChina";
例8.18字符数组
chara[]="Ianastudent.",b[20];
for(i=0;*(a+i)!
='\0';i++)
*(b+i)=*(a+i);
*(b+i)='\0';
printf("stringais:
%s\n",a);
printf("stringbis:
for(i=0;*(b+i)!
printf("%c",b[i]);//这三句可替换为printf("stringbis:
%s\n",b);
例8.19指针变量指向字符数组
chara[]="Ianastudent.",b[20],*p1,*p2;
p1=a;
p2=b;
for(;*p1!
='\0';p1++,p2++)
*p2=*p1;
*p2='\0';
例8.20
字符数组名做函数参数
voidcopy_string(charfrom[],charto[]);
chara[]="Ianateacher.";
charb[]="Youareastudent.";
printf("stringa=%s\nstringb=%s\n",a,b);
printf("copystringatostringb:
copy_string(a,b);
printf("\nstringa=%s\nstringb=%s\n",a,b);
voidcopy_string(charfrom[],charto[])
inti=0;
while(from[i]!
='\0')
{to[i]=from[i];i++;}
to[i]='\0';
字符型指针变量做参数
char*from=a,*to=b;
copy_string(from,to);
字符型指针变量做形参和实参
voidcopy_string(char*from,char*to);
char*a="Ianateacher.";
char*p=b;
copy_string(a,p);
voidcopy_string(c
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1