2023年華為軟體工程師機試題

2021-06-09 01:01:47 字數 2594 閱讀 9257

今天下午五點半參加了華為的軟體工程師上機考試,用的是c,給定時間1小時15分鐘。下面把題目貼出來~

1.題目描述(60分):

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

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

要求實現函式: 

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

【輸入】 pinputstr:  輸入字串

linputlen:  輸入字串長度         

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

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

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

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

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

void stringfilter(const char *pinputstr, long linputlen, char *poutputstr)

; if (linputlen == 0)

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

poutputstr[j] = 0;

}

2.題目描述(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」

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

} /* 數字轉換字串,並填入輸出字串陣列 */

if (icount > 0)

/* 要考慮重複次數超過9 */

while (inumbits > 0)

} poutputstr[ioutputnum] = pinputstr[i];

ioutputnum ++;

} poutputstr [ioutputnum] = 0;

}

3.題目描述(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」 注:格式錯誤

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

if (0 == itmpnum)

if ('+' == coper)

else if ('-' == coper)

else

if (*pc != ' ' && *(pc + 2) != ' ')

else

}if (pc < pcend)

ipos = 0;

while (inum != 0)

while (ipos > 0)

*poutputstr = 0;

}

軟體工程師 華為機試注意事項

hello world輸入字串,首字母大寫其他字母小寫,輸出true,其他輸出false 這道題需要注意 cin 用法,邏輯其實很簡單。int a b cin a 輸入數字,回車結束 cin b coutcin s 輸入回車 空格 tab都結束 coutcin.get s,1000 僅回車結束,能接...

華為機試題2023年

1 字串轉換 問題描述 將輸入的字串 字串僅包含小寫字母 a 到 z 按照如下規則,迴圈轉換後輸出 a b,b c,y z,z a 若輸入的字串連續出現兩個字母相同時,後乙個字母需要連續轉換2次。例如 aa 轉換為 bc,zz 轉換為 ab 當連續相同字母超過兩個時,第三個出現的字母按第一次出現算。...

華為軟體測試工程師與普通軟體工程師的區別

如今的軟體測試越發的呈現出這樣乙個現象 起點易,深入難。由此,整個行業也成兩級分化之勢,隨著 大量經驗庫及自動化測試工具,兩級分化之勢日趨嚴重。測試之深度 之寬度,未來如何把控?下文以華為的視角,來看看華為測試團隊的培養模式。1 軟體設計能力 測試並非劣於研發,包括 架構 設計 對需求理解 甚至在商...