第一篇:華為校招2013-2016年機(jī)試題目-個人整理
2016校招機(jī)試題
第一題
輸入一串用空格隔開的數(shù)字串,對于數(shù)字串的奇數(shù)位按升序排序,偶數(shù)位按降序排序 示例輸入:4 6 2 3 7 8 1 處理過程:
奇數(shù)位:4268升序排序結(jié)果:2468 偶數(shù)位:6371 降序排序結(jié)果:7631 結(jié)果輸出:2 7 4 6 6 3 8 1 #include printf(“%c ”,output1[i]);printf(“n”);} void sort(char input[],int n,char output[]){ int i,j,t1,t2,t=0;int *b=(int *)malloc(sizeof(int)*n);int *c=(int *)malloc(sizeof(int)*n); b[0]=input[0]-'0';for(i=4,t1=1;i for(j=t1-1;((input[i]-'0')=0);j--) { b[j+1]=b[j]; } b[j+1]=input[i]-'0';} c[0]=input[2]-'0';for(i=6,t2=1;i for(j=t2-1;((input[i]-'0')>c[j])&&(j>=0);j--) { c[j+1]=c[j]; } c[j+1]=input[i]-'0';} for(i=0,j=0;i output[i]=b[j]+'0'; output[i+1]=' '; output[i+2]=c[j]+'0'; output[i+3]=' ';} } 2.精靈王子愛好冒險,在一次探險歷程中,他進(jìn)入了一個神秘的山洞。在洞穴深處,精靈王子不小心觸動了洞穴內(nèi)暗藏的機(jī)關(guān),整個洞穴將很快塌陷,精靈王子必須盡快逃離洞穴。精靈王子的跑步速度為17m/s,以這樣的速度可能是無法逃出洞穴的。慶幸的是精靈王子擁有閃爍法術(shù),可在1s內(nèi)移動60m,不過每次使用閃爍法術(shù)都會消耗法值10點(diǎn)。精靈王子的魔法值恢復(fù)的速度為4點(diǎn)/s,只能在原地休息狀態(tài)時才能恢復(fù)。 現(xiàn)在已知精靈王子的魔法初值M,他所在洞穴中的位置與洞穴出口之間的距離S,距離洞穴塌陷的時間T.你的任務(wù)是寫一個程序幫助精靈王子計(jì)算如何在最短時間內(nèi)逃離洞穴。若能逃出,輸出“Yes”,并輸出逃出所用的最短時間;若不能逃出,則輸出”No“,同時輸出精靈王子在剩下的時間內(nèi)能走的最遠(yuǎn)距離。注意字母大小寫。注意精靈王子跑步,閃爍或休息活動均以秒(s)為單位。且每次活動的持續(xù)時間為整數(shù)秒。距離的單位為米(m)。 注:M,S,T均是大于等于0的整數(shù)。由輸入保證取值合法性,考生不用檢查。提醒: 如果輸入的S為0,則說明本身已經(jīng)在出口,輸出應(yīng)為:Yes 0 如果輸入的T為0(且S不為0),則說明已經(jīng)沒有時間了,輸出應(yīng)為:No 0 輸入格式: M S T 輸出格式: Yes 逃出洞穴所用時間 或 No在洞穴塌陷前能逃跑的最遠(yuǎn)距離 10 #include printf(“Yes 0n”);else { } } if(T==0)printf(“No 0n”);else { while(T){ T--; if(M>=10) { M-=10; de1+=60; } else { M+=4; } de2+=17; if(de2 de2=de1; if(de2>S) { printf(“Yes %dn”,start-T); break; } else { printf(“No %dn”,de2); break; } } } 2015校招機(jī)試題 第一題(60分): 按要求分解字符串,輸入兩個數(shù)M,N;M代表輸入的M串字符串,N代表輸出的每串字符串的位數(shù),不夠補(bǔ)0。例如:輸入2,8,“abc”,“123456789”,則輸出為“abc00000”,“12345678“,”90000000” #include scanf(“%s”,&str[p]); a[i]=strlen(str+p); p=p+a[i];