ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:18.48KB ,
资源ID:2853055      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2853055.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(华为校园招聘机试参考二.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

华为校园招聘机试参考二.docx

1、华为校园招聘机试参考二2011年华为软件校园招聘编程测验类别:软件C/C+语言编程题(共3题,第一题20分,第二题30分,第三题50分,共100分)注意:1、请上机编写程序,按题目要求提交文件。详见考试说明,点击进入考试说明2、本试题采用自动执行测试用例进行评分,测试用例不对考生公开3、评卷通过在给定用例输入下,严格按照试题要求比较考生实现函数的输出与预设输出。两者相同则得分,不同则不得分。4、评卷人保证测试用例输入参数的合法性,考生不用考虑输入参数非法或异常的情况5、评卷人保证测试用例输入在被测函数正常合法情况下使用不会导致程序错误6、如果考生函数异常导致程序崩溃或死循环,则自动评卷可能会被

2、人为终止,剩余用例不被执行,无法得分7、基于上述阅卷规则,请考生严格按照题目要求功能实现程序,尽量保证实现函数的稳健性,同时建议完成一道题并调试保证正确性后,再考虑并实现下一题目。1.数组比较(20分) 问题描述:比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果2个数组长度不等,则只比较较短长度数组个数元素。请编程实现上述比较,并返回比较中发现的不相等元素的个数比如:数组1,3,5和数组77,21,1,3,5按题述要求比较,不相等元素个数为0数组1,3,5和数组77,21,1,3,5,7按题述要求比较,不相等元素个数为3 要求实现函数:intarray_compare(intle

3、n1,intarray1,intlen2,intarray2)【输入】 intlen1:输入被比较数组1的元素个数;intarray1:输入被比较数组1;intlen2:输入被比较数组2的元素个数;intarray2:输入被比较数组2;【输出】 无【返回】 不相等元素的个数,类型为int 示例1) 输入:intarray1=1,3,5,intlen1=3,intarray2=77,21,1,3,5,intlen2=5函数返回:02) 输入:intarray1=1,3,5,intlen1=3,intarray2=77,21,1,3,5,7,intlen2=6函数返回:3#include#incl

4、ude#includeint array_compare(int len1, int array1, int len2, int array2) int count=0; for( ;len1=0&len2=0 ;len1-,len2-) if(array1len1-1=array2len2-1) count+; return count;int main() int result=0; int array1=1,3,5; int len1=3; int array2=77,12,1,3,5; int len2=5; result=array_compare(len1, array1, len

5、2, array2); /result=array_compare( len1, array1, len2, array2);不能这样/ 函数形参中永远只是传得首地址,不能传数组 切记切记! printf(the result is %d, result);2.约瑟夫问题 问题描述:输入一个由随机数组成的数列(数列中每个数均是大于0的整数,长度已知),和初始计数值m。从数列首位置开始计数,计数到m后,将数列该位置数值替换计数值m,并将数列该位置数值出列,然后从下一位置从新开始计数,直到数列所有数值出列为止。如果计数到达数列尾段,则返回数列首位置继续计数。请编程实现上述计数过程,同时输出数值出列

6、的顺序比如: 输入的随机数列为:3,1,2,4,初始计数值m=7,从数列首位置开始计数(数值3所在位置)第一轮计数出列数字为2,计数值更新m=2,出列后数列为3,1,4,从数值4所在位置从新开始计数第二轮计数出列数字为3,计数值更新m=3,出列后数列为1,4,从数值1所在位置开始计数第三轮计数出列数字为1,计数值更新m=1,出列后数列为4,从数值4所在位置开始计数最后一轮计数出列数字为4,计数过程完成。输出数值出列顺序为:2,3,1,4。 要求实现函数:voidarray_iterate(intlen,intinput_array,intm,intoutput_array)【输入】 intle

7、n:输入数列的长度;intintput_array:输入的初始数列intm:初始计数值【输出】 intoutput_array:输出的数值出列顺序【返回】 无 示例输入:intinput_array=3,1,2,4,intlen=4,m=7输出:output_array=2,3,1,4/循环链表实现/#include#include#includetypedef struct Node int num; struct node *next; node;node *creat(int len , int input_array) node *h,*s,*p; int i; h=(node*)ma

8、lloc(sizeof(node); h-num=input_array0; p=h; for(i=1;inum=input_arrayi; p-next=s; p=s; p-next=h; return (h);void array_iterate(int len, int input_array, int m) node *q,*p,*s; int i=0,j=0,k; int output_array4; p=creat(len,input_array); while(p-next!=p) for(i=1;inext; m=p-num; printf(%5d,m); output_arr

9、ayj+=m; s=p; q-next=p-next; p=p-next; free(s); s=NULL; m=p-num; printf(%5dn,m); output_arrayj=p-num; k=j; for(j=0 ; j=k; j+) printf(%5d,output_arrayj); int main() int input_array=3,1,2,4; int len=4; int m=7; int output_array4; array_iterate(len, input_array, m, output_array);3.简单四则运算 问题描述:输入一个只包含个位数

10、字的简单四则运算表达式字符串,计算该表达式的值注: 1、表达式只含+,-,*,/四则运算符,不含括号2、表达式数值只包含个位整数(0-9),且不会出现0作为除数的情况3、要考虑加减乘除按通常四则运算规定的计算优先级4、除法用整数除法,即仅保留除法运算结果的整数部分。比如8/3=2。输入表达式保证无0作为除数情况发生5、输入字符串一定是符合题意合法的表达式,其中只包括数字字符和四则运算符字符,除此之外不含其它任何字符,不会出现计算溢出情况 要求实现函数:intcalculate(intlen,char*expStr)【输入】 intlen:字符串长度;char*expStr:表达式字符串;【输出

11、】 无【返回】 计算结果 示例1) 输入:char*expStr=“1+4*5-8/3”函数返回:192) 输入:char*expStr=“8/3*3”函数返回:6 #include /* * author by wanww * time: 2011-09-07 */using namespace std;int array_compare(int len1, int array1, int len2, int array2) if(len1 = len2) int count = 0; for (int i=0;ilen1;i+) if(array1i!=array2i) count+; r

12、eturn count; else if(len1len2) return array_compare(len1, array1,len1,array2+len2-len1); else return array_compare(len2,array1+len1-len2,len2,array2); void array_iterate(int len, int input_array, int m,int output_array) int * flag = new intlen; memset(flag,0,len*4); int hasout=0; /已经出列的数字个数 int star

13、t = 0; /开始的下标号 int j=0; /当前以报到的数字 while(true) if(flagstart = 0) /当前元素还没出列 j+; if(j=m) /已经计数到m,当前start下标的元素出列 output_arrayhasout = input_arraystart; flagstart = 1; /标记当前元素已经出列 hasout +; if(hasout = len) break; /所有的元素都已经出列,结束程序 /初始化下一轮的数字 j = 0; m = input_arraystart; start +; if(start=len) start = 0; delete flag; int calculate(int len,char *expStr)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1