2018年華為校招面試機(jī)試題目與參考答案解析
1.數(shù)字處理
題目描述:給出一個(gè)不多于5位的整數(shù),進(jìn)行反序處理,要求
(1)求出它是幾位數(shù)
(2)分別輸出每一個(gè)數(shù)字(空格隔開(kāi))
(3)按逆序輸出各位數(shù)字(僅數(shù)字間以空格間隔,負(fù)號(hào)與數(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地址交集判斷
題目描述:輸入四個(gè)IP端,前兩個(gè)為第一個(gè)IP段的起始和終止地址,后兩個(gè)是第二個(gè)IP段的起始和終止地址,判斷這兩個(gè)IP段是否存在交集
輸入描述:輸入4個(gè)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ù),要求對(duì)這些正整數(shù)進(jìn)行排序,然后返回排序后指定位置的正整數(shù),排序要求:按照每一個(gè)正整數(shù)的后三位數(shù)字組成的整數(shù)進(jìn)行從小到大排序(1)如果不足三位,則按照實(shí)際位數(shù)組成的整數(shù)進(jìn)行比較(2)如果相等,則按照輸入字符中的原始順序排序
說(shuō)明:(1)字符串以‘\0’結(jié)尾,僅包含數(shù)字、空格(2)字符串內(nèi)正整數(shù)之間以單個(gè)空格分隔,字符串首尾沒(méi)有空格(3)正整數(shù)格式為十進(jìn)制,大小1~1000000,正整數(shù)的數(shù)字非零開(kāi)始
輸入描述:第一行為一個(gè)整數(shù)字符串,里面包含若干個(gè)整數(shù),以空格分割,第二行為一個(gè)整數(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é)所遇到的各種問(wèn)題,并給出了相應(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ì)算電話面試中所遇到的各種問(wèn)題與相應(yīng)的參考答案,包括云計(jì)算相關(guān)的常見(jiàn)概念、原理與考察知識(shí)點(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)典問(wèn)題,并提供了相應(yīng)的解答思路供讀者參考,需要的朋友可以參考下2019-08-01
這篇文章主要介紹了據(jù)說(shuō)華為的一道Java面試題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-29
面試者選擇一種編程語(yǔ)言,兩輪面試,每輪約45分鐘。其中面試者編程30分鐘,面試官提問(wèn)與討論15分鐘。今天小編給大家討論下華為面試改革加強(qiáng)考察編程難度大增,感興趣的朋友2019-05-14精選11道Java技術(shù)面試題及對(duì)應(yīng)答案【包含部分阿里和華為的面試題】
這篇文章主要為大家介紹了11道Java技術(shù)面試題及對(duì)應(yīng)答案,其中包含部分阿里和華為的面試題,總結(jié)分析了java常見(jiàn)的技術(shù)難點(diǎn)與java常見(jiàn)面試題,需要的朋友可以參考下2019-04-11



