几个面试题目
2009-06-11 10:46
295 查看
1.写一个函数,完成内存之间的拷贝。
void* mymemcpy( void *dest, const void *src, size_t count )
{
char* pdest = static_cast<char*>( dest );
const char* psrc = static_cast<const char*>( src );
if( pdest>psrc && pdest<psrc+cout )
{
for( size_t i=count-1; i!=-1; --I )
pdest[i] = psrc[i];
}
else
{
for( size_t i=0; i<count; ++I )
pdest[i] = psrc[i];
}
return dest;
}
2.写一个函数找出一个整数数组中,第二大的数
const int MINNUMBER = -32767 ;
int find_sec_max( int data[] , int count)
{
int maxnumber = data[0] ;
int sec_max = MINNUMBER ;
for ( int i = 1 ; i < count ; i++)
{
if ( data[i] > maxnumber )
{
sec_max = maxnumber ;
maxnumber = data[i] ;
}
else
{
if ( data[i] > sec_max )
sec_max = data[i] ;
}
}
return sec_max ;
}
3.用递归算法判断数组a
是否为一个递增数组。
递归的方法,记录当前最大的,并且判断当前的是否比这个还大,大则继续,否则返回false结束:
bool fun( int a[], int n )
{
if( n= =1 )
return true;
if( n= =2 )
return a[n-1] >= a[n-2];
return fun( a,n-1) && ( a[n-1] >= a[n-2] );
}
4.判断字符串是否为回文
bool IsSymmetry(const char* p)
{
assert(p!=NULL);
const char* q=p;
int len=0;
while(*q++!='/0')
{
len++;
}
bool bSign=true;
q=p+len-1;
if (0<len)
{
for (int i=0;i<len/2;i++)
{
if(*p++!=*q--){ bSign=false;break;};
}
}
if(bSign==true)
{
printf("Yes!/n");
}
else
{
printf("No!/n");
}
return bSign;
}
void* mymemcpy( void *dest, const void *src, size_t count )
{
char* pdest = static_cast<char*>( dest );
const char* psrc = static_cast<const char*>( src );
if( pdest>psrc && pdest<psrc+cout )
{
for( size_t i=count-1; i!=-1; --I )
pdest[i] = psrc[i];
}
else
{
for( size_t i=0; i<count; ++I )
pdest[i] = psrc[i];
}
return dest;
}
2.写一个函数找出一个整数数组中,第二大的数
const int MINNUMBER = -32767 ;
int find_sec_max( int data[] , int count)
{
int maxnumber = data[0] ;
int sec_max = MINNUMBER ;
for ( int i = 1 ; i < count ; i++)
{
if ( data[i] > maxnumber )
{
sec_max = maxnumber ;
maxnumber = data[i] ;
}
else
{
if ( data[i] > sec_max )
sec_max = data[i] ;
}
}
return sec_max ;
}
3.用递归算法判断数组a
是否为一个递增数组。
递归的方法,记录当前最大的,并且判断当前的是否比这个还大,大则继续,否则返回false结束:
bool fun( int a[], int n )
{
if( n= =1 )
return true;
if( n= =2 )
return a[n-1] >= a[n-2];
return fun( a,n-1) && ( a[n-1] >= a[n-2] );
}
4.判断字符串是否为回文
bool IsSymmetry(const char* p)
{
assert(p!=NULL);
const char* q=p;
int len=0;
while(*q++!='/0')
{
len++;
}
bool bSign=true;
q=p+len-1;
if (0<len)
{
for (int i=0;i<len/2;i++)
{
if(*p++!=*q--){ bSign=false;break;};
}
}
if(bSign==true)
{
printf("Yes!/n");
}
else
{
printf("No!/n");
}
return bSign;
}
相关文章推荐
- hibernate常问的几个面试题目
- 几个fork面试题目的验证
- 面试题目,金融行业交易金额小写转换为大写的方法,我写的几个版本
- python几个面试题目:单例模式,浅拷贝与深拷贝
- java程序员面试题目看你能回答几个(付答案)
- 几个面试题目
- 几个关于c#的实际面试题目总结
- 几个不错的c++面试题目
- 微软亚洲工程院(ATC)的几个面试题目
- 几个C/Cpp笔试面试题目
- 几个Linux驱动面试题目
- 几个fork面试题目的验证
- 几个面试可能遇到的题目
- 和字符串相关的几个面试题目
- Android笔试或者面试的几个题目
- 整理的几个面试题目
- 几个面试.net C#的题目
- 几个java面试题目!
- 几个ASP.NET面试题目
- java程序员面试题目看你能回答几个(附答案)