《南瑞笔试题.docx》由会员分享,可在线阅读,更多相关《南瑞笔试题.docx(13页珍藏版)》请在优知文库上搜索。
1、1 .找出一个数组中满足2N的元素#includeusingnamespacestd;intfind(inta,intlen);voidmainO(inta=l,2,3,5,7,8,16;intlen=sizeof(a)sizeof(int);计算数组中元素的个数;coutfind(a,len)endl;intfind(inta,intlen)(inti;intcount=0;for(i=0;ilen;i+)(if(0=(ai(ai-l)且运算count+;)returncount;)2 .报数:共n个人从1编号,设从第S个人报号,报到In出队3 .统计一个数二进制表达中0的个数(首位1之前0
2、不计)本题关键是如何把十进制数转换成二进制ftincludeusingnamespacestd;intfun(intnum);intmain()intnum;coutnum;coutfun(num)endl;return0;intfun(intnum)(intcount=0;inti=0;while(num)(if(num&1)(count+;)num=num1;i+;)return(i-count);)4 .镜像反转二进制表达式,并输出十进制值ttincludeusingnamespacestd;intfunc(inta);main()(intn;coutn;coutfunc(n)endl;
3、intfunc(inta)(intval=0;inttemp;inti;intn=0;intb100;while(a!-0)(temp=(a&l);bn+=temp;a=(al);)for(i=0;in;i+)val=val*2+bi;returnval;5,判断一个字符串中。是否配对ttincludeusingnamespacestd;boolmatch(chara,intlength);intmain()charb100;intIen;boolm;cout,zenter:z,endl;gets(b);len-strlen(b);m=match(b,len);if(m)cout,zmatch
4、,zendl;elsecoutyznonmatchz,countl)returnfalse;P+;)if(countl=count2)returntrue;elsereturnfalse;)6 .链表倒序Node*Reverse(Node*head)Node*pl,*p2,*p3;if(head=NULLIhead-NULL)returnhead;pl=head;p2=pl-next;while(p2)p3=p2-next;p2-next=pl;P1=P2;p2=p3;head-next=NULL;head-pl;returnhead;)7 .查找子字符串个数8 .关于数组的循环移位inclu
5、deusingnamespacestd;voidfunc(int*p,intn,intk);voidmain()inta=l,2,3,4,5);inti;func(a,5,2);/couta0ala2a3a4endl;for(i=0;i=O)(while(k)(temp=pn-l;for(i=n-l;i0;i一)pi=pi-l;p0=temp;k一;)elseif(kO)k=k*(-l);while(k)(temp=p0;for(i=l;in;i+)pi-U=pi;pn-l=temp;)9 .将两个大型整数相乘(设它们分别存储在Chara100,b100中)10 .将字符串中的所有字母都替换成
6、该字母的下一个字母includeusingnamespacestd;#includeinclude#includevoidfunc(char*p);voidmain()(charstrl20;Printf(enter:);gets(strl);func(strl);puts(strl);)voidfunc(char*p)(charch;while(*p)ch=*p;if(isalpha(*p)&(*p!=,z,)&(*p!=Z,)* p=ch+l;elseif(*p=,z,)* p=a,;elseif(*p=Z)* P=,A,;P+;11 .回文判断#includeusingnamespace
7、std;boolfunc(intm);voidmain()(intm;coutm;coutfunc(m)endl;boolfunc(intm)(inti,n=0;i=m;while(i)(n=n*10+i%10;i=10;if(m=n)returntrue;returnfalse;12 .将一个“1234”的字符串转化为1234整型#include#include#includeusingnamespacestd;intfunc(chara);voidmainO(chara=l,2,3,4,0;/coutz,1234zzendl;coutfunc(a)0,)(sum=sum*10+(ai-,0
8、,);i+;)returnsum;13 .求一个二维数组每列的最小值ftincludeincludeusingnamespacestd;voidfunc(intp34,intq);voidmain()(intb4;inta34=12,25,10,45,11,23,54,5,9,33,43,32;func(a,b);cout,z每列的最小值分别是*b0*blC,b2C,*b3endl;voidfunc(intp34,intq)(inti;intj;for(j=0;j4;j+)(qj=pOj;for(i=0;ipij)(qj=pij;)14 .连续字符统计(如AABCCCD:A2B1C3D1)#i
9、nclude#include#includeusingnamespacestd;voidfunc(charstr,intlen);voidmain()(charstr20;intIen;cout,zenter:;gets(str);len=strlen(str);func(str,len);voidfunc(charstr,intlen)(intcount=l;inti;for(i=0;ilen;i+)(if(stri=stri+l)count+;elsecoutstricount;count=l;)coutendl;15 .找出一个字符串中是否包含相同的子字符串(要求子串长度大于等于2)16
10、 .已知:yiersansiwuIiuqibajiu分别对应123456789,对一段只含有这几种字符的字符串进行转换,转换成相应的数字如:yiersansan:123317删除字符串中字符个数最少的字符如:abcdd:dd18.两个超大整数相加高级:Lloo位字符串整数相乘2 .找出一段字符串中出现最频繁的单词3 .找出字符串中包含的最大回文4 .找出几个字符串中最长的公共子串voidfind(char*pln,intn)5 .替换原字符串中指定子串为新子串如:abcdeffgcd:将cd换成dabdeffgd6 .查找一个字符串中的指定子字符串个数char*p,*q=str;intcnt=O;while(l)P=Strstr(q,substr);返回子字符串substr在Str中第一次出现的位置if(p=NULL)break;ent+;q=p+2;子字符串长度为2returnent;7 .将一个数组循环移位,包括左移和右移8 .将一个字符串中的字母都改为下一个字母char*p=s,ch;while(*p)(ch=*p;if(isalpha(ch)&ch!=z,&ch!=Z,)* p-ch+l;elseif(ch-,z,)* P=a,;elseif(ch=,Z,)* p=A;P+;