Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
ProblemSet_HUAWEI
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
ProblemSet_HUAWEI
Commits
da7e16dc
You need to sign in or sign up before continuing.
Commit
da7e16dc
authored
Jun 16, 2014
by
lyuka
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add problem of 2014
parent
dd32a59a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
51 additions
and
9 deletions
+51
-9
README.md
README.md
+51
-9
No files found.
README.md
View file @
da7e16dc
#华为历年机试题集合
----
##2014
[
code
](
http://blog.csdn.net/hackbuteer1/article/details/11132567
)
[
题目1~3 code
](
http://blog.csdn.net/hackbuteer1/article/details/11132567
)
[
题目4~6 code
](
http://club.xdnice.com/thread-1320782-1-1.html
)
###题1(60分)
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串
`abacacde`
过滤结果为
`abcde`
。
要求实现函数:
```
c
```
c
pp
void
stringFilter
(
const
char
*
pInputStr
,
long
lInputLen
,
char
*
pOutputStr
)
```
...
...
@@ -34,7 +35,7 @@ pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长
2.
压缩字段的格式为"字符重复的次数+字符"。例如:字符串
`xxxyyyyyyz`
压缩后就成为
`3x6yz`
要求实现函数:
```
c
```
c
pp
void
stringZip
(
const
char
*
pInputStr
,
long
lInputLen
,
char
*
pOutputStr
);
```
...
...
@@ -63,7 +64,7 @@ pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长
2.
若输入算式格式错误,输出结果为“0”。
要求实现函数:
```
c
```
c
pp
void
arithmetic
(
const
char
*
pInputStr
,
long
lInputLen
,
char
*
pOutputStr
);
```
...
...
@@ -84,6 +85,47 @@ pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长
---
###题4
描述:10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下:
1.
及格线是10的倍数;
2.
保证至少有60%的学生及格;
3.
如果所有的学生都高于60分,则及格线为60分
输入:输入10个整数,取值0~100
输出:输出及格线,10的倍数
>示例
>输入:61 51 49 3020 10 70 80 90 99
输出:50
----
###题5
描述:一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1、2、3、…n-1、n。每盏电灯由一个拉线开关控制。开始,电灯全部关着。
有n个学生从长廊穿过。第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。n个学生按此规定走完后,长廊里电灯有几盏亮着。注:电灯数和学生数一致。
输入:电灯的数量
输出:亮着的电灯数量
>示例
>输入:3
输出:1
---
###题6
描述:已知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
输入:输入两个不同的站名
输出:输出最少经过的站数,含输入的起点和终点,换乘站点只计算一次
>示例
>输入:A1 A3
输出:3
---
##2013
[
code
](
http://blog.csdn.net/hackbuteer1/article/details/11150519
)
###题1 子串分离
...
...
@@ -91,7 +133,7 @@ pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长
如果输入
`abc def gh i d`
,结果将是
`abc,def,gh,i,d,`
要求实现函数:
```
c
```
c
pp
void
DivideString
(
const
char
*
pInputStr
,
long
lInputLen
,
char
*
pOutputStr
);
```
...
...
@@ -113,7 +155,7 @@ pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长
###题2 逆序链表输出
将输入的一个单向链表,逆序后输出链表中的值。链表定义如下:
```
c
```
c
pp
typedef
struct
tagListNode
{
int
value
;
...
...
@@ -122,7 +164,7 @@ typedef struct tagListNode
```
要求实现函数:
```
c
```
c
pp
void
converse
(
ListNode
**
head
);
```
...
...
@@ -138,7 +180,7 @@ void converse(ListNode **head);
### 题1
选秀节目打分,分为专家评委和大众评委,
`score[]`
数组里面存储每个评委打的分数,
`judge_type[]`
里存储与
`score[]`
数组对应的评委类别,
`judge_type[i] == 1`
,表示专家评委,
`judge_type[i] == 2`
,表示大众评委,
`n`
表示评委总数。打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分取整),然后,总分 = 专家评委平均分
* 0.6 + 大众评委 *
0.4,总分取整。如果没有大众评委,则 总分 = 专家评委平均分,总分取整。函数最终返回选手得分。
函数接口
```
c
```
c
pp
int
cal_score
(
int
score
[],
int
judge_type
[],
int
n
)
```
---
...
...
@@ -149,7 +191,7 @@ int cal_score(int score[], int judge_type[], int n)
>
input[] = {3, 6, 1, 9, 7, 8} output[] = {1, 6, 8, 9, 7, 3}
函
数接口
`
``c
`
``c
pp
v
oid sort(int input[], int n, int output[])
`
``
-
--
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment