前段时间做的部分笔试题和答案(提醒自己)
编写一函数实现数组的递归求和
#include
<
stdio.h
>
#include
"
config.h
"


int
sum(
int
A[],size_tn)
{
if(1==n)

{
return1;
}
else

{
returnsum(&A[n-1],n-1)+n;
}
}


int
main(
void
)
{
intA[]=
{1,2,3,5,9,1};
printf("%d/n",sum(A,ARRAY_LENGTH(A)));
return0;
}
#ifndefCONFIG_H
#define
CONFIG_H


#define
ARRAY_LENGTH(x)sizeof(x)/sizeof(x[0])


#endif
编写一函数实现str到long的转换
#include
<
stdio.h
>
#include
<
string
.h
>
#include
<
assert.h
>



long
str2long(
const
char
*
str)
{
longresult=0;
while('/0'!=*str)

{
result=result*10+(*str-'0');
++str;
}
returnresult;
}




int
main(
void
)
{
char*str="1234";
printf("/n%d/n",str2long(str));
return0;
}
上面的代码没有考虑负数^_^
实现strcpy函数
char
*
mystrcpy(
char
*
dst,
const
char
*
src)
{
assert(NULL!=dst&&NULL!=src);
while(*dst++=*src++);
returndst;
}


int
main(
void
)
{
char*dst[20];
char*src="test";
mystrcpy(dst,src);
puts(dst);
return0;
}
判断一个整数是否是回文
long
symm(
long
n)
{
longi,m;
m=0;
i=n;
while(i)

{
m=m*10+i%10;
i/=10;
}
return(n==m?1:0);
}
实现Insertion sort
#include
<
stdio.h
>
#include
<
string
.h
>

typedef
int
ElemType;
void
InsertionSort(ElemTypeA[],size_tn)
{
inti;
intpass;
ElemTypetmp;
for(pass=1;pass<n;pass++)

{
tmp=A[pass];
for(i=pass;i>0&&A[i-1]>tmp;i--)

{
A[i]=A[i-1];
}
A[i]=tmp;
}
}

int
main(
void
)
{
inti;
ElemTypeA[]=
{1,2,4,8,6,98,11,25,44,35};
puts("Beforesort:");
for(i=0;i<sizeof(A)/sizeof(ElemType);i++)

{
printf("%d",A[i]);
}
printf("/n");
InsertionSort(A,sizeof(A)/sizeof(ElemType));
puts("Aftersort:");
for(i=0;i<sizeof(A)/sizeof(ElemType);i++)

{
printf("%d",A[i]);
}
printf("/n");
return0;
}
本文包含数组递归求和、字符串转长整型、字符串复制、判断整数是否为回文及插入排序等常见编程笔试题的解答代码。适用于C语言初学者及准备面试者。
1329

被折叠的 条评论
为什么被折叠?



