生活随笔
收集整理的這篇文章主要介紹了
                                
华为2014校园招聘的机试题目
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
 
                                
                            
                            
                             華為2014校園招聘的機試題目和2013年的完全一樣。
 一、題目描述(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、壓縮字段的格式為"字符重復的次數+字符"。例如:字符串"xxxyyyyyyz"壓縮后就成為"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 plaincopy     
 #include<stdio.h>?? #include<string.h>?? #include<stdlib.h>?? ?? #define?MAXCHAR?256?? ?? void?stringFilter(const?char*?pInputStr?,?long?lInputLen?,?char*?pOutputStr)?? {?? ????bool?hash[26]?=?{0};?????? ????int?i?,?j;?? ????for(i?=?0?,?j?=?0?;?i?<?lInputLen;?++i)?? ????{?? ????????if(false?==?hash[pInputStr[i]?-?'a'])??????? ????????{?? ????????????hash[pInputStr[i]?-?'a']?=?true;?? ????????????pOutputStr[j++]?=?pInputStr[i];?? ????????}?? ????}?? ????pOutputStr[j]?=?'\0';?? }?? ?? void?stringZip(const?char*?pInputStr?,?long?lInputLen?,?char*?pOutputStr)?? {?? ????int?i?,?j?,?k?,?num;?? ????char?buffer[20];?? ????for(i?=?0?,?k?=?0;?i?<?lInputLen;?)?? ????{?? ????????num?=?0;?? ????????for(j?=?i?+?1?;?j?<?lInputLen?;?++j)?? ????????{?? ????????????if(pInputStr[i]?==?pInputStr[j])??????? ????????????????++num;?? ????????????else?? ????????????????break;?? ????????}?? ????????if(0?!=?num)?????? ????????{?? ????????????memset(buffer?,?0?,?sizeof(buffer));?? ????????????itoa(num?+?1?,?buffer?,?10);???????? ????????????strcpy(pOutputStr?+?k?,?buffer);?? ????????????k?+=?strlen(buffer);?? ????????}?? ????????pOutputStr[k++]?=?pInputStr[i];?? ????????i?=?i?+?num?+?1;?? ????}?? ????pOutputStr[k]?=?'\0';?? }?? ?? void?arithmetic(const?char*?pInputStr?,?long?lInputLen?,?char*?pOutputStr)?? {?? ????int?i?,?j?,?num1?,?num2?,?result?,?num_space;?? ????char?buffer[4];?? ????bool?add?,?sub;?? ????add?=?sub?=?false;?? ????for(i?=?0?,?num_space?=?0?;?i?<?lInputLen?;?++i)?? ????{?? ????????if(pInputStr[i]?==?'?')?? ????????????++num_space;?? ????}?? ????if(2?!=?num_space)??????? ????{?? ????????pOutputStr[0]?=?'0';?? ????????pOutputStr[1]?=?'\0';?? ????????return?;?? ????}?? ????num1?=?num2?=?0;?? ????for(i?=?0?;?pInputStr[i]?!=?'?'?;?++i)?? ????{?? ????????if(pInputStr[i]?>=?'0'?&&?pInputStr[i]?<=?'9')?? ????????????num1?=?num1?*?10?+?pInputStr[i]?-?'0';?? ????????else??????????????????? ????????{?? ????????????pOutputStr[0]?=?'0';?? ????????????pOutputStr[1]?=?'\0';?? ????????????return?;?? ????????}?? ????}?? ????for(j?=?i?+?1?;?pInputStr[j]?!=?'?'?;?++j);?? ????if(1?!=?j?-?i?-?1)??????? ????{?? ????????pOutputStr[0]?=?'0';?? ????????pOutputStr[1]?=?'\0';?? ????????return?;?? ????}?? ????else?????? ????{?? ????????if('+'?!=?pInputStr[i+1]?&&?'-'?!=?pInputStr[i+1])?????? ????????{?? ????????????pOutputStr[0]?=?'0';?? ????????????pOutputStr[1]?=?'\0';?? ????????????return?;?? ????????}?? ????????else?? ????????{?? ????????????if('+'?==?pInputStr[i+1])?? ????????????????add?=?true;?? ????????????if('-'?==?pInputStr[i+1])?? ????????????????sub?=?true;?? ????????????for(i?=?j?+?1?;?i?<?lInputLen?;?++i)?? ????????????{?? ????????????????if(pInputStr[i]?>=?'0'?&&?pInputStr[i]?<=?'9')?? ????????????????????num2?=?num2?*?10?+?pInputStr[i]?-?'0';?? ????????????????else???????????? ????????????????{?? ????????????????????pOutputStr[0]?=?'0';?? ????????????????????pOutputStr[1]?=?'\0';?? ????????????????????return?;?? ????????????????}?? ????????????}?? ????????????if(add)?? ????????????????result?=?num1?+?num2;?? ????????????else?if(sub)?? ????????????????result?=?num1?-?num2;?? ????????????memset(buffer?,?0?,?sizeof(buffer));?? ????????????itoa(result?,?buffer?,?10);???????? ????????????strcpy(pOutputStr?,?buffer);?? ????????}?? ????}?? }?? ?? ?? int?main(void)?? {?? ????printf("?--?2014年華為校園招聘機試題?(http://blog.csdn.net/hackbuteer1)?--\n\n");?? ????char?pInputStr1[]?=?{"aaabbbcccdde"};?? ????char?pInputStr2[]?=?{"aaaaaaaaaaaabbcddddddddddddddddde"};?? ????char?pInputStr3[]?=?{"3?+?4"};?? ????char?pOutputStr1[MAXCHAR]?=?{0};?? ????char?pOutputStr2[MAXCHAR]?=?{0};?? ????char?pOutputStr3[MAXCHAR]?=?{0};?? ????stringFilter(pInputStr1?,?strlen(pInputStr1)?,?pOutputStr1);?? ????stringZip(pInputStr2?,?strlen(pInputStr2)?,?pOutputStr2);?? ????arithmetic(pInputStr3?,?strlen(pInputStr3)?,?pOutputStr3);?? ????puts(pOutputStr1);?? ????puts(pOutputStr2);?? ????puts(pOutputStr3);?? ????return?0;?? }?? 
 
 原文地址:http://blog.csdn.net/hackbuteer1/article/details/11132567
                            總結
                            
                                以上是生活随笔為你收集整理的华为2014校园招聘的机试题目的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                            
                                如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。