logo资料库

浙江大学复试面试题目及答案浩帆版本).pdf

第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
资料共19页,剩余部分请下载后查看
浙江大学计算机考研 历年面试问题集 整理:浩帆 2008.4.4
面向对象程序设计 1) C++多态和动态库链接的区别 多态是面向对象的概念,是面向对象的三大特征之一;多态是允许你将父对象设置成为 和一个或更多的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的 特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型 的指针。 动态链接库(Dynamic Link Library,缩写为 DLL)是一个可以被其它应用程序共享的程 序模块,其中封装了一些可以被共享的例程和资源。动态链接库文件与可执行文件(exe) 非常类似,区别在于 DLL 中虽然包含了可执行代码却不能单独执行,而应由 Windows 应用 程序直接或间接调用。 动态链接是相对于静态链接而言的。所谓静态链接是指把要调用的函数或者过程链接到 可执行文件中,成为可执行文件的一部分。换句话说,函数和过程的代码就在程序的 exe 文 件中,该文件包含了运行时所需的全部代码。当多个程序都调用相同函数时,内存中就会存 在这个函数的多个拷贝,这样就浪费了宝贵的内存资源。而动态链接所调用的函数代码并没 有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息(往 往是一些重定位信息)。仅当应用程序被装入内存开始运行时,在 Windows 的管理下,才在 应用程序与相应的 DLL 之间建立链接关系。当要执行所调用 DLL 中的函数时,根据链接产 生的重定位信息,Windows 才转去执行 DLL 中相应的函数代码。 2) 解释面向对象里的动态派生(动态绑定?) 在面向对象语言中,可以从一个类派生出另一个类。派生出其它类的类称为基类,又称 为父类。被派生的类称为派生类,又称为子类。派生类可以具有父类的特性,共享父类的成 员函数,使用父类的成员,还可以定义自己的新特性,定义自己的数据成员和成员函数。一 个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承; 从多个基类派生的继承称为多继承。 继承方式主要表示派生类继承基类时采用的继承方式,主要有三种,即公有继承、私有 继承、保护继承。 动态绑定:如果一个基类(没有父类)含有虚函数,那么在编译时,编译器会生成一张虚函 数表,表里是该类中所有虚函数的地址(按出现顺序排列);并且会在该类中动态的插入一个 成员变量(__vfptr),它是一个指向这个虚函数表的指针。对于这个基类的所有子类,编译器 都会生成各自的虚函数表,并且把继承得来的__vfptr 指针指向它。静态绑定可以理解为在 编译时知道了对象名,那么此时就可以访问相应的虚函数;而动态绑定因为是用一个基类的指 针来代表,不到运行的时候程序并不知道这个指针是指向基类还是指向派生类,那么虚函数也 就不确定了 3) 虚拟机 1.虚拟机有什么好处? 虚拟机有很好的性能,有很好的可移植性。有利于测试,安全。 2.虚拟机有什么坏处?
低效率。 3.说说有多少虚拟机? 有 JVM,SableVM,IBM 的 VM,还有 kissme.. 4.世界上最快的是什么虚拟机? BEA JRockit 4) C++有哪些特性 1.封装,继承,多态 2.支持面向对象编程和泛型编程 5) C++的异常处理机制 1.抛出异常和捕捉异常; 2.c++的异常处理机制使得异常的引发和处理不必在同一函数中,这样低层的函数可以着 重解决具体问题,而不必过多的考虑对异常的处理,上层调用者可以在适当的我位置设有对 不同类型异常的处理。 6) c/c++区别 1. 前者面向过程,后者既可面向过程,又可面向对象; 2. 后者是前者的超集。 7) 纯虚函数 简单地说,那些被 virtual 关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业 术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形象的 语言来解释就是实现以共同的方法,但因个体差异而采用不同的策略。 指向基类的指针在操作它的多态类对象时,会根据不同的类对象,调用其相应的函数, 这个函数就是虚函数。 纯虚函数是一种特殊的虚函数,它的一般格式如下: class <类名> { virtual <类型><函数名>(<参数表>)=0; … }; 在许多情况下,在基类中不能对虚函数给出有意义有实现,而把它说明为纯虚函数,它 的实现留给该基类的派生类去做。这就是纯虚函数的作用。是纯虚函数只有函数名,返回类 型和参数,函数体为空。 8) C++类中不定义虚函数和定义了虚函数的类在初始化的时候大小是不是 一样? 不一样,定义了虚函数要大一些,因为要建立虚函数表。 9) 什么是内存泄露? 内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并 非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内 存的控制,因而造成了内存的浪费。 10) Java 怎么处理对象的分配和释放问题(具体怎么问得忘了)
Java 把内存划分成两种:一种是栈内存,一种是堆内存。 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。当在 一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域 后,Java 会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由 new 创建的对象和数组。在堆中分配的内存,由 Java 虚拟机的自动 垃圾回收器来管理。在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量, 让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或 对象的引用变量。引用变量就相当于是为数组或对象起的一个名称,以后就可以在程序中使 用栈中的引用变量来访问堆中的数组或对象。引用变量为 0 时表示不再使用,释放。 网络/网络安全 11) 电子邮件协议 收邮件 POP3 :(客户端到服务器) POP3(Post Office Protocol 3) 适用于 C/S 结构的脱机模型的电子邮件协议,目前已发展到 第三版,称 POP3.,它规定怎样将个人计算机连接到 Internet 的邮件服务器和下载电子邮件的 电子协议. 发邮件 SMTP:(服务器到服务器) SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的 地址传送邮件的规则, 或者说是由它来控制信件传输的一种中转方式。SMTP 协议属于 TCP/IP 协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。 12) www,ftp 协议 www 协议:HTTP FTP 协议: 文件传输协议 13) 说一种网络加密算法,并解释一下 DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大 小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。 使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这 两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环。 14) ppp,tcp 是否面向连接,各属于什么层。 ppp 协议是数据链路层,无连接。 tcp 是传输层,面向链接 15) 局域网里的100baseT 是什么 通过双绞线电缆相连、以 100 MB/秒 (Mbps) 的速度传输数据的局域网的以太网标准.
16) 17) 什么是网格 网格能够把分布在因特网上数以亿计的计算机、存储器、贵重设备、数据库等结合起来, 形成一个虚拟的、空前强大的超级计算机,满足不断增长的计算、存储需求,并使信息世界 成为一个有机的整体。 18) RSA RSA 的安全性依赖于大数分解。公钥和私钥都是两个大素数( 大于 100 个十进制位) 的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。 密钥对的产生。选择两个大素数,p 和 q 。计算: n = p * q 然后随机选择加密密钥 e,要求 e 和 ( p - 1 ) * ( q - 1 ) 互质。最后,利用 Euclid 算法计算 解密密钥 d, 满足 e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) ) 其中 n 和 d 也要互质。数 e 和 n 是公钥,d 是私钥。两个素数 p 和 q 不再需要,应该丢弃, 不要让任何人知道。 加密信息 m(二进制表示)时,首先把 m 分成等长数据块 m1 ,m2,..., mi ,块长 s,其中 2^s <= n, s 尽可能的大。对应的密文是: ci = mi^e ( mod n ) ( a ) 解密时作如下计算: mi = ci^d ( mod n ) ( b ) 19) hub、switch、rooter 属于osi 的哪一层 hub:物理层 集线器(HUB)属于数据通信系统中的基础设备,它和双绞线等传输介质一样,是 一种不需任何软件支持或只需很少管理软件管理的硬件设备。 switch:数据链路层 SWITCH是交换机,它的前身是网桥。交换机是使用硬件来完成以往网桥使用软件 来完成过滤、学习和转发过程的任务。SWITCH速度比HUB快,这是由于HUB不知道目 标地址在何处,发送数据到所有的端口。而SWITCH中有一张路由表,如果知道目标地 址在何处,就把数据发送到指定地点,如果它不知道就发送到所有的端口。 router:传输层 路由器(Router)是一种负责寻径的网络设备,它在互连网络中从多条路径中寻找 通讯量最少的一条网络路径提供给用户通信。 20) 分层有什么好处? 分层处理所带来的好处是:每一层可以实现一种相对独立的功能,因而可将一个难以处理 的复杂问题分解为若干较容易处理的较小的问题. 21) hub 有什么作用 将一个端口的数据复制到各个端口 22) 网络里的OSI7 层
Layer 7: 应用层 (Application Layer) Layer 6: 表示层 (Presentation Layer) Layer 5: 会话层 (Session Layer) Layer 4: 传输层 (Transport Layer) Layer 3: 网络层 (Network Layer) Layer 2: 数据链路层 (Data Link Layer) Layer 1: 物理层 (Physical Layer) 23) tcp 与udp 的区别 tcp 是面向连接的 需要确认 udp 是非面向链接的,不需要确认 24) UDP (User Datagram Protocol)的特点是: 不可靠 (Unreliable)、无连接 (Connectionless)、不保证按顺序接收、不提供流量控制 、 不提供拥塞控制 25) TCP (Transmission Control Protocol)的特点是: 面向连接 (Connection-oriented) 只支持单播 (Unicast)通信方式 全双工通信 (Full Duplex) 提供的是字节流传送服务 (Byte Stream Service) 可靠的 (Reliable)服务 提供流量控制 (Flow Control) 提供拥塞控制 (Congestion Control) 26) ISA 的加密和解密钥匙一样吗? 不一样 27) RSA 和DES 在网络数据加密中的应用 RSA 主要在密钥分发,DES 主要在加密传输 28) Internet 的服务和协议 TCP/IP 协议:作用是使计算机之间进行无障碍的通信,让其有相通的语言,即统一的通 信协议。 TCP 协议:作用是在发送与接收计算机系统之间维持连接,同时还要提供无差错的通 信服务,将发送的数据报文还原并组装起来,自动根据计算机系统间的距离远近修改通信确 认的超时值. IP 协议:作用是控制网络上的数据传输。 29) 内部路由有哪几种. 在一个自治系统内的两个路由器彼此互为内部路由器。 30) VLAN 是什么,怎么实现. 虚拟局域网(VLAN),是英文 Virtual Local Area Network 的缩写,是指网络中的站点不拘
泥于所处的物理位置,而可以根据需要灵活地加入不同的逻辑子网中的一种网络技术。 31) TCP/IP 协议哪几层. Application Layer Transport Layer Internet Layer Host-to-network Layer 网络接口层、互联网络层、传输层、应用层 32) 网络操作系统和分布式系统的区别 网络操作系统 网络系统软件中的重要一环是网络操作系统,有人也将它称为网络管理系统,它与传统 的单机操作系统有所不同,它是建立在单机操作系统之上的一个开放式的软件系统,它面对 的是各种不同的计算机系统的互连操作,面对不同的单机操作系统之间的资源共享、用户操 作协调和与单机操作系统的交互,从而解决多个网络用户互连的问题。 分布式操作系统 大量的计算机通过网络被连接在一起,可以获得极高的运算能力及广泛的数据共享。这 种系统被称作分布式系统。分布式操作系统的特征如下。 1. 统一性,即它是一个统一的操作系统。 2. 共享性,即所有的分布式系统中的资源是共享的。 3. 透明性,其含义是用户并不知道分布式系统是运行在多台计算机上,在用户眼里整个分 布式系统中的许多计算机就像是一台计算机,对用户来讲是透明的。 4. 独立性,即处于分布式系统的多个主机都处于平等地位,在物理上独立。 网络操作系统与分布式操作系统在概念上的主要区别是,网络操作系统可以构架于不同 的操作系统之上,也就是说它可以在不同的本机操作系统上,通过网络协议实现网络资源的 统一配置,在大范围内构成网络操作系统。在网络操作系统中并不要求对网络资源进行透明 的访问,即需要指明资源位置与类型,对本地资源和异地资源访问区别对待。 分布式比较强调单一性,它是由一种操作系统构架的。在这种操作系统中,网络的概念 在应用层被淡化了。所有资源(本地的资源和异地的资源)都用同一方式管理与访问,用户 不必关心资源在哪里,或者资源是怎样存储的。 33) ipv4 ipv6 区别 现有的互联网是在 IPv4 协议的基础上运行。IPv6 是下一版本的互联网协议,它的提出 最初是因为随着互联网的迅速发展,IPv4 定义的有限地址空间将被耗尽,地址空间的不足 必将影响互联网的进一步发展。为了扩大地址空间,拟通过 IPv6 重新定义地址空间。IPv4 采用 32 位地址长度,只有大约 43 亿个地址,估计在 2005~2010 年间将被分配完毕,而 IPv6 采用 128 位地址长度,几乎可以不受限制地提供地址。按保守方法估算 IPv6 实际可分配的 地址,整个地球每平方米面积上可分配 1000 多个地址。在 IPv6 的设计过程中除了一劳永逸 地解决地址短缺问题以外,还考虑了在 IPv4 中解决不好的其它问题。IPv6 的主要优势体现 在以下几方面:扩大地址空间、提高网络的整体吞吐量、改善服务质量(QoS)、安全性有更 好的保证、支持即插即用和移动性、更好实现多播功能。 显然,IPv6 的优势能够对上述挑战直接或间接地作出贡献。其中最突出的是 IPv6 大大
地扩大了地址空间,恢复了原来因地址受限而失去的端到端连接功能,为互联网的普及与深 化发展提供了基本条件。当然,IPv6 并非十全十美、一劳永逸,不可能解决所有问题。IPv6 只能在发展中不断完善,也不可能在一夜之间发生,过渡需要时间和成本,但从长远看,IPv6 有利于互联网的持续和长久发展。 简单的说就是,我们现在用的 ip 地址通常是 192.168.1.1 是 4 个 0~255 的数字组成,相对 ipv6 来说就是 192.168.x.x.x.x 有 6 个数字组成,这样 ip 地 址的资源就更大了~ IPv6 与 IPv4 相比有什么特点和优点? 更大的地址空间。 IPv4 中规定 IP 地址长度为 32,即有 2^32-1 个地址;而 IPv6 中 IP 地 址的长度为 128,即有 2^128-1 个地址。 更小的路由表。IPv6 的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器 能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了 路由器转发数据包的速度。 增强的组播(Multicast)支持以及对流的支持(Flow-control) 。这使得网络上的多媒体应用 有了长足发展的机会,为服务质量(QoS)控制提供了良好的网络平台. 加入了对自动配置(Auto-configuration) 的支持。这是对 DHCP 协议的改进和扩展,使得 网络(尤其是局域网)的管理更加方便和快捷. 更高的安全性. 在使用IPv6 网络中用户可以对网络层的数据进行加密并对 IP 报文进行校 验,这极大的增强了网络安全. 34) 会话层做什么的 会话层(Session)提供的服务可使应用建立和维持会话,并能使会话获得同步。会话层 使用校验点可使通信会话在通信失效时从校验点继续恢复通信。这种能力对于传送大的文件 极为重要。 数据库 35) 事务 事务是指一个单元的工作,这些工作要么全做,要么全部不做。 事务是一个逻辑单元, 事务机制保证一组数据的修改要么全部执行,要么全部不执 行。 SQL Server 使用事务保证数据的一致性和确保在系统失败时的可恢复性。事务是一个可 以恢复的单元的工作,由一条或者多条 Transact-SQL 语句组成,可以影响到表中的一行或 者多行数据。事务打开以后,直到事务成功完成之后提交为止,或者到事务执行失败全部取 消或者滚回去为止。 36) ACID 是什么,事务的酸性结构。 ACID,指数据库的不可部分完成性(又称“原子性”,Atomicity)、一致性(Consistency)、 隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库系统,必 需要具有这四种特性,否则在事务过程(Transaction processing)当中,无法保证数据的正
分享到:
收藏