新浪网研发中心招聘笔试题 姓名:申请职位:一、开发能力部分:通用题1. 尽量多的写出多种语言的 hello world! 程序(C、Shell、Perl、Python、Java 等等)C 语言部分1. 判断 ABCD 四个体现式与否对的, 若对的, 写出通过体现式中 a 的值 int a = 4; (A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++); a = ?2. 请问运行下面的 test 函数会有什么样的成果 char *allocate (void) { char p[] = "hello world"; return p; } void test (void) { char *str = NULL; str = allocate(); printf("%s\n", str); }3. 比较 char *p 和 char p[10] 的区别4. 完毕如下所示的宏定义,其作用是将接受到的两个参数的值互换 #define EXCHANGE(x, y) \ // start here5. 在不运用其他函数的状况下,完毕如下所示的函数,其功能是将 src 所指向的 n 个字节的内容,复制到 dest 所指向的位置 void memcopy(void *dest, void *src, size_t n) { // start here }6. 完毕下面的程序,其功能是运用两个线程同步执行 print_a 和 print_b 两个函数 void print_a () { printf("A\n"); } void print_b () { printf("B\n"); } int main (int argc, const char **argv) { // start here return 0; }7. 当执行上题中的程序时,"A"和"B" 以不定的次序打印到屏幕上,请对上题的程序进行改善,规定如下: 1). 两个线程同步执行函数 print_a 和 print_b 2). "A"和"B"可以依次打印到屏幕上,即"A", "B", "A", "B", "A", ....8. 根据如下的单向链表构造,写出一种函数用于将其参数中指定的链表进行反转,其返回值为新链表的头 struct link_list { char *value; struct link_list *next; }; struct link_list *reverse(struct link_list *l) { // start here }9. 编写一种程序,判断给定的单向链表与否是回文的,其中,链表的构造如上题所示,回文定义如下: 对于给定的单向链表,如 'A' -> 'B' -> 'C' -> 'B' -> 'A' , 其中'A','B','C'为链表节点所存储的值, 假如链表中的值是有关中心对称的,则称这个链表是回文的 int is_palindrome(struct link_list *l) { // start here }SHELL 部分 (实现下面规定的 SHELL 脚本, 可以使用 perl, sed, awk 等)1. 文...