华为2011软件招聘编程试题分析:电话号码验证与数组比较
需积分: 1 190 浏览量
更新于2024-07-26
收藏 265KB DOC 举报
2011年的华为软件校园招聘编程上机试题包含两道题目,分别是电话号码合法性判断和数组比较。以下是详细的知识点分析:
1. **电话号码合法性判断** (17分)
- 题目要求设计一个名为`fun`的函数,输入一个字符数组`num`,用于检查电话号码是否合法。首先,函数通过`strlen`获取输入字符串的长度`n`。
- 判断逻辑包括:
a. **长度检查**:检查电话号码是否为11位(包括区号)。如果长度为13,意味着可能有额外的字符,需进一步处理。
b. **区号判断**:如果长度为13且前两位是'86',则逐个检查后续字符,确保都是数字。遇到非数字字符,返回2(错误)。
c. **结束条件**:检查整个字符串,如果所有字符都是数字,返回0(合法);否则返回3(非法)。
- 示例中的`main`函数调用了`fun`函数,输入了一个包含非数字字符的电话号码,输出了错误代码。
2. **数组比较** (20分)
- 第二个问题是数组比较,要求设计一个`array_compare`函数,接受两个整型数组`array1`和`array2`的长度`len1`和`len2`作为参数。
- 比较规则:
a. **长度适应**:如果两个数组长度不等,只比较较短数组的元素。
b. **逐个元素比较**:从数组末尾开始,向前遍历元素,找出第一个不相等的元素位置。
c. **返回结果**:函数返回不相等元素的个数。
- 示例给出了两个数组比较的情况,如数组`{1,3,5}`与`{77,21,1,3,5}`,由于长度相同且元素完全匹配,返回0;而数组`{1,3,5}`与`{77,21,1,3,5,7}`,不相等元素个数为3。
在实际编程时,考生需要确保函数具有良好的稳健性,避免因边界条件或异常情况导致程序崩溃或死循环。根据题目要求,应当在每个功能完成后进行充分的测试和调试,确保正确性后再进行下一个任务。这些题目旨在考察候选人的基础编程能力、逻辑思维以及对细节的把握。
点击了解资源详情
109 浏览量
点击了解资源详情
2011-02-05 上传
155 浏览量
wangfew
- 粉丝: 0
- 资源: 1
最新资源
- chat-app-master
- MAST-MOBILE:MAST Android应用程序源代码-Android application source code
- nanodegree-p3-classic-arcade-game:nanodegree-p3-classic-arcade-game
- Just_Java-app:这是我的第一拳Android项目,通过该项目,我通过Just Java应用程序了解了android的各种基础知识
- SIXSIGMA六标准差——教练级黑带师、黑带、绿带培训方案
- 数据营项目
- tool-conventions:支持使用WebAssembly的工具之间的互操作性的约定
- learn-bootstrap:这个 repo 是为我创建的,用于通过 tutorialls 学习引导程序
- FitJournal:Fit Journal应用程序的源代码-Android application source code
- 计时器
- 金融筹资管理
- thunderboard-android:这是Android的Thunderboard应用程序的源代码-Android application source code
- 网址缩短API登陆页面
- silverstripe-email_reminder:Silverstripe CMS的模块。 在用户的成员资格(或类似权限)即将到期时向用户发送提醒
- nodeschool.io:我对 NodeSchool.io 练习的解决方案
- ASCII-ART:产生与图像相对应的ASCII符号