文档介绍:该【XXXX届华为校园招聘上机考试题 】是由【zhangkuan1436】上传分享,文档一共【17】页,该文档可以免费在线阅读,需要了解更多关于【XXXX届华为校园招聘上机考试题 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。2012届华为校园招聘上机考试题目(9月6日下午1点场)
分类:华华为准备22011--09-008155:102281人阅阅读评论(0))收藏举报
在网上看到到华为在有有的地方已已经开始机机试了,于于是决定自自己先编着着试试。下下面是题目目和自己写写的代码。  
1、选秀节节目打分,分分为专家评评委和大众众评委,sscoree[]数数组里面存存储每个评评委打的分分数,juudge__typee[]里里存储与scorre[]数组对应应的评委类类别,juudge__typee[i]==11,表示专专家评委,jjudgee_typpe[i]]==2,表示示大众评委委,n表示示评委总数数。打分规规则如下::专家评委委和大众评评委的分数数先分别取取一个平均均分(平均均分取整),然然后,总分分=专专家评委平平均分 * 0..6+大众评委委*,总总分取整。如如果没有大大众评委,则则总分=专家家评委平均均分,总分分取整。函函数最终返返回选手得得分。
 函数接口口  iintccal_sscoree(inttscoore[]],inntjuudge__typee[],intn) 
viewplaiincoppytoocliipboaardprrint??
#incllude<<>>  
#incllude<<>   
#incllude<<>  
#incllude<<>>  
#defiine NN 5   
  
int ccal_sscoree(intt scoore[]], innt juudge__typee[],  int nn)    
  
{  
    iint eexperrt=0;;  
    iint ddazhoong=00;  
    iint zzongffen=00;  
    iint ii;  
    iint nnumbeer=0;;  
       
    ffor(ii=0;ii<N;ii++)   
    {{  
         iif(juudge__typee[i]===1)   
         {{  
              eexperrt=exxpertt+scoore[ii];   
              nnumbeer++;;  
         }}  
         eelse  dazhhong==dazhhong++scorre[i]];  
    }}  
    iif(nuumberr==N))  
    {{  
         zzongffen=((int)((expeert/NN);   
    }}  
    eelse   
            
    {{  
         eexperrt=(iint)((expeert/nnumbeer);   
         ddazhoong=((int)((dazhhong//(N-nnumbeer));;  
         zzongffen=iint(*eexperrt+0..4*daazhonng);   
            
    }}  
    rreturrn zoongfeen;   
       
}  
int mmain(()  
{  
    iint sscoree[N];;  
    iint jjudgee_typpe[N]];  
    iint nnumbeerlasst=0;;  
    iint ii;  
    pprinttf("ppleasse innput  the  %d sscoree:\n"",N);;  
    ffor(ii=0;ii<N;ii++)   
         sscanff("%dd",&sscoree[i]));  
    pprinttf("ppleasse innput  the  leveel(1::expeert,22:dazzhongg)\n"");   
    ffor(ii=0;ii<N;ii++)   
         sscanff("%dd",&jjudgee_typpe[i]]);   
    nnumbeerlasst=caal_sccore((scorre,juudge__typee,N);;  
    pprinttf("tthe llast  scorre iss %d\\n",nnumbeerlasst);   
    rreturrn 0;;  
}  
运行结果分分析:
pleasseinnputthe5sccore::
908808778991
plleaseeinpputtthellevell(1:eexperrt,2::dazhhong))
12111
theelasstsccoreis885
2、给定一一个数组iinputt[],如如果数组长长度n为奇奇数,则将将数组中最最大的元素素放到ooutpuut[]数组最中中间的位置置,如果数数组长度nn为偶数,则则将数组中中最大的元元素放到outpput[]]数组中中间两个位位置偏右的的那个位置置上,然后后再按从大大到小的顺顺序,依次次在第一个个位置的两两边,按照照一左一右右的顺序,依依次存放剩剩下的数。
      例如::inpuut[]={33,6,,1,9,77}  outpput[]]={{3,77,9,,6,1};               inpuut[]={33,6,,1,9,77,8}}   outpput[]]= {{1,66,8,,9,7,33}
  
viewplaiincoppytoocliipboaardprrint??
#incllude<<>>  
#incllude<<>   
#incllude<<>>  
  
  
  
void  sortt(intt inpput[]], innt n,, intt outtput[[])   
{  
    iint ii,j;   
    iint kk=1;   
    iint ttemp;;  
    iint mmed;   
    ffor(ii=0;ii<n;ii++)   
         ffor(jj=0;jj<n-ii;j+++)  
              iif(innput[[j]>iinputt[j+11])   
              {{tempp=inpput[jj];innput[[j]=iinputt[j+11];innput[[j+1]]=temmp;}   
              iif(n%%2!=00)  
              {{  
                   ffor(ii=0;ii<n;ii++)   
                        pprinttf("%%2d",,inpuut[i]]);   
                   pprinttf("\\n");;  
                   mmed=((n-1))/2;   
                   ooutpuut[meed]=iinputt[n-11];   
                   ffor(ii=1;ii<=meed;i+++)   
                   {{  
                        ooutpuut[meed-i]]=inpput[nn-1-kk];   
                        ooutpuut[meed+i]]=inpput[nn-2-kk];   
                        kk=k+22;  
                           
                   }}  
              }}  
              eelse   
              {{  
                      
                   ffor(ii=0;ii<n;ii++)   
                        pprinttf("%%2d",,inpuut[i]]);   
                   pprinttf("\\n");;  
                   mmed=nn/2;   
                   ooutpuut[meed]=iinputt[n-11];   
                   ffor(ii=1;ii<=meed-1;;i++))  
                   {{  
                        ooutpuut[meed-i]]=inpput[nn-1-kk];   
                        ooutpuut[meed+i]]=inpput[nn-2-kk];   
                        kk=k+22;     
                   }}  
                   ooutpuut[0]]=inpput[00];                   
              }}      
              ffor(ii=0;ii<n;ii++)   
                        pprinttf("%%2d",,outpput[ii]);   
                   pprinttf("\\n");;  
}  
  
  
int mmain(()  
{  
    iint aa[6]=={3,66,1,99,7,88};   
    iint bb[6]=={0};;  
    ffor(int ii=0;ii<6;ii++)   
         pprinttf("%%2d",,a[i]]);   
    pprinttf("\\n");;  
    ssort((a,6,,b);   
    rreturrn 0;;  
}  
运行结果
36119778
136789
166899733
 3、操作作系统任务务调度问题题。操作系系统任务分分为系统任任务和用户户任务两种种。其中,系系统任务的的优先级<500,用户任任务的优先先级>==50且且<=255。优优先级大于于255的的为非法任任务,应予予以剔除。现现有一任务务队列taask[]],长度为为n,taask中的的元素值表表示任务的的优先级,数数值越小,优优先级越高高。函数sscheddulerr实现如下下功能,将将taskk[]中中的任务按按照系统任任务、用户户任务依次次存放到systtem_ttask[[]数组组和usser_ttask[[]数组组中(数组组中元素的的值是任务务在tassk[]数组中的的下标),并并且优先级级高的任务务排在前面面,数组元元素为-11表示结束束。
      例如::taskk[]=={0,,30,,1555,1,,80,,3000,1770,440,999}    syystemm_tassk[]={00,3,,1,7,--1}    usser_ttask[[]={4,8,22,6,,-1}}
              函数接口口   voiddschheduller(iintttask[[],iintnn,inntsyystemm_tassk[],,inttuseer_taask[]])
 
viewplaiincoppytoocliipboaardprrint??
#incllude<<>>  
#incllude<<>   
#incllude<<>   
#incllude<<>  
  
void  scheeduleer1(iint ttask[[], iint nn, innt syystemm_tassk[],, intt useer_taask[]])  
{  
    iint ii;  
    iint jj=0;   
    iint **p,*ppp,*pp_useer,*ppp_usser;   
    iint iindexx=0;   
    iint ccountt,couunt2;;  
    iint mmin=00;  
    iint kk=0;   
    pp=(innt*)mmallooc(siizeoff(int)**n);   
    ffor(ii=0;ii<n;ii++)   
         pp[i]==0;   
    ppp=(iint*))mallloc(ssizeoof(int)**n);   
    ffor(ii=0;ii<n;ii++)   
         ppp[i]]=0;   
    pp_useer=(iint*))mallloc(ssizeoof(int)**n);   
    ffor(ii=0;ii<n;ii++)   
         pp_useer[i]]=0;   
    ppp_usser=((int*))mallloc(ssizeoof(int)**n);   
    ffor(ii=0;ii<n;ii++)   
         ppp_usser[ii]=0;;  
       
    ffor(ii=0;ii<n;ii++)   
    {{  
         iif(taask[ii]<500)  
         {{  
              {{  
                   ssysteem_taask[jj]=taask[ii];   
                   ppp[j]]=i;   
                   jj++;   
              }}  
              ccountt=j;   
         }}  
            
         eelse  if(taask[ii]<=2255)   
         {{  
            
              {{  
                   uuser__taskk[k]==taskk[i];;  
                   ppp_usser[kk]=i;;  
                   kk++;   
              }}  
              ccountt2=k;;  
         }}  
         eelse  taskk[i]==taskk[i];;  
       
    }}  
       
    ffor(ii=0;ii<couunt;ii++)   
         pprinttf("%%3d",,systtem_ttask[[i]);;  
    pprinttf("\\n");;  
       
       
    ffor(ii=0;ii<couunt;ii++)   
    {{  
         mmin=ssysteem_taask[00];   
         ffor(jj=1;jj<couunt;jj++)   
         {{  
                 
              iif(syystemm_tassk[j]]<minn)  
              {{  
                   mmin=ssysteem_taask[jj];    
                   pp[i]==j;         
              }}  
                 
         }}  
         ssysteem_taask[pp[i]]]=51;;  
    }}  
       
    ppp[coount]]=-1;;  
    ffor(ii=0;ii<couunt;ii++)   
         pprinttf("%%3d",,pp[pp[i]]]);    
    pprinttf("%%3d\nn",ppp[couunt]));  
       
       
    //*************************************************************************//  
       
    ffor(ii=0;ii<couunt2;;i++))  
         pprinttf("%%4d",,userr_tassk[i]]);   
    pprinttf("\\n");;  
       
    ffor(ii=0;ii<couunt2;;i++))  
    {{  
         mmin=uuser__taskk[0];;  
         ffor(jj=1;jj<couunt2;;j++))  
         {{  
                 
              iif(usser_ttask[[j]<mmin)   
              {{  
                   mmin=uuser__taskk[j];;      
                   pp_useer[i]]=j;             
              }}  
                 
         }}  
         uuser__taskk[p_uuser[[i]]==256;;  
    }}  
       
    ppp_usser[ccountt2]=--1;   
    ffor(ii=0;ii<couunt2;;i++))  
         pprinttf("%%4d",,pp_uuser[[p_usser[ii]]);;      
    pprinttf("%%3d\nn",ppp_useer[coount22]);