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
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
##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分)
###题1(60分)
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串
`abacacde`
过滤结果为
`abcde`
。
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串
`abacacde`
过滤结果为
`abcde`
。
要求实现函数:
要求实现函数:
```
c
```
c
pp
void
stringFilter
(
const
char
*
pInputStr
,
long
lInputLen
,
char
*
pOutputStr
)
void
stringFilter
(
const
char
*
pInputStr
,
long
lInputLen
,
char
*
pOutputStr
)
```
```
...
@@ -34,7 +35,7 @@ pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长
...
@@ -34,7 +35,7 @@ pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长
2.
压缩字段的格式为"字符重复的次数+字符"。例如:字符串
`xxxyyyyyyz`
压缩后就成为
`3x6yz`
2.
压缩字段的格式为"字符重复的次数+字符"。例如:字符串
`xxxyyyyyyz`
压缩后就成为
`3x6yz`
要求实现函数:
要求实现函数:
```
c
```
c
pp
void
stringZip
(
const
char
*
pInputStr
,
long
lInputLen
,
char
*
pOutputStr
);
void
stringZip
(
const
char
*
pInputStr
,
long
lInputLen
,
char
*
pOutputStr
);
```
```
...
@@ -63,7 +64,7 @@ pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长
...
@@ -63,7 +64,7 @@ pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长
2.
若输入算式格式错误,输出结果为“0”。
2.
若输入算式格式错误,输出结果为“0”。
要求实现函数:
要求实现函数:
```
c
```
c
pp
void
arithmetic
(
const
char
*
pInputStr
,
long
lInputLen
,
char
*
pOutputStr
);
void
arithmetic
(
const
char
*
pInputStr
,
long
lInputLen
,
char
*
pOutputStr
);
```
```
...
@@ -84,6 +85,47 @@ 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
##2013
[
code
](
http://blog.csdn.net/hackbuteer1/article/details/11150519
)
[
code
](
http://blog.csdn.net/hackbuteer1/article/details/11150519
)
###题1 子串分离
###题1 子串分离
...
@@ -91,7 +133,7 @@ pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长
...
@@ -91,7 +133,7 @@ pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长
如果输入
`abc def gh i d`
,结果将是
`abc,def,gh,i,d,`
如果输入
`abc def gh i d`
,结果将是
`abc,def,gh,i,d,`
要求实现函数:
要求实现函数:
```
c
```
c
pp
void
DivideString
(
const
char
*
pInputStr
,
long
lInputLen
,
char
*
pOutputStr
);
void
DivideString
(
const
char
*
pInputStr
,
long
lInputLen
,
char
*
pOutputStr
);
```
```
...
@@ -113,7 +155,7 @@ pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长
...
@@ -113,7 +155,7 @@ pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长
###题2 逆序链表输出
###题2 逆序链表输出
将输入的一个单向链表,逆序后输出链表中的值。链表定义如下:
将输入的一个单向链表,逆序后输出链表中的值。链表定义如下:
```
c
```
c
pp
typedef
struct
tagListNode
typedef
struct
tagListNode
{
{
int
value
;
int
value
;
...
@@ -122,7 +164,7 @@ typedef struct tagListNode
...
@@ -122,7 +164,7 @@ typedef struct tagListNode
```
```
要求实现函数:
要求实现函数:
```
c
```
c
pp
void
converse
(
ListNode
**
head
);
void
converse
(
ListNode
**
head
);
```
```
...
@@ -138,7 +180,7 @@ void converse(ListNode **head);
...
@@ -138,7 +180,7 @@ void converse(ListNode **head);
### 题1
### 题1
选秀节目打分,分为专家评委和大众评委,
`score[]`
数组里面存储每个评委打的分数,
`judge_type[]`
里存储与
`score[]`
数组对应的评委类别,
`judge_type[i] == 1`
,表示专家评委,
`judge_type[i] == 2`
,表示大众评委,
`n`
表示评委总数。打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分取整),然后,总分 = 专家评委平均分
* 0.6 + 大众评委 *
0.4,总分取整。如果没有大众评委,则 总分 = 专家评委平均分,总分取整。函数最终返回选手得分。
选秀节目打分,分为专家评委和大众评委,
`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
)
int
cal_score
(
int
score
[],
int
judge_type
[],
int
n
)
```
```
---
---
...
@@ -149,7 +191,7 @@ 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}
>
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[])
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