单选
1. 有四个同学,每个人得到的桃子数量不同,4个到7个之间。然后,4个人都吃掉了1个或2个桃,结果每个人剩下的桃数量还是各不相同。4个人吃过桃后,说了如下的话。其中,吃了2个桃的人撒谎了,吃了1个桃的人说了实话。
安娜:"我吃过红色的桃。" 杰瑞:"安娜现在手里有4个桃。"
凯特:"我和简一共吃了 3个桃。" 简:"杰瑞吃了2个桃。凯特现在拿着的桃数量不是3个。"
请问:最初杰瑞手里有几个桃?
A. 5 B. 7 C. 6 D. 4
解析:
吃了 2 个桃的人撒谎,吃了 1 个桃的人说实话。因此,我们需要找到谁撒谎,谁说实话。
简的陈述: 她说“杰瑞吃了 2 个桃”,这意味着如果她说实话,杰瑞必须吃了 2 个桃,简自己吃了 1 个桃。如果简撒谎,杰瑞吃的桃子数量就不同,简自己则吃了 2 个桃。
凯特的陈述: 她说“我和简一共吃了 3 个桃”,如果凯特说实话,那么凯特和简合起来必须吃了 3 个桃。
杰瑞的陈述: 他声称“安娜现在手里有 4 个桃”。如果杰瑞撒谎,意味着他吃了 2 个桃。
根据以上推论,我们需要尝试不同的组合,确定谁吃了 1 个或 2 个桃,并最终推断杰瑞最初的桃子数量。
- 假设杰瑞吃了 2 个桃(因为简说他吃了 2 个,如果简撒谎,杰瑞的情况需要与此不同)。
- 如果杰瑞撒谎,他应该吃了 2 个桃,而简则说了实话,这样凯特和简吃了 3 个桃。
- 假设安娜现在手里有 4 个桃,根据杰瑞的说法,结合桃子数量的唯一性,我们推断杰瑞最初的桃子数量为 6。
2. 一棵哈夫曼树共有215个结点,对其进行哈夫曼编码,共能得到多少个不同的码字?
A. 108 B. 215 C. 214 D. 107
解析:在哈夫曼树中,叶子节点的数量等于可以得到的不同码字的数量。每个叶子节点代表一个符号或字符,而非叶子节点(内部节点)则是构建哈夫曼编码树所需的中间节点。
对于一棵有 n 个叶子节点的哈夫曼树,树的总节点数是 2n−1,因为每个内部节点连接两个子节点(叶子节点或其他内部节点),而根节点不与任何其他节点连接。
给定题目中哈夫曼树共有 215 个节点,我们可以计算叶子节点的数量:
2n−1=215;2n=216;n=108
因此,这棵哈夫曼树共有 108 个叶子节点,也就能得到 108 个不同的哈夫曼编码码字。
3. 变量a是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF;变量b是一个64位有符号的整数,初始值用16进制表示为:0x8000000000000000。则a+b的结果用10进制表示为多少?
A. -1 B. -(2^63+2^62+...+2^2+2^1+2^0) C. 2^63+2^62+...+2^2+2^1+2^0 D. 1
解析:首先,我们需要分析
a
和b
的值:
0x7FFFFFFFFFFFFFFF
是 64 位有符号整数的最大正值,对应的十进制值为2^{63} - 1,也就是9223372036854775807
。
0x8000000000000000
是 64 位有符号整数的最小负值,对应的十进制值为 -2^{63},也就是-9223372036854775808
。接下来,计算
a + b
:a=9223372036854775807, b=−9223372036854775808因此,计算结果为:a+b=9223372036854775807+(−9223372036854775808)=−1