计算机复试专业课面试问题锦集
计算机专业面试题目及答案大全

计算机专业面试题目及答案大全计算机专业是目前社会需求高度的专业之一,对于计算机专业的学生来说,面试是获取就业机会的重要环节。
在面试过程中,了解常见的面试题目及答案是至关重要的。
本文将提供一些常见的计算机专业面试题目及答案,帮助准备面试的学生们更好地应对面试挑战。
1. 请简要介绍一下自己。
在面试的开始阶段,面试官通常会要求求职者进行个人介绍。
当面试官提出该问题时,大家可以从以下几个方面进行回答:- 姓名:自我介绍时首先报上自己的姓名;- 教育背景:提及所就读的大学及专业信息;- 实习经验:强调与计算机专业相关的实习经验;- 技术能力:介绍自己掌握的编程语言、软件开发技能等;- 祝愿:结束时可以表达感谢并表达对面试的期待。
2. 你对计算机专业有哪些兴趣和热情?该问题旨在了解求职者对计算机专业的兴趣程度,并考察其对专业的了解程度。
面试者可以从以下几个方面进行回答:- 学术兴趣:对于计算机领域的学术研究有兴趣,并关注当前的研究热点和前沿技术;- 技术兴趣:对于特定的编程语言、软件开发、网络安全等方面表现出热情;- 创新意识:关注行业的创新和发展趋势,并希望能够为行业的进步做出贡献;- 解决问题:喜欢通过计算机技术解决实际问题,并提高工作效率。
3. 请解释什么是操作系统?操作系统是计算机系统中的核心软件,它负责管理计算机的硬件资源,提供程序运行环境,并协调各种应用软件的工作。
它是用户与计算机硬件之间的桥梁,为用户提供了友好的界面和良好的用户体验。
操作系统分为多种类型,例如Windows、Linux和iOS等。
4. 请解释什么是数据库?数据库是一个存储、管理和组织数据的系统。
它采用了结构化的方式来存储数据,并提供了方便的操作和查询方式。
常见的数据库管理系统有MySQL、Oracle和SQL Server等。
数据库在计算机专业中被广泛应用,用于存储和管理大量的结构化数据。
5. 请简要解释什么是面向对象编程(OOP)?面向对象编程是一种软件编程方法,它将现实世界的对象抽象为程序中的类,通过封装、继承和多态等概念来组织和管理代码。
计算机专业复试面试经典问题(含答案)

1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL2. 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?while(1){}或者for(;;){}3. 用变量a给出下面的定义a) 一个整型数(An integer)b)一个指向整型数的指针( A pointer to an integer)c)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an intege)rd)一个有10个整型数的数组( An array of 10 integers)e) 一个有10个指针的数组,该指针是指向一个整型数的。
(An array of 10 pointers to integers)f) 一个指向有10个整型数数组的指针( A pointer to an array of 10 integers)g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )答案是:a) int a; // An integerb) int *a; // A pointer to an integerc) int **a; // A pointer to a pointer to an integerd) int a[10]; // An array of 10 integerse) int *a[10]; // An array of 10 pointers to integersf) int (*a)[10]; // A pointer to an array of 10 integersg) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integerh) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer4.关键字static的作用是什么?这个简单的问题很少有人能回答完全。
计算机专业面试题目及答案

计算机专业面试题目及答案一、操作系统1. 解释操作系统的作用和功能。
操作系统是一种管理计算机硬件和软件资源的系统软件,它提供了一组接口和服务,以便用户和应用程序可以有效地与计算机交互和利用计算机资源。
操作系统的主要功能包括进程管理、内存管理、文件系统管理、设备管理和用户接口。
2. 什么是进程和线程?它们之间有什么区别?进程是计算机中正在运行的一个程序的实例。
它拥有独立的地址空间、系统资源和执行状态。
进程之间是相互独立的,每个进程都有自己的数据和代码。
线程是进程中的执行单元,是进程内部的一条执行路径。
一个进程可以包含多个线程,这些线程共享进程的资源,如内存空间和打开的文件。
不同线程之间可以并发执行,共享同一个进程的上下文环境。
主要区别在于进程拥有独立的地址空间和系统资源,而线程共享进程的资源。
线程切换开销较小,通信较为方便,但线程之间的同步和互斥较为复杂。
进程切换开销较大,通信较为复杂,但进程之间的隔离性好。
二、数据结构与算法1. 什么是数据结构?举例说明常见的数据结构。
数据结构是组织和存储数据的方式,它定义了数据的组织方式和操作方法。
常见的数据结构包括数组、链表、栈、队列、树、图等。
举例说明:- 数组:用于存储一组相同类型的数据,可以通过索引访问元素。
- 链表:由一系列节点组成的线性数据结构,每个节点包含数据和指向下一个节点的指针。
- 栈:先进后出的数据结构,只能在栈顶进行插入和删除操作。
- 队列:先进先出的数据结构,可以在队尾插入元素,在队首删除元素。
- 树:由节点和边组成的非线性数据结构,适用于表达具有层次关系的数据。
- 图:由节点和边组成的非线性数据结构,适用于表达具有复杂关系的数据。
2. 什么是算法?请举例说明一个常见的算法。
算法是解决问题或执行任务的一组规则或步骤。
它描述了输入、输出和对输入数据的处理过程。
算法可以用伪代码、流程图或编程语言表示。
举例说明一个常见的算法:冒泡排序算法。
冒泡排序算法通过多次比较和交换相邻元素的方式将数组中的元素按照升序或降序排列。
计算机专业复试面试经典问题(含答案)

1 。
用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL2. 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?while(1){}或者for(;;){}3. 用变量a给出下面的定义a)一个整型数(An integer)b)一个指向整型数的指针( A pointer to an integer)c)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an intege)rd)一个有10个整型数的数组( An array of 10 integers)e) 一个有10个指针的数组,该指针是指向一个整型数的。
(An array of 10 pointers to integers)f) 一个指向有10个整型数数组的指针( A pointer to an array of 10 integers)g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )答案是:a) int a; // An integerb) int *a; // A pointer to an integerc) int **a; // A pointer to a pointer to an integerd) int a[10]; // An array of 10 integerse) int *a[10]; // An array of 10 pointers to integersf) int (*a)[10]; // A pointer to an array of 10 integersg) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer4.关键字static的作用是什么?这个简单的问题很少有人能回答完全。
计算机专业复试面试的题目集

计算机专业复试集锦1.什么是程序局部性,为什么会有程序的空间局部性程序局部性是指程序在运行时呈现出局部性规律,在一段时间间隔内,程序的执行是局限在某个部份,所访问的存储空间也只局限在某个区域;空间局部性是指若一个存储单元被访问,那么它附近的单元也可能被访问,这是由于程序的顺序执行引起的;2.比较TCP与UDPTCP与UDP都是传输层的协议,且都用端口号标识数据所达的进程;TCP提供的是面向连接服务,提供可靠交付;且具有流量控制和拥塞控制;可用于可靠要求高的场合如:SMTP,FTP,HTTP等;UDP提供的是无连接服务,提供不可靠交付,且无确认机制;主要用于即时强的场合如:视频聊天,语音电话等;3.网络协议的三个核心要素,及概念.各起什么作用语法,定义了数据与控制信息的格式;语义,定义了需要发出何种控制信息,完成何种响应动作以及作出何种响应;同步,定义了事件实现顺序的详细说明;4.关系数据库都有那些操作,特点是什么◇查询:选择、投影、连接、除、并、交、差◇数据更新:插入、删除、修改关系操作的特点:集合操作方式,即操作的对象和结果都是集合;5. 解释一下网络体系结构,它得实现和理论有什么区别是指通信系统的整体设计,它为网络硬件、软件、协议、存取控制和拓扑提供标准;网络体系统结构采用分层结构,各层之间相互独立、较易维护、灵活性好;国际标准化组织制定了OSI/RM标准,该标准采用了七层结构应用层、表示层、会话层、传输层、网络层、数据链路层、物理层;七层协议体系结构既复杂又不实用,但其概念清楚,体系结构理论较完整;而TCP/IP却成为了事实上的标准,它采用了四层结构即应用层、传输层、网络层和网络接口层;6.为了实现重定位需要哪些硬件最简单的方式是在系统中增设一个重定位寄存器,用来存放正在执行作业的内存地址,每次访问数据时,由硬件自动将相对地址与重定位寄存器中的起始地址相加,形成实际的特理地址;当然在分页式与分段式系统中,具地址变换机构,以及快表等硬件;7.数据库保护访问的内容有哪些利用权限机制,利用完整性约束防止法数据进入数据库,提供故障恢复能力,提供并发访问控制8.在交互式系统中,非剥夺是不是一个好的策略为什么非剥夺方式:分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程;剥夺方式:当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程;剥夺原则有:优先权原则、短进程、优先原则、时间片原则;在分时系统中不剥夺并不是一个好的策略;因为,在分时系统中,除了交互性以外,及时性是很重要的性能因素;当一个作业被阻塞后,CPU就完全空闲了,别的用户的及时性就无法保证了,而完全可以把这些时间分配给别的作业运行;以提高整体的吞吐量;9.DBA的职责是什么DBA则是这个机构的一个组人员,负责全面管理和控制数据库系统.职责有:1决定数据库中的信息内容和结构:数据库中要存放哪些信息2决定数据库的存储结构和存取策略:获得较高的存取效率和存储空间利用率3约定义数据的安全性要求和完整性约束条件:负责确定各个用户对数据库的存取权限、数据的保密级别和完整性约束条件4监控数据库的使用和运行:转储数据、维护日志文件、故障恢复5数据库的改进和重组重构:对运行情况进行记录、统计分析,以此来不断改进数据库设计10.系统调用的定义系统调用是OS与应用程序之间的接口,它是用户程序取得OS服务的惟一途径;它与一般的过程调用的区别:运行在不同的系统状态;调用程序在运行在用户态,而被调用的程序运行在系统态;通过软中断机制,先由用户态转为系统态,经枋心分析后,才能转向相应的系统调用处理子程序;一般的过程调用返回后继续执行,但对系统调用,当调用的进程仍具有最高优先权时,才返回到调用进程继续处理;否则只能等被重新调度;11.死锁是什么指多个有关进程由于争夺资源而造成的一种僵局,在无外力的情况下这些进程都将无法再向前推进的状态;12.CPU不执行程序的时候干什么当没有被任何程序使用的时候,计算机的处理器被认为是空闲的;当然下面提到的空闲任务不在此列中;当有程序利用CPU空闲时间的时候,就意味着它以较低的优先权运行着,以便不会影响那有正常优先权的程序运行;一般来讲,这会引起CPU消耗更多的电能,而大多数的现代CPU当它们空闲的时候是能够进入省电模式的;大多数操作系统都有个空闲任务,它是一个特殊的任务;仅当CPU无事可做的时候由操作系统调度器载入它;在现代的处理器中,HLT停机指令节省了大量的电能与执量,而空闲任务几乎总是由一个重复执行HLT停机指令的循环组成;13.举例解释一下同步和互斥同步表现为直接制约,如管道通信,一个进程写,一个进程读,它们是相互制约的;互斥表现为间接制约,比如多个进程同时请求打印机没使用SPOOLing技术、多个进程同时请求一张网卡发送数据包等;14.解释一下管程管程是由一组局部变量、对局部变量进行操作的一组过程和对局部变量进行初始化的语句序列组成;引入它的目的是因为Wait/Singal操作太过分散,对它的维护很麻烦且容易造成死锁;管程的特点是:管程的过程只能访问管程的局部变量,管程的局部变量只能由其过程来访问;任何时刻只能有一个进程进入管程执行;进程只能通管程提供的过程入口进入管程;15.在可变分区管理中,需要哪些硬件机制采用可变分区方式管理时,一般均采用动态重定位方式装入作业;地址变换要靠硬件支持,主要是两个寄存器:基址寄存器和限长寄存器,限长寄存器存放作业所占分区的长度,基址寄存器则存放作业所占分区的起始地址,这两个值确定了一个分区的位置和大小;转换时根据逻辑地址与限长值比较,如果不有超过这个值,表示访问地址合法,再加上基址寄存器中的值就得到了绝对地址了,否则形成“地址越界”中断;16.中断和陷入有什么异同外中断时指来自处理机和内存外部的中断,如I/O中断、定时器中断、外部信号中断等;狭义上也叫中断;内中断主要指在处理机和内存内部产生的中断,也称陷入,如校验错、页面失效、溢出、除数为零等;中断和陷阱的主要区别:1陷入通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的;2陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的;3CPU在执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷阱;17.数据库系统和文件系统相比有什么优点文件系统数据库管理系统某一应用18.计算机网络和分布式计算机系统的区别两者在计算机硬件连接、系统拓朴结构和通信控制等方面基本都是一样的,它们都具有通信和资源共享的功能;区别关键在于:分布式计算机系统是在分布式计算机操作系统支持下,进行分布式数据库处理的,也就是说各互联的计算机可以互相协调工作,共同完成一项任务,多台计算机上并行运行;且具有透明性,用户不知道数据、资源的具体位置,整个网络中所有计算机就像是一台计算机一样;而计算机网络却不具备这种功能,计算机网络系统中的各计算机通常是各自独立进行工作的;19.为什么引入多道程序技术因为引入多道程序技术后,可以进一步提高了CPU利用率阻塞,提高内存和I/O设备利用率小作业把内存浪费了,增加系统吞吐量两都提高后的必然;20.什么是管态什么是目态它们与进程运行状态的关系是什么CPU交替执行操作系统程序和用户程序;管态又叫特权态,系统态或核心态;CPU在管态下可以执行指令系统的全集;通常,操作系统在管态下运行;目态又叫常态或用户态;机器处于目态时,程序只能执行非特权指令;用户程序只能在目态下运行,如果用户程序在目态下执行特权指令,硬件将发生中断,由操作系统获得控制,特权指令执行被禁止,这样可以防止用户程序有意或无意的破坏系统;21.n个任务一个cup,阻塞,运行,就绪的进程最多有多少个阻塞n个;运行1个;就绪n-1个;22.波特和比特的区别波特是码元传输的踵率单位,说明每秒传多少个码元;码元传输速率也称为调制速率、波形速率或符号速率;比特是信息量的单位,与码元的传输速率"波特"是两个完全不同的概念;但是,信息的传输速率"比特/秒"与码元的传输速率"波特"在数量上却有一定的关系;23.什么是网络延时时延delay或latency是指一个报文或分组从一个网络或一条链路的一端传送到另一端所需的时间;24.什么是完整性约束强制数据完整性可确保数据库中的数据质量;25.什么是码元什么是码元长度在数字通信中常常用时间间隔相同的符号来表示一位二进制数字;这样的时间间隔内的信号称为二进制码元,而这个间隔被称为码元长度;26.结合Internet,说说有连接服务和无连接的服务面向连接服务具有连接建立、数据传输和连接释放这三个阶段;面向连接服务是在数据交换之前,必须先建立连接;当数据交换结束后,则必须终止这个连接;在传送数据时是按序传送的,是可靠交付;面向连接服务比较适合于在一定期间内要向同一日的地发送许多报文的情况;无连接服务,两个实体之间的通信不需要先建立好一个连接,因此其下层的有关资源不需要事先进行预定保留;这些资源将在数据传输时动态地进行分配;无连接服务的优点是灵活方便和比较迅速;但无连接服务不能防止报文的丢失、重复或失序;是一种不可靠的服务;这种服务常被描述为"尽量大努力支付";27.点对点和端到端工作在哪层工作机制28.DBMS支持那几种数据模型29.父子进程是否可以并发运行30.SQL的四个组成部分31.数据库操纵语言举例32.介绍下有哪些应用数据库33.什么是数据独立性;34.网络时延又拿几部分组成各产生于何处35.实体协议服务36.1NF是啥,数据模式37.缓冲的定义,为什么引入38.TCP/IP网络协议的核心是什么,如何引出“overeverything”和“everythingover”39.数据库的关系操作有哪些各有什么作用40.用白军和蓝军解释下没有100%可靠的通信数据库1.文件系统和DBS的最大区别在什么地方,DBS还有哪些特点;2.和文件系统相比,数据库文件有什么优点3.试述DBMS的数据模型;,DBMS支持那几种数据模型4.系数据库的关系操作都有那些,特点是什么5.数据库保护访问的内容有哪些是啥,数据模式,7.数据库操纵语言举例的职责是什么9.完整性约束是什么10.介绍下有哪些应用数据库11..SQL的四个组成部分在不执行任何程序时在做什么;2,根据蓝军白军分析不可能有百分之百的协议;3:什么是系统调用..4:结合Internet,说明怎么得到有连接和无连接的服务5:什么是缓冲引入缓冲的作用是什么6:网络协议的三要素是什么各起什么作用7.点对点和端到端工作在纳层工作机制8.什么是管程9.,为什么会有程序的空间局部性10.比较TCP/UDP11.父子进程是否可以并发运行12.网络协议的三个核心要素,及概念:3个核心要素就是:协议,服务,接口语法语义同步13.解释一下网络体系结构,它得实现和理论有什么区别14.为了实现重定位需要哪些硬件15.网络时延由哪3部分组成各产生于何处16.在交互式系统中,非剥夺是不是一个好的策略why17.什么叫1,实体协议服务18.缓冲的定义,为什么引入19.系统调用的定义20.死锁是什么21.举例解释一下同步和互斥22.还有关于管程的23.父进程跟子进程能并发执行吗24.网络时延又拿几部分组成各产生于何处25.在可变分区管理中,需要哪些硬件机制26.协议的三要素是什么请分别说明27.中断和陷入有什么异同28.计算机网络和分布式计算机系统的区别29.为什么引入多道程序技术IP网络协议的核心是什么,如何引出“overeverything”和“everythingover”31.什么是数据独立性;32.什么是管态什么是目态它们与进程运行状态的关系是什么33.在没有程序运行时,CPU在做什么34.以INTERNET为例,说明用户怎样获得面向连接服务和面向非连接服务35.在n个cpu中,阻塞,运行,就绪的进程最多有多少个36.波特和比特的区别37.可变分区需要什么硬件支持38.电路与分组交换的区别。
计算机面试题目(3篇)

第1篇一、基础知识1. 请解释一下什么是位运算,并举例说明其应用场景。
位运算是指对二进制位进行操作的运算,主要包括按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)和右移(>>)等。
以下是一些应用场景:(1)按位与:用于判断两个整数的某一位是否同时为1。
(2)按位或:用于将两个整数的对应位进行或运算,得到结果。
(3)按位异或:用于将两个整数的对应位进行异或运算,如果两个位相同,则结果为0;如果两个位不同,则结果为1。
(4)按位取反:用于将整数的每一位取反,即将0变为1,将1变为0。
(5)左移:用于将整数的二进制表示向左移动指定的位数,右边的位被丢弃,左边补0。
(6)右移:用于将整数的二进制表示向右移动指定的位数,左边的位被丢弃,右边补0。
2. 请解释一下什么是数据类型,并列举常见的几种数据类型。
数据类型是指用于定义变量存储的数据种类的类型。
以下是一些常见的几种数据类型:(1)整型(int):用于存储整数,如int a = 10;(2)浮点型(float、double):用于存储实数,如float b = 3.14;(3)字符型(char):用于存储单个字符,如char c = 'A';(4)布尔型(bool):用于存储布尔值,如bool d = true;(5)数组:用于存储一系列相同类型的数据,如int arr[10];(6)结构体(struct):用于存储不同类型的数据,如struct Person {int age; char name[20];};(7)指针:用于存储变量的地址,如int ptr = &a。
3. 请解释一下什么是面向对象编程,并举例说明其应用场景。
面向对象编程(OOP)是一种编程范式,它将数据和行为封装在对象中,强调继承、封装和多态。
以下是一些应用场景:(1)设计大型软件系统,如操作系统、数据库等;(2)开发图形用户界面(GUI)应用程序;(3)开发网络应用程序,如Web应用、移动应用等;(4)开发游戏和模拟软件。
计算机复试面试题目及答案
计算机复试面试题目及答案一、介绍在计算机专业的复试面试中,面试官通常会提问一系列与计算机相关的问题,以评估考生的专业知识和技能。
本文将针对计算机复试面试常见的题目进行总结,并针对每个题目提供相应的答案,希望能帮助考生顺利通过复试。
二、数据结构与算法1. 介绍什么是数据结构?数据结构是指数据在计算机中的组织方式,包括线性结构、树形结构、图形结构等。
它与算法紧密相关,是计算机科学的基础。
2. 请简述线性表的种类以及各自的特点。
线性表包括顺序表和链表。
顺序表是一种使用连续的存储空间存储数据的线性表,它的特点是随机访问效率高,但插入和删除元素的效率较低。
链表是一种使用不连续的存储空间存储数据的线性表,它的特点是插入和删除元素的效率较高,但访问元素的效率较低。
3. 请简述树是什么以及树的应用场景。
树是一种非线性的数据结构,它由若干个节点组成,节点之间通过边连接。
树的应用场景包括文件系统的组织、搜索引擎的索引结构等。
4. 请解释什么是时间复杂度和空间复杂度。
时间复杂度是描述算法运行时间与输入规模之间的增长关系,用大O表示。
空间复杂度是描述算法所需的额外存储空间与输入规模之间的增长关系。
5. 请简述常见的排序算法以及它们的时间复杂度。
常见的排序算法有冒泡排序、插入排序、选择排序、快速排序、归并排序等。
它们的时间复杂度分别是O(n^2)、O(n^2)、O(n^2)、O(nlogn)、O(nlogn)。
三、操作系统1. 请简述进程与线程的区别。
进程是一个具有独立功能的程序在一个数据集合上的一次运行过程,线程是进程的一个子任务,多个线程共享进程的资源。
2. 请简述进程间通信的方式。
进程间通信的方式包括管道、消息队列、共享内存、信号量、套接字等。
3. 请解释什么是死锁以及如何避免死锁。
死锁是指两个或多个进程在执行过程中,由于竞争资源而造成的一种互相等待的现象。
避免死锁的方法包括破坏死锁产生的条件、破坏死锁产生的环路、破坏死锁产生的互斥条件等。
计算机考研复试面试题库及答案
计算机考研复试面试题库及答案一、专业基础知识1. 计算机组成原理题目:简述冯·诺伊曼体系结构的基本原理。
答案:冯·诺伊曼体系结构是一种计算机系统的设计原则,也是现代计算机的基础。
它的基本原理包括以下几点:- 存储程序:计算机通过将指令和数据存储在同一个存储器中,实现了程序的自动执行。
- 二进制系统:计算机使用二进制表示数据和指令,简化了计算机系统的设计和实现。
- 指令流水线:计算机通过将指令的执行过程划分为多个阶段,并同时进行不同指令的执行,提高了计算机的执行效率。
- 内存层次结构:计算机通过多层次的存储器结构,包括高速缓存、内存和外部存储器,提供了不同速度和容量的存储器选择。
2. 算法与数据结构题目:什么是二叉搜索树?如何实现插入和删除操作?答案:二叉搜索树(BST)是一种特殊的二叉树,满足以下条件:- 对于树中的每个节点,其左子树的所有节点的值小于该节点的值,右子树的所有节点的值大于该节点的值。
- 对于树中的每个节点,其左子树和右子树也是二叉搜索树。
实现插入操作的步骤:- 从根节点开始,将待插入的值与当前节点的值进行比较。
- 如果待插入的值小于当前节点的值,且当前节点的左子树为空,则将待插入的值作为当前节点的左子节点。
- 如果待插入的值大于当前节点的值,且当前节点的右子树为空,则将待插入的值作为当前节点的右子节点。
- 如果待插入的值小于当前节点的值,且当前节点的左子树不为空,则将当前节点更新为其左子节点,重复上述步骤。
- 如果待插入的值大于当前节点的值,且当前节点的右子树不为空,则将当前节点更新为其右子节点,重复上述步骤。
实现删除操作的步骤:- 如果待删除的节点为叶子节点,直接删除。
- 如果待删除的节点只有一个子节点,将子节点连接至待删除节点的父节点。
- 如果待删除的节点有左右子节点,找到其右子树中的最小节点,用该节点替换待删除节点,并删除最小节点。
二、算法设计与分析1. 动态规划题目:请简述动态规划算法的基本思想,并给出一个应用动态规划算法的例子。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机复试专业课面试问题锦集 1.什么是程序局部性,为什么会有程序的空间局部性?程序局部性是指程序在运行时呈现出局部性规律,在一段时间间隔,程序的执行是局限在某个部份,所访问的存储空间也只局限在某个区域。空间局部性是指若一个存储单元被访问,那么它附近的单元也可能被访问,这是由于程序的顺序执行引起的。 2.比较TCP与UDP?TCP与UDP都是传输层的协议,且都用端口号标识数据所达的进程。TCP提供的是面向连接服务,提供可靠交付。且具有流量控制和拥塞控制。可用于可靠要求高的场合如:SMTP,FTP,HTTP等.UDP提供的是无连接服务,提供不可靠交付,且无确认机制。主要用于即时强的场合如:视频聊天,语音等。 3.网络协议的三个核心要素,及概念.各起什么作用?语法,定义了数据与控制信息的格式;语义,定义了需要发出何种控制信息,完成何种响应动作以及作出何种响应;同步,定义了事件实现顺序的详细说明。 4.关系数据库都有那些操作,特点是什么?◇查询:选择、投影、连接、除、并、交、差◇数据更新:插入、删除、修改;关系操作的特点:集合操作方式,即操作的对象和结果都是集合。 5.解释一下网络体系结构,它得实现和理论有什么区别?是指通信系统的整体设计,它为网络硬件、软件、协议、存取控制和拓扑提供标准。网络体系统结构采用分层结构,各层之间相互独立、较易维护、灵活性好。国际标准化组织制定了OSI/RM标准,该标准采用了七层结构应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。七层协议体系结构既复杂又不实用,但其概念清楚,体系结构理论较完整。而TCP/IP却成为了事实上的标准,它采用了四层结构即应用层、传输层、网络层和网络接口层。 6.为了实现重定位需要哪些硬件?最简单的方式是在系统中增设一个重定位寄存器,用来存放正在执行作业的存地址,每次访问数据时,由硬件自动将相对地址与重定位寄存器中的起始地址相加,形成实际的特理地址。当然在分页式与分段式系统中,具地址变换机构,以及快表等硬件。 7.数据库保护(访问)的容有哪些?利用权限机制,利用完整性约束防止法数据进入数据库,提供故障恢复能力,提供并发访问控制。 8.在交互式系统中,非剥夺是不是一个好的策略?为什么?非剥夺方式:分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。剥夺方式:当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则、短进程、优先原则、时间片原则。在分时系统中不剥夺并不是一个好的策略。因为,在分时系统中,除了交互性以外,及时性是很重要的性能因素。当一个作业被阻塞后,CPU就完全空闲了,别的用户的及时性就无法保证了,而完全可以把这些时间分配给别的作业运行。以提高整体的吞吐量。 9.DBA的职责是什么?DBA则是这个机构的一个(组)人员,负责全面管理和控制数据库系统.职责有:(1)决定数据库中的信息容和结构:数据库中要存放哪些信息;(2)决定数据库的存储结构和存取策略:获得较高的存取效率和存储空间利用率;(3)约定义数据的安全性要求和完整性约束条件:负责确定各个用户对数据库的存取权限、数据的级别和完整性约束条件;(4)监控数据库的使用和运行:转储数据、维护日志文件、故障恢复;(5)数据库的改进和重组重构:对运行情况进行记录、统计分析,以此来不断改进数据库设计。 10.系统调用的定义?系统调用是OS与应用程序之间的接口,它是用户程序取得OS服务的惟一途径。它与一般的过程调用的区别:运行在不同的系统状态。调用程序在运行在用户态,而被调用的程序运行在系统态;通过软中断机制,先由用户态转为系统态,经枋心分析后,才能转向相应的系统调用处理子程序;一般的过程调用返回后继续执行,但对系统调用,当调用的进程仍具有最高优先权时,才返回到调用进程继续处理;否则只能等被重新调度。 11.死锁是什么?指多个有关进程由于争夺资源而造成的一种僵局,在无外力的情况下这些进程都将无法再向前推进的状态。 12.CPU不执行程序的时候干什么?当没有被任何程序使用的时候,计算机的处理器被认为是空闲的。当然下面提到的空闲任务不在此列中。当有程序利用CPU空闲时间的时候,就意味着它以较低的优先权运行着,以便不会影响那有正常优先权的程序运行。一般来讲,这会引起CPU消耗更多的电能,而大多数的现代CPU当它们空闲的时候是能够进入省电模式的。大多数操作系统都有个空闲任务,它是一个特殊的任务。仅当CPU无事可做的时候由操作系统调度器载入它。在现代的处理器中,HLT停机指令节省了大量的电能与执量,而空闲任务几乎总是由一个重复执行HLT停机指令的循环组成。 13.举例解释一下同步和互斥?同步表现为直接制约,如管道通信,一个进程写,一个进程读,它们是相互制约的。互斥表现为间接制约,比如多个进程同时请求打印机(没使用SPOOLing技术)、多个进程同时请求一网卡发送数据包等。 14.解释一下管程?管程是由一组局部变量、对局部变量进行操作的一组过程和对局部变量进行初始化的语句序列组成。引入它的目的是因为Wait/Singal操作太过分散,对它的维护很麻烦且容易造成死锁。管程的特点是:管程的过程只能访问管程的局部变量,管程的局部变量只能由其过程来访问;任何时刻只能有一个进程进入管程执行;进程只能通管程提供的过程入口进入管程。 15.在可变分区管理中,需要哪些硬件机制?采用可变分区方式管理时,一般均采用动态重定位方式装入作业。地址变换要靠硬件支持,主要是两个寄存器:基址寄存器和限长寄存器,限长寄存器存放作业所占分区的长度,基址寄存器则存放作业所占分区的起始地址,这两个值确定了一个分区的位置和大小。转换时根据逻辑地址与限长值比较,如果不有超过这个值,表示访问地址合法,再加上基址寄存器中的值就得到了绝对地址了,否则形成“地址越界”中断。 16.中断和陷入有什么异同?外中断时指来自处理机和存外部的中断,如I/O中断、定时器中断、外部信号中断等。狭义上也叫中断;中断主要指在处理机和存部产生的中断,也称陷入,如校验错、页面失效、溢出、除数为零等;中断和陷阱的主要区别:(1)陷入通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。(2) 陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。(3) CPU在执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷阱。 17.数据库系统和文件系统相比有什么优点? 文件系统 数据库管理系统 某一应用 现实世界 共享性差,冗余度大 共享性高,冗余度小 记录有结构,整体无结构 整体结构化,用数据模型描述 应用程序自己控制 由数据库管理系统提供数据安全性,完整性,并发控制和恢复能力 独立性差 具有高度的物理独立性和一定的逻辑独立性 18.计算机网络和分布式计算机系统的区别?两者在计算机硬件连接、系统拓朴结构和通信控制等方面基本都是一样的,它们都具有通信和资源共享的功能。区别关键在于:分布式计算机系统是在分布式计算机操作系统支持下,进行分布式数据库处理的,也就是说各互联的计算机可以互相协调工作,共同完成一项任务,多台计算机上并行运行。且具有透明性,用户不知道数据、资源的具体位置,整个网络中所有计算机就像是一台计算机一样;而计算机网络却不具备这种功能,计算机网络系统中的各计算机通常是各自独立进行工作的。 19.为什么引入多道程序技术?因为引入多道程序技术后,可以进一步提高了CPU利用率(阻塞),提高存和I/O设备利用率(小作业把存浪费了),增加系统吞吐量(两都提高后的必然)。 20.什么是管态?什么是目态?它们与进程运行状态的关系是什么?CPU交替执行操作系统程序和用户程序。管态又叫特权态,系统态或核心态。CPU在管态下可以执行指令系统的全集。通常,操作系统在管态下运行。目态又叫常态或用户态。机器处于目态时,程序只能执行非特权指令。用户程序只能在目态下运行,如果用户程序在目态下执行特权指令,硬件将发生中断,由操作系统获得控制,特权指令执行被禁止,这样可以防止用户程序有意或无意的破坏系统。 21.n个任务一个cup,阻塞,运行,就绪的进程最多有多少个?阻塞n个;运行1个;就绪n-1个。 22.波特和比特的区别?波特是码元传输的踵率单位,说明每秒传多少个码元。码元传输速率也称为调制速率、波形速率或符号速率。比恃是信息量的单位,与码元的传输速率"波特"是两个完全不同的概念。但是,信息的传输速率"比特/秒"与码元的传输速率"波特"在数量上却有一定的关系。 23.什么是网络延时?时延(delay或latency)是指一个报文或分组从一个网络(或一条链路)的一端传送到另一端所需的时间。 24.什么是完整性约束?强制数据完整性可确保数据库中的数据质量。 25.什么是码元?什么是码元长度?在数字通信中常常用时间间隔相同的符号来表示一位二进制数字。这样的时间间隔的信号称为二进制码元,而这个间隔被称为码元长度。 26.结合Internet,说说有连接服务和无连接的服务?面向连接服务具有连接建立、数据传输和连接释放这三个阶段。面向连接服务是在数据交换之前,必须先建立连接。当数据交换结束后,则必须终止这个连接。在传送数据时是按序传送的,是可靠交付。面向连接服务比较适合于在一定期间要向同一日的地发送许多报文的情况。无连接服务,两个实体之间的通信不需要先建立好一个连接,因此其下层的有关资源不需要事先进行预定保留。这些资源将在数据传输时动态地进行分配。无连接服务的优点是灵活方便和比较迅速。但无连接服务不能防止报文的丢失、重复或失序。是一种不可靠的服务。这种服务常被描述为"尽量大努力支付"。 27.点对点和端到端工作在哪层?工作机制? 28. DBMS支持那几种数据模型? 29.父子进程是否可以并发运行? 30.SQL的四个组成部分? 31.数据库操纵语言举例? 32.介绍下有哪些应用数据库? 33.什么是数据独立性。 34.网络时延又拿几部分组成?各产生于何处? 35.实体\协议\服务? 36.1NF是啥数据模式? 37.缓冲的定义,为什么引入? 38.TCP/IP网络协议的核心是什么,如何引出“ over everything”和“everythingover ?” 39.数据库的关系操作有哪些?各有什么作用? 40.用白军和蓝军解释下没有100%可靠的通信? 1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)? #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 2.嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?while(1){}或者for(;;){} 3.用变量a给出下面的定义 a) 一个整型数(An integer) b)一个指向整型数的指针( A pointer to an integer)