【华为公司2014届校园招聘软件类上机考试样题】包含前两题答案
2013-09-04 22:25
711 查看
2013-09-04 22:25:17
华为公司2014届校园招聘软件类上机考试样题
需进行上机考试的岗位:软件开发工程师、操作系统工程师、底层软件开发工程师、云计算开发工程师、DSP工程师
在线考试:机考系统的内核为VS2005及JDK1.7,使用Java答题时,类名必须为“Main”;使用C/C++答题时,使用VS2005支持的数据类型和函数。
题目类型:涉及数组、链表、指针、字符串、循环、枚举、排序等等。
考试时长:2小时
考试题目:3道题(共计320分),初级题(60分),中级题(100),高级题(160分),难度递增。
[b]各难度上机考试样题[/b]
初级题:从考试成绩中划出及格线
10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下:
(1) 及格线是10的倍数;
(2) 保证至少有60%的学生及格;
(3) 如果所有的学生都高于60分,则及格线为60分
中级题:亮着电灯的盏数
一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1、2、3、…n-1、n。每盏电灯由一个拉线开关控制。开始,电灯全部关着。
有n个学生从长廊穿过。第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。n个学生按此规定走完后,长廊里电灯有几盏亮着。
注:电灯数和学生数一致。
高级题:地铁换乘
已知2条地铁线路,其中A为环线,B为东西向线路,线路都是双向的。经过的站点名分别如下,两条线交叉的换乘点用T1、T2表示。编写程序,任意输入两个站点名称,输出乘坐地铁最少需要经过的车站数量(含输入的起点和终点,换乘站点只计算一次)。
地铁线A(环线)经过车站:A1 A2 A3 A4 A5 A6 A7 A8 A9 T1 A10 A11 A12 A13 T2 A14 A15 A16 A17 A18
地铁线B(直线)经过车站:B1 B2 B3 B4 B5 T1 B6 B7 B8 B9 B10 T2 B11 B12 B13 B14 B15
前两个题比较简单,最后一题有点难,没做,哪位大神做出来了分享一下哦。
注意:
对bool变量取反,不能用按位取反运算符~,而应该用逻辑非!,因为用~时,因为操作数的整形提升,使得操作数为1时,结果仍为1,而非0;
如下:
输出为1;
若b为false,输出也为1。
前两个题代码(欢迎交流指正):
华为公司2014届校园招聘软件类上机考试样题
粤港澳 2013-08-30 13:49:20华为公司2014届校园招聘软件类上机考试样题
需进行上机考试的岗位:软件开发工程师、操作系统工程师、底层软件开发工程师、云计算开发工程师、DSP工程师
在线考试:机考系统的内核为VS2005及JDK1.7,使用Java答题时,类名必须为“Main”;使用C/C++答题时,使用VS2005支持的数据类型和函数。
题目类型:涉及数组、链表、指针、字符串、循环、枚举、排序等等。
考试时长:2小时
考试题目:3道题(共计320分),初级题(60分),中级题(100),高级题(160分),难度递增。
[b]各难度上机考试样题[/b]
初级题:从考试成绩中划出及格线
10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下:
(1) 及格线是10的倍数;
(2) 保证至少有60%的学生及格;
(3) 如果所有的学生都高于60分,则及格线为60分
中级题:亮着电灯的盏数
一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1、2、3、…n-1、n。每盏电灯由一个拉线开关控制。开始,电灯全部关着。
有n个学生从长廊穿过。第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。n个学生按此规定走完后,长廊里电灯有几盏亮着。
注:电灯数和学生数一致。
高级题:地铁换乘
已知2条地铁线路,其中A为环线,B为东西向线路,线路都是双向的。经过的站点名分别如下,两条线交叉的换乘点用T1、T2表示。编写程序,任意输入两个站点名称,输出乘坐地铁最少需要经过的车站数量(含输入的起点和终点,换乘站点只计算一次)。
地铁线A(环线)经过车站:A1 A2 A3 A4 A5 A6 A7 A8 A9 T1 A10 A11 A12 A13 T2 A14 A15 A16 A17 A18
地铁线B(直线)经过车站:B1 B2 B3 B4 B5 T1 B6 B7 B8 B9 B10 T2 B11 B12 B13 B14 B15
前两个题比较简单,最后一题有点难,没做,哪位大神做出来了分享一下哦。
注意:
对bool变量取反,不能用按位取反运算符~,而应该用逻辑非!,因为用~时,因为操作数的整形提升,使得操作数为1时,结果仍为1,而非0;
如下:
bool b = true; //布尔变量按位取反,与取非!效果不一样 b = ~b; cout<<b<<endl;
输出为1;
若b为false,输出也为1。
前两个题代码(欢迎交流指正):
#include <iostream> #include <cassert> using namespace std; typedef size_t DataType; const int SIZE = 10; void DisplayArray(DataType *array,size_t len) { assert(array != NULL); size_t index = 0; while (index < len) { cout<<array[index]<<"\t"; ++index; } cout<<endl; } void DisplayArray(bool *array,size_t len) { assert(array != NULL); size_t index = 0; while (index < len) { cout<<array[index]<<"\t"; ++index; } cout<<endl; } //int compare(const DataType *p,const DataType *q) int compare(const void *p,const void *q) //参数是void *类型 { return (*(DataType *)p - *(DataType *)q); } DataType GetPassLine(DataType *scoreArray,size_t len) { assert(scoreArray != NULL); assert(len == 10); qsort(scoreArray,len,sizeof(DataType),compare); cout<<"the sorted score is : "<<endl; DisplayArray(scoreArray,len); if (scoreArray[0] > 60) { return 60; } return ( (scoreArray[4] / 10) * 10); } size_t GetNumberOfLigthOn(size_t n) { bool *OnOffState = new bool[n + 1]; //多申请一个空间,是的有效下标从1开始 memset(OnOffState,1,n*sizeof(bool)); //有问题么?没问题 size_t onCount = 0; size_t index; size_t j; for (index = 2;index <= n;++index) { //DisplayArray(OnOffState + 1,n); for (j = index;j <= n;j += index) { OnOffState[j] = !OnOffState[j]; //不能OnOffState[j] = ~OnOffState[j]; } } for (index = 1;index <= n;++index) { onCount = OnOffState[index] ? (onCount + 1) : onCount; } return onCount; } void TestDriver() { //测试GetPassLine //DataType scoreArray[SIZE] = {61,67,89,71, 73,78,90,65, 100,82}; //60,全部及格 //DataType scoreArray[SIZE] = {60,67,89,71, 73,78,90,65, 100,82}; //70,此时有7个及格 ////DataType scoreArray[SIZE] = {60,67,89,62, 73,78,90,65, 100,82}; //70,有6个及格 //size_t len = SIZE; // //cout<<"the pass line is : "<<GetPassLine(scoreArray,len)<<endl; //测试GetNumberOfLigthOn(size_t n) size_t numberOfLights = 10; cout<<GetNumberOfLigthOn(numberOfLights)<<" lights in "<<numberOfLights<<" are on finally!"<<endl; } int main() { /*bool b = false; //布尔变量按位取反,与取非!效果不一样 b = ~b; cout<<b<<endl; */ TestDriver(); return 0; }
相关文章推荐
- 华为公司2014届校园招聘软件类上机考试样题
- 华为公司2014届校园招聘软件类上机考试样题
- 华为公司2014届校园招聘软件类上机考试样题
- 华为公司2014届校园招聘软件类上机考试样题
- 华为公司2014届校园招聘软件类上机考试样题 .
- 华为公司2014届校园招聘软件类上机考试样题
- 华为公司2014届校园招聘软件类上机考试样题 -初级题
- 华为公司2012届校园招聘软件类上机考试样题 -初级题
- 华为公司2014届校园招聘软件类上机…
- 华为公司2014届校园招聘软件类上机…
- 华为公司2014届校园招聘软件类机考样题 粤港澳地区
- 2012华为校园招聘上机试题大全及答案(软件)
- 2012届华为校园招聘上机考试题目第一题和答案
- 华为校园招聘软件类上机考试题目
- 2012华为校园招聘上机试题大全及答案(软件)
- 2012届华为校园招聘上机考试题目与参考答案
- 字符过滤(2013华为校园招聘上机考试)
- 腾讯2009校园招聘(软件开发职位方向笔试题与答案)
- 百度2013校园招聘笔试题[软件研发]及答案
- 求最小不重复数,源于百度2014届校园招聘软件研发岗位深圳站