面试题合集
2019-3-29富途面试
一面技术面就挂了,上来就笔试题,一共5道题,我做了将近一个小时,还没能全答出来,基础知识,得好好巩固了。
- TCP连接中启用和禁用TCP_NODELAY有什么影响? - 车小胖的回答 - 知乎
- map,set时间复制度问题:因为map底层是红黑树,所以增删查的时间复杂度都是O(logN),hashmap时间复杂度是O(1)
- int a = (int)((int)(0)+4); a=? 为什么?答案是:16,这里涉及指针+整数运算.因为(int )0是把有符号整数0强制为int 型指针,这个指针的目标元素是int型,占4字节;((int )0)+4是“指针+整数”结构,这时的整数就被解释为元素个数,1个元素4字节,4个元素自然是16字节,且这个16被自动提升为(int )0的类型,亦即int 指针类型;最前面的(int)又把int *指针类型的16强制为普通的int型,所以在32位int平台下最终结果是整型值16。
- 请找出下面代码中的所有错误 (题目不错,值得一看)
说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”
#include"string.h"
main()
{
char*src="hello,world";
char* dest=NULL;
int len=strlen(src);
dest=(char*)malloc(len);
char* d=dest;
char* s=src[len];
while(len--!=0)
d++=s--;
printf("%s",dest);
return 0;
}
答:
方法 1:一共有 4 个错误;
int main()
{
char* src = "hello,world";
int len = strlen(src);
char* dest = (char*)malloc(len+1);//要为分配一个空间 char* d = dest;
char* s = &src[len-1]; //指向最后一个字符
while( len-- != 0 )
*d++=*s--;13
*d = 0; //尾部要加’\0’
printf("%sn",dest);
free(dest); // 使用完,应当释放空间,以免造成内存汇泄露
dest = NULL; //防止产生野指针
return 0;
}
编程题:写一个C语言函数,去掉字符串中的所有空格,并返回字符串中的空格数,不能申请新的空间,只能申请使用自动变量。
当时的回答是(当时用的是string,应该是C++语言了,囧,但是能正确处理):
int trim(char *str, int n)
{
int space = -1;
int count = 0;
for (int i = 0; i < n; i++)
{
if (str[i] == ' ')
{
count++;
if (space == -1)
space = i;
}
else
{
if (space != -1)
{
str[space] = str[i];
space++;
}
}
}
str[space] = '\0';
return count;
}
Mysql相关
网络相关
基础知识
最后由WongSaiKwan修改于2019-03-29 11:58
此处评论已关闭