本词条由2026级新生群:1028226838( )提供 侵权必究

智算学部 2025 级计科拔尖班选拔考试(机试)

作者:刘家杰   最后编辑于: 2026-8-12 21:22  浏览量:437

试卷说明

重要提示:智算学部未公开发布试卷内容,本词条内容根据往届学生考场回忆整理,与原试题可能存在偏差,内容仅用于 考试形式参考

  • 考试科目:上机程序设计
  • 考试时间:2025 年 9 月 14 日 14:00 ~ 16:00(需提前 15 分钟到达考场测试硬件设备、编译器情况)
  • 考试地点:北洋园校区第 47 教学楼第二、三、五、六、八机房
  • 卷面分数:100
  • 成绩占比:20%
  • 参加人数:443

答题说明

(1) 考生必须持有效考试证件(天津大学学生证或饭卡)提前 15 分钟入场,迟到 15 分钟者不得入场,取消考试资格。

(2) 考生要自觉维护考场秩序,遵守考场规则,严禁作弊。对考试作弊及其他违反考试纪律的学生,按照《天津大学学生考试工作规定》的相关规定处理。

(3) 闭卷测试,不允许使用任何参考资料及电子设备,允许使用草稿纸。

(4) 上机测试前公开测试地址、发放考试系统的账号密码,请确认账号密码可登录系统,必须使用自己的账号提交,其他账号无效。

(5) 只允许使用 C 语言、C++Python 语言提交代码,考试系统提供 Dev C++CodeblocksPycharm 集成开发环境,支持 C++ 14STL,其他环境不支持,请提前熟悉 IDE 使用。

(6) 提交代码选择语言时请确认已在本地编译成功。选择 C 语言提交,需将源码文件命名为 .c 文件;选择 C++ 语言进行提交,需将源码文件命名为 .cpp 文件进行本地编译。

(7) 上机测试共 6 道题目,每道题目可多次提交,考试过程中 只反馈题面给出样例的测试结果(包括编译错误、运行错误、正确通过小数据、部分通过小数据等,“小数据” 仅包含题面给出的样例数据),小数据测试结果仅供参考(仅用于确认代码提交成功及编译运行成功)。正式测试数据于上机测试结束后进行评测,每道题目取考生所有该题的提交代码中的最高分,严禁恶意提交。

(8) 题目测试点一般按数据规模设定,通过部分测试点也可获得相应得分,注意所有测试数据均与题目中给出的样例不同,故程序可以运行出题目中给出的样例结果,也可能得 0 分。

(9) 代码编写过程中随时保存到 D 盘,防止计算机或程序意外故障需要重启造成代码丢失。

(10) 其他注意事项:提交代码时需要将代码中的 system("pause") 等调试用语句注释掉;允许使用头文件 bits/stdc++.h,但要注意斜杠为 '/',而不是 '\'(部分编译环境可通过编译,但提交以后进行评测时会编译错误)。

(11) 请严格按照题目要求的输入输出编写程序,不要输出非题目要求的提示性语句(比如输出 “请输入两个整数……” 等),多输出任何字符或者空格、换行不得分。

(12) 题目中给出的数据范围即为测试数据中的数据范围,不需要在程序里再进行数据范围的判断。

(13) 考试过程中有任何问题,包括题意问题请及时反馈给监考解决。

(14) 考试系统使用说明请参考:智能与计算学部 2024 年拔尖计划选拔上机测试须知

注意:以下行为均属作弊行为,请同学们严格遵守考试规定。

(1) 使用别人的账号登录,如 A 使用 B 的账号登录,AB 均判定为作弊。

(2) 同一账号在多台机器登录,如 A 账号在两台机器上都有登录记录,视为作弊。

(3) 使用相同或相似的代码提交(判重方法:系统查重 + 人工判定)。

(4) 一台机器同时登录多个账号。如 A 在自己机器上登录 BCD 的账号,则 ABCD 均视为作弊。

(5) 考试过程中访问除考试平台以外的任何网络应用。

(6) 考试过程中使用无关电子设备(手机、U 盘、智能手表等)。

试卷题目

1. 判断三角形边长

现有 a, b, c 三个数,请判断这 3 个数是否可以构成三角形。

  • 输入:3 个数(数值不超过变量类型上限)分别代表 abc
  • 输出:可以构成三角形则输出 yes,否则输出 no

例 1:

  • 输入:1 1 1
  • 输出:yes

例 2:

  • 输入:1 2 3
  • 输出:no

2. 计算所需炮弹数量

现有一部只能向一维方向发射的火炮,在该方向分布有 n 个目标,每个目标与火炮阵地的距离坐标(整数)记录在一个一维数组内。某新型炮弹的摧毁范围为 d,即落在距离 n 的位置时能摧毁 [n, n+d-1] 范围内的目标。现计划使用该炮弹打击数组上所有目标,请计算所需消耗的炮弹最小数量。

  • 输入:第一行输入目标个数 n 和炮弹摧毁范围 d,第二行输入 n 个数值代表一维数组
  • 输出:击中所有目标所需消耗的炮弹最小数量

例 1:

  • 输入:4 3
  • 输入:-2 -1 0 2
  • 输出:2
  • 解释:[-2, 0] 范围内的目标可用 1 个炮弹摧毁,坐标 2 的目标可用第 2 个炮弹摧毁

3. 计算序列元素修改次数

DNA 基因序列可以简化为只包含 ACGT 4 种大写字母的字符串。现有 ab 两个基因序列,如果想在 a 序列中找到一个完整的 b 序列,请计算最少要修改几次 a 序列中的元素值(每次只能改 1 个位置)。

  • 输入:两行包含 ACGT 4 种大写字母的字符串,第一行代表 a 序列,第二行代表 b 序列
  • 输出:修改 a 序列元素所需要的最少次数,若无法实现则输出 -1

4. 规划拉练路线

现有一块可划分为 n x m 个格子的拉练场地,每个格子充满了毒雾,踏入该格子将消耗一定血量值。军训队伍从场地左上角格子出发,每次行动只能向下或者向右移动 1 格。请计算队伍移动至场地右下角格子所需消耗的最少血量值。

  • 输入:第一行输入场地长 n 和宽 m,第二行输入 n x m 个数值代表每个单元格所需消耗的血量值(从左上角到右下角)
  • 输出:移动至到右下角所需消耗的最少血量值

5. 计算两个矩形最小周长

现有两个面积之和为 s 的矩形,请分析可以构成这两个矩形的长值与宽值,计算两个矩形的最小周长之和

  • 输入:两个矩形面积之和 s
  • 输出:符合条件的两个矩形的最小周长之和

6. 计算拔尖递增序列长度

现有一个由 n 个随机数组成的一维数组,其中某个元素的 拔尖递增序列 是指:从该元素出发向后遍历,找到能满足数值递增且没有数值重复的 最长 元素序列(元素的原位置可以不相邻)。

例如一维数组:

1 100 99 2 2 3 1

对于首个位置的 1 元素来说,向后遍历有 1 1001 991 2 33 种序列满足递增的要求,而 1 2 3 最长,故 1 元素的 拔尖递增序列1 2 3

请计算该一维数组每个元素的 拔尖递增序列 长度。

  • 输入:第一行输入数组长度 n,第二行输入 n 个数值代表一维数组
  • 输出:数组每个元素的 拔尖递增序列 长度

例 1:

  • 输入:7
  • 输入:1 100 99 2 2 3 1
  • 输出:3 1 1 2 2 1 1

相关阅读