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

时长:120分钟 总分:100分

812浏览 5人已完成答题

题型介绍
题型 填空题
数量 3
1.
字符串匹配
问题详情

 函数match检查字符串str是否匹配模板pattern,匹配则返回0,否则返回-1。模板支持普通字符(a-z0-9A-Z)及通配符?*。普通字符匹配该字符本身,?匹配任意一个字符,*匹配任意多个任意字符。比如字符串abc对下述模板的匹配结果为:

模板 结果 模板 结果
abc 0 a*b -1
a* 0 ab? 0
a*c 0 a? -1

请完成该函数代码:

int match(const char *str, const char *pattern)
{


} 

输入描述: 第一行为输入串 第二行为模板串输入样例: abc a*c 输出描述: 匹配输出match,不匹配输出unmatch输出样例 match
2.
字符串解析
问题详情

以下函数解析字符串str是否合法的C语言字符串字面值定义(不考虑八进制和十六进制字符编码),如果是,则将解码后的内容保存到buf中,并返回0,否则返回-1。比如,"hello \"sangfor\""解码后结果为hello "sangfor",请完成该函数代码:

int unescape_c_quoted(char *buf, const char *str)
{

}
框架代码:

int main()
{
    char str[10000]
    char buf[10000]
    int len
    int ret

    if (fgets(str, sizeof(str), stdin) == NULL) {
        fprintf(stderr, "input error\n")
        return 0
    }
    len = strlen(str)
    while (len > 0 && isspace(str[len - 1])) {
        str[len - 1] = '\0'
        --len
    }

    ret = unescape_c_quoted(buf, str)
    if (ret < 0)
        printf("error\n")
    else
        printf("%s\n", buf)
    fprintf(stderr, "input:%s\noutput:%s\n", str, buf)
    return 0
}
输入描述: 字符串输入样例: "\"hello world\\n\\\"too\"" 输出描述: 解码后的字符串输出样例 "hello world\n\"too"
3.
围棋数气
问题详情

函数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 0000001110100000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 8,3 输出描述: 位置(x,y)处的棋子还有多少口气,如果该位置未落子,则输出-1输出样例 1