計算機復(fù)試——機試 題目 + cpp代碼)
1.選擇排序題目描述給你一個整數(shù)序列編寫函數(shù)輸出選擇排序的第k趟的排序序列。要求從小到大排序輸入輸出格式輸入描述:第一行輸入兩個數(shù)n和k 第二行輸入n個數(shù)輸出描述:輸出第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.中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式題目描述后綴表達(dá)式逆波蘭表達(dá)式是一種不需要括號來標(biāo)識運算優(yōu)先級的表達(dá)式形式計算效率更高。請編寫程序?qū)⒑戏ǖ闹芯Y表達(dá)式轉(zhuǎn)換為后綴表達(dá)式具體規(guī)則如下表達(dá)式僅包含0-9的單個數(shù)字、運算符、-、*、/、圓括號()無空格且輸入表達(dá)式合法運算符優(yōu)先級圓括號() 乘除(、/) 加減(、-)同級運算符如和-、和/遵循左結(jié)合性轉(zhuǎn)換規(guī)則遇到數(shù)字直接加入輸出結(jié)果遇到左括號(壓入運算符棧遇到右括號)依次彈出棧頂運算符并加入輸出結(jié)果直到彈出左括號(左括號僅彈出不加入輸出遇到運算符、-、*、/依次彈出棧中優(yōu)先級大于等于當(dāng)前運算符的棧頂元素棧頂不能是左括號并加入輸出結(jié)果然后將當(dāng)前運算符壓入棧表達(dá)式遍歷完成后依次彈出棧中剩余運算符并加入輸出結(jié)果輸出的后綴表達(dá)式中數(shù)字和運算符之間用單個空格分隔輸入輸出格式輸入描述:輸入一行字符串表示合法的中綴表達(dá)式長度不超過100。輸出描述:輸出一行字符串表示轉(zhuǎn)換后的后綴表達(dá)式元素之間用單個空格分隔。輸入輸出樣例輸入樣例: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.最大連續(xù)子序列和題目描述給定一個長度為 的整數(shù)數(shù)組 請你找出一個連續(xù)子序列使得該子序列的元素之和最大并輸出這個最大和。說明子序列是數(shù)組中連續(xù)的一段元素不能為空。數(shù)組中的元素可以是正數(shù)、負(fù)數(shù)或零。當(dāng)數(shù)組中所有元素均為負(fù)數(shù)時最大子序列和為數(shù)組中最大的那個元素。輸入輸出格式輸入描述:第一行輸入一個整數(shù) 表示數(shù)組的長度。 第二行輸入 個整數(shù)整數(shù)之間用空格隔開每個整數(shù)的取值范圍為 。輸出描述:輸出一個整數(shù)表示數(shù)組的最大連續(xù)子序列和。輸入輸出樣例輸入樣例9 -2 1 -3 4 -1 2 1 -5 4輸出樣例6提示解釋連續(xù)子序列[4,-1,2,1]的和為 是所有連續(xù)子序列中最大的和。代碼#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; }