华为机试题目:电话号码检查与数组比较

5星 · 超过95%的资源 需积分: 32 116 下载量 66 浏览量 更新于2024-07-27 2 收藏 115KB DOC 举报
"华为机试题库包含2013年华为公司的最新机试题目,所有程序已成功运行。" 在提供的代码中,我们看到了两个独立的C++程序,每个程序都对应一个不同的编程任务。 第一个程序是关于电话号码验证的。函数`fun(char *num)`的目的是检查输入的字符串是否符合特定的电话号码格式。它首先检查字符串的长度是否为13,这是许多国际电话号码的长度。然后,它检查电话号码是否以'86'开头,这是中国的国家代码。如果满足这些条件,程序会遍历整个字符串,确保所有字符都是数字。如果找到非数字字符,函数返回3表示中间有其他字符;如果遍历到最后没有问题,函数返回4表示号码正确。如果不满足长度或开头不是'86',则分别返回1和2表示长度不符合或开头不是86。在`main`函数中,用户输入一个字符串,然后调用`fun`函数进行验证,并根据返回值输出相应的错误信息。 第二个程序涉及两个数组的比较。函数`array_compare(int len1, int array1[], int len2, int array2[])`用于比较两个整数数组,从后往前逐个元素比较,直到到达数组的起始位置或一个数组结束。它计算并返回两个数组中不相等元素的数量。如果数组长度不同,只会比较较短数组的全部元素。在`main`函数中,用户可以输入两个数组的长度和元素,然后调用`array_compare`来计算不相等元素的数量并输出结果。 这两个程序展示了基础的C++编程技能,包括字符串处理、数组操作、条件判断以及函数的使用。对于参加华为的机试,理解这些基本概念和技术是至关重要的,因为它们经常出现在编程面试和测试中。此外,代码中使用了标准输入输出库(iostream),这表明对C++ I/O流的理解也是必要的。通过解决这样的问题,考生能够展示他们的逻辑思维能力、问题解决技巧以及对编程语言核心特性的掌握程度。