華為機(jī)試題及答案_第1頁(yè)
華為機(jī)試題及答案_第2頁(yè)
華為機(jī)試題及答案_第3頁(yè)
華為機(jī)試題及答案_第4頁(yè)
華為機(jī)試題及答案_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

..可修編...可修編.華為機(jī)試題及答案1、通過(guò)鍵盤(pán)輸入任意一個(gè)字符串序列,字符串可能包含多個(gè)子串,子串以空格分隔。請(qǐng)編寫(xiě)一個(gè)程序,自動(dòng)分離出各個(gè)子串,并使用’,’將其分隔,并且在最后也補(bǔ)充一個(gè)’,’并將子串存儲(chǔ)。測(cè)試:輸入:“abcdefghid”輸出:“abc,def,gh,i,d,”#include<stdio.h>#include<string.h>voidDivideString(constchar*pInputStr,longlInputLen,char*pOutputStr){inti=0,j=0;intflag=0;while(pInputStr[i]==''){i++;}for(;i<lInputLen;i++){if(pInputStr[i]==''){flag=1;continue;}}..可修編.}}..可修編.if(flag==1)flag=0;pOutputStr[j++]=',';pOutputStr[j++]=pInputStr[i];pOutputStr[j++]=',';pOutputStr[j]='\0';intmain()chartest[40];charre[40];gets(test);DivideString(test,strlen(test),re);printf("%s",re);2、return2、將輸入的字符串(字符串僅包含小寫(xiě)字母‘中到2),按照如下規(guī)則,循環(huán)轉(zhuǎn)換后輸出:a->b,b->c,…,y->z,z->a;若輸入的字符串連續(xù)出現(xiàn)兩個(gè)字母相同時(shí),后..可修編...可修編.一個(gè)字母需要連續(xù)轉(zhuǎn)換2次。例如:aa轉(zhuǎn)換為bc,zz轉(zhuǎn)換為ab;當(dāng)連續(xù)相同字母超過(guò)兩個(gè)時(shí),第三個(gè)出現(xiàn)的字母按第一次出現(xiàn)算。測(cè)試:輸入:char*input="abbbcd"輸出:char*output="bcdcde"#include<stdio.h>#include<string.h>voidconvert(char*input,char*output){inti;for(i=0;i<strlen(input);i++){if(i==0){output[i]=input[i]+1;if(output[i]==123){output[i]=97;}}else{if(input[i]!=input[i-1]){output[i]=input[i]+1;if(output[i]==123){output[i]=97;}}else{output[i]=input[i]+2;if(output[i]==123){output[i]=97;}if(output[i]==124){output[i]=98;}}}}output[i+1]='\0';}}..可修編...可修編.intmain(){charin[20]={"asdfzzxzxz"};charon[20];//gets(in);convert(in,on);printf("%s",on);return0;}3、通過(guò)鍵盤(pán)輸入一串小寫(xiě)字母匕~刀組成的字符串。請(qǐng)編寫(xiě)一個(gè)字符串過(guò)濾程序,若字符串中出現(xiàn)多個(gè)相同的字符,將非首次出現(xiàn)的字符過(guò)濾掉。測(cè)試:輸入:“afafafaf” 輸出:“af”#include<stdio.h>#include<string.h>voidstringFilter(constchar*pInputStr,longlInputLen,char*pOutputStr){inti,j,count;intk=0;for(i=0;i<strlen(pInputStr);i++){count=0;for(j=0;j<strlen(pOutputStr);j++){if(pInputStr[i]==pOutputStr[j]){count++;}}if(count==0){pOutputStr[k++]=pInputStr[i];}}pOutputStr[k]='\0';}intmain(){charin[20]={"aabbccabacddsads"};charon[20];//gets(in);stringFilter(in,strlen(in),on);printf("%s",on);return0;4、通過(guò)鍵盤(pán)輸入一串小寫(xiě)字母匕~刀組成的字符串。請(qǐng)編寫(xiě)一個(gè)字符串壓縮程序,將字符串中連續(xù)出席的重復(fù)字母進(jìn)行壓縮,并輸出壓縮后的字符串。測(cè)試:輸入:“cccddecc” 輸出:“3c2de2c”#include<stdio.h>#include<string.h>voidstringZip(constchar*pInputStr,longlInputLen,char*pOutputStr)inti,j=0,num=0;intk=0;for(i=0;i<=lInputLen;i++)if(i&&pInputStr[i]!=pInputStr[i-1])if(num>1)pOutputStr[j++]=(char)num+'0';pOutputStr[j++]=pInputStr[i-1];num=1;elsenum++;}}pOutputStr[j]='\0';}intmain(){charin[20]={"ccddecc"};charon[20];//gets(in);stringZip(in,strlen(in),on);printf("%s",on);return0;}5、通過(guò)鍵盤(pán)輸入100以內(nèi)正整數(shù)的加、減運(yùn)算式,請(qǐng)編寫(xiě)一個(gè)程序輸出運(yùn)算結(jié)果字符串。輸入字符串的格式為:“操作數(shù)1運(yùn)算符操作數(shù)2”,“操作數(shù)”與“運(yùn)算符”之間以一個(gè)空格隔開(kāi)。測(cè)試:輸入:“4-7”輸出:“-3”#include<stdio.h>#include<string.h>..可修編...可修編.#include<math.h>voidarithmetic(constchar*pInputStr,longlInputLen,char*pOutputStr){inti,count=0,re=0;intx,y,z;intnum[2]={0};charop;for(i=0;i<lInputLen;i++){if(pInputStr[i]==''){count++;}}if(count!=2){pOutputStr[0]='0';pOutputStr[1]='\0';return;}for(x=0;pInputStr[x]!='';x++){if(pInputStr[x]>='0'&&pInputStr[x]<='9'){num[0]=num[0]*10+pInputStr[x]-'0';}else{pOutputStr[0]='0';pOutputStr[1]='\0';return;}}for(y=x+1;pInputStr[y]!='';y++){}if(y-x-1!=1){pOutputStr[0]='0';pOutputStr[1]='\0';return;}else{{..可修編.{{..可修編.if(pInputStr[y-1]!='+'&&pInputStr[y-1]!='-'){pOutputStr[0]='0';pOutputStr[1]='\0';return;}else{op=pInputStr[y-1];}}for(z=y+1;z<lInputLen;z++){if(pInputStr[z]>='0'&&pInputStr[z]<='9'){num[1]=num[1]*10+pInputStr[z]-'0';}else{pOutputStr[0]='0';pOutputStr[1]='\0';..可修編...可修編.return;}if(op=='+'){re=num[0]+num[1];}else{re=num[0]-num[1];}itoa(re,pOutputStr,10);}intmain(){charin[20];charon[20];gets(in);arithmetic(in,strlen(in),on);printf("%s",on);return0;}6、選秀節(jié)目打分,分為專(zhuān)家評(píng)委和大眾評(píng)委,score口數(shù)組里面存儲(chǔ)每個(gè)評(píng)委打的分?jǐn)?shù)/udge.type口里存儲(chǔ)與score口數(shù)組對(duì)應(yīng)的評(píng)委類(lèi)別,judge_type[i]==1,表示專(zhuān)家評(píng)委,judge_type[i]==2,表示大眾評(píng)委,n表示評(píng)委總數(shù)。打分規(guī)則如下:專(zhuān)家評(píng)委和大眾評(píng)委的分?jǐn)?shù)先分別取一個(gè)平均分(平均分取整),然后,總分=專(zhuān)家評(píng)委平均分*0.6+大眾評(píng)委*0.4,總分取整。如果沒(méi)有大眾評(píng)委,則總分=專(zhuān)家評(píng)委平均分,總分取整。函數(shù)最終返回選手得分。#include<stdio.h>#include<string.h>#include<math.h>intcal_score(intscore[],intjudge_type[],intn){inti=0,gscore;intpro=0,pub=0;intpro_count=0,pub_count=0;for(i=0;i<n;i++){if(judge_type[i]==1){pro_count++;pro=pro+score[i];}if(judge_type[i]==2)pub_count++;pub=pub+score[i];}}if(pub_count!=0){gscore=pro/pro_count*0.6+pub/pub_count*0.4;}else{gscore=pro/pro_count;}returngscore;}intmain(){intscore[5]={90,80,95,86,87};intjudge_type[5]={1,2,2,1,1};intn=5;printf("%d",cal_score(score,judge_type,n));return0;}7、給定一個(gè)數(shù)組input口,如果數(shù)組長(zhǎng)度門(mén)為奇數(shù),則將數(shù)組中最大的元素放到output口數(shù)組最中間的位置,如果數(shù)組長(zhǎng)度門(mén)為偶數(shù),則將數(shù)組中最大的元素放到output[]數(shù)組中間兩個(gè)位置偏右的那個(gè)位置上,然后再按從大到小的順序,依次在第一個(gè)位置的兩邊,按照一左一右的順序,依次存放剩下的數(shù)。例如:input口={3,6,1,9,7}output口={3,7,9,6,1};input口={3,6,1,9,7,8}output[]={1,6,8,9,7,3}#include<stdio.h>#include<string.h>#include<math.h>voidsort(intinput[],intn,intoutput[]){inti,j,k,a;inttemp;for(i=0;i<n;i++){for(j=0;j<n-i-1;j++){if(input[j]<input[j+1]){temp=input[j+1];input[j+1]=input[j];input[j]=temp;}}}k=1;a=1;output[n/2]=input[0];while(k<n){output[n/2-a]=input[k++];a++;output[n/2+a-1]=input[k++];}}intmain(){intinput[5]={99,80,95,86,87};intoutput[5];intn=5,i;sort(input,n,output);for(i=0;i<n;i++){{..可修編.{{..可修編.printf("%d",output[i]);}return0;}8、操作系統(tǒng)任務(wù)調(diào)度問(wèn)題。操作系統(tǒng)任務(wù)分為系統(tǒng)任務(wù)和用戶任務(wù)兩種。其中,系統(tǒng)任務(wù)的優(yōu)先級(jí)<50,用戶任務(wù)的優(yōu)先級(jí)>=50且<=255。優(yōu)先級(jí)大于255的為非法任務(wù),應(yīng)予以剔除?,F(xiàn)有一任務(wù)隊(duì)列task口,長(zhǎng)度為n,task中的元素值表示任務(wù)的優(yōu)先級(jí),數(shù)值越小,優(yōu)先級(jí)越高。函數(shù)scheduler實(shí)現(xiàn)如下功能,將task[]中的任務(wù)按照系統(tǒng)任務(wù)、用戶任務(wù)依次存放到system_task[]數(shù)組和user_task口數(shù)組中(數(shù)組中元素的值是任務(wù)在task口數(shù)組中的下標(biāo)),并且優(yōu)先級(jí)高的任務(wù)排在前面,優(yōu)先級(jí)相同的任務(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<stdio.h>#include<string.h>#include<math.h>voidscheduler(inttask[],intn,intsystem_task[],intuser_task[]){inti,j,temp;inta=0,b=0;..可修編...可修編.for(i=0;i<n;i++){if(task[i]<50){system_task[a++]=i;}else{if(task[i]>=50&&task[i]<=250){user_task[

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論