題目描述(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)
; while(*pinputstr)
*pinputstr++;
}}
題目描述(40分):
通過鍵盤輸入一串小寫字母(a~z)組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重複字母進行壓縮,並輸出壓縮後的字串。a
壓縮規則:
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)
; while(*pinputstr)
if(number >= 2)
*poutputstr++ = temp;
} *poutputstr = '\0';
}
題目描述(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, int length, char * poutputstr)
printf("%d %c %d \n", num1, flag, num2);
if(flag == '+')
sum = num1 + num2;
else
sum = num1 - num2;
/* 函式原型:
char *itoa(int value, char *string, int radix);
int value 被轉換的整數,char *string 轉換後儲存的字元陣列,int radix 轉換進製數,如2,8,10,16 進製等
標頭檔案:
*/itoa(sum, poutputstr, 10);
}
第三題源**複製於:
測試用的主函式:
#include #include #include #include void main()
; char pinputstr2 = ;
char pinputstr3 = ;
char poutputstr1[maxchar] = ;
char poutputstr2[maxchar] = ;
char poutputstr3[maxchar] = ;
/* todo: 呼叫被測函式 */
stringfilter(pinputstr1, strlen(pinputstr1), poutputstr1);
stringzip(pinputstr2, strlen(pinputstr2), poutputstr2);
arithmetic(pinputstr3, strlen(pinputstr3), poutputstr3);
/* todo: 執行完成後可比較是否是你認為正確的值 */
printf(poutputstr1); //abcde
printf(poutputstr2); //3a3b3c2de
printf(poutputstr3); //7
return;
}
華為2013校園招聘上機筆試題
上機時間兩小時,3道題 1 字串轉換 問題描述 將輸入的字串 字串僅包含小寫字母 a 到 z 按照如下規則,迴圈轉換後輸出 a b,b c,y z,z a 若輸入的字串連續出現兩個字母相同時,後乙個字母需要連續轉換2次。例如 aa 轉換為 bc,zz 轉換為 ab 當連續相同字母超過兩個時,第三個出...
華為2013校園招聘上機筆試題
上機時間兩小時,3道題 1 字串轉換 問題描述 將輸入的字串 字串僅包含小寫字母 a 到 z 按照如下規則,迴圈轉換後輸出 a b,b c,y z,z a 若輸入的字串連續出現兩個字母相同時,後乙個字母需要連續轉換2次。例如 aa 轉換為 bc,zz 轉換為 ab 當連續相同字母超過兩個時,第三個出...
華為校園招聘上機訓練
計算字串最後乙個單詞的長度,單詞以空格隔開。輸入描述 一行字串,非空,長度小於5000。輸出描述 整數n,最後乙個單詞的長度。輸入例子 hello world 輸出例子 5 include stdafx.h include include using namespace std int main c...