华为2014年上机笔试题
1.输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50
参考代码:
#include
main()
{
int num[50]={0};
int i,n;
printf(“请输入整型数组的长度(1~50):”);
scanf(“%d”,&n);
printf(“请输入整型数组的元素:”);
for (i=0;i
{
scanf(“%d”,&num[i]);
}
int min_num=num[0];
int max_num=num[0];
for(int j=0;j
{
if(max_num
max_num=num[j];
else if(min_num>num[j])
min_num=num[j];
}
int sum=min_num+max_num;
printf(“数组中最大与最小值之和:%d\n”,sum);
return 0;
}
2.求两个长长整型的数据的和并输出,例如输入1233333333333333 。。。 3111111111111111111111111.。。。,则输出。。。。
华为9.7 成都上机笔试
刚刚上机笔试完,没看到保密协定,写笔经赞rp5号上课的时候收到华为上机笔试,还屁颠屁颠的HAPPY。由于我报的是互联网产品体验工程师和软件项目管理工程师,之前复习好多交互设计的东西,还临阵看了眼软件工程的几个模型啥的。又做了一大堆公务员的行测题,结果一到机房,上面的PPT赫然写着,C/C++用VC6.0 ,JAVA用eclipse。当场傻眼,马上问考官,我报的非研发岗咋还要做这个啊?他说给我问问,打个电话回答是也要做。 姐姐我用的最多的是C#,平时做作业都被C++的指针弄的死去活来,要不也不会用学校里不交课程都用不到的C#啊!当下打鼓,那我是笔C还是笔试JAVA呢??JAVA和C#比较像啊,可是就大一用过几回,后来都没用过了啊!这时,考官GG问:“你哪个专业的啊?”,答曰:“软件工程……”“那你这C应该都会啊”于是我就被下咒语了,C我应该会啊……于是开始笔,一看三道题,都编程,继续吓傻。要是选择填空啥的还能蒙一下,毕竟我有半年没写C了……我淡定了很久终于把题读懂了,一共三道,不是很难。
1.给定两个int型一维数组,和他们的`长度,然后从最后一个元素开始比较,输出不一样的元素个数。
一开始也不知道是咋回事读了半天都没看明白,其实很简单。两个数组比如是{1,3,5}和{22,17,1,3,5},从屁股开始比较。5和5一样,3和3一样,1和1 一样,所以结果是0.如果是{1,3,5}和{7,8,9,0},5和0不一样,3和9不一样,1和8不一样,输出是3.以长度最短的数组为准。其实是很简单的~~2。就是一个约瑟夫环问题,也是int数组和间隔值M,数M个后踢出一个元素,并让M=踢出元素。然后接着数,也是比较简单的。但当时我完全忘记C的库函数咋个调用,以至于连MOD都是自己瞎编的……3.字符串计算。输入是char *oper = "4/2+3-2*4"然后算出答案就行了,只有+-*/连括号都不用。其实这个题是我们当时算法上机课里面第一个做的好像,就是用堆栈压进弹出乱七八糟的,而且这个连括号都没有,真的是很基本。不过记得做作业的时候用了很长时间,而且一时间就只记得是用堆栈,连原理都忘记了,果断放弃了。
华为校园招聘上机笔试经验
说下华为上机考试的特点和一些注意事项:
(1)考试时长为2个小时,总共有3个题(去年是2个题,难度要比今年大些),使用的是VC 6.0;
(2)3个题目中大致第一个题是最简单的,第三个题是最难的,这个难度只是假设你对所有的题都不熟悉而言的,所以在拿到题目过后一定要把所有题目过一遍,弄懂它们的'要点,看是否有自己熟悉的题目,也做到心里有数。这算得上是我昨天笔试的时候的一个教训吧;
(3)从服务器上下载题目下来后最好能把工程保存到在电脑重启后不会自动还原的磁盘分区下面,这样不致由于各种意外因素电脑重启过后编的程序不会消失;
(4)不要改动所给函数的原型,可以自己添加函数。另外,华为提供的工程是将Main函数隐藏了的,所以自己不用再添加Main函数。
以上便是我对于这次考试了解的一些情况,下面说说我做的3个笔试题(题意我只能大概的按我的理解组织下)。
1. 从两个数组的最后一个元素比较两个数组中不同元素的个数,如有array1[5]={77,21,1,3,5}, array2[3]={1,3,5},从array1[4]与array2[2]比较开始,到array1[2]与array[0]比较结束。这样得出它们不同的元素个数为0,若array1[6]={77,21,1,3,5,7},那么他们不同的元素为3。
函数原型为 int comp_array( int len1, int array1[], int len2, int array2[] );
华为校园招聘Java上机笔试题
1、将大写字母转换成其对应小写字母后的第五个字母,大于z的从头开始数。
2、将一个十进制数(byte类型)转化二进制数,将二进制数前后颠倒,再算出颠倒后其对应的十进制数。(见Test2)
3、选秀节目打分,分为专家评委和大众评委,score[] 数组里面存储每个评委打的分数,judge_type[] 里存储与 score[] 数组对应的评委类别,judge_type[i] == 1,表示专家评委,judge_type[i] == 2,表示大众评委,n表示评委总数。打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分取整),然后,总分 = 专家评委平均分 * 0.6 + 大众评委 * 0.4,总分取整。如果没有大众评委,则总分 = 专家评委平均分,总分取整。函数最终返回选手得分。
函数接口intcal_score(int score[], intjudge_type[], int n)
4、给定一个数组input[] ,如果数组长度n为奇数,则将数组中最大的元素放到 output[] 数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到 output[] 数组中间两个位置偏右的'那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。
例如:input[] = {3, 6, 1, 9, 7} output[] = {3, 7, 9, 6, 1}; input[] = {3, 6, 1, 9, 7, 8} output[] = {1, 6, 8, 9, 7, 3}
2014年华为上机笔试题
1、输入一串数,以‘,’分隔,输出所有数中去掉最大值、最小值之后剩下的个数。(其中最大值与最小值可能有多个)
Smple input:3,3,5,3,6,9,7,9 Sample outPut: 3
2、要从5个人中选取2个人作为礼仪,其中每个人的身高范围为160-190,要求2个人的身高差值最小(如果差值相同的话,选取其中最高的两人),以升序输出两个人的身高。
Smple input:161 189 167 172 188 Sample outPut: 188 189
3、输入一串字符串,其中有普通的字符与括号组成(包括‘(‘、‘)‘、‘[',']‘),要求验证括号是否匹配,如果匹配则输出0、否则输出1.
Smple input:dfa(sdf)df[dfds(dfd)] Smple outPut:0
3. 判断回文数,是返回1
4. 输入一行数字:123 423 5645 875 186523
在输入第二行:23
将第一行中含有第二行中”23″的数输出并排序
结果即:123 423 186523
5. 将 电话号码 one two 。。。nine zero
翻译成1 2 。。9 0
中间会有double