没有合适的资源?快使用搜索试试~ 我知道了~
经典笔试面试题汇总(40页word文档有详细答案)
需积分: 10 20 下载量 117 浏览量
2008-10-17
08:26:59
上传
评论
收藏 243KB DOC 举报
温馨提示
试读
49页
40页word文档的面试笔试题汇总,非常全面,答案详细!希望对参加知名公司应聘的朋友有些帮助!!!
资源推荐
资源详情
资源评论
一些面试准备题(包括高质量 c++题)
const char*, char const*, char*const 的区别问题几乎是 C++面试中每次都会有的题目。
事实上这个概念谁都有只是三种声明方式非常相似很容易记混。
Bjarne 在他的 The C++ Programming Language 里面给出过一个助记的方法:
把一个声明从右向左读。
char * const cp; ( * 读成 pointer to )
cp is a const pointer to char
const char * p;
p is a pointer to const char;
char const * p;
同上因为 C++里面没有 const*的运算符,所以 const 只能属于前面的类型。
---------------------------------
下面这个程序执行后会有什么错误或者效果:
#define MAX 255
int main()
{
unsigned char A[MAX],i;
for (i=0;i<=MAX;i++)
A[i]=i;
}
解答:
MAX=255
数组 A 的下标范围为:0..MAX-1,这是其一..
其二.当 i 循环到 255 时,循环内执行:
A[255]=255;
这句本身没有问题..但是返回 for (i=0;i<=MAX;i++)语句时,
由于 unsigned char 的取值范围在(0..255),i++以后 i 又为 0 了..无限循环下去.
注:char 类型为一个字节,取值范围是[-128,127],unsigned char [0 ,255]
---------------------------------
编写用 C 语言实现的求 n 阶阶乘问题的递归算法:
long int fact(int n)
{
int x;
long int y;
if(n<0)
{
printf("error!");
}
if(n==0)
return 1;
x=n-1;
y=fact(x);
return (n*y);
}
--------------------------------
二分查找算法:
1、递归方法实现:
int BSearch(elemtype a[],elemtype x,int low,int high)
/*在下届为 low,上界为 high 的数组 a 中折半查找数据元素 x*/
{
int mid;
if(low>high) return -1;
mid=(low+high)/2;
if(x==a[mid]) return mid;
if(x<a[mid]) return(BSearch(a,x,low,mid-1));
else return(BSearch(a,x,mid+1,high));
}
2、非递归方法实现:
int BSearch(elemtype a[],keytype key,int n)
{
int low,high,mid;
low=0;high=n-1;
while(low<=high)
{
mid=(low+high)/2;
if(a[mid].key==key) return mid;
else if(a[mid].key<key) low=mid+1;
else high=mid-1;
}
return -1;
}
--------------------------------
非递归计算如下递归函数的值(斐波拉契):
f(1)=1
f(2)=1
f(n)=f(n-1)+f(n-2) n>2
解:
int f(int n)
{
int i,s,s1,s2;
s1=1;/*s1 用于保存 f(n-1)的值*/
s2=1;/*s2 用于保存 f(n-2)的值*/
s=1;
for(i=3;i<=n;i++)
{
s=s1+s2;
s2=s1;
s1=s;
}
return(s);
}
------------------------------
交换两个数,不用第三块儿内存:
int a = ……;
int b = ……;
a = a + b;
b = a - b;
a = a - b;
-------------------------------
Q1:请你分别划划 OSI 的七层网络结构图,和 TCP/IP 的五层结构图?
1、OSI 每层功能及特点
a 物理层 为数据链路层提供物理连接,在其上串行传送比特流,即所传送数据的单位是比特。此外,
该层中还具有确定连接设备的电气特性和物理特性等功能。
b 数据链路层 负责在网络节点间的线路上通过检测、流量控制和重发等手段,无差错地传送以帧为单
位的数据。为做到这一点,在每一帧中必须同时带有同步、地址、差错控制及流量控制等控制信息。
c 网络层 为了将数据分组从源(源端系统)送到目的地(目标端系统),网络层的任务就是选择合适
的路由和交换节点,使源的传输层传下来的分组信息能够正确无误地按照地址找到目的地,并交付给
相应的传输层,即完成网络的寻址功能。
d 传输层 传输层是高低层之间衔接的接口层。数据传输的单位是报文,当报文较长时将它分割成若干
分组,然后交给网络层进行传输。传输层是计算机网络协议分层中的最关键一层,该层以上各层将不再
管理信息传输问题。
e 会话层 该层对传输的报文提供同步管理服务。在两个不同系统的互相通信的应用进程之间建立、组
织和协调交互。例如,确定是双工还是半双工工作。
f 表示层 该层的主要任务是把所传送的数据的抽象语法变换为传送语法,即把不同计算机内部的不同
表示形式转换成网络通信中的标准表示形式。此外,对传送的数据加密(或解密)、正文压缩(或还
原)也是表示层的任务。
g 应用层 该层直接面向用户,是 OSI 中的最高层。它的主要任务是为用户提供应用的接口,即提供不
同计算机间的文件传送、访问与管理,电子邮件的内容处理,不同计算机通过网络交互访问的虚拟终
端功能等。
2、TCP/IP
a 网络接口层 这是 TCP/IP 协议的最低一层,包括有多种逻辑链路控制和媒体访问协议。网络接口层
的功能是接收 IP 数据报并通过特定的网络进行传输,或从网络上接收物理帧,抽取出 IP 数据报并转
交给网际层。
b 网际网层(IP 层) 该层包括以下协议: IP(网际协议)、ICMP(Internet Control Message
Protocol, 因 特 网 控 制 报 文 协 议 ) 、 ARP ( Address Resolution Protocol , 地 址 解 析 协 议 )、
RARP(Reverse Address Resolution Protocol,反向地址解析协议)。该层负责相同或不同网络中计算机
之间的通信,主要处理数据报和路由。在 IP 层中,ARP 协议用于将 IP 地址转换成物理地址,RARP 协议
用于将物理地址转换成 IP 地址,ICMP 协议用于报告差错和传送控制信息。IP 协议在 TCP/IP 协议组中
处于核心地位。
c 传输层 该层提供 TCP(传输控制协议)和 UDP(User Datagram Protocol,用户数据报协议)两
个协议,它们都建立在 IP 协议的基础上,其中 TCP 提供可靠的面向连接服务,UDP 提供简单的无连
接服务。传输层提供端到端,即应用程序之间的通信,主要功能是数据格式化、数据确认和丢失重传
等。
d 应用层 TCP/IP 协议的应用层相当于 OSI 模型的会话层、表示层和应用层,它向用户提供一组常
用的应用层协议,其中包括:Telnet、SMTP、DNS 等。此外,在应用层中还包含有用户应用程序,它
们均是建立在 TCP/IP 协议组之上的专用程序。
3、OSI 参考模型和 TCP/IP 参考模型的区别:
a OSI 模型有 7 层,TCP/IP 只有 4 层;
b OSI 先于协议出现,因此不会偏向于任何一组特定的协议,通用性更强,但有些功能不知该放哪一
层上,因此不得不加入一些子层;TCP/IP 后于协议出现,仅是将已有协议的一个描述,因此两者配合
的非常好;但他不适合其他的协议栈,不容易描述其他非 TCP/IP 的网络;
c OSI 中网络层同时支持无连接和面向连接的通信,但在传输层上只支持面向连接的通信;TCP/IP 中
网络层只支持无连接通信,传输层同时支持两种通信;
d 在技术发生变化时,OSI 模型比 TCP/IP 模型中的协议更容易被替换。
----------------------------------------
Q2:请你详细的解释一下 IP 协议的定义,在哪个层上面,主要有什么作用? TCP 与 UDP 呢?
解:与 IP 协议配套使用的还有三个协议:
ARP-地址解析协议
RARP-逆地址解析协议
ICMP-因特网控制报文协议 ICMP
IP 协议-网际协议
IP 地址、IP 包头
--------------------------------------------
Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?
将网络互相连接起来要使用一些中间设备(或中间系统),ISO的术语称之为中继( relay)系统。
根据中继系统所在的层次,可以有以下五种中继系统:
1.物理层(即常说的第一层、层L 1)中继系统,即转发器(repeater)。
2.数据链路层(即第二层,层L 2),即网桥或桥接器( bridge)。
3.网络层(第三层,层L 3)中继系统,即路由器(router)。
4.网桥和路由器的混合物桥路器(brouter)兼有网桥和路由器的功能。
5.在网络层以上的中继系统,即网关(gateway).
当中继系统是转发器时,一般不称之为网络互联,因为这仅仅是把一个网络扩大了,而这仍然是一
个网络。高层网关由于比较复杂,目前使用得较少。因此一般讨论网络互连时都是指用交换机和路由
器进行互联的网络。本文主要阐述交换机和路由器及其区别。
第二层交换机和路由器的区别:
传统交换机从网桥发展而来,属于OSI第二层即数据链路层设备。它根据MAC地址寻址,通过站
表选择路由,站表的建立和维护由交换机自动进行。路由器属于OSI第三层即网络层设备,它根据
IP地址进行寻址,通过路由表路由协议产生。因特网的路由选择协议:内部网关协议 IGP 和外部网
关协议 EGP
第三层交换机和路由器的区别:
在第三层交换技术出现之前,几乎没有必要将路由功能器件和路由器区别开来,他们完全是相同的:
提供路由功能正在路由器的工作,然而,现在第三层交换机完全能够执行传统路由器的大多数功能。
综上所述,交换机一般用于LAN-WAN的连接,交换机归于网桥,是数据链路层的设备,有些交
换机也可实现第三层的交换。路由器用于WAN-WAN之间的连接,可以解决异性网络之间转发分
组,作用于网络层。他们只是从一条线路上接受输入分组,然后向另一条线路转发。这两条线路可能
分属于不同的网络,并采用不同协议。相比较而言,路由器的功能较交换机要强大,但速度相对也慢 ,
价格昂贵,第三层交换机既有交换机线速转发报文能力,又有路由器良好的控制功能,因此得以广播
应用。
--------------------------------------------
Q4:请问 C++的类和 C 里面的 struct 有什么区别?
c++中的类具有成员保护功能,并且具有继承,多态这类 oo 特点,而 c 里的 struct 没有
--------------------------------------------
Q5:请讲一讲析构函数和虚函数的用法和作用?
析构函数也是特殊的类成员函数,它没有返回类型,没有参数,不能随意调用,也没有重载。知
识在类对象生命期结束的时候,由系统自动调用释放在构造函数中分配的资源。
这种在运行时,能依据其类型确认调用那个函数的能力称为多态性,或称迟后联编。
另:
析构函数一般在对象撤消前做收尾工作,比如回收内存等工作,虚拟函数的功能是使子类可以用
同
名的函数对父类函数进行重载,并且在调用时自动调用子类重载函数,如果是纯虚函数,则纯粹是为
了
在子类重载时有个统一的命名而已。
---------------------------------------
Q6:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的?
全局变量的生命周期是整个程序运行的时间,而局部变量的生命周期则是局部函数或过程调用的时
间段。其实现是由编译器在编译时采用不同内存分配方法。全局变量在 main 函数调用后,就开始分配,
如果是静态变量则是在 main 函数前就已经初始化了。而局部变量则是在用户栈中动态分配的(还是建
议 看编译原理中的活动记录这一块)
---------------------------------------
Q7:一些寄存器的题目,主要是寻址和内存管理等一些知识。
---------------------------------------
Q8:8086 是多少尉的系统?在数据总线上是怎么实现的?
8086 系统是 16 位系统,其数据总线是 20 位
--------------------------------------
C++
一、请填写 BOOL , float, 指针变量 与“零值”比较的 if 语句。(10 分)
请写出 BOOL flag 与“零值”比较的 if 语句。(3 分)
标准答案:
if ( flag )
剩余48页未读,继续阅读
资源评论
夏克
- 粉丝: 9597
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功