#1580. DC1

DC1

1、如果根节点的深度记为1,则一棵恰有2011个叶节点的二叉树的深度最少是 ( ) {{ select(1) }}

  • 10
  • 11
  • 12
  • 13

2、假设字母表 {a,b,c,d,e}在字符串出现的频率分别为 10%,15%,30%,16%,29%。若使用哈夫曼编码方式对字母进行不定长的二进制编码,字母 d 的编码长度( )位。

{{ select(2) }}

  • 1
  • 2
  • 2或3
  • 3

3、如果一棵二叉树的中序遍历是 BAC,那么它的先序遍历不可能是 ( )

{{ select(3) }}

  • ABC
  • CBA
  • ACB
  • BAC

4.二叉树 T,已知其先根遍历是 1 2 4 3 5 7 6(数字为结点的编号,以下同),中根遍历是 2 4 1 5 7 3 6,则该二叉树的后根遍历是( )。

{{ select(4) }}

  • 4 2 5 7 6 3 1
  • 4 2 7 5 6 3 1
  • 7 4 2 5 6 3 1
  • 4 2 7 6 5 3 1

5.阅读程序,横线处应该填写的是( ) 问题描述:海滩上有一堆桃子,N 只猴子来分。第一只猴子把这堆桃子中的一个扔入海中,然后将剩余的桃子平均分成两份,最后这只猴子拿走了 1 份。第二只猴子来了 接着把剩下的桃子中的一个扔入海中,然后把剩余的桃子平均分成 2 份,开开心心拿 走了 1 份。第三、第四、……,第 N 只猴子都是将剩下的桃子中的一个扔入海中, 然后将剩余的桃子平均分成 2 份,并拿走其中的 1 份。最后只剩下 1 个桃子。 编写程序,输入猴子的数量 N,输出海滩上原有多少桃子。

int sum = 0, n, count[1000]={};
cin >> n;
count[n] = 1;
int i = n;
while(i >=0){
  count[i-1] = __________;
  i--;
}
cout << count[0]; 
return 0;
}

{{ select(5) }}

  • count[i] * 2 + 1
  • count[i] * 2
  • count[i] + 1
  • count[i] * 1 + 2

6、以下是斐波那契数列利用递推算法完成,请你阅读程序并完善( )

int a[1000],n;
cin>>n;
a[0]=a[1]=1;
for(int i=2;i<=n;i++) {
  a[i]= __________;
}
cout<<a[n];

{{ select(6) }}

  • a[i-1]+a[i+2]
  • a[i]+a[i-2]
  • a[i-2]+a[i-3]
  • a[i-1]+a[i-2]

7.以下关于高精度算法部分程序的功能是( )。

void strtoint(string src,int des[ ]){
for(int i=0; i<src.size();i++){
    des[src.size()-i]=src[i]-'0';
}

{{ select(7) }}

  • 带反转的字符型转整形函数
  • 不带反转的字符型转整形函数
  • 字符型转整形
  • 整形转字符型
  1. 表达式 a*(b+c)*d 的后缀表达式为( ),其中 * 和 + 是运算符。

{{ select(8) }}

  • **a+bcd
  • abc+*d*
  • abc+d**
  • *a*+bcd

9.具有6个顶点的无向图至少要有( )条边才能确保是一个连通图。 {{ select(9) }}

  • 4
  • 5
  • 6
  • 7

10.在无向图中,所有顶点的度数之和是所有边数的( )倍。

{{ select(10) }}

  • 1/2
  • 1
  • 2
  • 4