news 2026/4/3 9:19:49

2025年天津大学计算机考研复试机试真题(附 AC 代码 + 解题思路)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2025年天津大学计算机考研复试机试真题(附 AC 代码 + 解题思路)

2025年天津大学计算机考研复试机试真题

2025年天津大学计算机考研复试上机真题

历年天津大学计算机考研复试上机真题

历年天津大学计算机考研复试机试真题

更多学校题目开源地址:https://gitcode.com/verticallimit1/noobdream

N 诺 DreamJudge 题库:输入 “学校名称” 即可筛选该校历年机试真题,题目均在考纲范围内,按难度自动排序。还可搭配《计算机考研机试攻略》刷题,书中题目可通过题号直接在题库中查找。

天津大学-计算表达式

题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb

输入字符串的中缀表达式

包含‘+’、‘-’、‘*’、‘/’、‘(’、‘)’,输出运算结果。

输入输出格式
输入描述:

字符串的中缀表达式

输出描述:

计算结果

输入输出样例
输入样例#:
3+(5-3)*2
输出样例#:
7

代码一

  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <iomanip>
  5. #include <set>
  6. #include <list>
  7. #include <string>
  8. #include <cmath>
  9. #include <stack>
  10. #include <map>
  11. #include <sstream>
  12. #include <queue>
  13. #include <bitset>
  14. #include <climits>
  15. using namespace std;
  16. map<char, int>mapp{
  17. {'+',1},{'-',1},{'*',2},{'/',2}
  18. };
  19. void fun(stack<int>& nums, stack<char>& ops) {
  20. int b = nums.top(); nums.pop();
  21. int a = nums.top(); nums.pop();
  22. char op = ops.top(); ops.pop();
  23. int result;
  24. if (op == '+') result = a + b;
  25. else if (op == '-')result = a - b;
  26. else if (op == '*')result = a * b;
  27. else result = a / b;
  28. nums.push(result);
  29. }
  30. int main() {
  31. string s;
  32. while (cin >> s) {
  33. stack<int>nums;
  34. stack<char>ops;
  35. char op;
  36. for(int i=0;i<s.size();i++) {
  37. op = s[i];
  38. if (s[i] >= '0' && s[i] <= '9') {
  39. int num = 0;
  40. while (i < s.length() && isdigit(s[i])) {
  41. num = num * 10 + (s[i] - '0');
  42. i++;
  43. }
  44. i--;
  45. nums.push(num);
  46. }
  47. else if (op == '(') {
  48. ops.push(op);
  49. }
  50. else if (op == ')') {
  51. while (!ops.empty() && ops.top() != '(') {
  52. fun(nums, ops);
  53. }
  54. if (!ops.empty()) {
  55. ops.pop();
  56. }
  57. }
  58. else {
  59. while (!ops.empty() && ops.top() != '(' && mapp[ops.top()]>=mapp[op]) {
  60. fun(nums, ops);
  61. }
  62. ops.push(op);
  63. }
  64. }
  65. while (!ops.empty()) {
  66. fun(nums, ops);
  67. }
  68. cout << nums.top() << endl;
  69. }
  70. return 0;
  71. }

代码二

  1. #include<iostream>
  2. #include<unordered_map>
  3. #include<algorithm>
  4. #include<string>
  5. #include<stack>
  6. using namespace std;
  7. stack<int> num;
  8. stack<char> fu;
  9. unordered_map<char, int> h{ {'+',1},{'-',1},{'*',2},{'/',2} };
  10. void jisuan() {
  11. int num1 = num.top();
  12. num.pop();
  13. int num2 = num.top();
  14. num.pop();
  15. char f = fu.top();
  16. fu.pop();
  17. int n = 0;
  18. if (f == '+')n = num1 + num2;
  19. if (f == '-')n = num2 - num1;
  20. if (f == '*')n = num1 * num2;
  21. if (f == '/')n = num2 / num1;
  22. num.push(n);
  23. }
  24. int main() {
  25. string s;
  26. cin >> s;
  27. for (int i = 0; i < s.size(); i++) {
  28. if (isdigit(s[i])) {
  29. int j = i, x = 0;
  30. while (j < s.size() && isdigit(s[j])) {
  31. x = x * 10 + s[j] - '0';
  32. j++;
  33. }
  34. num.push(x);
  35. i = j - 1;
  36. }
  37. else if (s[i] == '(') {
  38. fu.push(s[i]);
  39. }
  40. else if (s[i] == ')') {
  41. while (fu.top() != '(') {
  42. jisuan();
  43. }
  44. fu.pop();
  45. }
  46. else {
  47. while (fu.size() > 0 && h[s[i]] <= h[fu.top()]) {
  48. jisuan();
  49. }
  50. fu.push(s[i]);
  51. }
  52. }
  53. while (fu.size())jisuan();
  54. cout << num.top() << endl;
  55. return 0;
  56. }

代码三

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. struct li{//方便存储多位数字
  4. char ch='$';
  5. int number;
  6. };
  7. int main(){
  8. vector<li>res;//存后缀表达式
  9. stack<int>sta;//后缀表达式求值(操作栈)
  10. map<char,int> m;
  11. m['+']=1;
  12. m['-']=1;
  13. m['*']=2;
  14. m['/']=2;
  15. m['^']=3;
  16. string str;
  17. cin>>str;
  18. int len=str.length();
  19. stack<char>s;//中缀转后缀(操作栈)
  20. for(int i=0;i<len;){//中缀转后缀
  21. if(str[i]>='0'&&str[i]<='9'){//数字
  22. string cc;
  23. while(str[i]>='0'&&str[i]<='9'){
  24. cc+=str[i];
  25. i++;
  26. }
  27. int num=stoi(cc);
  28. li temp;
  29. temp.number=num;
  30. res.push_back(temp);
  31. continue;
  32. }else if(str[i]=='('){//左括号
  33. s.push(str[i]);
  34. }else if(str[i]==')'){//右括号
  35. while(s.top()!='('){
  36. li temp;
  37. temp.ch=s.top();
  38. res.push_back(temp);
  39. s.pop();
  40. }
  41. s.pop();
  42. }else{//+-*/^运算符
  43. if(!s.empty()){
  44. if(s.top()!='('){
  45. int b=m[str[i]];
  46. int a=m[s.top()];
  47. while(a>=b){
  48. li temp;
  49. temp.ch=s.top();
  50. res.push_back(temp);
  51. s.pop();
  52. if(s.empty()){break;}
  53. if(s.top()=='('){break;}
  54. int a=m[s.top()];
  55. }
  56. }}
  57. s.push(str[i]);
  58. }
  59. i++;
  60. }
  61. while(!s.empty()){
  62. li temp;
  63. temp.ch=s.top();
  64. res.push_back(temp);
  65. s.pop();
  66. }
  67. //后缀表达式求值
  68. for(int i=0;i<res.size();i++){
  69. if(res[i].ch=='$'){//数字
  70. sta.push(res[i].number);
  71. }else{//运算符
  72. int b=sta.top();
  73. sta.pop();
  74. int a=sta.top();
  75. sta.pop();
  76. int c;
  77. if(res[i].ch=='+'){
  78. c=a+b;
  79. }else if(res[i].ch=='-'){
  80. c=a-b;
  81. }else if(res[i].ch=='*'){
  82. c=a*b;
  83. }else if(res[i].ch=='/'){
  84. c=a/b;
  85. }else if(res[i].ch=='^'){
  86. c=(int)pow(a,b);
  87. }
  88. sta.push(c);
  89. }
  90. }
  91. cout<<sta.top();
  92. return 0;
  93. }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/10 12:58:41

Open-AutoGLM实战应用指南(从入门到精通的7个关键步骤)

第一章&#xff1a;Open-AutoGLM实战应用指南概述 Open-AutoGLM 是一个面向自动化自然语言任务的开源框架&#xff0c;专为简化大语言模型在实际业务场景中的部署与调优而设计。该框架融合了提示工程、自动推理链构建与上下文优化机制&#xff0c;适用于智能客服、文档摘要、数…

作者头像 李华
网站建设 2026/3/15 20:43:50

AI代码生成时代下测试策略与用例设计的重构路径

站在范式转移的十字路口当前&#xff0c;以GitHub Copilot、Amazon CodeWhisperer及大模型驱动的代码生成工具正以前所未有的速度嵌入开发生命周期。对于软件测试从业者而言&#xff0c;这不再仅仅是生产力的局部提升&#xff0c;而是一次触及测试哲学、策略与执行全链条的根本…

作者头像 李华
网站建设 2026/3/27 22:42:47

当测试遇见大模型:探索LLM在测试用例生成、缺陷预测与报告分析中的实践

测试智能化进程的新篇章‌随着生成式人工智能的爆发式发展&#xff0c;大语言模型以其强大的自然语言理解、代码生成和逻辑推理能力&#xff0c;正以前所未有的方式渗透到软件开发的各个环节。对于软件测试这一保障软件质量的核心活动而言&#xff0c;LLM的引入不再仅仅是概念炒…

作者头像 李华
网站建设 2026/4/3 7:05:10

元宇宙、VR/AR应用测试挑战

沉浸式浪潮下的测试新边疆 自概念爆发以来&#xff0c;元宇宙及其核心技术载体——VR&#xff08;虚拟现实&#xff09;与AR&#xff08;增强现实&#xff09;&#xff0c;正从科幻构想加速融入现实产业。时至2025年&#xff0c;硬件迭代、生态融合与应用场景深化&#xff0c;…

作者头像 李华
网站建设 2026/4/2 23:00:41

LangFlow审计追踪功能实现

LangFlow审计追踪功能实现 在企业级AI系统日益普及的今天&#xff0c;一个看似简单的“谁改了哪个参数”问题&#xff0c;往往成为故障排查中的关键瓶颈。尤其是在多人协作开发智能体流程时&#xff0c;当某次推理输出突然异常&#xff0c;团队最需要的不是更快的模型&#xff…

作者头像 李华
网站建设 2026/4/2 17:09:49

智慧文旅 AI 智能体平台:用技术重构 “千人千面” 的旅行体验

如今出门旅行&#xff0c;没人再满足于“上车睡觉、下车拍照”的走马观花。大家想要的是适配自己兴趣的个性化行程、随叫随到的专业讲解、无需等待的便捷服务——而智慧文旅AI智能体平台&#xff0c;正是用三大核心技术&#xff0c;把这些需求变成了现实&#xff0c;让旅行从“…

作者头像 李华