第八章习题答案 1.1选择题 1.B2.A3.A4D 2.2编程题 1利用指针的方法,求数组中的最大数和最小数。 main( -a,max.min: fork=0,k<10,k+) scanf%d",a+k)月 max=min=af0l: for(k=1:k<10,k+) if(max<*(a+k))max=*(a+k); =*(a+k) 2.编程序,将字符串第k个字符开始的连续个字符复制到另一个字符串中。 #include“stdio.h char s[100],t100,*p,*q printf("\nstring=”): ectts): scanf(%d.%d".&k.&n). for(q-t.p=s+k-1;*p&&p<s+k-1+n.p++) *q++=p; *a=0 Puts(t): 3.已知数组中存放有个数,现任意读入一个书x要求删除数组中与x相同所有数。 #define N 100 main() inta[N].n.k.x.j-0: printf("nn=?") scanf(%d".&n): printf("nArray a=?"); for(k=0:ksn:k++) sanf%dr”,atk printf( scanf(%d”,&x for(k=0;k<n.k++) if(alkl!=x) a[j++]=a[k]:
第八章习题答案 1.1 选择题 1. B 2. A 3. A 4.D 2.2 编程题 1.利用指针的方法,求数组中的最大数和最小数。 main() {int k,a[10],*p=a,max,min; for(k=0;k*(a+k)) min=*(a+k); printf(“max=%d,min=%d”,max,min); } 2.编程序,将字符串第 k 个字符开始的连续 n 个字符复制到另一个字符串中。 #include “stdio.h” main() {int k,n; char s[100],t[100],*p,*q; printf(“\nstring=?”); gets(s); printf(“k,n=?”); scanf(“%d,%d”,&k,&n); for(q=t,p=s+k-1;*p&&p<s+k-1+n;p++) *q++=*p; *q=0; puts(t); } 3.已知数组中存放有 n 个数,现任意读入一个书 x 要求删除数组中与 x 相同所有数。 #define N 100 main() { int a[N],n,k,x,j=0; printf("\nn=?"); scanf(“%d”,&n); printf(“\nArray a=?”); for(k=0;k<n;k++) scanf(“%d”,a+k); printf(“x=?”); scanf(“%d”,&x); for(k=0;k<n;k++) if(a[k]!=x) a[j++]=a[k];
for(k-0;k*q2)swap(q1,q2); if (*qI>*q3)swap(q1,q3); if (*q2>*q3)swap(q2,q3); main() { int a,b,c,*pl,*p2,*p3; scanf%d,%d,%d”,&a,&b,&c方 pl=&a;p2=&b;p3=&c; exchange(pl,p2,p3); printf(An%d,%d,%d n",a,b,c); 3.3阅读程序,写出程序运行结果 程序一:max=12 程序二:3,1,5 7,5,5 13579 程序三:2,2 程序四:sum=25
for(k=0;k*q2) swap(q1,q2); if (*q1>*q3) swap(q1,q3); if (*q2>*q3) swap(q2,q3); } main() { int a,b,c,*p1,*p2,*p3; scanf(‘%d,%d,%d”,&a,&b,&c); p1=&a; p2=&b; p3=&c; exchange(p1,p2,p3); printf(“\n%d,%d,%d\n”,a,b,c); } 3.3 阅读程序,写出程序运行结果 程序一:max=12 程序二:3, 1, 5 7, 5, 5 13579 程序三:2,2 程序四:sum=25