单选
1.以下代码会发生什么?D
#include <iostream>
#include <memory>
using namespace std;
void fun(std::shared_ptr<int> p)
{
*p = 5;
}
int main()
{
int arar = 6;
for (int i = 0; i < 1000000; i++)
{
std::shared_ptr<int> p = std::make_shared<int>(arar);
fun(p);
std::cout << *p;
}
return 0;
}
A、内存泄漏
B、编译出错
C、运行出错
D、无错,输出1000000个5
E、无错,输出1000000个6
2.
某主机的 IP 地址为 212.212.77.55,子网掩码为 255.255.252.0。若该主机向其所在子网发送广播分组,则目的地址可以是?D
A、212.212.76.255
B、212.212.77.255
C、212.212.78.255
D、212.212.79.255
E、212.212.80.255
3.
小牛在学习了二叉树三种遍历方式后,自己发明了一直与中序遍历相反的遍历方式,称为"反中序遍历",中序遍历的遍历方式为左孩子->根节点->右孩子,他发明的"反中序遍历"遍历方式为右孩子->根节点->左孩子,那么使用他发明的"反中序遍历"遍历如下图的二叉树,输出的节点应为?A
A、3,1,7,5,6,2,4
B、3,1,5,7,2,6,4
C、3,1,2,7,5,6,4
D、3,1,7,5,2,6,4
E、3,1,4,2,6,5,7
4.
若数据元素序列 9,10,11,5,6,7,12,3,4是采用下列排序方法之一得到的 第二趟升序排序后的结果,则该排序算法只能是?B
A、冒泡排序
B、插入排序
C、选择排序
D、二路归并排序
5.
以下二叉平衡排序树(AVL树),插入一个新节点值为30后,重平衡调整为一颗AVL树。那么请问节点24的左右孩子分别为?A
A、13,30
B、13,无右孩子
C、13,37
D、13,53
E、无左孩子,37
F、无左孩子,53
6.
当数组arr= {2,12,17,31,53,69,97,142,150,240,308},value=53时,上述函数中while循环的次数为:C
import java.util.Arrays;
public class NowCoder {
public static void main(String[] args) {
int[] arr= {
2,12,17,31,53,69,97,142,150,240,308};
System.out.println(BinarySearch(arr,53));
}
public static int BinarySearch(int[] arr,int value) {
int left=0;
int right=arr.length-1;
while(left<=right) {
int mid=(left+right)/2;
if(value==arr[mid]) {
return mid;
}
if(value>arr[mid]) {