7.輸入兩個字符串,將它們連接后輸出。
「解」程序設(shè)有兩個存儲字符串的數(shù)組,先輸入兩個字符串,然后找到第一個字符串的末尾,接著將第二個字符串復(fù)制在第一個字符串的后面,然后輸出。程序如下:
# include
# define N 120
main()
{ char s1[N+N],s2[N],*p,*q;
printf(“輸入2個字符串\n”);
scanf(“%s%s”,s1,s2);
for(p=sl;* p?。健甛0’; p++);
for(q=s2;*p++=*q++;);
printf(“兩字符串連接后:%s\n” ,sl);
}
8.比較兩個字符串是否相等。
「解」程序設(shè)兩個存儲字符串的數(shù)組,先輸入兩個字符串,兩字符率比較時(shí),直接用兩字符串的對應(yīng)字符比較來實(shí)現(xiàn)。完整程序如下:
# include
# define N 120
main()
{ char sl[N] ,s2[N],*p,*q;
char *result[]={“小于”,“相等” ,“大于”};
int comp;
printf(“輸入 2個字符串\n”);
scanf(“%s%s”,s1,s2);
for(p=sl,q=s2;*q!=‘\0’ *p==*q; p++, q++);
comp=*P * q? 0:*P==*q? l:2;
printf(“字符串1與字符串2比較:%s\n”,result[comp]);
}
9.輸入10個整數(shù),將其中最大數(shù)與最后一個數(shù)交換,最小數(shù)與第一個數(shù)交換。
「解」程序設(shè)一個一維數(shù)組存儲輸入的10個整數(shù)。然后遍歷數(shù)組,找出最大元素和最小元素的指針。接著按要求先將最大元素與最后一個元素交換,然后將最小元素與第一個元素交換。最后,輸出數(shù)組中的全部整數(shù)。程序應(yīng)考慮到這樣一種特殊情況,即最后一個元素正是最小元素,它在與最大元素交換后,位置已移到原先存儲最大元素的位置。程序應(yīng)保證最大元素移到末尾,最小元素移到最前端。
程序如下:
# include
# define N 10
main()
{ int a[N],*maxp,*minp,*q,t;
printf(“入%d個整數(shù)\n,N);
for(q=a;q A+N;Q++) {
scanf(“%d”, t);*q=t;
}
maxp= minp= a;
for(q=a;q A+N;Q++){
if(*maxp *p) maxp=q;
if(*minp *q) minp=q;
}
t=*maxp; *maxp=a[N-1]; a[N-l]=t;
if(minp== a[N-l]) minp=maxp;
t=* minp;*minp= a[0]; a[0]= t;
for(q=a;q A+N; Q++)
printf(“%d”,*q);
printf(“\n”);
}