2025年吉林大学计算机考研复试机试真题
本文整理吉林大学计算机考研机试真题,并提供详细解析与代码实现,帮助同学们了解保研机试的难度与题型分
字符串的反码
题目描述
一个二进制数,将其每一位取反,称之为这个数的反码。
下面我们定义一个字符的反码。如果这是一个小写字符,则它和字符 'a' 的距离与它的反码和字符 'z' 的距离相同;如果是一个大写字符,则它和字符 'A' 的距离与它的反码和字符 'Z' 的距离相同;如果不是上面两种情况,它的反码就是它自身。
举几个例子,'a' 的反码是 'z';'c' 的反码是 'x';'W' 的反码是 'D';'1' 的反码还是 '1';'$' 的反码还是 '$'。
一个字符串的反码定义为其所有字符的反码。我们的任务就是计算出给定字符串的反码。
输入格式
输入每行都是一个字符串,字符串长度不超过 80 个字符。如果输入只有 '!',表示输入结束,不需要处理。
输出格式
对于输入的每个字符串,输出其反码,每个数据占一行。
输入样例
Hello
JLU-CCST-2011
!
输出样例
Svool
QOF-XXHG-2011
平方因子
题目描述
给定一个数 ${n}$,判定它是否有一个不为 1 的完全平方数因子。
也就是说,是否存在某个 ${k}$,${k > 1}$,使得 ${k^2}$ 能够整除 ${n}$。
输入格式
每行一个整数 ${n}$,${1 < n < 10000}$。
输出格式
对于每一个输入的整数,在单独的一行输出结果,如果有不为 1 的完全平方数因子,则输出 "Yes",否则输出 "No"。请注意大小写。
输入样例
15
输出样例
No
三角形的边
题目描述
给定三个已知长度的边,确定是否能够构成一个三角形,这是一个简单的几何问题。我们都知道,这要求两边之和大于第三边。实际上,并不需要检验所有三种可能,只需要计算最短的两个边长之和是否大于最大那个就可以了。
这次的问题就是:给出三个正整数,计算最小的数加上次小的数与最大的数之差。
输入格式
每一行包括三个数据 ${a}$, ${b}$, ${c}$,并且都是正整数,均小于 10000。
输出格式
对于输入的每一行,在单独一行内输出结果 ${s}$。${s = \min(a,b,c) + \text{mid}(a,b,c) - \max(a,b,c)}$。上式中,$\min$ 为最小值,$\text{mid}$ 为中间值,$\max$ 为最大值。
输入样例
1 2 3
输出样例
0
排列与二进制
题目描述
在组合数学中,我们学过排列数。
从 ${n}$ 个不同元素中取出 ${m}$(${m \leq n}$)个元素的所有排列的个数,叫做从 ${n}$ 中取 ${m}$ 的排列数,记为 ${p(n, m)}$。
具体计算方法为 ${p(n, m) = n(n-1)(n-2) \ldots (n-m+1) = \frac{n!}{(n-m)!}}$(规定 ${0! = 1}$)。
当 ${n}$ 和 ${m}$ 不是很小时,这个排列数是比较大的数值,比如 ${p(10,5) = 30240}$。如果用二进制表示为 ${p(10,5) = 30240 = (111011000100000)_2}$,也就是说,最后面有 5 个零。
我们的问题就是,给定一个排列数,算出其二进制表示的后面有多少个连续的零。
输入格式
输入包含多组测试数据,每组测试数据一行。
每行两个整数,${n}$ 和 ${m}$,${0 < m \leq n \leq 10000}$,${n=0}$ 标志输入结束,该组数据不用处理。
输出格式
对于每个输入,输出排列数 ${p(n, m)}$ 的二进制表示后面有多少个连续的零。每个输出放在一行。
输入样例
10 5
6 1
0 0
输出样例
5
1
连通图
题目描述
给定一个无向图和其中的所有边,判断这个图是否所有顶点都是连通的。
输入格式
每组数据的第一行是两个整数 ${n}$ 和 ${m}$(${0 \leq n \leq 1000}$)。
${n}$ 表示图的顶点数目,${m}$ 表示图中边的数目。
随后有 ${m}$ 行数据,每行有两个值 ${x}$ 和 ${y}$(${0 < x, y \leq n}$),表示顶点 ${x}$ 和 ${y}$ 相连,顶点的编号从 1 开始计算。
输入不保证这些边是否重复。
输出格式
对于每组输入数据,如果所有顶点都是连通的,输出 "YES",否则输出 "NO"。
输入样例
4 3
1 2
2 3
3 2
3 2
1 2
2 3
输出样例
NO
YES