華為機(jī)試題及答案[學(xué)習(xí)類別]_第1頁
華為機(jī)試題及答案[學(xué)習(xí)類別]_第2頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、華為機(jī)試題及答案1、通過鍵盤輸入任意一個(gè)字符串序列,字符串可能包含多個(gè)子串,子串以空格分隔。請編寫一個(gè)程序,自動分離出各個(gè)子串,并使用,將其分隔,并且在最后也補(bǔ)充一個(gè),并將子串存儲。測試:輸入:“abc def gh i d”輸出:“abc,def,gh,i,d,”#include#includevoid DivideString(const char *pInputStr, long lInputLen, char *pOutputStr)int i=0,j=0;int flag=0;while(pInputStri= )i+;for(;ib,b-c,y-z,z-a;若輸入的字符串連續(xù)出現(xiàn)兩

2、個(gè)字母相同時(shí),后一個(gè)字母需要連續(xù)轉(zhuǎn)換2次。例如:aa 轉(zhuǎn)換為 bc,zz 轉(zhuǎn)換為 ab;當(dāng)連續(xù)相同字母超過兩個(gè)時(shí),第三個(gè)出現(xiàn)的字母按第一次出現(xiàn)算。測試:輸入:char*input=abbbcd 輸出:char*output=bcdcde#include#includevoid convert(char *input,char* output)int i;for(i=0;istrlen(input);i+)if(i=0)outputi=inputi+1;if(outputi=123)outputi=97;elseif(inputi!=inputi-1)outputi=inputi+1;if(ou

3、tputi=123)outputi=97;elseoutputi=inputi+2;if(outputi=123)outputi=97;if(outputi=124)outputi=98;outputi+1=0;int main()char in20=asdfzzxzxz;char on20;/gets(in);convert(in,on);printf(%s,on);return 0;3、通過鍵盤輸入一串小寫字母(az)組成的字符串。請編寫一個(gè)字符串過濾程序,若字符串中出現(xiàn)多個(gè)相同的字符,將非首次出現(xiàn)的字符過濾掉。測試:輸入:“afafafaf” 輸出:“af”#include#includ

4、evoid stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr)int i,j,count;int k=0;for(i=0;istrlen(pInputStr);i+)count=0;for(j=0;jstrlen(pOutputStr);j+)if(pInputStri=pOutputStrj)count+;if(count=0)pOutputStrk+=pInputStri;pOutputStrk=0;int main()char in20=aabbccabacddsads;char on20;/gets

5、(in);stringFilter(in,strlen(in),on);printf(%s,on);return 0;4、通過鍵盤輸入一串小寫字母(az)組成的字符串。請編寫一個(gè)字符串壓縮程序,將字符串中連續(xù)出席的重復(fù)字母進(jìn)行壓縮,并輸出壓縮后的字符串。測試:輸入:“cccddecc” 輸出:“3c2de2c”#include#includevoid stringZip(const char *pInputStr, long lInputLen, char *pOutputStr)int i,j=0,num=0;int k=0;for(i=0;i1)pOutputStrj+=(char)num

6、+0;pOutputStrj+=pInputStri-1;num=1;elsenum+;pOutputStrj=0;int main()char in20=ccddecc;char on20;/gets(in);stringZip(in,strlen(in),on);printf(%s,on);return 0;5、通過鍵盤輸入100以內(nèi)正整數(shù)的加、減運(yùn)算式,請編寫一個(gè)程序輸出運(yùn)算結(jié)果字符串。輸入字符串的格式為:“操作數(shù)1 運(yùn)算符 操作數(shù)2”,“操作數(shù)”與“運(yùn)算符”之間以一個(gè)空格隔開。測試:輸入:“4 - 7” 輸出:“-3”#include#include#includevoid arith

7、metic(const char *pInputStr, long lInputLen, char *pOutputStr)int i,count=0,re=0;int x,y,z;int num2=0;char op;for(i=0;i=0&pInputStrx=9)num0=num0*10+pInputStrx-0;elsepOutputStr0=0;pOutputStr1=0;return;for(y=x+1;pInputStry!= ;y+)if(y-x-1!=1)pOutputStr0=0;pOutputStr1=0;return ;elseif(pInputStry-1!=+&pI

8、nputStry-1!=-)pOutputStr0=0;pOutputStr1=0;return;elseop=pInputStry-1;for(z=y+1;z=0&pInputStrz=9)num1=num1*10+pInputStrz-0;elsepOutputStr0=0;pOutputStr1=0;return;if(op=+)re=num0+num1;elsere=num0-num1;itoa(re,pOutputStr,10); int main()char in20;char on20;gets(in);arithmetic(in,strlen(in),on);printf(%s

9、,on);return 0;6、選秀節(jié)目打分,分為專家評委和大眾評委,score 數(shù)組里面存儲每個(gè)評委打的分?jǐn)?shù),judge_type 里存儲與 score 數(shù)組對應(yīng)的評委類別,judge_typei = 1,表示專家評委,judge_typei = 2,表示大眾評委,n表示評委總數(shù)。打分規(guī)則如下:專家評委和大眾評委的分?jǐn)?shù)先分別取一個(gè)平均分(平均分取整),然后,總分 = 專家評委平均分 * 0.6 + 大眾評委 * 0.4,總分取整。如果沒有大眾評委,則 總分 = 專家評委平均分,總分取整。函數(shù)最終返回選手得分。#include#include#includeint cal_score(int

10、score, int judge_type, int n) int i=0,gscore;int pro=0,pub=0;int pro_count=0,pub_count=0;for(i=0;in;i+)if(judge_typei=1)pro_count+;pro=pro+scorei;if(judge_typei=2)pub_count+;pub=pub+scorei; if(pub_count!=0)gscore=pro/pro_count*0.6+pub/pub_count*0.4;elsegscore=pro/pro_count;return gscore; int main()i

11、nt score5=90,80,95,86,87;int judge_type5=1,2,2,1,1;int n=5;printf(%d,cal_score(score, judge_type, n);return 0;7、給定一個(gè)數(shù)組input ,如果數(shù)組長度n為奇數(shù),則將數(shù)組中最大的元素放到 output 數(shù)組最中間的位置,如果數(shù)組長度n為偶數(shù),則將數(shù)組中最大的元素放到 output 數(shù)組中間兩個(gè)位置偏右的那個(gè)位置上,然后再按從大到小的順序,依次在第一個(gè)位置的兩邊,按照一左一右的順序,依次存放剩下的數(shù)。例如:input = 3, 6, 1, 9, 7 output = 3, 7, 9, 6

12、, 1; input = 3, 6, 1, 9, 7, 8 output = 1, 6, 8, 9, 7, 3#include#include#includevoid sort(int input, int n, int output)int i,j,k,a;int temp;for(i=0;in;i+)for(j=0;jn-i-1;j+)if(inputjinputj+1)temp=inputj+1;inputj+1=inputj;inputj=temp;k=1;a=1;outputn/2=input0;while(kn)outputn/2-a=inputk+;a+;outputn/2+a-

13、1=inputk+;int main()int input5=99,80,95,86,87;int output5;int n=5,i;sort(input,n,output);for(i=0;in;i+)printf(%d ,outputi);return 0;8、操作系統(tǒng)任務(wù)調(diào)度問題。操作系統(tǒng)任務(wù)分為系統(tǒng)任務(wù)和用戶任務(wù)兩種。其中,系統(tǒng)任務(wù)的優(yōu)先級 = 50且 = 255。優(yōu)先級大于255的為非法任務(wù),應(yīng)予以剔除?,F(xiàn)有一任務(wù)隊(duì)列task,長度為n,task中的元素值表示任務(wù)的優(yōu)先級,數(shù)值越小,優(yōu)先級越高。函數(shù)scheduler實(shí)現(xiàn)如下功能,將task 中的任務(wù)按照系統(tǒng)任務(wù)、用戶任務(wù)依次存放到

14、 system_task 數(shù)組和 user_task 數(shù)組中(數(shù)組中元素的值是任務(wù)在task 數(shù)組中的下標(biāo)),并且優(yōu)先級高的任務(wù)排在前面,優(yōu)先級相同的任務(wù)按照入隊(duì)順序排列(即先入隊(duì)的任務(wù)排在前面),數(shù)組元素為-1表示結(jié)束。例如:task = 0, 30, 155, 1, 80, 300, 170, 40, 99 system_task = 0, 3, 1, 7, -1 user_task = 4, 8, 2, 6, -1#include#include#includevoid scheduler(int task, int n, int system_task, int user_task)i

15、nt i,j,temp;int a=0,b=0;for(i=0;in;i+)if(taski=50&taski=250)user_taskb+=i;for(i=0;ia;i+)for(j=0;jtasksystem_taskj+1)temp=system_taskj+1;system_taskj+1=system_taskj;system_taskj=temp;for(i=0;ib;i+)for(j=0;jtaskuser_taskj+1)temp=user_taskj+1;user_taskj+1=user_taskj;user_taskj=temp;system_taska=-1;user_taskb=-1;int main()int task9 =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論