历年华中科技大学计算机考研复试上机真题

历年华中科技大学计算机考研复试上机真题

2022华中科技大学计算机考研复试上机真题

2021华中科技大学计算机考研复试上机真题

2019华中科技大学计算机考研复试上机真题

在线评测:https://pgcode.cn

八进制

题目描述

输入一个整数,将其转换成八进制数输出。

输入格式

输入包括一个整数N(0<=N<=100000)。

输出格式

可能有多组测试数据,对于每组数据,

输出N的八进制表示数。

输入样例
复制代码
7
8
9
输出样例
复制代码
7
10
11

统计单词

题目描述

编一个程序,读入用户输入的,以"."结尾的一行文字,统计一共有多少个单词,并分别输出每个单词含有多少个字符。 (凡是以一个或多个空格隔开的部分就为一个单词)

输入格式

输入包括1行字符串,以"."结束,字符串中包含多个单词,单词之间以一个或多个空格隔开。

输出格式

可能有多组测试数据,对于每组数据

输出字符串中每个单词包含的字母的个数。

输入样例
复制代码
hello how are you.
输出样例
复制代码
5 3 3 3

打印日期

题目描述

给出年分m和一年中的第n天,算出第n天是几月几号。

输入格式

输入包括两个整数y(1<=y<=3000)

n(1<=n<=366)。

输出格式

可能有多组测试数据,对于每组数据,

按 yyyy-mm-dd的格式将输入中对应的日期打印出来。

输入样例
复制代码
2000 3
2000 31
2000 40
2000 60
2000 61
2001 60
输出样例
复制代码
2000-01-03
2000-01-31
2000-02-09
2000-02-29
2000-03-01
2001-03-01

大整数排序

题目描述

对N个长度最长可达到1000的数进行排序。

输入格式

输入第一行为一个整数N,(1<=N<=100)。

接下来的N行每行有一个数,数的长度范围为1<=len<=1000。

每个数都是一个正数,并且保证不包含前缀零。

输出格式

可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。

输入样例
复制代码
3
11111111111111111111111111111
2222222222222222222222222222222222
33333333
输出样例
复制代码
33333333
11111111111111111111111111111
2222222222222222222222222222222222

排序

题目描述

对输入的n个数进行排序并输出。

输入格式

输入的第一行包括一个整数n(1<=n<=100)。

接下来的一行包括n个整数。

输出格式

可能有多组测试数据,对于每组数据,将排序后的n个整数输出,每个数后面都有一个空格。

每组测试数据的结果占一行。

输入样例
复制代码
4
1 4 3 2
输出样例
复制代码
1 2 3 4

特殊排序

题目描述

输入一系列整数,将其中最大的数挑出(如果有多个,则挑出一个即可),并将剩下的数进行排序,如果无剩余的数,则输出-1。

输入格式

输入第一行包括1个整数N,1<=N<=1000,代表输入数据的个数。

接下来的一行有N个整数。

输出格式

可能有多组测试数据,对于每组数据,

第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序。

第二行将排序的结果输出。

输入样例
复制代码
4
1 3 4 2
输出样例
复制代码
4
1 2 3

二叉树遍历2

题目描述

二叉树的前序、中序、后序遍历的定义:

  • 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树;
  • 中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树;
  • 后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。

给定一棵二叉树的前序遍历和中序遍历,求其后序遍历(提示:给定前序遍历与中序遍历能够唯一确定后序遍历)。

输入格式

两个字符串,其长度n均小于等于26。

第一行为前序遍历,第二行为中序遍历。

二叉树中的结点名称以大写字母表示:A,B,C...最多26个结点。

输出格式

输入样例可能有多组,对于每组测试样例。

输出一行,为后序遍历的字符串。

输入样例
复制代码
ABC
BAC
FDXEAG
XDEFAG
输出样例
复制代码
BCA
XEDGAF

成绩排序 - 华科

题目描述

有N个学生的数据,将学生数据按成绩从低到高排序,如果成绩相同则按姓名字符的字典序排序,如果姓名的字典序也相同则按照学生的年龄从小到大排序,并输出N个学生排序后的信息。

输入格式

测试数据有多组,每组输入第一行有一个整数N(N<=1000),接下来的N行包括N个学生的数据。

每个学生的数据包括姓名(长度不超过100的字符串)、年龄(整形数)、成绩(小于等于100的正数)。

输出格式

将学生信息按成绩进行排序,成绩相同的则按姓名的字母序进行排序。

然后输出学生信息,按照如下格式:

姓名 年龄 成绩

学生姓名的字母序区分字母的大小写,如A要比a的字母序靠前(因为A的ASC码比a的ASC码要小)。

输入样例
复制代码
3
abc 20 99
bcd 19 97
bed 20 97
输出样例
复制代码
bcd 19 97
bed 20 97
abc 20 99

二叉排序树

题目描述

输入一系列整数,建立二叉排序树,并进行前序,中序,后序遍历。

输入格式

输入第一行包括一个整数n(1<=n<=100)。

接下来的一行包括n个整数。

输出格式

可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。

每种遍历结果输出一行。每行最后一个数据之后有一个空格。

输入中可能有重复元素,但是输出的二叉树遍历序列中重复元素不用输出。

输入样例
复制代码
5
1 6 5 9 8
输出样例
复制代码
1 6 5 9 8 
1 5 6 8 9 
5 8 9 6 1

N阶楼梯上楼问题

题目描述

N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。

(要求采用非递归)

输入格式

输入包括一个整数N,(1<=N<90)。

输出格式

可能有多组测试数据,对于每组数据,

输出当楼梯阶数是N时的上楼方式个数。

输入样例
复制代码
4
输出样例
复制代码
5

二叉排序树 - 华科

题目描述

二叉排序树,也称为二叉查找树。

可以是一颗空树,也可以是一颗具有如下特性的非空二叉树:

  1. 若左子树非空,则左子树上所有节点关键字值均不大于根节点的关键字值;
  2. 若右子树非空,则右子树上所有节点关键字值均不小于根节点的关键字值;
  3. 左、右子树本身也是一颗二叉排序树。

现在给你N个关键字值各不相同的节点,要求你按顺序插入一个初始为空树的二叉排序树中,每次插入后成功后,求相应的父亲节点的关键字值,如果没有父亲节点,则输出-1。

输入格式

输入包含多组测试数据,每组测试数据两行。

第一行,一个数字N(N<=100),表示待插入的节点数。

第二行,N个互不相同的正整数,表示要顺序插入节点的关键字值,这些值不超过10^8。

输出格式

输出共N行,每次插入节点后,该节点对应的父亲节点的关键字值。

输入样例
复制代码
5
2 5 1 3 4
输出样例
复制代码
-1
2
2
5
3

遍历链表

题目描述

建立一个升序链表并遍历输出。

输入格式

输入的每个案例中第一行包括1个整数:n(1<=n<=1000),接下来的一行包括n个整数。

输出格式

可能有多组测试数据,对于每组数据,

将n个整数建立升序链表,之后遍历链表并输出。

输入样例
复制代码
4
3 5 7 9
输出样例
复制代码
3 5 7 9

矩阵转置

题目描述

输入一个N*N的矩阵,将其转置后输出。

要求:不得使用任何数组(就地逆置)。

输入格式

输入的第一行包括一个整数N,(1<=N<=100),代表矩阵的维数。

接下来的N行每行有N个整数,分别代表矩阵的元素。

输出格式

可能有多组测试数据,对于每组数据,将输入的矩阵转置后输出。

输入样例
复制代码
3
1 2 3
4 5 6
7 8 9
输出样例
复制代码
1 4 7
2 5 8
3 6 9

回文字符串

题目描述

给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的。

输入格式

输入包括一行字符串,其长度不超过1000。

输出格式

可能有多组测试数据,对于每组数据,如果是回文字符串则输出"Yes!",否则输出"No!"。

输入样例
复制代码
hellolleh
helloworld
输出样例
复制代码
Yes!
No!

字符串连接

题目描述

不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来。

输入格式

每一行包括两个字符串,长度不超过100。

输出格式

可能有多组测试数据,对于每组数据,

不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来。

输出连接后的字符串。

输入样例
复制代码
abc def
输出样例
复制代码
abcdef

IP地址 - 华科

题目描述

输入一个ip地址串,判断是否合法。

输入格式

每行有一个IP地址,IP地址的形式为a.b.c.d,其中a、b、c、d都是整数。

输出格式

可能有多组测试数据,对于每组数据,如果IP地址合法则输出"Yes!",否则输出"No!"。

合法的IP地址为:

a、b、c、d都是0-255的整数。

输入样例
复制代码
255.255.255.255
输出样例
复制代码
Yes!

梅森素数

题目描述

关于梅森素数。所谓梅森数,是指形如2p-1的一类数,其中指数p是素数,常记为M§。

如果p是素数的同时,梅森数(即2^p-1)也是素数,就称这个梅森数为梅森素数。

输入一个长整型数n,输出不大于它的所有梅森素数。

输入格式

输入一个长整型数

输出格式

输出比该数字小的梅森素数

输入样例
复制代码
1000
输出样例
复制代码
M(2)=3
M(3)=7
M(5)=31
M(7)=127
题目来源

华中科技大学2019年机试题

对称矩阵

题目描述

输入一个N维矩阵,判断是否对称。

输入格式

输入第一行包括一个数:N(1<=N<=100),表示矩阵的维数。

接下来的N行,每行包括N个数,表示N*N矩阵的元素。

输出格式

可能有多组测试数据,对于每组数据,

输出"Yes!"表示矩阵为对称矩阵。

输出"No!"表示矩阵不是对称矩阵。

输入样例
复制代码
4
16 19 16 6 
19 16 14 5 
16 14 16 3 
6 5 3 16 
2
1 2
3 4
输出样例
复制代码
Yes!
No!

守形数

题目描述

守形数是这样一种整数,它的平方的低位部分等于它本身。

比如25的平方是625,低位部分是25,因此25是一个守形数。 编一个程序,判断N是否为守形数。

输入格式

输入包括1个整数N,2<=N<100。

输出格式

可能有多组测试数据,对于每组数据,

输出"Yes!"表示N是守形数。

输出"No!"表示N不是守形数。

输入样例
复制代码
25
4
输出样例
复制代码
Yes!
No!

a+b - 华科

题目描述

实现一个加法器,使其能够输出a+b的值。

输入格式

输入包括两个数a和b,其中a和b的位数不超过1000位。

输出格式

可能有多组测试数据,对于每组数据,

输出a+b的值。

输入样例
复制代码
2 6
10000000000000000000 10000000000000000000000000000000
输出样例
复制代码
8
10000000000010000000000000000000

找位置

题目描述

对给定的一个字符串,找出有重复的字符,并给出其位置.

如:abcaaAB12ab12

输出:a,1;a,4;a,5;a,10,b,2;b,11,1,8;1,12, 2,9;2,13。

输入格式

输入包括一个由字母和数字组成的字符串,其长度不超过100。

输出格式

可能有多组测试数据,对于每组数据,

按照样例输出的格式将字符出现的位置标出。

  1. 下标从0开始。

  2. 相同的字母在一行表示出其出现过的位置。

输入样例
复制代码
abcaaAB12ab12
输出样例
复制代码
a:0,a:3,a:4,a:9
b:1,b:10
1:7,1:11
2:8,2:12

阶乘2

题目描述

输入n, 求y1=1!+3!+...m!(m是小于等于n的最大奇数) y2=2!+4!+...p!(p是小于等于n的最大偶数)。

输入格式

每组输入包括1个整数:n

输出格式

可能有多组测试数据,对于每组数据,

输出题目要求的y1和y2

输入样例
复制代码
4
输出样例
复制代码
7 26

进制转换

题目描述

十二进制是数学中一种以12为底数的计数系统,它由0~9,a,b组成,与十进制的对应关系是:0~9对应0~9,a对应10,b对应11。例如,十二进制的a2,十进制是122。输入一个仅含十二进制数字的字符串(字母一律小写,不超过8个字符),完成下列任务:

(1)输出该十二进制数每一位对应的十进制数(从高位到低位顺序输出,空格隔开);

(2)实现"十二进制"转"十进制"算法,输出该十二进制数对应的十进制数;

(3)输出转换后的十进制数在内存中的每个二进制位(共4字节,每字节之间空格隔开)。

输入格式

输入一个十二进制数(字母一律小写,不超过8个字符)。

输出格式

第一行输出该十二进制数每一位对应的十进制数(由高位到低位,以空格隔开)

第二行输出该十二进制数对应的十进制数

第三行输出转换后的十进制数在内存中的每个二进制位(共4个字节,每字节之间空格隔开)

输入样例
复制代码
a2
输出样例
复制代码
10 2
122
00000000 00000000 00000000 01111010

矩阵最大值

题目描述

编写一个程序输入一个mXn的矩阵存储并输出,并且求出每行的最大值和每行的总和。

要求把每行总和放入每行最大值的位置,如果有多个最大值,取下标值最小的那一个作为最大值。

最后将结果矩阵输出。

输入格式

输入的第一行包括两个整数m和n(1<=m,n<=100),分别代表矩阵的行和列的维数。

接下来的m行每行有n个数,代表矩阵的元素。

输出格式

可能有多组测试数据,对于每组数据,输出按题目要求执行后的矩阵。

输入样例
复制代码
3 3
1 1 1
1 1 1
1 1 1
3 3
3 2 3
2 3 2
3 2 3
输出样例
复制代码
3 1 1
3 1 1
3 1 1
8 2 3
2 7 2
8 2 3

单词个数统计

题目描述

从键盘输入一行英文句子,句子中只有英文单词和空格,每个单词之间用若个空格隔开,英文单词由大小写字母组成,编程完成以下任务:

(1)统计并输出此句子中英文字母的个数;(10分)

(2)统计并输出此句子中单词的个数;(10分)

(3)查找此句子中出现次数最多的字母(不区分大小写,大小写字母是相同的)及次数。当出现最多的字符不止一个时,都能找到,并输出找到的所有字母及次数。(输出字母时大小写均可)

输入格式

输入只有一行句子。仅有空格和英文字母构成,末尾以回车作为结束。(不超过1000个字符)

输出格式

在接下来的每一行分别输出字母个数、单词个数、出现次数最多的字符(不止一个则用空格隔开)、出现的次数。

输入样例
复制代码
This is An Pencil Case
输出样例
复制代码
18
5
i s
3

最小年龄的3个职工

题目描述

职工有职工号,姓名,年龄.输入n个职工的信息,找出3个年龄最小的职工打印出来。

输入格式

输入第一行包括1个整数N,1<=N<=30,代表输入数据的个数。

接下来的N行有N个职工的信息:

包括职工号(整数), 姓名(字符串,长度不超过10), 年龄(1<=age<=100)。

输出格式

可能有多组测试数据,对于每组数据,

输出结果行数为N和3的较小值,分别为年龄最小的职工的信息。

关键字顺序:年龄>工号>姓名,从小到大。

输入样例
复制代码
5
501 Jack 6
102 Nathon 100
599 Lily 79
923 Lucy 15
814 Mickle 65
输出样例
复制代码
501 Jack 6
923 Lucy 15
814 Mickle 65

最大的两个数

题目描述

输入一个四行五列的矩阵,找出每列最大的两个数。

输入格式

接下来的四行每行包括五个整数。代表一个四行五列的矩阵,矩阵元素全部是整数。

输出格式

可能有多组测试数据,对于每组数据,按照样例输出的格式将每列最大的两个数输出,如果最大的两个数中的一个数在这一列中有多个相同的值,则行值取行值小的那一个。

输出时要保留原矩阵的行列顺序,即在原矩阵中行值小的,在输出矩阵中的行值依然小。

输入样例
复制代码
1  2   4  9  8
-1  4  9  8  8
12  9  8  7  0
7   8  9  7  0
输出样例
复制代码
12 9 9 9 8 
7 8 9 8 8

最长&最短文本

题目描述

输入多行字符串,请按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出。

输入格式

输入包括多行字符串,字符串的长度len,(1<=len<=1000)。

输出格式

按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出。

输入样例
复制代码
hello
she
sorry
he
输出样例
复制代码
he
hello
sorry

字符串的操作

题目描述

凯撒密码。

从键盘输入一个由字母组成的字符串,对字符串中的每个字符进行偏移操作,每个字符都向后偏移两个。

即:a->c,Z->B。

然后输出偏移后的每个字符的奇校验码及其对应的十进制数,如果字符中1的个数为偶数,将其最高位置为1。

输入样例
复制代码
aD
输出样例
复制代码
原文:aD
密文:cF
c  11100011  227
F  01000110  70

排序去重

题目描述

输入一个长度为n的数组,先将其进行排序输出,然后对排序后的结果去重再次输出

输入样例
复制代码
6
3 2 3 6 5 6
输出样例
复制代码
2 3 3 5 6 6
2 3 5 6

奇偶校验

题目描述

输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如'3',输出:10110011)。

输入格式

输入包括一个字符串,字符串长度不超过100。

输出格式

可能有多组测试数据,对于每组数据,

对于字符串中的每一个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。

输入样例
复制代码
3
3a
输出样例
复制代码
10110011
10110011
01100001

十进制加密

题目描述

输入一个占32比特位的十进制正整数,按下述规则输出加密后的十进制整数:

设这个整数的二进制表示为x x x x p p p p x x x x e e e e x x x x e e e e x x x x e e e e ,将其中标记为e的均左移8位,标记为p的右移24位,标记为x的位置不变,输出加密后的数的十进制表示

输入样例
复制代码
1234
输出样例
复制代码
262864

删除数字

题目描述

输入两个整数a和n,要求从a中删除n个位置上的数后剩下的数按原来的相对顺序组成的新数最小,求这个数。

输入样例
复制代码
62354 2
输出样例
复制代码
234

文件处理

题目描述

文件操作及字符串处理。输入一个源文件abc.c的代码。在abc.c文件中有相当数量的注释,包括//和/... /两种形式的注释。

1、将输入的abc.c文件的内容,将其显示在控制台上,(并为每行代码增加一个行号)。

2、使源代码中的//类型的注释内容不显示在控制台中。

3、使源代码中的/.../类型的注释内容不显示在控制台中。

输入格式

输入多行源代码

输出格式

输出处理过的源代码

输入样例
复制代码
#include <stdio.h>
/*
这是一个求两数之和的程序
*/
int main() {
    int a, b;//定义
    //输入
    scanf("%d%d", &a, &b);
    /*  输出  */
    printf("%d\n", a + b);
    return 0;
}
输出样例
复制代码
#include <stdio.h>
int main() {
    int a, b;
    scanf("%d%d", &a, &b);
    printf("%d\n", a + b);
    return 0;
}

切牌、洗牌

题目描述

有2-9共八张扑克牌,从小到大依次叠放,需要进行3轮切牌、洗牌的操作(切牌之后立马洗牌,再进行下一轮)。

切牌的定义如下(其实就是循环左移n位):

原序列:2 3 4 5 6 7 8 9

切2张

新序列:4 5 6 7 8 9 2 3

另外,如果切牌张数不在1-7之间,则是无效操作,不移动序列

洗牌的定义如下(就是将序列分为两半,然后交错插在一起):

原序列:4 5 6 7 8 9 2 3

洗牌

新序列:4 8 5 9 6 2 7 3

分别给出三次切牌的张数,问你最后的结果是多少。

输入样例
复制代码
1 2 3
输出样例
复制代码
27543698

农夫、羊、菜和狼的故事

题目描述

有一个农夫带一只羊、一筐菜和一只狼过河。如果没有农夫看管,则狼要吃羊,羊要吃菜。但是船很小,只够农夫带一样东西过河。问农夫该如何解此难题?

输入格式

题目没有任何输入。

输出格式

题目可能有种解决方法,求出步骤最少的解决方法,

按顺序输出农夫想把羊、菜、狼全部运过河需要哪几个步骤。

如果需要将羊带过河去则输出"sheep_go"。

如果需要将羊带回来则输出"sheep_come"。

如果需要将菜带过河去则输出"vegetable_go"。

如果需要将菜带回来则输出"vegetable_come"。

如果需要将狼带过河去则输出"wolf_go"。

如果需要将狼带回来则输出"wolf_come"。

如果需要空手返回则输出"nothing_come"。

如果需要空手过河则输出"nothing_go"。

每输出一种方案,输出一行"succeed"。

输入样例
复制代码
输出样例
复制代码
sheep_go
nothing_come
wolf_go
sheep_come
vegetable_go
nothing_come
sheep_go
succeed

表达式计算

题目描述

给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。

表达式的符号有+, -, *, /, (, ), <<, >>, ^, &, |,

其中定义了几个变量a = 1, b = 2, c = 3, d = 4, e = 5,可能会出现要你计算a+1的情况。

保证表达式合法

输入样例
复制代码
1+b*3+d/(2-1)+e
输出样例
复制代码
16

压缩日期

题目描述

给定三个数,分别代表年、月、日,将其压缩为一个16bit的short型整数,要求取年的后两位,然后将其移动到前7位的位置上,将日移动到中间5位,后4位代表月,输出这个数。

另外,如果输入的日期,超过所在月份的最大日期数,则输出当前月份的最大日期。

输入样例
复制代码
2020 5 20
输出样例
复制代码
10565

分数转小数

题目描述

编写程序,接受4个以N/D形式输入的分数,其中N(0<=N<=65535)为分子,D(0<=D<=65535)为分母,输出他们的小数形式。

如果小数存在循环节,则用括号括起来,如1/3=.33333...表示为0.(3)。

输入格式

输入4个N/D形式的分数

输出格式

输出N/D=整数部分.小数部分,小数部分如存在循环节则将循环部分用括号括起来。

输入样例
复制代码
8/5 1/3 11/13 2/15
输出样例
复制代码
1.6
0.(3)
0.(846153)
0.1(3)
相关推荐
周Echo周16 分钟前
8、STL中的map和pair使用方法
开发语言·数据结构·c++·考研·算法·leetcode·pat考试
西电研梦20 小时前
复试不难,西电马克思主义学院—考研录取情况
经验分享·考研·西安电子科技大学·马克思主义
爱分享的淘金达人21 小时前
25年教师资格认定材料及认定详细流程‼
java·python·考研·小程序·tomcat
西电研梦3 天前
复试难度解析,西电先进材料与纳米科技学院学院考研录取情况
科技·考研·材料工程·西安电子科技大学
爱做ppt的阿伟4 天前
计算机数据结构-第一章
数据结构·python·考研
java_python源码5 天前
【2025】基于python+django的考研自习室预约系统(源码、万字文档、图文修改、调试答疑)
python·考研·django
西电研梦6 天前
复试难度,西电卓越工程师学院(杭研院)考研录取情况
人工智能·考研·研究生·西安电子科技大学·考研报名
于慨6 天前
考研408
考研