2014 年华为校园招聘上机试题及参考代码 15 题
目录
样题-初级题:从考试成绩中划出及格线 .......................................... 2
样题-中级题:亮着电灯的盏数 .................................................. 2
样题-高级题:地铁换乘 ........................................................ 3
8.29 去掉最大值、最小值之后剩下的个数 .........................................3
8.29 从 5 个人中选取 2 个人作为礼仪 .............................................4
8.29 验证括号是否匹配 .........................................................5
8.31 回文数 ...................................................................5
8.31 将第一行中含有第二行中“23”的数输出并排序 ...............................6
8.31 翻译电话号码 .............................................................6
9.1.AM 将整数倒序输出,剔除重复数据 .......................................... 7
9.1.AM 大数相减 .............................................................. 8
9.1.AM 判断 if 语句括号是否合法 ............................................... 9
9.1.PM ...................................................................... 10
9.1.PM ...................................................................... 11
9.1.PM ...................................................................... 11
样题-初级题:从考试成绩中划出及格线
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
8.29 去掉最大值、最小值之后剩下的个数
1、输入一串数,以','分隔,输出所有数中去掉最大值、最小值之后剩下的个数。(其中最
大值与最小值可能有多个)
Smple input:3,3,5,3,6,9,7,9
Sample outPut: 3
8.29 从 5 个人中选取 2 个人作为礼仪
2、要从 5 个人中选取 2 个人作为礼仪,其中每个人的身高范围为 160-190,要求 2 个人的
身高差值最小(如果差值相同的话,选取其中最高的两人),以升序输出两个人的身高。
Smple input:161 189 167 172 188 Sample outPut: 188 189
8.29 验证括号是否匹配
3、输入一串字符串,其中有普通的字符与括号组成(包括‘(’、‘)’、‘[’,']'),
要求验证括号是否匹配,如果匹配则输出 0、否则输出 1.
Smple input:dfa(sdf)df[dfds(dfd)]
Smple outPut:0
8.31 回文数
1. 判断回文数,是返回 1
8.31 将第一行中含有第二行中“23”的数输出并排序
2. 输入一行数字:123 423
5645
875 186523
在输入第二行:23
将第一行中含有第二行中“23”的数输出并排序
结果即:123
423 186523
8.31 翻译电话号码
3. 将 电话号码 one two 。。。nine
zero
翻译成 1
2 。。9
0
中间会有 double
例如输入:OneTwoThree
输出:123
输入:OneTwoDoubleTwo
输出:1222
输入:1Two2 输出:ERROR
输入:DoubleDoubleTwo 输出:ERROR
第三题:有空格,非法字符,两个 Double 相连,Double 位于最后一个单词 都错误
9.1.AM 将整数倒序输出,剔除重复数据
输入一个整数,如 12336544,或 1750,然后从最后一位开始倒过来输出,最后如果是 0,
则不输出,输出的数字是不带重复数字的,所以上面的输出是 456321 和 571。如果是负数,
比如输入-175,输出-571。
9.1.AM 大数相减
输入两行字符串正整数,第一行是被减数,第二行是减数,输出第一行减去第二行的结果。
备注:1、两个整数都是正整数,被减数大于减数
示例:
输入:1000000000000001
1
输出:1000000000000000
注意大数用char a[] 存储,用%s接收,一位一位的运算。注意a[0]里的正负号。