A. 春日选择

题目类型:答案提交 评测方式:Special Judge

题目描述

如果你的浏览器没有弹出通告界面,请你首先点击上方的刷新通告按钮获取最新的比赛通告!

1

设有以下声明:

int a[4][4] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};

则以下对数组 a 的访问不正确的是

A.*(a[2]+3)
B.*(*(a+2)+3)
C.*(a+2)[3]
D.以上均正确

2

设 p 指针指向单链表(单链表长度为n)中的某个结点(p!=NULL),若只知道指向该单链表第一个结点的指针和 p 指针,则在 p 指针所指结点之前和 p 指针所指结点之后插入一个结点的时间复杂度分别是。

A.    B.    C.    D.

3

设某⼀非空的单循环链表的头指针(指向第一个结点的指针)为 Head,尾指针(指向最后一个结点的指针)为 Rear,则下列列条件判断结果一定为真的是

A. Head==Rear->link
B. Head==Rear->link->link
C. Rear==Head->link
D. Rear==Head->link->link

4

若有以下说明和语句:

struct elevator{
    int id;
    int floor;
    struct {
        char name[20];
        char tar;
    }passenger;
};
struct elevator elevators[2] = {{1, 2, {"Red", 'q'}}, {4, 5, {"X_ele", 'e'}}};
struct elevator *p = elevators;

则以下对语句与输出不符的是

A. printf("%d\n", (p+1)->id);,输出 4
B. printf("%d\n", strlen(p->passenger.name));,输出 3
C. printf("%c\n", *((*p).passenger.name+2));,输出 e
D. printf("%c\n", (*(p+1)).passenger.tar);,输出 e

5

已知函数 void printA(int)void printB(int),下列给函数指针数组 fp 定义赋值正确的是

A. void *fp(int)[] = {printA, printB};

B. void (*fp)[](int) = {printA, printB};

C. void (*fp[])(int) = {printA, printB};

D. void *fp[](int) = {printA, printB};

6

以下删除链表中 p 指针所指结点的下一个结点的语句正确的是

A. free(p->link); p->link = NULL;
B. p->link = p->link->link; free(p->link);
C. free(p->link); p->link = p->link->link;
D. q = p->link; p->link = q->link; free(q);

7

下面能正确进行字符串赋值,并且能确保字符串以’\0’结尾的操作是()

A. char s; s = "ABCDE";
B. char s[6] = {"ABCDE"};
C. char s[5] = {'A', 'B', 'C', 'D', 'E'};
D. char *s; scanf("%s", s);

8

栈和队分别是什么类型的数据结构?

A. 先进先出 先进后出
B. 先进后出 先进先出
C. 后进先出 随机读取
D. 随机读取 后进后出

9

solve(int x) 函数的时间复杂度为 ,则下列语句的时间复杂度为

for (int i = 0; i < (1 << n); i++)
    for (int j = 0; j < n; j++)
        if (i & (1 << j))
            solve(j);

A. B. C. D.

10

若五个元素的出栈序列为 1,2,3,4,5,则下列出栈序列不可能是该栈的入栈序列的是

A. 1,2,3,4,5
B. 3,2,1,5,4
C. 2,3,1,4,5
D. 1,2,4,3,5

输出格式

请直接将答案写在提交框的一行(不需要编程输出),10个大写字母表示10道选择题的答案。

样例

【样例】(仅作为格式参考)

DCBADCBADC
通告标题

通告内容

已知晓