1. 假设有一个链表的节点定义如下:
    struct Node{
        int data;
        Node*next;
    };
    

现在有一个指向链表头部的指针:Node* head。如果想要在链表中插入一个新节点,其成员 data的值为42,并使新节点成为链表的第一个节点,下面哪个操作是正确的? ( )

A. Node* newNode = new Node; newNode->data = 42; newNode->next = head; head = newNode;

B. Node* newNode = new Node; head->data = 42; newNode->next = head; head = newNode;

C. Node* newNode = new Node; newode->data=42; head-next = newNode;

D.Node* newNode =new Node; newNode->data=2; newNode->next = head;

题解思路

neNode是将要插入的节点,所以下一个要赋值为haedhead放在了neNode里,原来这个就没用了,所以可以将它替换为neNode


  1. 根节点的高度为1,一棵有 2023 个节点的三叉树高度至少为 ( )

A.6

B.7

C.8

D.9

题解思路

20232023不到373^{7},但是超过了363^6,所以至少有77层。


  1. 后缀表达式623+-382/+*2^3+对应的中缀表达式是 ( )

A.((6-(2+3))*(3+8/2))^2+3

B.6-2+3*3+8/2^2+3

C.(6-(2+3))*((3+8/2)^2)+3

D.6-((2+3)*(3+8/2))^2+3

题解思路

转换一下后缀表达式,后缀表达式623+-382/+*2^3+转中缀表达式的结果为((6-(2+3))*(3+8/2))^2+3故选A。


  1. 一个班级有10个男生和12个女生。如果要选出一个3人的小组,并且小组中必须至少包含1个女生,那么有多少种可能的组合? ( )

A.1420

B.1770

C.1540

D.2200

题解思路

分3种情况:

  1. 1女2男,有c121c102=540c^1_{12}*c^2_{10}=540种选法。
  2. 2女1男,有c122c101=660c^2_{12}*c^1_{10}=660种选法。
  3. 3女无男,有c123=220c^3_{12}=220种选法。 总共540+660+220540+660+220种选法。

15.以下哪个不是操作系统?

A.Linux

B.Windows

C.Android

D.HTM

题解思路

基本常识,HTM不是操作系统。(从名字也可以看出来)