您的位置:首页 > 职场人生

几道面试题

2011-09-03 09:02 435 查看
1)下列程序片段运行时间排序

代码1:

for(uint i = 0;i<1024;++i)

{

char* url = (char*)malloc(4096);

memset(url,0x0,4096);
free(url);
}

代码2:

for(uint i = 0;i<1024;++i)

{

char* url = (char*)malloc(4096);

free(url);

}

代码3:

char* url = (char*)malloc(4096);

for(uint i = 0;i<1024;++i)

{

memset(url,0x0,4096);

}

free(url);

代码4:

for(uint i = 0;i<10*1024;++i)

{

char* url = (char*)malloc(4096);

free(url);

}
给出你认为的代码耗时排序?

2)写出下面代码所犯的错误,并指出这种错误导致的后果

void to_upper(char* s,char* buffer)

{

buffer =(char*)malloc((strlen(s)+1)*sizeof(char));

memset(buffer,0x0,strlen(s)+1);

for(uint32_t i = strlen(s)-1;i>=0;--i)

{

unsigned char t = s[i] - 'a';

buffer[i] = s[i] +('A'-'a')*(t<='z'-'a'?1:0);

}

}

int main(void)

{

char string[] = "123 , goodmorning { ABC";

char* buffer = NULL;

to_upper(string,buffer);

cout<<buffer<<endl;

free(buffer);

}

3)写出下面C++代码的错误,并指出可能的改进
前提:strcpy的基本语义
1)原串不能被修改。
2)拷贝的原串和目的串可能非常大,比如:10M字节。
3)拷贝过程或者成功,或者失败,不会出现拷贝一部分成功,一部分失败
4)拷贝失败返回NULL
假定:
1)目的串和原串都是\0结尾的合法字符串
char* strcpy(char* dst,const char *src)

{

char *ret = dst;

while ((*dst++ = *src++));

return ret;

}

4)下面两个结构体定义中,为什么第二个结构体要加一个padding,这有什么好处?

struct s_nopadding{

char a;

char b;

char c;

};

struct s_withpadding{

char a;

char b;

char c;

char padding;

};

5) 第三题中的结构体中,如果定义s_nopadding t[1024];,则sizeof(t)是1024*3还是1024*4?

6)请问下面这段代码这样写的好处?

typedef void(*pattern_fun)(uint32_t* code,uint32_t* data,size_t n);

pattern_fun PACK[]={PACK0,PACK1,PACK2,PACK3};

void PACK0(uint32_t* code,uint32_t* data,size_t n) //PACK1,PACK2,PACK3均类似,直接返回。

{

return;

}

int main

{

XXXX //一些初始化code,data,n的代码

for(int i = 0;i<4096;++i)

{

PACK[i%4](code,data,n);

XXXX // 一些后续代码

}

}

7)什么是稳定的排序,举一个使用稳定排序的例子?

8)如果设计一个快表,你会从哪些方面考虑,并给出你的设计?
9)分享一个你感兴趣的领域或者技术,并通过专研达到了某种技术高度。
10) 现代操作系统地址的单位是什么?
下列代码有什么用处?
#define PACKET uint32_t //PACKET表示一种数据封装的类型,可以是整形
char* char_ptr = NULL;

for (char_ptr = str; ((unsigned long int) char_ptr & (sizeof (PACKET) - 1)) != 0; ++char_ptr)
{
...
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: