2020华为校招面试机试题与参考答案解析
1.数字处理
题目描述:给出一个不多于5位的整数,进行反序处理,要求
(1)求出它是几位数
(2)分别输出每一个数字(空格隔开)
(3)按逆序输出各位数字(仅数字间以空格间隔,负号与数字之间不需要间隔)
输入描述:位数不大于5的整数
输出描述:1.整数位数 2.空格间隔输出结果 3.逆序整数
#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;}elseflag = 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;elsecout << "Overlap IP" << endl;system("pause");return 0;
}
3.数字排序
题目描述: 给定字符串内有很多正整数,要求对这些正整数进行排序,然后返回排序后指定位置的正整数,排序要求:按照每一个正整数的后三位数字组成的整数进行从小到大排序
(1)如果不足三位,则按照实际位数组成的整数进行比较
(2)如果相等,则按照输入字符中的原始顺序排序
说明:
(1)字符串以‘\0’结尾,仅包含数字、空格
(2)字符串内正整数之间以单个空格分隔,字符串首尾没有空格
(3)正整数格式为十进制,大小1~1000000,正整数的数字非零开始
输入描述:第一行为一个整数字符串,里面包含若干个整数,以空格分割,第二行为一个整数,即指定的位置
输出描述:输出指定位置的整数
#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;
}
总结
希望对大家有帮助!
我这边也整理了一份 架构师全套视频教程 和关于java的系统化资料,包括java核心知识点、面试专题和20年最新的互联网真题、电子书等都有。有需要的朋友可以点一点下方链接免费领取!
链接:1103806531暗号:CSDN
2020华为校招面试机试题与参考答案解析相关推荐
- 华为c语言机试题库及答案,华为C语言机试题面试题汇总.doc
华为C语言机试题面试题汇总.doc 1第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出 ...
- 华为校招JAVA机试题
又到校园招聘的时候了,前几天听同学说华为校招还要考上机,然后就在网上找往年的机试题,找到之后就开始战斗了..下面的题目都是在网上找的,然后代码是自己一个一个写的... 1.程序实现目标: 输入一个字符 ...
- 非常全的linux面试笔试题及参考答案
一.填空题: 1. 在 Linux系统 中,以 文件 方式访问设备 . 2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统. 3. Linux文件系统中每个文件用 ...
- 华为机试题及参考答案
/* * 程序实现目标:输入一个字符串,将其各个字符对应的ASCII值加5后,输出结果. 程序要求:该字符串只包含小写字母,若其值加5后的字符值大于'z',将其转换成从a开始的字符. */ publi ...
- net面试整试题及参考答案【转】
导读: 一.ADO 与ADO.NET两种数据访问方式区别? 1. ADO与ADO.NET简介 ADO与ADO.NET既有相似也有区别,他们都能够编写对数据库服务器中的数据进行访问和操作的应用程序,并且 ...
- 2016年华为校招上机考试试题答案
2016年华为校招上机考试试题答案 [转载请注明出处]http://blog.csdn.net/guyuealian/article/details/50968368 华为 ...
- 关于华为校招面试的那些事儿
关于华为校招面试的那些事儿 这世上最大的区别不是做得好和做得不好,而是做与不做 . -- [ 大学时期的格尼经验谈 ] 格尼作为一名尚未踏入社会的青葱少年,真的是人生第一次参加工作面试,虽然结果还没有 ...
- 2020复旦大学计算机夏令营机试题
2020复旦大学计算机夏令营机试题 这个是开卷编程,不计入成绩,但是面试会问你做的情况.
- 2020全网最全的软件测试linux面试题及参考答案,赶紧收藏!
一.前言: 2020非常全的软件测试linux面试题及参考答案 作为一名软件测试工程师,我相信大部分的人都和Linux打过交道,因为我们的服务器一般都是装的Linux操作系统,包括各种云服务器也都是用 ...
最新文章
- 腾讯布局移动应用商店 总下载量累计达40亿次
- UML 建模大佬养成记(Java版)
- 哈工程计算机学院领导门志国,电气学院“钥匙工程”第二季:赵洪教授为2018级新生打开专业之门...
- IntelliJ IDEA---java的编译工具【转】
- webpack中hash、chunkhash、contenthash
- 机器学习实战—朴素贝叶斯及要点注解
- 死锁避免算法--银行家算法
- Python在定义类方法时self的作用是什么?是否可以不写
- python毕业设计作品基于django框架校园排课选课系统毕设成品(6)开题答辩PPT
- 接口测试apipost
- 8款值得学习的科研论文作图软件!
- C#读写ISO15693协议ICODE2标签源码
- Mybatis-Plus eq、ne、gt、lt、ge、le....分别代表含义
- aliyun-freeSSL证书生成、下载、配置到apache httpd
- 分体式耳机是什么意思?2021年高音质分体式蓝牙耳机推荐
- 【转】25个开发性能优化
- 【转】高级育婴师 告诉你,一定要这么做
- 跨境电商亚马逊之你知道什么是亚马逊电商吗
- 【IoT】基于NB-IoT的LWM2M协议浅析
- Inet_addr 函数使用报错
热门文章
- 在Anaconda中用pip安装Pytorch后无法用pycharm打开
- JAVA SE8 OCA/OCP和PL/SQL OCA/OCP认证书籍推荐
- TC397 STM(System Timer)
- 金蝶K3案例教程委外加工前台操作
- 精美 咖啡品牌logo设计灵感 标志设计
- undefined reference to `cv::imread(std::__cxx11::basic_string<char, std::char_traits<char>, std::all
- 【智能路由器】openwrt创建用户软件包
- CBI年度大选创新产品奖——Hitachi VSP 5000系列
- 吉时利2657A高功率数字源表-多功能高准度源表
- 上海交通大学计算机专业有调剂吗,上海交通大学计算机系研究生调剂