日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

华为2014校园招聘的机试题目

發布時間:2023/12/13 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 华为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;??
  • ????????}//for??
  • ????????if(0?!=?num)????//num可能是兩位或三位或更多位的整數??
  • ????????{??
  • ????????????memset(buffer?,?0?,?sizeof(buffer));??
  • ????????????itoa(num?+?1?,?buffer?,?10);??????//將整數按10進制轉換為字符串??
  • ????????????strcpy(pOutputStr?+?k?,?buffer);??
  • ????????????k?+=?strlen(buffer);??
  • ????????}??
  • ????????pOutputStr[k++]?=?pInputStr[i];??
  • ????????i?=?i?+?num?+?1;??
  • ????}//for??
  • ????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????//操作符的長度為1??
  • ????{??
  • ????????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?;??
  • ????????????????}??
  • ????????????}//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)??
  • {??
  • ????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校园招聘的机试题目的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。