去国图,偶尔翻动一下面试题,于是记录自己感兴趣的。
面试金典1:给定两个两个排序好的数组A和B,其中A 的末端有足够大的缓冲来容纳B,编写一个程序将B并入A 并且排序。
int * ABFindSorting(int aa[],int bb[],int lastA,lastB)
{
int index,A,B;
index=lastA+lastB;
while((lastA!=0)&&(lastB!=0))
{
A=lastA;
B=lastB;
if(aa[A]>bb[B])
{
aa[index]=aa[A];
A--;
}
else
{
aa[index]=bb[B];
B--;
}
if(B>0)
{
aa[index]=bb[B];
B--;
}
}
return aa;
}
面试金典题2:输入三个字符串按照从小到大顺序输出。
#include<stdio.h>
#include<string.h>
void swap(char *str1,char *str2)
{
char str[100];
strcpy(str,str1);
strcpy(str1,str2);
strcpy(str2,str);
}
int main()
{
char str1[20],str2[20],str3[20];
printf("please enter your three string str1,str2,str3:\n");
gets(str1);
gets(str2); //在程序编译的时候会报警告
gets(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 %s %s",str1,str2,str3);
return 0;
}