文本描述
百度历年笔试面试150题
1、用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。2、用C语言实现函数void * memmove(void *dest, const void *src, size_t n)。memmove函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。分析:由于可以把任何类型的指针赋给void类型的指针,这个函数主要是实现各种数据类型的拷贝。3、有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。4、给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。要求:空间复杂度O(1),时间复杂度为O(n)。5、在一维坐标轴上有n个区间段,求重合区间最长的两个区间段。6、系统有很多任务,任务之间有依赖,比如B依赖于A,则A执行完后B才能执行? (1)不考虑系统并行性,设计一个函数(Task *Ptask,int Task_num)不考虑并行度,最快的方法完成所有任务。? (2)考虑并行度,怎么设计
??typedef?struct{
??????int?ID;
?????int?*?child;
??????int?child_num;
??}Task;
? 提供的函数:??? bool doTask(int taskID);无阻塞的运行一个任务;? ? int waitTask(int timeout);返回运行完成的任务id,如果没有则返回-1;?? ?bool killTask(int taskID);杀死进程7、解释下面ptr含义和不同double* ptr = &value;? ? //ptr是一个指向double类型的指针,ptr的值可以改变,ptr所指向的value的值也可以改变?const double* ptr = &value? ? //ptr是一个指向const double类型的指针,ptr的值可以改变,ptr所指向的value的值不可以改变double* const ptr=&value? ? //ptr是一个指向double类型的指针,ptr的值不可以改变,ptr所指向的value的值可以改变const double* const ptr=&value? ? //ptr是一个指向const double类型的指针,ptr的值不可以改变,ptr所指向的value的值也不可以改变8、去掉const属性,例: ?const double value = 0.0f; ?double* ptr = NULL;怎么才能让ptr指向value?? ? 强制类型转换,去掉const属性,如ptr = (&value);topic.csdn/u/201109 ... 091699、一个数组保存了N个结构,每个结构保存了一个坐标,结构间的坐标都不相同,请问如何找到指定坐标的结构(除了遍历整个数组,是否有更好的办法)?(要么预先排序,二分查找。要么