2023年華為上機題目

2021-06-20 18:39:07 字數 3481 閱讀 7050

華為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

print?

//華為第一題 19:19-19:36  17分鐘

#include 

#include 

using

namespace

std;  

bool

g_flag[26];  

void

stringfilter(

const

char

*pinputstr, 

long

linputlen, 

char

*poutputstr)  

const

char

*p = pinputstr;  

while

(*p != 

'\0'

)  else

}  poutputstr[i] = '\0'

;  }  

intmain()    

[cpp]view plain

copy

print?

//華為第二題 19:40 - 20:10 中間耽誤3分鐘

#include 

#include 

using

namespace

std;  

void

stringzip(

const

char

*pinputstr, 

long

linputlen, 

char

*poutputstr)  

if(num > 1)  

num = 1;  

for(

intj = size; j > 0; j--)  

i +=size;  

poutputstr[i++] = *(p-1);  

p++;  

}else

}  poutputstr[i] = '\0'

;  }  

intmain()    

[cpp]view plain

copy

print?

//華為第三題 20:29 - 20:40

#include 

using

namespace

std;  

void

arithmetic(

const

char

*pinputstr, 

long

linputlen, 

char

*poutputstr)  

input++;  

operator1 = sum;  

sum = 0;  

while

(*input != 

' ')  

input++;  

*temp = '\0'

;  if

(strlen(ope) > 1 )  

while

(*input != 

'\0'

) //獲得運算元2

operator2 = sum;  

sum = 0;  

switch

(*ope)  

}  intmain()  

2023年華為上機機試c語言題目和答案

自己code出來的,結果是正確的,但是其中還有很多的優化之處,還請各位大神多多指導。打包 1.字串過濾 stringfilter 去重過濾,例子 abcdabefe abcdef 2.字串壓縮 stringzip aaaabbccccddeeeeef 4a2b4c2d5ef 3.表示式,100以內的...

2023年華為校招機試題目

2014年華為校招機試題目 通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重複 字母進行壓縮,並輸出壓縮後的字串。壓縮規則 1.僅壓縮重複出現的字元。比如字串 abcbc 由於無 連續重複字元,壓縮後的字串還是 abcabc 2.壓縮欄位的格式為 字元重複的...

2023年華為程式設計大賽題目

include include includeint findstat const char map,unsigned int iarrn,unsigned int ipathlen if map i x locationx i std queuemyqueue visited locationx ...