【单选题】设n的初值为正整数,设计一个递归算法如下:int fact(int n){if(n<=0)return 1;else return(n*fact(n-1));}以下叙述中,正确的是______。
A、计算fact(n)需要执行n+2次函数调用
B、计算fact(n)需要执行n+1次函数调用
C、计算fact(n)需要执行n次函数调用
D、计算fact(n)需要执行n-1次函数调用
答案:B
解析:本题考查函数递归调用方面的相关知识。递归法是描述算法的一种强有力的方法,其思想是:将N=n时不能得出解的问题,设法递归(压栈)转化为求n-1,n-2,…的问题,一直到N=0或1的初始情况,由于初始情况的解可以给出,因此,开始层层退栈得到N=2,3,…,n时的解,得到最终结果。本题中,主程序调用fact(n)称为外部调用,其他调用称为内部调用,直到调用fact(0)为止。fact(n)调用fact(n-1),fact(n-1)调用fact(n-2)……fact(1)调用fact(0),内部调用n次,外部调用一次,共n+1次。
【单选题】( )主要用于Linux系统中进程间相互传递数据。
A、FIFO文件
B、设备文件
C、链接文件
D、目录文件
答案:A
解析:Linux系统的五种基本文件类型是普通文件、管道文件、设备文件、链接文件和目录文件。其中,管道文件又称为FIFO文件,主要用于进程间传递数据。
【单选题】若一台服务器只开放了25和110两个端口,那么这台服务器可以提供( )服务。
A、E-mail
B、Web
C、DNS
D、FTP
答案:A
解析:25端口是SMTP协议端口,110端口是POP3协议端口,二者分别是发送邮件和接收邮件的协议,因此可以提供电子邮件服务。
【单选题】会导致进程从执行态变为就绪态的事件是( )。
A、执行P(wait)操作
B、申请内存失败
C、启动I/O设备
D、被高优先级进程抢占
答案:D
解析:本题考查操作系统调度的基础知识。进程切换是多任务多用户操作系统所应具有的基本功能。操作系统为了控制进程的执行,必须有能力挂起正在CPU上运行的进程,并恢复以前挂起的某个进程的执行,这种行为被称为进程切换,任务切换或上下文切换。或者说,进行进程切换就是从正在运行的进程中收回CPU,然后再使待运行进程来占用CPU。这里所说的从某个进程收回CPU,实质上就是把进程存放在CPU的寄存器中的中间数据找个地方存起来,从而把CPU的寄存器腾出来让其他进程使用。进程在其生存期内可能处于如下三种基本状态之一:(a)执行态(Run):进程占有CPU资源,正在运行。显然,在单处理机系统中任一时刻只能有一个进程处于此种状态;(b)就绪态(Ready):进程本身具备运行条件,但由于处理机的个数少于可运行进程的个数,暂未投入运行。即相当于等待CPU资源;(c)等待态(Wait):也称挂起态(Suspended)、封锁态(Blocked)、睡眠态(Sleep)。进程本身不具备运行条件,即使分给它处理机也不能运行。进程正等待某一个事件的发生,如等待某一资源被释放,等待与该进程相关的I/O传输的完成信号等。进程的三个基本状态之间是可以相互转换的。具体地说,当一个就绪进程获得CPU时,其状态由就绪变为执行;当一个执行进程被剥夺CPU时,如用完系统分给它的时间片、出现更高优先级别的其他进程,其状态由运行变为就绪;当一个执行进程因某事件受阻时,如所申请资源被占用、启动I/o传输未完成,其状态由运行变为等待;当所等待事件发生时,如得到申请资源、I/O传输完成,其状态由等待变为就绪。
【单选题】在TCP/IP网络中,为各种公共服务保留的TCP端口号范围是( )。
A、1~255
B、1~1023
C、1~1024
D、1~65 535
答案:B
解析:在TCP/IP网络中,传输层的传输控制协议TCP和用户数据包协议UDP的源端口、目的端口均占用16bit,其所能表达的端口号范围达2^16=65 536,但其中为各种公共服务保留的TCP/UDP端口号范围是1~1023。
【单选题】ICMP协议属于因特网中的(请作答此空)协议,ICMP协议数据单元封装在______中传送。
A、数据链路层
B、网络层
C、传输层
D、会话层
答案:B
解析:ICMP(Internet control Message Protocol)与IP协议同属于网络层,用于传送有关通信问题的消息。例如数据报不能到达目标站,路由器没有足够的缓存空间,或者路由器向发送主机提供最短通路信息等。ICMP报文封装在IP数据报中传送,因而不保证可靠的提交。
【单选题】文件系统中,打开文件(open)操作的功能是( )。
A、把文件信息从辅存读到内存
B、把磁盘的超级块从辅存读到内存
C、把文件的FAT表信息从辅存读到内存
D、把文件的控制管理信息从辅存读到内存
答案:D
解析:在使用已经存在的文件之前,要通过“打开(Open)”文件操作建立起文件和用户之间的联系,目的是把文件的控制管理信息从辅存读到内存。打开文件应完成如下功能:①在内存的管理表中申请一个空表目,用来存放该文件的文件目录信息;②根据文件名在磁盘上查找目录文件,将找到的文件目录信息复制到内存的管理表中。如果打开的是共享文件,则应进行相关处理,如共享用户数加1;③文件定位,卷标处理等。文件一旦打开,可被反复使用直至文件关闭。这样做的优点是减少查找目录的时间,加快文件存取速度,提高系统的运行效率。
【单选题】编译器和解释器是两种基本的高级语言处理程序。编译器对高级语言源程序的处理过程可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等阶段,其中,(请作答此空)并不是每个编译器都必需的。与编译器相比,解释器______。
A、词法分析和语法分析
B、语义分析和中间代码生成
C、中间代码生成和代码优化
D、代码优化和目标代码生成
答案:C
解析:本题考查程序语言基础知识。解释程序也称为解释器,它可以直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行;而编译程序(编译器)则首先将源程序翻译成目标语言程序,然后在计算机上运行目标程序。这两种语言处理程序的根本区别是:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程;而在解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。解释器翻译源程序时不产生独立的目标程序,而编译器则需将源程序翻译成独立的目标程序。分阶段编译器的工作过程如下图所示。其中,中间代码生成和代码优化不是必须的。
【单选题】常用的函数参数传递方式有传值与传引用两种。( )。
A、在传值方式下,形参与实参之间互相传值
B、在传值方式下,实参不能是变量
C、在传引用方式下,修改形参实质上改变了实参的值
D、在传引用方式下,实参可以是任意的变量和表达式
答案:C
解析:传值调用和引用调用是常用的两种参数传递方式。在传值调用方式下,是将实参的值传递给形参,该传递是单方向的,调用结束后不会再将形参的值传给实参。在引用调用方式下,实质上是将实参的地址传递给形参,借助指针在间接访问数据方式下(或者将形参看作是实参的别名),在被调用函数中对形参的修改实质上是对实参的修改。
【单选题】执行下面C语言程序段的结果是( )。main( ){int x=l,a=l,b=l;switch(x){case 0:b++;case 1:a++;case 2:a++;b++;}printf(”a=%d,b=%d“,a,b);}
A、a=2,b=2
B、a=3,b=2
C、a=2,b=l
D、a=3,b=3
答案:B
解析:switch case语句语法,当匹配到了一个case条件,会从该条件开始往下执行其余所有条件语句,不再进行判断,因此这里x=1匹配到了case1,其会执行case1及case2的语句。