贵州大学计算机复试——机试 题目 + cpp代码

发布时间:2026/8/12 14:34:06
贵州大学计算机复试——机试 题目 + cpp代码 1.选择排序题目描述给你一个整数序列编写函数输出选择排序的第k趟的排序序列。要求从小到大排序输入输出格式输入描述:第一行输入两个数n和k 第二行输入n个数输出描述:输出第k趟的排序序列输入输出样例输入样例:5 2 4 3 5 2 1输出样例:1 2 5 3 4代码#includebits/stdc.h using namespace std; int main(){ long long n,k,i,j; cinnk; vectorlong long nums(n); for(i0;in;i){ cinnums[i]; } for(i0;ik;i){ long long target_ii; for(ji1;jn;j){ if(nums[j]nums[target_i]){ target_ij; } } swap(nums[i],nums[target_i]); } for(long long x: nums){ coutx ; } return 0; }2.中缀表达式转后缀表达式题目描述后缀表达式逆波兰表达式是一种不需要括号来标识运算优先级的表达式形式计算效率更高。请编写程序将合法的中缀表达式转换为后缀表达式具体规则如下表达式仅包含0-9的单个数字、运算符、-、*、/、圆括号()无空格且输入表达式合法运算符优先级圆括号() 乘除(、/) 加减(、-)同级运算符如和-、和/遵循左结合性转换规则遇到数字直接加入输出结果遇到左括号(压入运算符栈遇到右括号)依次弹出栈顶运算符并加入输出结果直到弹出左括号(左括号仅弹出不加入输出遇到运算符、-、*、/依次弹出栈中优先级大于等于当前运算符的栈顶元素栈顶不能是左括号并加入输出结果然后将当前运算符压入栈表达式遍历完成后依次弹出栈中剩余运算符并加入输出结果输出的后缀表达式中数字和运算符之间用单个空格分隔输入输出格式输入描述:输入一行字符串表示合法的中缀表达式长度不超过100。输出描述:输出一行字符串表示转换后的后缀表达式元素之间用单个空格分隔。输入输出样例输入样例:12*3输出样例:1 2 3 * 代码#includebits/stdc.h using namespace std; int main(){ stackchar st; vectorchar s; char ch; while(cinch){ s.push_back(ch); } for(char x: s){ if(x0x9){ coutx ; continue; } if(x(){ st.push(x); continue; } if(x)){ while(!st.empty()){ char cst.top(); if(c(){ st.pop(); break; } coutc ; st.pop(); } continue; } if(x/||x*){ while(!st.empty() (st.top()/||st.top()*)){ coutst.top() ; st.pop(); } st.push(x); continue; } if(x||x-){ // 扫到到、-的时候若前面有左括号弹出到左括号即可 while(!st.empty() st.top()!(){ coutst.top() ; st.pop(); } st.push(x); continue; } } while(!st.empty()){ coutst.top() ; st.pop(); } return 0; }3.最大连续子序列和题目描述给定一个长度为 的整数数组 请你找出一个连续子序列使得该子序列的元素之和最大并输出这个最大和。说明子序列是数组中连续的一段元素不能为空。数组中的元素可以是正数、负数或零。当数组中所有元素均为负数时最大子序列和为数组中最大的那个元素。输入输出格式输入描述:第一行输入一个整数 表示数组的长度。 第二行输入 个整数整数之间用空格隔开每个整数的取值范围为 。输出描述:输出一个整数表示数组的最大连续子序列和。输入输出样例输入样例9 -2 1 -3 4 -1 2 1 -5 4输出样例6提示解释连续子序列[4,-1,2,1]的和为 是所有连续子序列中最大的和。代码#includebits/stdc.h using namespace std; int main(){ long long n; cinn; int n1; cinn1; long long cur_maxsumn1,ansn1; for(int i1;in;i){ long long x; cinx; cur_maxsummax(x,cur_maxsumx); ansmax(cur_maxsum,ans); } coutans; return 0; }