每日一练20210518

1、用于解决CPU指令乱序、编译器重排、多CPU内存同步等带来的问题的机制是?

2021-05-18 22:32:38

  • A、 内存屏障
  • B、 信号量
  • C、 自旋锁
  • D、 volatile关键字

 回答正确 正确答案: A

解析:

 

内存屏障可以限制CPU对内存的访问,表现在高级编程语言中就是加锁

 

2、以下关于进程和线程描述中,错误的是()

2021-05-18 22:33:37

  • A、 进程之间可以并发执行
  • B、 创建或撤销进程或者线程时,系统都要为之分配和回收资源
  • C、 同一个进程的多个线程之间可以并发执行
  • D、 线程是进程的一个执行单元

 回答正确 正确答案: B

解析:

 

同一个进程的多个线程共享资源。创建或撤销线程不会分配和回收资源。 进程是操作系统分配资源的单位,而线程是操作系统调度的最小单位 线程共享进程提供的资源

 

3、一个二叉树的先序遍历结果和中序遍历结果相同,则其所有非叶子节点必须满足的条件是?()

2021-05-18 22:34:28

  • A、 只有左子树
  • B、 只有右子树
  • C、 节点的度为1
  • D、 节点的度为2

 回答正确 正确答案: B

解析:

 

先序:根左右

中序:左根右 先序和中序序列一致,那么二叉树满足没左子树就好

 

4、假设一个无向图中包含12个顶点,其中5个顶点有5个度,7个顶点有7个度,那么这个图有几条边?()

2021-05-18 22:35:21

  • A、 12
  • B、 25
  • C、 37
  • D、 49

 回答正确 正确答案: C

解析:

 

一条边带来两个度,(7*7+5*5)/2=37

 

5、递归式的先序遍历一个n节点,深度为d的二叉树,需要栈空间的大小为

2021-05-18 22:36:15

  • A、 O(n)
  • B、 O(d)
  • C、 O(logn)
  • D、 O(nlogn)

 回答正确 正确答案: B

解析:

 

因为二叉树并不一定是平衡的,也就是深度d!=logn,有可能d>>logn。。所以栈大小应该是O(d)

 

6、二叉查找树的查找效率与二叉树的树型有关,在()时其查找效率最低

2021-05-18 22:36:30

  • A、 结点太多
  • B、 完全二叉树
  • C、 是单枝树
  • D、 节点太复杂

 回答正确 正确答案: C

解析:

 

当二叉查询树变成一条链表效率最差。所以有AVL平衡树 限制节点深度差不超过1,避免产生链表一般的树。

 

7、有关字符串,理解正确的是()

2021-05-18 22:36:56

  • A、 对于存储"hello"字符串,字符数组的大小为5就足够了
  • B、 函数strcmp("hello", "hallo");的返回值大于0
  • C、 strcpy与strncpy都是安全的字符串拷贝操作
  • D、 代码char str[] = "hello world";是错的,没有声明数组大小

 回答正确 正确答案: B

解析:

 

A选项,还需要1个元素存储 '\0'

B选项,e 大于 a,左边字符串大

C选项,strcpy 不安全,可能会 缓冲区溢出

D选项,没错,方括号里可以不写大小

 

8、以下代码输出的值是()

int x = 4;
void incre () {
    static int x = 1;
    x = x + 1;
    printf("%d", x);
}
int main() {
    int i;
    for(i = 1;i < x; i++) {
        incre();
    }
    return 0;
}

2021-05-18 22:37:46

  • A、 234
  • B、 2
  • C、 4
  • D、 5

 回答正确 正确答案: A

解析:

 

for 循环3次,输出3个数

 

9、下面程序会输出什么 ()

static int a = 1;
void fun1(void) { 
    a = 2;
}
void fun2(void) {
    int a = 3;
}
void fun3(void) {
    static int a = 4;
}
int main() {
    printf("%d", a);
    fun1();
    printf("%d", a);
    fun2();
    printf("%d", a); 
    fun3();
    printf("%d", a);
    return 0;
}

2021-05-18 22:39:18

  • A、 1234
  • B、 1222
  • C、 1224
  • D、 1114

 回答正确 正确答案: B

解析:

 

main 函数里输出的 a 是全局变量, 只有 fun1() 会改变输出的 a 的值

 

10、【简答题】(10-10)

MySQL 为什么选择B+树

 

解答视频:https://www.bilibili.com/video/BV1nh411v7Dq 

=====================================================================

采用递归方式对顺序表进行快速排序。下列关于递归次数的叙述中,正确的是()。

2021-05-18 22:28:39

  • A、 递归次数与初始数据的排列次序无关
  • B、 每次划分后,先处理较长的分区可以减少递归次数
  • C、 每次划分后,先处理较短的分区可以减少递归次数
  • D、 递归次数与每次划分后得到的分区的处理顺序无关

 回答正确 正确答案: D

解析:

 

递归次数与各元素的初始排列有关。若每次划分后分区比较平衡,则递归次数少;若分区不平衡,递归次数多。递归次数与处理顺序是没有关系的。

 

20210518,一天又快过去了,继续加油鸭~
 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值