前言
大家好,我是熊哥。最近一位做后台开发的朋友面试了富途的基础组件Go语言高级开发工程师,熊哥分享一下一面的面试题,供大家参考,希望能对大家找工作有所帮助。
第一题
代码语言:javascript复制已知有 C 语言定义 char a[] = {0, 1, 2, 3, 4};那么表达式
a[0] = 0x100 *a strlen(a) sizeof(a) 的值是?
第二题
代码语言:javascript复制已知有结构体 A 的定义:
struct A {
char a;
int b[0];
short c;
};
那么 sizeof(A) 的值是?
第三题
代码语言:javascript复制下面的函数用于将整数转为十进制字符串,请找出其中所有的问题并改正它们。
char *nums2str(int num, char *str_result, int size) {
char *p = str_result;
// 找到个位数在字符串中所在的位置
for (int divsor = 10; num / divsor != 0; divsor *= 10)
p ;
// 从尾向头将整数逐字转为字符串
while (num) {
*p-- = num % 10;
num /= 10;
}
return str_result;
}
第四题
代码语言:javascript复制在 Linux 环境下用 gcc 构建一个 C/C 程序时,编译器报
“undefined reference to ...” 的错误,
请分析可能存在哪些问题,怎么解决?
第五题 算法题
代码语言:javascript复制将一个数组的所有元素向右移动若干单位,并把数组右侧溢出的元素填补
在数组左侧的空缺中,这种经操作称为数组的循环平移。
给你一个不小于 3 个元素的数组 a,已知 a 是从一个有序且不包含
重复元素的数组平移 k(k 大于等于 0 且小于数组长度)个单位而来;
请写一个函数,输入 int 类型数组 a,返回 k 的值。
例如,对于数组 a = {5, 1, 2, 3, 4},它由有序数组
{1, 2, 3, 4, 5} 循环平移 1 个单位而来,因此 k = 1。