华为上机题库整理精品资料.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《华为上机题库整理精品资料.docx》由会员分享,可在线阅读,更多相关《华为上机题库整理精品资料.docx(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、以前上机考试编程工具为C/C+:VC 6.0;Java:eclipse,这次改成C/C+: VS2005(或VC6.0) Java:JDK1.7。由于本人以前学C语言花了一些功夫,相对Java用得上手些,备考时用的是C+;临考前一周接到通知,说是要用VS2005,于是下个软件再加上熟悉一下花了半天时间,手忙脚乱了一阵(建议最好用VS,毕竟有的程序在VC上能调通,在VS上可能运行不通过);2、以往的形式是给你个函数模块,函数名已写好,你只要往里面填代码就行了(华为提供的工程是将Main函数隐藏了的,所以自己不用再添加Main函数)例如: 1. 从两个数组的最后一个元素比较两个数组中不同元素的个数
2、,如有array15=77,21,1,3,5, array23=1,3,5,从array14与array22比较开始,到array12与array0比较结束。这样得出它们不同的元素个数为0,若array16=77,21,1,3,5,7,那么他们不同的元素为3。函数原型为 int compare_array( int len1, int array1, int len2, int array2 );其中,len1与len2分别为数组array1和array2的长度,函数返回值为两个数组不同元素的个数。这次是随你发挥,可以写子函数,也可以只写个main函数(当然main函数是必不可少的)。先在编译
3、环境(即VS2005或JDK1.7)上运行,调通后再复制到考试系统中,检查无误后,点击提交(不过每道题最多只能传五次);.3、以往满分是100分,第一题20分,第二题30分,第三题50分,且前两题为必做题,最后一题作为附加题;现在是满分320(有点像英语四六级改革一样,100分改成710分),第一题60分,第二题100分,第三题160分,且不分什么必做题、附加题,建议拿到题目后最好把题目都浏览一遍,不一定按顺序做,尽会做的先做;有几点需要特别注意:1、一定要按标准输入、输出来编程,且按照考试系统中规定的格式,否则即使从头到尾写的都对,系统将显示格式错误,无法得分;2、最好多试几组测试条例,否则
4、得不全分(本人已经犯过此类失误,希望后人不要重蹈覆辙);3、不要写任何程序提示语句(包括自己人为添加的换行命令),否则该题自动判0分;此外,考试时有不清楚的就问在场的工作人员,不要一个人憋在那里不吭声,浪费的是自己宝贵的时间;个人觉得华为的员工还是挺热心的,我问了不少问题,他们都跟我详细解答的,在此感谢他们的热忱相助。1、删除子串删除子串只要是原串中有相同的子串就删掉,不管有多少个,返回子串个数。自己编的:#include #include #include int del_sub_str ( char *str, char *sub_str,char *result );int main (
5、void) int count;char result100;char str100;char sub_str100;printf(Please insert your strings!n);gets(str);printf(Please insert your sub_strings!n);gets(sub_str); count=del_sub_str(str,sub_str,result);printf(The deleted strings are:n);puts(result);printf(The num is:%dn,count);return 0;int del_sub_str
6、 ( char *str, char *sub_str,char *result )int n;int count=0;char *p=str,*q=sub_str,*r=result;n=strlen(q);while(*p!=0 )if(strncmp(p,q,n)=0)count+;p+=n;else *r=*p;r+;p+;*r=0;return count;约瑟夫环约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3.n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全
7、部出列。#include#includetypedef struct Node/ 声明新的类型名(struct)来代替原有的类型名(Node)int num;struct Node *next;LinkList;LinkList *creat(int n)LinkList *p,*q,*head; /定义了三个结构体int i=1; p=(LinkList *)malloc(sizeof(LinkList); p-num=i;head=p;for(i=2;inum=i;p-next=q; p=q; p-next=head; /*使链表尾指向链表头形成循环链表*/return head;void
8、 fun(LinkList *L,int k,int m)int i;LinkList *p,*s,*q;p=L;printf(出列顺序为:);for(i=1;inext;while(p-next!=p)for(i=1;inext;printf(%5d,p-num); s=p;q-next=p-next;p=p-next;free(s);printf(%5dn,p-num);int main()LinkList *L;int n, m,k;n=9;m=5;k=2;L=creat(n);fun(L,k,m);return 0;4、数组&回文数组#include #include void hui
9、wen(char str)int i,len,k=1;len=strlen(str);for(i=0;ilen/2;i+)if(stri!=strlen-i-1) /str一般结尾处有0,所以需要-1k=0;break;if(k=0) printf(%s 不是一个回文数n,str);elseprintf(%s 是一个回文数n,str);void main() char str100 = 0; printf(Input a string:n); /*提示输入Input a string:*/scanf(%s, str); /*scan()函数输入一个字符串:*/huiwen(str);5.数组比
10、较 问题描述:比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果2个数组长度不等,则只比较较短长度数组个数元素。请编程实现上述比较,并返回比较中发现的不相等元素的个数比如:数组1,3,5和数组77,21,1,3,5按题述要求比较,不相等元素个数为0数组1,3,5和数组77,21,1,3,5,7按题述要求比较,不相等元素个数为3 要求实现函数:intarray_compare(intlen1,intarray1,intlen2,intarray2)【输入】 intlen1:输入被比较数组1的元素个数;intarray1:输入被比较数组1;intlen2:输入被比较数组2的元素个数;i
11、ntarray2:输入被比较数组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函数返回:#include#include#includeint array_compare(int len1, int array1, int len2, int array2)int count=0;for( ;len1=0&len2
12、=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, len2, array2); /result=array_compare( len1, array1, len2, array2);不能这样 / 函数形参中永远只是传得首地址,不能传数组 切记切记!printf(the resu
13、lt is %d, result);6、手机号码合法性判断(20分)l 问题描述:我国大陆运营商的手机号码标准格式为:国家码+手机号码,例如:8613912345678。特点如下:1、 长度13位;2、 以86的国家码打头;3、 手机号码的每一位都是数字。请实现手机号码合法性判断的函数要求:1) 如果手机号码合法,返回0;2) 如果手机号码长度不合法,返回13) 如果手机号码中包含非数字的字符,返回2;4) 如果手机号码不是以86打头的,返回3;【注】除成功的情况外,以上其他合法性判断的优先级依次降低。也就是说,如果判断出长度不合法,直接返回1即可,不需要再做其他合法性判断。l 要求实现函数:
14、int verifyMsisdn(char* inMsisdn)【输入】 char* inMsisdn,表示输入的手机号码字符串。【输出】 无【返回】 判断的结果,类型为int。l 示例输入: inMsisdn = “869123456789“输出: 无返回: 1输入: inMsisdn = “88139123456789“输出: 无返回: 3输入: inMsisdn = “86139123456789“输出: 无返回: 0#include#include#include#include#define LENGTH 13int verifyMsisdn(char *inMsisdn)char
15、*pchar=NULL;assert(inMsisdn!=NULL);if(LENGTH=strlen(inMsisdn)if(8=*inMsisdn)&(*(inMsisdn+1)=6)while(*inMsisdn!=0)if(*inMsisdn=0)&(*inMsisdn=9) /判断字符串全为数字inMsisdn+;elsereturn 2 ; /return 会跳出被调用函数elsereturn 3;elsereturn 1;return 0;int main()char *pchar=NULL;unsigned char ichar=0;int result;switch(icha
16、r)case 0:pchar=8612345363789;break;case 1:pchar=861111111111111;break;case 2:pchar=86s1234536366; break;default: break;result =verifyMsisdn(pchar);printf(result is %dn,result);7、合并字符串(指针)说明:编写一个程序实现功能:将两个字符串合并为一个字符串并且输出,用指针实现。char str120=“Hello ”, str220=“World ”;答案:#include int main()char str120=“H
17、ello ”, str220=“World ”;char *p=str1, *q=str2;while( *p ) p+;while( *q ) *p = *q;p+;q+; *p = 0;printf(“%sn”, str1);return 0;8、选秀节目打分分为专家评委和大众评委,score 数组里面存储每个评委打的分数,judge_type 里存储与 score 数组对应的评委类别,judge_typei = 1,表示专家评委,judge_typei = 2,表示大众评委,n表示评委总数。打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分取整),然后,总分 = 专家评委平
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华为上机题库整理 精品资料 华为 上机 题库 整理 精品 资料
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内