xiaomi tech.

不定项选择

1) 计算机硬件能直接识别和执行的语言有 ()
A. 高级语言
B. 符号语言
C. 汇编语言
D. 机器语言

2) 以下那组 IP 地址可以不通过路由直接通讯 ()
A. 当掩码为 255.255.255.248 时, 192.168.117.71 与 192.168.117.73
B. 当掩码为 255.255.255.0 时, 157.60.71.1 与 157.60.72.1
C. 当掩码为 255.255.255.240 时, 172.10.9.129 与 172.10.9.141
D. 当掩码为 255.255.255.0 时, 202.108.33.100 与 202.107.33.100

3) 设栈最大长度为 3, 入栈序列为 1, 2, 3, 4, 5, 6, 则不可能得出栈序列是 ()
A. 1, 2, 3, 4, 5, 6
B. 2, 1, 3, 4, 5, 6
C. 3, 4, 2, 1, 5, 6
D. 4, 3, 2, 1, 5, 6

4) 桌上有 3 枚硬币, 一个正面朝上, 两个反面朝上. 你一次需翻转 2 枚硬币, 请问, 变成"两个正面朝上, 一个反面朝上"需要的翻转次数是 ()
A. 2
B. 3
C. 7
D. 不确定
E. 不可能
F. 以上都不对

5) 运行 Test 函数的结果是 ()
void GetMemory (char **p, int num)
{
    *p = (char *) malloc (num);
}
void Test (void)
{
    char *str = NULL;
    GetMemory (&str, 100);
    strcpy (str, "hello");
    printf (str);
}

A. 程序运行正常, 没有任何问题
B. 能够输出 "hello"
C. 程序崩溃
D. 内存泄露
E. 以上都不对

填空题
1) 用二分查找一个长度为 50 的, 排序好的线性表, 查找不成功时, 最多需要比较的次数是: __
2) 对于 32 位操作系统, 不考虑边界对齐, sizeof (A) = __
struct A
{
    char t:4;
    char k:4;
    unsigned short i:8;
    unsigned long m;
};

3) i 最后的值是: __
int i = 1;
int j = i++;
if ((i > j++) && (i++ == j)) i += j;

4) A, B, C, D, E, F 是 1~9 的其中一个数字, 各不相同, ABCDEF, CDEFAB, EFABCD 是六位数, 并且
ABCDEF * 2 = CDEFAB
CDEFAB * 2 = EFABCD
请问: A, B, C, D, E, F 分别是什么数字?
A = __, B = __, C = __, D = __, E = __, F = __.

5) 在下面代码后写出输出结果.
#include <stdio.h>
class A
{
public:
    void FuncA ()            { printf ("FuncA called\n"); }
    virtual void FuncB () { printf ("FuncB called\n"); }
};

class B: public A
{
public:
    void FuncA ()
    {
        A::FuncA ();
        printf ("FuncAB called\n");
    }
    virtual void FuncB () {    printf "FuncBB called\n";    }
};

void main (void)
{
    B b;
    A *pa = &b;
    A *pa2 = new A;

    b.FuncA ();
    b.FuncB ();
    pa->FuncA ();
    pa->FuncB ();
    pa2->FuncA ();
    pa2->FuncB ();

    delete pa2;
}

编写程序
编写一个支持简单正则表达式的字符串匹配函数.
合法正则表达式的语法如下:
通配符      含义
c               匹配某个小写英文字母 c.
?               匹配任意一个小写英文字母.
*                若一个小写英文字母后紧跟 *, 则匹配 0 个或多个此字符, "*" 号前只允许出现小写英文字母.
任选一种语言, 注意考虑不合法的情况.

C/C++:
int match (const char *regexp, const char *text);

Java
int match (String regexp, String text);

例子:
regexp: "?ab*"
输出为 1 的 text "aa", "da", "eabbb"
输出为 0 的 text "eabd"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值