2020校招后端笔试题(三)

PS:该篇的题目出自牛客网笔试真题
链接:https://www.nowcoder.com/test/21366686/summary
1.从用户角度看,引入文件系统的主要目的是( )

实现对文件的按名存取

2.要求在规定的时间内对外界的请求必须给予及时相应 的OS是( )

实时系统

3.通常所说的”存储保护”的基本含义是( )

防止程序间相互越界访问

4.外存上存放的数据( )

必须在访问前先装入内存

因为存放在外存中的信息,必须先由CPU读出来写入内存,才能够被CPU使用。
5.以太网媒体访问控制技术CSMA/CD的机制是( )

争用带宽

CSMA/CD的机制:控制过程包含四个处理内容:监听、发送、检测、冲突处理。
1、监听:
	通过专门的检测机构,在站点准备发送前先侦听一下总线上是否有数据正在传(线路是否忙),若“忙”则进入后述的“退避”处理程序,进而进一步反复进行侦听工作;若“闲”,则一定算法原则(“X坚持”算法)决定如何发送。
2、发送:
	当确定要发送后,通过发送机构,向总线发送数据。
3、检测:
	数据发送后,也可能发生数据碰撞。因而,要对数据边发送,边检测,以判断是否冲突了。
4、冲突处理:
	当确认发生冲突后,进入冲突处理程序。
6.路由选择协议位于( )

网络层

这是OSI七层网络模型的知识点,详细可以参考:https://blog.csdn.net/Super_Yiang/article/details/103741814
7.在Internet的基本服务功能中,远程登录所使用的命令是( )

telnet

​ Telnet和FTP的相同点和不同点:

Telnet和FTP都可以实现远程登陆,他们的区别在于Telnet是远程登陆协议,而FTP是文件传输协议,这样二者的权限大不相同。
Telnet是它是把登陆用户可以当成本地计算机一台终端,用户在登录远方计算机后,具有计算机上的本地用户一样的权限。如果可以的话,系统甚至可以赋予登陆用户全部的权限。
FTP它只允许用户对远方计算机上的文件进行有限的操作,包括查看文件、上传和下载文件以及改变文件目录等。它只是文件传输协议。
两者都是tcp/ip网络框架下的应用,系统中分配网络接口也不一样。
8.IP协议是无连接的,其信息传输方式是 ( )

数据报

9.常用的虚拟存储系统由( )两级存储器组成,其中辅存是大容量的磁表面存储器

主存-辅存

在具有虚拟存储器的计算机系统中,把物理上独立编址的二级存储器,主存储器和辅存储器连接起来统一使用。从而向用户提供了一个比真实主存大得多的逻辑上可统一编址的编程地址空间,称虚拟存储器
10.某计算机字长32位,其存储容量为4MB,若按半字编址,它的寻址范围是( )

2M

字长32位,也就是4个字节,1个字节8位,存储容量为4MB,若按字编址就是4MB÷4B=1M;若按半字编址,就是4MB÷2B=2M
11.由于CPU内部的操作速度较快,而CPU访问一次主存所花的时间较长,因此机器周期通常用( )来规定

主存中读取一个指令字的最短时间

完成一个基本操作所需要的时间称为机器周期,通常用内存中读取一个指令字的最短时间来规定CPU周期
12.在定点二进制运算器中,减法运算一般通过( )来实现

补码运算的二进制加法器

减法运算一般是通过被减数加上减数的补码来实现,所以是补码运算的二进制加法器
13.有8个结点的无向图最多有( )条边

28

无向图就是没有方向的图,如果任意两个顶点之间都存在边,则称该图为无向完全图
假设有k个结点的无向图,要计算最多有多少条边?
第一个结点可以有k-1种选择,第二个有k-2种选择...
以此类推,最多就是(k-1)+(k-2)+...+1,也就是k*(k-1)/2条边
14.非空的循环单链表head的尾结点p满足( )

​ p->next==head

非空的循环单链表尾结点指向头节点
15.设一棵二叉树的中序遍历序列:badce,后序遍历序列:bdeca,则二叉树先序遍历序列为( )

abcde

前序遍历:根左右
中序遍历:左根右
后序遍历:左右根
这一题先根据后序遍历确定a是根节点,然后根据中序遍历确定a的左边是b,右边是dce,然后再中序遍历的左根右确定c是右子树的根,所以树的形状是
  a
 / \
b 	c
   / \
  d   e
所以先序遍历的序列是:abcde
16.设计一个判别表达式中括号是否配对的算法,采用( )数据结构最佳

栈:先入后出后入先出,两种操作:从栈顶入栈和从栈顶出栈
如果是左括号,入栈
如果是右括号,看栈顶是不是左括号,如果是就把那个左括号出栈;否则不配对(可以直接结束算法)
处理完所有符号后,栈为空则配对成功,否则不配对
17.以下程序运行后的输出结果是( )
main(){
    int m=3,n=4,x;
    x=-m++;
    x=x+8/++n;
    printf("%d\n",x);
} 

-2

main(){
    int m=3,n=4,x;//m=3,n=4
    x=-m++;//x=-3,m=4,注意m++先被引用后再自增
    x=x+8/++n;//-3+8/5,x=-2,注意++n是先自增后被引用
    printf("%d\n",x);
} 
18. int a[10]; 合法的数组元素的最小下标值为( )

0

数组元素的下标是从0开始
19.有如下函数调用语句 func(rec1,rec2+rec3,(rec4,rec5)); 该函数调用语句中,含有的实参个数是 ( )

3

函数的实参是
	rec1
	rec2+rec3
	(rec4,rec5)
所以一共有3个
20.函数调用可以( )

(1)出现在执行语句中;(2)出现在一个表达式中;(3)作为一个函数的实参

21.在没有任何数学库函数的情况下,求一个数 m 开 n 次方的结果。

m开n次方

​ 注:我的代码用了pow()函数提交后发现也可行。

import java.lang.*;
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        double a=input.nextDouble();
        double b=input.nextDouble();
        a=Math.pow(a,1/b);
        System.out.println(a);
    }
}

这个是自己写的开根函数

import java.lang.*;
import java.util.*;
public class Main{
    /**
     * 开根函数:用二分法求
     * @param min 最小值
     * @param max 最大值
     * @param m 被开根的数
     * @param n 开几次根
     * @return
     */
    public static double pow(double min,double max,double m,double n){
        double constant=1.0E-12;//确保小数点后面保留12位,不然会出现栈溢出
        double temp=(min+max)/2;
        double result=temp;
        for(int i=1;i<n;i++){
            result*=temp;
        }
        if(m-result>constant){
            min=temp;
        } else if(result-m>constant){
            max=temp;
        }else {
            return temp;
        }
        return pow(min,max,m,n);
    }

    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        double a=input.nextDouble();
        double b=input.nextDouble();
        a=pow(0,a,a,b);
        System.out.println(a);
    }
}
22.地铁迷在某个城市组织了地铁打卡活动。活动要求前往该城市中的所有地铁站进行打卡。打卡可以在站外或者站内进行。地铁的计价规则如下:只要不出站,就不计费;出站时,只计算进站和出站站点的距离。如在同一个站点进出站,按照最低票价 a 元计算。假设地铁票不会超时。大部分站点都是通过地铁线连通的,而且地铁站的连通是双向的(若 A,B 连通,则 B,A连通),且具有传递性的(若 A,B 连通,且 B,C 连通,则 A,C连通)。但并不是所有的地铁站都相互连通,在不能通过坐地铁达到的两个地点间,交通的花费则提高到 b 元。地铁迷从酒店起点出发,再回到酒店。假设从酒店到达任意地铁站的交通花费为 b 元。请计算地铁迷完成打卡最小交通花费。

地铁打卡

求指教。。。
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值