深信服校园招聘c/c 软件开发A卷

时长:120分钟 总分:100分

1624浏览 20人已完成答题

题型介绍
题型 填空题
数量 3
1.
围棋遍历
问题详情

函数calc计算围棋中位置(x,y)处连成一片的棋子个数。所谓连成一片,即沿着棋盘横竖线往任意方向遍历,遍历过程允许转弯,不允许走斜线,中间未出现对方棋子或空子。

enum color {
    NONE, WHITE, BLACK,         // 棋子颜色,NONE表示未落子
}
struct weiqi {
    enum color board[19][19]   // 棋盘上每个位置的落子
}
int calc(struct weiqi *wq, int x, int y)
{
}

输入描述: 第1-19行数据是棋盘上棋子的颜色数据。0表示未落子,1表示白子,2表示黑子。 第1行最左边位置的坐标是(0,0),第1行第2列的坐标是(1,0),第2行第1列的坐标是(0,1),依此类推。 第20行数据是起始坐标(x,y)输入样例: 0000000000000000000 0000011000000000000 0000001111000000000 0000001021000000000 0000001010100000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 5,1 输出描述: 与坐标(X,Y)连成一片的棋子数目输出样例 9
2.
单链表排序
问题详情

请实现list_sort,使用冒泡法将head指向的链表按val值大小排成升序
struct node {
    int val
    struct node *next
}
void list_sort(struct node *head)
{
}

输入描述: 第一行为数据个数 第二行为输入的数据,以空格进行分隔输入样例: 12 10 22 2 5 9 8 1 33 4 6 7 9 输出描述: 输出head指向的链表数据,以空格分隔输出样例 1 2 4 5 6 7 8 9 9 10 22 33
3.
出栈顺序
问题详情

已知某一个字母序列,把序列中的字母按出现顺序压入一个栈,在入栈的任意过程中,允许栈中的字母出栈,求所有可能的出栈顺序

输入描述: 字符串,如:abc输入样例: abc 输出描述: 可能的出栈顺序,每行一种顺序输出样例 abc acb bac bca cba