程序员面试宝典题目总结

时间:2014-02-12 10:38:53
【文件属性】:

文件名称:程序员面试宝典题目总结

文件大小:72KB

文件格式:DOC

更新时间:2014-02-12 10:38:53

程序员 面试 宝典 题目总结

1. What will be the output of the following C code? #include int main(int argc, char* argv[]) { int b=3; int arr[] = {6, 7, 8, 9, 10}; int *ptr = arr; *(ptr++) += 123; printf("%d, %d\n", *ptr, *(++ptr)); return 0; } 2. 下面程序的结果是多少? #include int main(int argc, char* argv[]) { unsigned char a = 0xA5; unsigned char b = ~a>>4; printf("b = %d\n", b); return 0; } 3. 下面程序的结果是: #include int main(int argc, char* argv[]) { unsigned int a = 0xFFFFFFF7; unsigned char i = (unsigned char)a; char * b = (char *)&a; printf("%08x, %08x\n", i, *b); return 0; } 4. 用一个表达式,判断一个数X是否为2的N次方(2,4,8,…),不可用循环语句。 5. 下面程序的结果是: #include #include using namespace std; int main(int argc, char* argv[]) { int count = 0; int m = 9999; while(m){ count++; m = m & (m - 1); } cout << count << endl; return 0; } 6. 不用判断语句,找出两个数中比较大的。 7. 如何将a、b的值交互,且不用任何中间变量。 8. 在C++程序中调用被C编译器编译后的函数,为什么要加extern “C”? 9. 头文件中的ifndef/define/endif的作用? #pragma once的作用? 10. 结构体内存对齐问题。 11. 以下代码的输出是? char var[10]; int test(char var[]){ return sizeof(var); } 12. 写出下面程序的运行结果。 int a[3]; a[0] = 0; a[1] = 1; a[2] = 2; int *p, *q; p = a; q = &a[2]; cout << a[q - p] << endl; 13. 解释下面这段代码: int (*a)[10]; a++; 14. 以下程序的输出是: int a[] = {1, 2, 3, 4, 5}; int *ptr = (int *)(&a + 1); cout << *(a+1) << endl; cout << *(ptr - 1) << endl; 15. 什么是智能指针? 16. Please write out the program output. #include #include #define LOOP 1000 int main(int argc, char* argv[]){ int rgnC = 0; srand((unsigned int)time(NULL)); for (int i=0; i #include using namespace std; class Base{ private: int m_i; int m_j; public: Base(int i):m_j(i), m_i(m_j){ } Base():m_j(0), m_i(m_j){ } int GetI(){ return m_i; } int GetJ(){ return m_j; } }; int main(int argc, char* argv[]){ Base base(98); cout << base.GetI() << endl << base.GetJ() << endl; return 0; } 18. 请讲述Heap与Stack的差别。 19. 写一个字符串拷贝函数strcpy;为什么strcpy的返回值类型为char *。 20. 如何判断一个单向链表是否有环路? 21. 写出判断ABCD四个表达式的是否正确,若正确, 写出经过表达式中 a的值。 int a = 4; (A)a += (a++); (B) a += (++a) ; (C) (a++) += a; (D) (++a) += (a++); 22. 下面程序的输出为: union{


网友评论

  • 总结得很全面