蜜蜂职场文库 > 面试试题 >

计算机专业面试题库_计算机专业面试问题

时间: 小龙 面试试题

  对于计算机专业的求职者,做好面试准备很重要,那么你了解面试题了吗?下面小编已经为你们整理了计算机专业面试题库,希望可以帮到你。

  计算机专业面试题库(一)

  1.操作系统的主要组成部分?

  进程和线程的管理,存储管理,设备管理,文件管理

  2.Internet采用哪种网络协议?该协议的主要层次结构?

  Internet采用TCP/IP协议 物理层,数据链路层,网络层(IP),应用层

  3.解释文件系统为什么会存在数据冗余?这种数据冗余会导致哪两类典型的题?

  由于文件系统难于实现数据共享,因此,相同的数据可能会在多个文件中重复出现,即产生数据冗余。 数据冗余会导致数据(或更新)异常和数据不一致性

  4.简述中断装置的主要职能。

  中断装置的职能主要有三点:

  1)检查是否有中断事件发生。

  2)若有中断发生,保护好被中断进程的断点及现场信息,以便进程在适当时候能恢复运行。

  3)启动操作系统的中断处理程序。

  5.什么是虚拟设备?为什么在操作系统中引入虚拟设备?

  虚拟设备是通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户进程同时使用,通常把这种经过虚拟技术处理后的设备称为虚拟设备。 在操作系统设备管理中,引入虚拟设备是为了克服独占设备速度较慢、降低设备资源利用率的缺点,从而提高设备的利用率。

  计算机专业面试题库(二)

  1. 程序什么时候应该使用线程,什么时候单线程效率高。

  答:01.耗时的操作使用线程,提高应用程序响应。

  02.并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。

  03.多CPU系统中,使用线程提高CPU利用率

  04.改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。

  其他情况都使用单线程。

  2. 一般数据库若出现日志满了,会出现什么情况,是否还能使用?

  答:只能执行查询等读操作,不能执行更改,备份等写操作,原因是任何写操作都要记录日志。也就是说基本上处于不能使用的状态。

  第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

  3.ICMP是什么协议,处于哪一层?答:Internet控制报文协议,处于网络层(IP层)(ping命令基于这个协议)

  4.winsock建立连接的主要实现步骤?

  答:服务器端:socket()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接。

  客户端:socket()建立套接字,连接(connect)服务器,连接上后使用send()和recv(),在套接字上写读数据,直至数据交换完毕,closesocket()关闭套接字。

  服务器端:accept()发现有客户端连接,建立一个新的套接字,自身重新开始等待连接。该新产生的套接字使用send()和recv()写读数据,直至数据交换完毕,closesocket()关闭套接字。

  5. IP组播有那些好处?

  答:Internet上产生的许多新的应用,特别是高带宽的多媒体应用,带来了带宽的急剧消耗和网络拥挤问题。组播是一种允许一个或多个发送者(组播源)发送单一的数据包到多个接收者(一次的,同时的)的网络技术。组播可以大大的节省网络带宽,因为无论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包。所以说组播技术的核心就是针对如何节约网络资源的前提下保证服务质量。

  6.引用与指针有什么区别?

  1) 引用必须被初始化,指针不必。

  2) 引用初始化以后不能被改变,指针可以改变所指的对象。

  3) 不存在指向空值的引用,但是存在指向空值的指针。

  7. TCP/IP 建立连接的过程?(3-way shake)

  答:在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

  第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

  第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

  计算机专业面试题库(三)

  1、局部变量能否和全局变量重名?

  答:能,局部会屏蔽全局。要用全局变量,需要使用"::"

  局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。

  2、如何引用一个已经定义过的全局变量?

  答:extern

  可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。

  3.描述实时系统的基本特性 在特定时间内完成特定的任务,实时性与可靠性。

  4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?

  全局变量储存在静态数据库,局部变量在堆栈。

  5.什么是平衡二叉树? 左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1。

  6.堆栈溢出一般是由什么原因导致的? 没有回收垃圾资源。

  7.什么函数不能声明为虚函数? constructor函数不能声明为虚函数。

  8.冒泡排序算法的时间复杂度是什么? 时间复杂度是O(n2)。

  9.写出float x 与“零值”比较的if语句。 if(x<0.000001&&x>-0.000001)

  10.Internet采用哪种网络协议?该协议的主要层次结构?

  Tcp/Ip协议 主要层次结构为: 应用层/传输层/网络层/数据链路层/物理层。

  11.Internet物理地址和IP地址转换采用什么协议? ARP (Address Resolution Protocol)(地址解析協議)

  12.IP地址的编码分为哪俩部分? IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。

  13.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。

  循环链表,用取余操作做

  14.不能做switch()的参数类型是: switch的参数不能为实型。

  15. 请写出下列代码的输出内容

  #include

  main()

  {

  int a,b,c,d;

  a=10;

  b=a++;

  c=++a;

  d=10*a++;

  printf("b,c,d:%d,%d,%d",b,c,d);

  return 0;

  }

  答:10,12,120

  28. 写出下列代码的输出内容

  #include

  int inc(int a)

  {

  return(++a);

  }

  int multi(int*a,int*b,int*c)

  {

  return(*c=*a**b);

  }

  typedef int(FUNC1)(int in);

  typedef int(FUNC2) (int*,int*,int*);

  void show(FUNC2 fun,int arg1, int*arg2)

  {

  INCp=&inc;

  int temp =p(arg1);

  fun(&temp,&arg1, arg2);

  printf("%d\n",*arg2);

  }

  main()

  {

  int a;

  show(multi,10,&a);

  return 0;

  }

  
看了“计算机专业面试题库”

49577