zoukankan      html  css  js  c++  java
  • 2020-3-9刷题

    以下代码输出什么?  B

    int a =1,b =32 ;
    printf("%d,%d",a<<b,1<<32);

    1,1

    B  1,0

    C  0,0

    D  0,1

     
    << 左移 用来将一个数的各二进制位全部左移N位,高位舍弃,低位补0。
    >> 右移 将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0。
    左移运算符(<<)将其左侧运算对象每一位的值向左移动其右侧运算对象指定的位数。

    a的二进制值:0000 0001

    b的二进制值:0010 0000

    a<<b:a左移32位,得到结果1。

    进行探索,

    当a左移1位,printf("%d",a<<1); 打印结果是:2

    当a左移2位,printf("%d",a<<2); 打印结果是:4

    ......

    当a左移30位,printf("%d",a<<30); 打印结果是:1073741824

    当a左移31位,printf("%d",a<<30); 打印结果是:-2147483648

    当a左移32位,printf("%d",a<<30); 打印结果是:1

    当a左移33位,printf("%d",a<<30); 打印结果是:2

    当a左移34位,printf("%d",a<<30); 打印结果是:4

    ......

    当a左移34位,printf("%d",a<<30); 打印结果是:4

    ...

    当a左移62位,printf("%d",a<<30); 打印结果是:1073741824,得到:a<<30  ==  a<<62,30和62相差32

    当a左移63位,printf("%d",a<<30); 打印结果是:-2147483648,得到:a<<31  ==  a<<63,31和63相差32

    当a左移64位,printf("%d",a<<30); 打印结果是:1,得到:a<<32  ==  a<<64,32和64相差32

    从表象来看,每左移32位便相当于没有移位的结果,猜到可能跟int类型占32位有关,事实的确这样:sizeof(int) = 4字节(b) = 32比特(bit)

    通过以上推理得到公式:int a << b 可以理解为 int a << (b%32)

    按照题意:int a =1,b =32,a<<b = a<<(32%32) = a<<0 = 1

    而1<<32就是0000 0001 左移32位,高位舍弃,低位补0,最终则得到结果:0

     

    (ps:个人目前的想法,可能不严谨,尚未找到权威答案,后续补充,欢迎提意见。其中部分思路来源于int类型左移位数超过32位的问题,比如1左移50位结果是什么


    具有相同类型的指针类型变量p与数组a,不能进行的操作是: D

     

    A  p=a;

     

    B  *p=a[0];

     

    C  p=&a[0];

     

    D  p=&a;
     
    a是二级指针,直接赋值给指针变量P会出现问题。

    以下序列中不可能是一棵二叉查找树的后序遍历结构的是: B
    A  1,2,3,4,5
    3,5,1,4,2
    C  1,2,5,4,3
    5,4,3,2,1

    上网的时候发现网页不能访问,QQ使用正常,出现此问题最可能的原因是

    A  网线问题
    B  DNS问题
    C  IP地址冲突
    D  网关错误
     
    可能原因:网页本身的错误;浏览器故障;系统故障;
    系统故障1:DNS服务器出错 2.HTTP代理错误 3.winsock恶意篡改

     有9个球,其中一个的质量与其他的不同,有一个天平,通过最多几次可以找出那个质量不一样的球? B

    A  2

    B  3

    C  4

    D  5

     

    链接:https://www.nowcoder.com/questionTerminal/2b1ac592b56745b2969672c1c4e0d2c5?orderByHotValue=0&done=0&pos=3&mutiTagIds=602&onlyReference=false
    来源:牛客网

    此题说的是最多几次,如果是最少的话的,一次就有可能 如果一开始拿了8球分摊,如果相等,则剩下的就只有一个球,则这个球就是答案。
    现在异常的球的质量为b,正常的球的质量是a。(a!=b)
    选择6个球,放在天平上进行称量,每边都是三个。
    1.如果天平没有倾斜,则表示这6个球都是正常的,即另外3个球中有一个球是b,则只需要拿其中一个球称量与另外两个球分别称量一次即可。如果两次都倾斜,则表示你拿的是异常的,反之,只有另一种可能,一次没有倾斜,一次倾斜,则一次没有倾斜的肯定都是a,剩余的就一定是b。
    2.如果天平发生了倾斜,则表示这6个球中有一个是异常的。假设为a,a,a与a,b,a。拿另外3个替换左边3个或右边3个,如果天平没有倾斜,则可以得出替换掉的3个中有一个是异常的,如果倾斜,也可得到没有替换的3个中有一个是异常的,同时也可以得到a与b之间的关系(自己想一想)。知道有异常球的3个后,只要再任意拿其中2个,进行比较一次,如果相等,则另外一个是异常的,否则的话可以根据a与b之间的大小判定异常球!
    总共才3次称量。

    给字母重新进行二进制编码,以使得"MT-TECH-TEAM"(包含连字符,不包含引号)的长度最小.并能够根据编码,解码回原来的字符串.请问最优编码情况下该字串的长度是多少bit?   B
    A  12
    B  33
    C  36
    D  84
    E  96

    以下哪个ip不和10.11.12.91/28处于同一个子网  D
    A  10.11.12.85/28
    B  10.11.12.88/28
    C  10.11.12.94/28
    D  10.11.12.97/28

    对进程和线程的描述,以下正确的是(  D )

    A  父进程里的所有线程共享相同的地址空间,父进程的所有子进程共享相同的地址空间
    B  改变进程里面主线程的状态会影响到其他线程的行为,改变父进程的状态不会影响到其他子进程
    C多线程会引起死锁,而多进程不会
    D  其他选项都不正确
     
    A 答案错误 只有线程才能使用共同的父进程的地址空间 而子进程会会拥有自己的独立地址空间
    https://segmentfault.com/q/1010000008695285/a-1020000008697506

    B 答案错误 主进程的行为会影响子进程

    C答案错误 多进程也会引起死锁

    开发C代码时,经常见到如下类型的结构体定义:

    typedef struct list_t{
        struct list_t *next;
        struct list_t *prev;
        char data[0];
    }list_t;

    请问在32位系统中,sizeof(list_t)的值为?   B

    A  4byte
    B  8byte
    C  5byte
    D  9byte

    以下哪个属于在预编译阶段执行____,以下哪些指令属于操作符___C

    a:malloc;  b:++;  c:#pragma;  d:sizeof;   e:#define

    A  预编译c,e 操作符a,b
    B  预编译c,d 操作符b,e
    C  预编译c,e 操作符b,d
    D  预编译a,d 操作符b,d

    假设在x86平台上,有一个int型变量,在内存中的内部由低到高分别是:0x12,0x34,0x56,0x78当通过网络发送该数据时,正确的发送顺序是( B )
    A  0x12,0x34,0x56,0x78
    B  0x78,0x56,0x34,0x12
    C  0x34,0x12,0x78,0x56
    D  0x56,0x78,0x12,0x34
     
    网络发送中是大端模式,低位高地址。

    一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足?  C
    A  所有的结点均无左孩子
    B  所有的结点均无右孩子
    C  只有一个叶子结点
    D  是一棵满二叉树
     
    先序遍历序列与后序遍历序列正好相反的树,结构如下:
     

    先序遍历序列:ABCDE
    中序遍历序列:EDCBA
    后序遍历序列:EDCBA
    这棵树的特点:
    ①先序和中序遍历序列正好相反
    ②中序和后序遍历序列一样


     

    另一个树,不符合本题描述,作为补充扩展。

     

     

     

    先序遍历序列:ABCDE
    中序遍历序列:ABCDE
    后序遍历序列:EDCBA
    这棵树的特点:
    ①先序和中序遍历序列一样
    ②中序和后序遍历序列正好相反


     具有7个顶点的有向图至少应有多少条边才可能成为一个强连通图? B

    A  6
    B  7
    C  8
    D  12

    由A地到B地,中间有一段扶梯,总路程和扶梯长度是固定的,为赶时间全程都在行走(包含扶梯上),中途发现鞋带松了,需要停下来绑鞋带.请问在扶梯上绑鞋带和在路上绑鞋带两种方式比较(  B )

    A  路上绑鞋带,全程用时短
    B  扶梯上绑鞋带,全程用时短
    C  用时一样
    D  和扶梯长度,绑鞋带具体用时有关
     

     HTTPS是使用( C  )来保证信息安全的.

    A  SET
    B  IPSEC
    C  SSL
    D  SSH

    mysql数据库中一张user表中,其中包含字段A,B,C,字段类型如下:A:int,B:int,C:int根据字段A,B,C按照ABC顺序建立复合索引idx_A_B_C,以下查询语句中使用到索引idx_A_B_C的语句有哪些?A B D

    A  select *from user where A=1 and B=1

    B  select *from user where 1=1 and A=1 and B=1

    C  select *from user where B=1 and C=1

    D  select *from user where A=1 and C=1


    C++中构造函数和析构函数可以抛出异常吗?  C
    A  都不行
    B  都可以
    C  只有构造函数可以
    D  只有析构函数可以

    在x86系统下,sizeof如下结构体的值是多少? C

    struct{ 
        char a[10];
        int b;
        short c[3];
    }
    A  20
    B  22
    C  24
    D  26

    开发C代码时,经常见到如下类型的结构体定义: 

    typedef struct list_t{
    struct list_t *next;
    struct list_t *prev;
    char data[0];
    }list_t;

    最后一行char data[0];的作用是?  AB

    A  方便管理内存缓冲区

    B  减少内存碎片化

    C  标识结构体结束

    D  没有作用


    以下关于linux操作系统中硬链接和软链接的描述,正确的是? B

    A  硬链接和软链接指向的inode的编号是一样的
    B  可以建立一个空文件的软链接
    C  linux操作系统可以对目录进行硬链接
    D  硬链接指向inode节点

    将7723810的各位数字打乱排序,可组成的不同的7位自然数的个数是?  B
    A  1080
    B  2160
    C  3240
    D  4320
    E  5040

    对于满足SQL92标准的SQL语句:

    select foo,count(foo)from pokes where foo>10group by foo having count (*)>5 order by foo 

    其执行顺序应该是? A

    A  FROM->WHERE->GROUP BY->HAVING->SELECT->ORDER BY

    B  FROM->GROUP BY->WHERE->HAVING->SELECT->ORDER BY

    C  FROM->WHERE->GROUP BY->HAVING->ORDER BY->SELECT

    D  FROM->WHERE->ORDER BY->GROUP BY->HAVING->SELECT


    以下哪些jvm的垃圾回收方式采用的是复制算法回收 A C D

    A  新生代串行收集器

    B  老年代串行收集器

    C  并行收集器

    D  新生代并行回收收集器

    E  老年代并行回收收集器

    F  cms收集器


    HTTP中的POST和GET在下列哪些方面有区别?( ABCDE  )

    A  数据位置

    B  明文密文

    C  数据安全

    D  长度限度

    E  应用场景


     

    我们用一个等臂天平来称物体的质量,如果我们要称的物体质量范围在1到40克(整数),请问我们最少需要几块砝码可以完成这项物体质量的称量?  B

    A  3
    B  4
    C  5
    D  6
    E  7

    链接:https://www.nowcoder.com/questionTerminal/1ed7b4017caf4e79ab0621089b4e3d0d?orderByHotValue=0&done=0&pos=1&mutiTagIds=602&onlyReference=false
    来源:牛客网

    此题可以看成用多少个数可以表示1-40之间任何一个数。砝码有三种状态,放在物体同侧,放在物体另一侧,并不使用。 所以这些数之间可以加可以减,也可以不计算在内。考虑用对称三进制来计算,即,-1,0,1三个状态。40可以用1111来表示,所以最多只用四个砝码就可以表示1-40之间所有数。


    在linux系统中,有一个文件夹里面有若干文件,通常用哪个命令可以获取这个文件夹的大小: B

    A  ls -h
    B  du -sh
    C  df -h
    D  fdish -h

    下列关于线程调度的叙述中,错误的是( C )

    A  调用线程的sleep()方法,可以使比当前线程优先级低的线程获得运行机会
    B  调用线程的yeild()方法,只会使与当前线程相同优先级的线程获得运行机会
    C  具有相同优先级的多个线程的调度一定是分时的
    D  分时调度模型是让所有线程轮流获得CPU使用权

    Java的线程调度是基于优先级的抢先式调度,它总是选择高优先级的线程先执行。所以选项C正确。Thread提供了如下的基本线程控制方法:sleep (),线程暂停,让出CPU,使低优先级的线程运行;yield(),线程暂停,让出CPU,使同优先级的其他线程运行。如果不存在有机会运行的线程,yield()方法将直接返回,线程继续;join(),当前线程暂停,等待线程类对象运行结束。所以选项A和B正确。相同优先级的线程有可能采用分时调度也有可能是线程逐个运行,由具体JVM而定。


     

    两个线程并发执行以下代码,假设a是全局变量,那么以下输出__ABCD__哪个是可能的?

    int a=1;
    void foo(){
        ++a;
        printf("%d",a);
    }

    A  3 2

    B  2 3

    C  3 3

    D  2 2

     

    链接:https://www.nowcoder.com/questionTerminal/c3c9998a7c1c4dc4a705a89066f85cd9
    来源:牛客网

    假设线程x和y同时执行,x和y可随时被抢占,a的初始值为1


    A:3, 2
    y先执行++a,a为2;
    y再执行printf,a入栈,在打印到终端之前切换到x
    x执行++a,a为3;
    x执行printf,输出3;再切换到y
    y执行打印,输出2

    B:2 3
    x先执行++a,a为2;
    x再执行printf,输出2;切换到y
    y执行++a,a为3;
    y执行printf,输出3;

    C:3 3
    x先执行++a,a为2;切换到y
    y执行++a,a为3;
    y执行printf,输出3;切换到x
    x执行printf,输出3

    D:2 2

    类似C, 执行++a操作但没有写回到内存

    这里关键有两点:
    (1)两个线程可随时被抢占
    (2)++a和printf不是原子指令,可随时被打断;特别注意函数printf,a作为参数压栈后,a再变化则不会影响输出(printf实际打印的是压栈的参数,是值拷贝的栈变量)


     

    在网络7层协议中,如果想使用UDP协议达到TCP协议的效果,可以在哪层做文章? C

    A  应用层
    B  表示层
    C  会话层
    D  传输层
    E  网络层

     

  • 相关阅读:
    Linux 的文件软链接如何删除
    mysql-xtrabackup备份sh: xtrabackup_56: command not found与error while loading shared libraries: libssl.so.6: cannot open shared object file: No such file or directory
    How To Upgrade ASMLib Kernel Driver as Part of Kernel Upgrade? (文档 ID 1391807.1)
    [trouble] error connecting to master 'repl@192.168.1.107:3306'
    Troubleshooting 10g and 11.1 Clusterware Reboots (文档 ID 265769.1)
    "Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs
    RMAN-06900 RMAN-06901 ORA-19921
    一则ORACLE进程都在但是无法进入实例的问题
    VirtualBox下Win7下CPU高占用的一次故障解决
    netcore之mysql中文乱码问题解决记录
  • 原文地址:https://www.cnblogs.com/LinQingYang/p/12447157.html
Copyright © 2011-2022 走看看