C/C++练习面试题
1.
C++里面的struct可以有成员函数。C里面不能有
2.二级指针
3.数组越界
4.
5.
运用函数指针
void (*fun_ptr)(void) = (void (*)(void))0x100000;
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
2.申请的内存没有进行回收
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
链式表达式例如strcpy(buffer, "hello");返回值是buffer的内存空间头地址
28.
二分查找,是用在有序数组中用于查找目标值数组下标用的,有这个值返回数组下标,没有则返回-1
二分查找(Binary Search)是一种在有序数组中查找特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索结束;如果目标元素大于或小于中间元素,则在数组大于或小于中间元素的那一半中查找,并且同样从那一半的中间元素开始比较。这样每次可以排除一半的数据,因此效率很高,时间复杂度为 O(log n)。
int binary_find(int target, int *arr, int len)
{int left = 0;int right = len - 1;while(left <= right){int mid = (left + right) / 2;if(arr[mid] == target){return mid;}else if (arr[mid] < target){left = mid + 1; //mid已经搜索过了,避免重复搜索导致程序无限循环}else{right = mid - 1;}}return -1; //没有搜索到返回-1
}
29.
int find_one(char c)
{unsigned int a;int val = 0, i;for(i = 0; i < 8; i++){a = c >> i;if(a & 0x01){val++;}}return val;
}