2014屆華為校園招聘機試題

2021-06-18 06:33:12 字數 3897 閱讀 9275

分類: 面試珠璣

2013-09-05 14:14

1212人閱讀收藏 

舉報華為機試

華為2014校園招聘的機試題目和2023年的完全一樣。

一、題目描述(60分):

通過鍵盤輸入一串小寫字母(a~z)組成的字串。請編寫乙個字串過濾程式,若字串中出現多個相同的字元,將非首次出現的字元過濾掉。

比如字串「abacacde」過濾結果為「abcde」。

要求實現函式:void stringfilter(const char *pinputstr, long linputlen, char *poutputstr);

【輸入】 pinputstr:  輸入字串

linputlen:  輸入字串長度         

【輸出】 poutputstr: 輸出字串,空間已經開闢好,與輸入字串等長;

【注意】只需要完成該函式功能演算法,中間不需要有任何io的輸入輸出

示例 輸入:「deefd」        輸出:「def」

輸入:「afafafaf」     輸出:「af」

輸入:「pppppppp」     輸出:「p」

main函式已經隱藏,這裡保留給使用者的測試入口,在這裡測試你的實現函式,可以呼叫printf列印輸出

當前你可以使用其他方法測試,只要保證最終程式能正確執行即可,該函式實現可以任意修改,但是不要改變函式原型。一定要保證編譯執行不受影響。

二、題目描述(40分):

通過鍵盤輸入一串小寫字母(a~z)組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重複字母進行壓縮,並輸出壓縮後的字串。

壓縮規則:

1、僅壓縮連續重複出現的字元。比如字串"abcbc"由於無連續重複字元,壓縮後的字串還是"abcbc"。

2、壓縮欄位的格式為"字元重複的次數+字元"。例如:字串"***yyyyyyz"壓縮後就成為"3x6yz"。

要求實現函式: 

void stringzip(const char *pinputstr, long linputlen, char *poutputstr);

【輸入】 pinputstr:  輸入字串

linputlen:  輸入字串長度

【輸出】 poutputstr: 輸出字串,空間已經開闢好,與輸入字串等長;

【注意】只需要完成該函式功能演算法,中間不需要有任何io的輸入輸出

示例 輸入:「cccddecc」   輸出:「3c2de2c」

輸入:「adef」     輸出:「adef」

輸入:「pppppppp」 輸出:「8p」

三、題目描述(50分): 

通過鍵盤輸入100以內正整數的加、減表示式,請編寫乙個程式輸出運算結果字串。

輸入字串的格式為:「運算元1 運算子 運算元2」,「運算元」與「運算子」之間以乙個空格隔開。

補充說明:

1、運算元為正整數,不需要考慮計算結果溢位的情況。

2、若輸入算式格式錯誤,輸出結果為「0」。

要求實現函式: 

void arithmetic(const char *pinputstr, long linputlen, char *poutputstr);

【輸入】 pinputstr:  輸入字串

linputlen:  輸入字串長度         

【輸出】 poutputstr: 輸出字串,空間已經開闢好,與輸入字串等長;

【注意】只需要完成該函式功能演算法,中間不需要有任何io的輸入輸出

示例 輸入:「4 + 7」  輸出:「11」

輸入:「4 - 7」  輸出:「-3」

輸入:「9 ++ 7」  輸出:「0」 注:格式錯誤

[cpp]view plain

copy

#include

#include

#include

#define maxchar 256

void

stringfilter(

const

char

* pinputstr , 

long

linputlen , 

char

* poutputstr)  

;    

//統計字元是否出現

inti , j;  

for(i = 0 , j = 0 ; i < linputlen; ++i)  

}  poutputstr[j] = '\0'

;  }  

void

stringzip(

const

char

* pinputstr , 

long

linputlen , 

char

* poutputstr)  

//for

if(0 != num)    

//num可能是兩位或三位或更多位的整數

poutputstr[k++] = pinputstr[i];  

i = i + num + 1;  

}//for

poutputstr[k] = '\0'

;  }  

void

arithmetic(

const

char

* pinputstr , 

long

linputlen , 

char

* poutputstr)  

if(2 != num_space)     

//空格數非法

num1 = num2 = 0;  

for(i = 0 ; pinputstr[i] != 

' '; ++i)  

}  for(j = i + 1 ; pinputstr[j] != 

' '; ++j);  

if(1 != j - i - 1)     

//運算子長度不合法

else

//操作符的長度為1

else

}//for

if(add)  

result = num1 + num2;  

else

if(sub)  

result = num1 - num2;  

memset(buffer , 0 , sizeof

(buffer));  

itoa(result , buffer , 10);      //將整數按10進製轉換為字串

strcpy(poutputstr , buffer);  

}//esle

}//else

}  int

main(

void

)  ;  

char

pinputstr2 = ;  

char

pinputstr3 = ;  

char

poutputstr1[maxchar] = ;  

char

poutputstr2[maxchar] = ;  

char

poutputstr3[maxchar] = ;  

stringfilter(pinputstr1 , strlen(pinputstr1) , poutputstr1);  

stringzip(pinputstr2 , strlen(pinputstr2) , poutputstr2);  

arithmetic(pinputstr3 , strlen(pinputstr3) , poutputstr3);  

puts(poutputstr1);  

puts(poutputstr2);  

puts(poutputstr3);  

return

0;  

}  

2014屆華為校園招聘機試題

一 題目描述 60分 通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串過濾程式,若字串中出現多個相同的字元,將非首次出現的字元過濾掉。比如字串 abacacde 過濾結果為 abcde 要求實現函式 void stringfilter const char pinputstr,long ...

2014屆華為成都校園招聘機試題

1.輸入正整數,把其中的 0 9 轉換為a j 不用檢測異常輸入,保證輸入無異常 例如 輸入 123 輸出 bcd 2.假設n人,編號為 1,2,3,n 迴圈報數,每次報數為m的出列,求最後出列的人的編號 異常返回 1 例如,輸入 10,10 輸出 8 3 球輸入表示式的值,和 的優先順序大於 和 ...

2014屆華為校園招聘機試題2

第一題 輸入乙個正整數,並編碼為字串進行輸出 描述 1 輸入乙個正整數,並編碼為字串進行輸出。編碼規則為 數字0 9分別編碼為字元a j 2 輸入肯定是正整數,不用做錯誤較驗 執行時間限制 無限制 記憶體限制 無限制 輸入 正整數 輸出 字串 樣例輸入 123 樣例輸出 bcd void numbe...