2018年華為校招面試機(jī)試題目與參考答案解析

1.數(shù)字處理
題目描述:給出一個不多于5位的整數(shù),進(jìn)行反序處理,要求
(1)求出它是幾位數(shù)
(2)分別輸出每一個數(shù)字(空格隔開)
(3)按逆序輸出各位數(shù)字(僅數(shù)字間以空格間隔,負(fù)號與數(shù)字之間不需要間隔)
輸入描述:位數(shù)不大于5的整數(shù)
輸出描述:1.整數(shù)位數(shù) 2.空格間隔輸出結(jié)果 3.逆序整數(shù)
#include <vector> #include <string> #include <iostream> using namespace std; int main() { int iInput; int iNum=0; char* strRst=""; int iOutput=0; cin >> iInput; int k = 0; int temp; int flag; int iTemp; if (iInput < -99999 || iInput > 99999) return -1; if (iInput < 0) { flag = -1; iInput = -iInput; } else flag = 1; temp = iInput; vector<int> resStr; while (temp) { ++iNum; iTemp = temp % 10; resStr.push_back(iTemp); iOutput = iOutput * 10 + iTemp; temp /= 10; } cout << iNum << endl; if (flag == -1) cout << "-"; for (int i = iNum - 1; i >= 0; --i) { if (i == iNum - 1) cout << resStr[i]; else { cout << " " << resStr[i]; } } cout << endl; iOutput = flag*iOutput; cout << iOutput << endl; system("pause"); return 0; }
2.IP地址交集判斷
題目描述:輸入四個IP端,前兩個為第一個IP段的起始和終止地址,后兩個是第二個IP段的起始和終止地址,判斷這兩個IP段是否存在交集
輸入描述:輸入4個IP
輸出描述:如果存在交集,輸出 Overlap IP ; 如果不存在交集,輸出 No Overlap IP
#include<iostream> #include<stdio.h> #include<stdlib.h> #include<cassert> using namespace std; int *dec2bin(int decnum) { int i, a, *b = { 0 }; a = decnum; for (i = 7; i >= 0; i--) { b[i] = a % 2; a = a / 2; } return b; } int ipToInt(char *ipString) { assert(ipString != NULL); int i = 0, j, n, count = 0, return_num = 0; char *tmp; int *tmp_num=NULL, *num=NULL, *d2b; char *s = ipString, *s_tmp=NULL; if (*s == '.') count++; count++; if (count != 4) return 0; while (*s != '\0') { if (*s != '.') { n = s - s_tmp; tmp = (char*)malloc(n*sizeof(char)); memcpy(tmp, s, n); tmp_num[i] = atoi(tmp); d2b = dec2bin(tmp_num[i]); for (j = 0; j<8; j++) num[8 * i + j] = d2b[j]; s++; i++; s_tmp = s; } s++; } if (*s = '\0') { n = s - s_tmp; tmp = (char*)malloc(n*sizeof(char)); memcpy(tmp, s, n); tmp_num[i] = atoi(tmp); d2b = dec2bin(tmp_num[i]); for (j = 0; j<8; j++) num[8 * i + j] = d2b[j]; } for (j = 0; j<32; j++) return_num = return_num * 2 + num[j]; return return_num; } int main(void) { char *s1, *s2, *s3, *s4; s1 = new char; s2 = new char; s3 = new char; s4 = new char; cin >> s1 >> s2 >> s3 >> s4; int n1, n2, n3, n4, i; n1 = ipToInt(s1); n2 = ipToInt(s2); n3 = ipToInt(s3); n4 = ipToInt(s4); if (n4<n1 || n3>n2) cout << "No Overlap IP" << endl; else cout << "Overlap IP" << endl; system("pause"); return 0; }
3.數(shù)字排序
題目描述: 給定字符串內(nèi)有很多正整數(shù),要求對這些正整數(shù)進(jìn)行排序,然后返回排序后指定位置的正整數(shù),排序要求:按照每一個正整數(shù)的后三位數(shù)字組成的整數(shù)進(jìn)行從小到大排序(1)如果不足三位,則按照實(shí)際位數(shù)組成的整數(shù)進(jìn)行比較(2)如果相等,則按照輸入字符中的原始順序排序
說明:(1)字符串以‘\0’結(jié)尾,僅包含數(shù)字、空格(2)字符串內(nèi)正整數(shù)之間以單個空格分隔,字符串首尾沒有空格(3)正整數(shù)格式為十進(jìn)制,大小1~1000000,正整數(shù)的數(shù)字非零開始
輸入描述:第一行為一個整數(shù)字符串,里面包含若干個整數(shù),以空格分割,第二行為一個整數(shù),即指定的位置
輸出描述:輸出指定位置的整數(shù)
#include <iostream> #include <string> #include <vector> #include <algorithm> #include <string.h> using namespace std; int find_string(const char* input_string, int serial_number, int output_string_max_length, char* output_string) { int size = strlen(input_string); vector<int> vec; int tmp = 0; for (size_t i = 0; i <= size; ++i){ if (input_string[i] == ' ' || i == size){ if (tmp == 0){ return -1; } vec.push_back(tmp); tmp = 0; } else{ tmp = tmp * 10 + input_string[i] - '0'; } } int n = vec.size(); for (int i = 0; i < n - 1; ++i){ for (int j = 0; j < n - i - 1; ++j){ if (vec[j] % 1000 > vec[j + 1] % 1000){ swap(vec[j], vec[j + 1]); } } } if (serial_number > vec.size()){ return -1; } char num[11]; sprintf(num, "%d", vec[serial_number - 1]); int len = strlen(num); cout << num; return 0; } int main() { string s1; getline(cin, s1); int t; char *input_string = const_cast<char *>(s1.data()); int serial_number, output_string_max_length=0; char* output_string = NULL; cin >> serial_number; t=find_string(input_string, serial_number, output_string_max_length, output_string); system("pause"); return 0; }
相關(guān)文章
華為技術(shù)崗面試初面+綜合面試經(jīng)驗(yàn)總結(jié)
這篇文章主要介紹了華為技術(shù)崗面試初面+綜合面試經(jīng)驗(yàn),總結(jié)整理了華為技術(shù)崗面試中初面、綜合面試等環(huán)節(jié)所遇到的各種問題,并給出了相應(yīng)的參考答案與建議,需要的朋友可以參考2019-12-03華為校招 C++崗面試經(jīng)歷總結(jié)【筆試+一面+二面+Offer】
這篇文章主要介紹了華為校招 C++崗面試經(jīng)歷,總結(jié)分析了華為校招C++崗位的筆試題,以及一面、二面到最終拿到Offer的經(jīng)歷與相關(guān)經(jīng)驗(yàn)感想,需要的朋友可以參考下2019-11-28- 這篇文章主要介紹了華為java社招面試題目、參考答案及全部流程,講述了參加華為java社招面試的全部流程、遇到的面試題目、參考答案以及相關(guān)的注意事項(xiàng),需要的朋友可以參考下2019-10-22
- 這篇文章主要介紹了華為云計(jì)算電話面試與參考答案,總結(jié)分析了華為云計(jì)算電話面試中所遇到的各種問題與相應(yīng)的參考答案,包括云計(jì)算相關(guān)的常見概念、原理與考察知識點(diǎn),需要的2019-10-12
華為Java社招面試經(jīng)歷詳解【已拿到offer】
這篇文章主要介紹了華為Java社招面試經(jīng)歷,詳細(xì)記錄了華為java面試的流程、相關(guān)面試題與參考答案,需要的朋友可以參考下2019-09-17- 這篇文章主要介紹了華為筆試算法面試題與參考答案,結(jié)合實(shí)例形式分析了基于C++的字符串轉(zhuǎn)換、判斷、排序等算法相關(guān)操作技巧,需要的朋友可以參考下2019-09-05
- 這篇文章主要介紹了華為16道經(jīng)典面試題與參考思路,總結(jié)分析了華為面試中遇到的經(jīng)典問題,并提供了相應(yīng)的解答思路供讀者參考,需要的朋友可以參考下2019-08-01
- 這篇文章主要介紹了據(jù)說華為的一道Java面試題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-29
- 面試者選擇一種編程語言,兩輪面試,每輪約45分鐘。其中面試者編程30分鐘,面試官提問與討論15分鐘。今天小編給大家討論下華為面試改革加強(qiáng)考察編程難度大增,感興趣的朋友2019-05-14
精選11道Java技術(shù)面試題及對應(yīng)答案【包含部分阿里和華為的面試題】
這篇文章主要為大家介紹了11道Java技術(shù)面試題及對應(yīng)答案,其中包含部分阿里和華為的面試題,總結(jié)分析了java常見的技術(shù)難點(diǎn)與java常見面試題,需要的朋友可以參考下2019-04-11