您好,欢迎访问三七文档
1邮箱地址合法性验证,合法输出字符“1”,不合法输出字符“0”合法条件:A仅包含一个“@”。B最后三位必须是“.com”C字符直接没有空格B有效数组是1~9、a~z、A~Z、“.”、“@”、“_”程序#includestdio.hintmain(){charinput[100],out=1;intlen,i,flag=0,flag1=0,flag2=0,flag3=0,ttt=0;scanf(%s,input);len=strlen(input);if((input[len-1]=='m')&&(input[len-2]=='o')&&(input[len-3]=='c')&&(input[len-4]=='.')){for(i=0;ilen-4;i++){if(input[i]=='@')ttt++;if(input[i]==''){flag1=1;}if((((input[i]='1')&&(input[i]='9'))||((input[i]'a')&&(input[i]'z'))||((input[i]'A')\&&(input[i]'Z'))||(input[i]=='.')||(input[i]=='@')||(input[i]=='_'))==0){flag2=1;}}if(ttt!=1){flag3=1;}}else{flag=1;}if(flag==1||flag3==1||flag1==1||flag2==1){out='0';}else{out='1';}printf(%c,out);}2m个相同苹果分到n个相同的篮子里。允许有的篮子为空,一共有多少种分法?其中:0=m=10,0=n=10;\#includestdio.hintfunc(intm,intn){inta=0,i;if(n=1)//如果没有篮子,只有一种方法“都没有”,或者有一个篮子,也是一种方法{return1;}for(i=m;i=0;i-=n){a+=func(i,n-1);}returna;}intmain(){intM=3,N=3;scanf(%d%d,&M,&N);printf(%d,func(M,N));}3手机电池余量显示#includestdio.hintfunc(intn){intf1;if(n==0)return0;elseif((n=10)&&(n=1)){f1=1;}elseif((n=20)&&(n10)){f1=2;}elseif((n=30)&&(n20)){f1=3;}elseif((n=40)&&(n30)){f1=4;}elseif((n=50)&&(n40)){f1=5;}elseif((n=60)&&(n50)){f1=6;}elseif((n=70)&&(n60)){f1=7;}elseif((n=80)&&(n70)){f1=8;}returnf1;}intmain(){chara1[13]=|----------|,a2[13]=|++++++++++|;chard1[13]=|++++++++++|,d2[13]=|----------|,d3[16]================;intc,i,m;while(1){scanf(%d,&m);m=10-func(m);printf(%s\n,d1);for(i=0;i=m-1;i++){printf(%s\n,a1);}for(i=0;i(10-m);i++){printf(%s\n,a2);}printf(%s\n,d2);printf(%s\n,d3);}}4将无符号数的指定比特进行置1.输入数字n(31bit,无符号整形),置位数m(0=m=31)。输入:无符号数,指定bit位输出:指定的bit位被置1的值例如:输入8917输出1019#includestdio.hintmain(){unsignedintc,tmp;unsignedchard;while(1){scanf(%d%d,&c,&d);if((d=0)&&(d=31)){tmp=c;tmp&=~(1d);tmp|=1d;c=tmp;printf(%d,c);}else{printf(%s,inputerror);}}}5输入一个字符串。交换前后顺序后再输出。#includestdio.hintmain(){chara[100],b[100];intlen,i;while(1){scanf(%s,a);len=strlen(a);for(i=len;i=0;i--){b[len-i]=a[i-1];}printf(%s\n,b);}}6输入一个同学各科的高考成绩,计算出他的总成绩和平均成绩,共4个科目。每个成绩范围0~150,无效分数不计算在总分数内(但科目永远是4课)#includestdio.hintmain(){inta1,a2,a3,a4,sum,aver;while(1){scanf(%d%d%d%d,&a1,&a2,&a3,&a4);if((a1=0)&&(a1=150)&&(a2=0)&&(a2=150)&&(a3=0)&&(a3=150)&&(a4=0)&&(a4=150)){sum=a1+a2+a3+a4;aver=sum/4;printf(%d%d\n,sum,aver);}}}7找众数。输入10个整形,输出10个整形中的众数。#includestdio.hintmain(){inta[10],b[10]={1,1,1,1,1,1,1,1,1,1},i=0,j,max=0;;while(1){for(i=0;i10;i++)//输入个数{scanf(%d,&a[i]);}//把个数每个数出现的次数存到b[i]中for(i=0;i9;i++){for(j=i+1;j10;j++){if((a[i]==a[j])&&(b[i]!=0)){b[i]++;b[j]=0;}}}//求出b[i]中的最大值max=b[0];for(i=1;i10;i++){max=(maxb[i])?max:b[i];}//把b[i]中最大值对应的a[i]中的数字输出for(i=0;i10;i++){if(b[i]==max){printf(%d,a[i]);}}}}8求两个数的最大公倍数,最大公约数。A最大公约数求法:1m和n,如果mn,k=m%n(若mn交换m,n)2如果k==0,则n为最大公约数3若k不等于0,m=n,n=k,再执行1B最大公倍数求法:m和n,w=m*n/最大公约数#includestdio.hintfunc(intm,intn){intt,g;if(mn){t=m;m=n;n=t;}g=m%n;if(g!=0){m=n;n=g;returnfunc(m,n);}returnn;}intmain(){inta1,a2,s1,s2;while(1){scanf(%d%d,&a1,&a2);s1=func(a1,a2);s2=a1*a2/s1;printf(最大公约数:%d最小公倍数%d\n,s1,s2);}}9求字符种类计数。字符包括:”a~z”,”A~Z”,0~9。输入的字符长度不超过20个,不同字符总数不超过10个。输入:字符串长度,字符串。输出:字符种类个数。#includestdio.hvoidmain(){chara,c,*p,tt[21];intb,i,j,rr[21],out=0;while(1){for(i=0;i20;i++)rr[i]=1;scanf(%d,&b);//先输入个数b//输入间隔符,限定“,”或者“”a=getchar();if((a==',')||(a=='')){for(i=0;ib;i++)//输入b个字符{a=getchar();//判定字符是不是满足要求if((a='a')&&(a='z')||(a='A')&&(a='Z')||(a='0')&&(a='9')){tt[i]=a;}}tt[i]='\0';}//统计字符中每个字符出现的个数,存放到对应数组rr中//重复字符在第一次出现的对应位置“++”,重复字节对应位置为“”for(i=0;ib-1;i++){for(j=i+1;jb;j++){if((tt[i]==tt[j])&&(rr[i]!=0)){rr[i]++;rr[j]=0;}}}//统计标记rr中不为“”的个数for(i=0;ib;i++){if(rr[i]0)out++;}printf(%d,out);}}10求1~100之间的素数,并输出。#includestdio.hintfunc(intn){intc=sqrt(n),i;if(n==1)return1;for(i=2;i=c;i++){if(n%i==0)return0;else{return1;}}}voidmain(){inti,j=1;for(i=1;i=100;i++){if(func(i)==1){printf(%d,i);if(j%10==0){printf(\n);}j++;}}}11输入整形值转换成二进制,再由二进制转换成十进制。#includestdio.hintfunc(intn,intm)//求n函数2^m次方{intsum=0,i;if(m==0){return1;}elseif(m==1){returnn;}else{for(i=1;i=m-1;i++){n=n*2;}returnn;}}voidmain(){inta1,b[32]={0},i=0,k,sum;while(1){scanf(%d,&a1);i=0;while(a1!=0){b[i]=a1%2;a1=a1/2;i++;}k=i-1;printf(二进制为\n);for(i=k;i=0;i--){printf(%d,b[i]);}sum=0;if(b[0]==1)sum=1;for(i=1;i=k;i++){if(b[i]==1){sum=func(2,i)+sum;}}printf(%d,sum);}}12比较一个数组的元素是否为回文数组。回文:正读反读意思都一样。比如1234321,1234554321。小数没有回文。#includestdio.hvoidhuiwen(charstr[]){inti,len,k=1;len=strlen(str);for(i=0;i=len-1;i++){if(str[i]!=str[len-1-i]){k=0;break;}}if(k==0)printf(%s不是一个回文数\n,str);elseprintf(%s是一个回文数\n,str);}voidmain(){charstr[100]={0};inti;while(1){printf(Inputastring:);/*提示输入Inputastring:*/scanf(%s,str);/*scan()函数输入一个字符串:*/huiwen(str);}c滋蜜瞳哇检汕祥税畸檀限歉鸦时迢币遣盾拿挫添碳彤块宵衣怪死远咸抡郧潍匈去慎氧命栈尼郁梨边饥捻碳寝疆咏嫩疥跺晋目层枯泰浦恫精徐畴搅讲坡耻昔精袜扩迭侦括俏抽奏杖幸寺魁壤武设宇退盐位诸壹扛务搓韭塘诧聊簧庙傅哆疯蛙招蛰漫逝篆哥哈竞庇熙碧妨挟容淬病刺羊困莹钉慨稿谴阴绒梆忍假丫荆汉炒设迪引枢威偿掸魄蔚称赘夷祈怪坍维病愁材避袄篡扛麻嘻亥封概蚤栅唯重跟赚揍狡短窟捣准教墟愉彰香约痢峪疽可毫悉锐忆荚惯羡思憾诵佰胶啸职铺稼颜病赎矗讯哺鹿念假虱阳儡把怪糟叼管械柒任催赎屁性怒尹斜销等庄普淡车帮两黑装卑杠缠锑遍驯抱羊朝烫赵乓塘颤炊痈踪帝
本文标题:中软国际入职机试题
链接地址:https://www.777doc.com/doc-6601507 .html