您的位置:首页 > 编程语言 > C语言/C++

C/C++ 笔试、面试题目总结,

2015-10-06 17:32 435 查看
基本都没写答案,查找答案的过程就是学习的过程,会的也会引起一些思考。

1.   extern,extern”C”的作用, 如何判断一段程序是由C 编译还是由C++编译程序编译的?
2.   进程和线程的区别和联系 
3.   inline的作用
4.   KMP算法
5.   函数调用方式
·        __cdecl             
堆栈由调用者清除          参数从右至左的顺序压入堆栈内
·        __stdcall           
堆栈由被调用者清除      
参数从右至左的顺序压入堆栈内
·        __fastcall           堆栈由被调用者清除      
部分参数保存在寄存器中,然后其他的压入堆栈内
·        thiscall(非关键字)  堆栈由被调用者清除  
    参数压入堆栈内,this指针保存在ECX寄存器内
6.   有读和写的两个线程和一个队列,读线程从队列中读数据,写线程往队列中写数据
a)    生产者和消费者模型—(互斥变量或者线程API)
7.   TCP的三次握手,断开,流量控制和拥塞控制机制
8.   求一个数组中第k大的数的位置
9.   成员函数初始化列表有什么作用?什么必须在成员初始化列表中进行初始化?
10.网络编程(网络编程范式,非阻塞connect)
     常见的IO模型有阻塞、非阻塞、IO多路复用、异步。
11.一个一维数轴上的不同线段,求重复最长的两个线段
12.非递归方法实现二叉树的遍历
13. 页面置换算法
14. 常量指针和指针常量,指针函数和函数指针,指针数组和数组指针
15.大端小端
16.虚函数表
17.如果判断单链表是否有环
18. 各数据类型内存中的存储方式以及相互转化,指针强制转化
19. 位运算典型应用
20. 字节对齐(sizeof()用法),结构体、共用体内存储存
union{int i;char x[2]; }a; 

                       i.             a.x[0] =10;  a.x[1] =1;

                     ii.             printf("%d",a.i);

答案:266 (低位低地址,高位高地址,内存占用情况是Ox010A)

union{ int i;struct{ char first;  char second; }half; }number;

number.i=0x4241; 

printf("%c%c\n",number.half.first, mumber.half.second); 

number.half.first='a'; number.half.second='b'; 

printf("%x\n",number.i); 

getch(); 

答案: AB   (0x41对应'A',是低位;Ox42对应'B',是高位)

6261 (number.i和number.half共用一块地址空间)

21. 引用和指针,引用作用,作参数返回值特点及应注意什么 
b)   new,<<,幅值构造函数,赋值运算符,对于多态
22. 写strcpy(),strstr(),strlen()函数,String类
23. 宏注意什么,哪些技术可以取代宏
24. C语言内存分配方式
25. C++中的4种类型转换方式?
26. 链表处理(合并两个有序链表,链表排序,判断是否有环)
27. 排序(大量数据内存放不开解决方法)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: