#800. 内部测试选题(一)

内部测试选题(一)

1.以下代码段为实现两数交换,则①内要填入的语句是()。

void sp(int &a, int &b)
{
	a = a + b;
	①;
	a = a - b; 
}

{{ select(1) }}

  • b = b - a;
  • b = a + b;
  • b = a - b;
  • a = a - b;

2、给出一个 3 位数 x(100<=x<=999)下面哪个逻辑表达式可以用来判断 x 是否是回文数( )。

{{ select(2) }}

  • x==999-x
  • x%10==x/100
  • x/10==x%100
  • x%10+x/100==9

3、在 C++中,长度为 1000000 的 int 数组所需的空间约为( )

{{ select(3) }}

  • 1MB
  • 4MB
  • 32MB
  • 64MB

4.十进制数 7.75 与二进制数( )值相等。

{{ select(4) }}

  • 101.11
  • 111.11
  • 111.101
  • 111.01

5.以下程序段最为准确的时间复杂度分析结果为()。

int i = 1;
while (i <= n) 
	i = 2 * i;

{{ select(5) }}

  • O(logn)
  • O(n)
  • O(n^2)
  • O(2n)

6、前序遍历和中序遍历相同的二叉树为且仅为( )

{{ select(6) }}

  • 根结点没有右子树的二叉树
  • 根结点没有左子树的二叉树
  • 只有 1 个点的二叉树或非叶子结点只有左子树的二叉树
  • 只有 1 个点的二叉树或非叶子结点只有右子树的二叉树

7.元素 R1、R2、R3、R4、R5 入栈的顺序为 R1、R2、R3、R4、R5。如果第一个出栈的是 R3,那么第五个出栈的不可能是( )。

{{ select(7) }}

  • R1
  • R2
  • R4
  • R5
  1. 表达式 a*(b+c)*d 的后缀表达式为( ),其中 * 和 + 是运算符。

{{ select(8) }}

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

9.假设一棵二叉树的后序遍历序列为 DGJHEBIFCADGJHEBIFCA,中序遍历序列为 DBGEHJACIFDBGEHJACIF,则其前序遍历序列为()。 {{ select(9) }}

  • ABCDEFGHIJABCDEFGHIJ
  • ABDEGHJCFIABDEGHJCFI
  • ABDEGJHCFIABDEGJHCFI
  • ABDEGHJFICABDEGHJFIC

10.双向链表中有两个指针域 llink 和 rlink,分别指向该结点的前驱和后继。 设 p 指向链表中的一个结点,它的左右结点均非空。现要求删除结点 p,则下面语句 序列中错误的是( )。

{{ select(10) }}

  • p->rlink->llink=p->rlink;p->llink->rlink=p->llink;delete(p)
  • p->llink->rlink=p->rlink;p->rlink->llink=p->llink;delete(p)
  • p->rlink->llink=p->llink;p->rlink->llink->rlink=p->rlink;delete(p)
  • p->llink->rlink=p->rlink;p->llink->rlink->llink=p->llink;delete(p)