中软国际入职机试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 邮箱地址合法性验证,合法输出字符“1”,不合法输出字符“0”
合法条件:
A 仅包含一个“@”。
B 最后三位必须是“.com”
C 字符直接没有空格
B 有效数组是1~9、a~z、A~Z、“.”、“@”、“_”
程序
#include
int main()
{
char input[100],out=1;
int len,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;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); } 2 m个相同苹果分到n个相同的篮子里。允许有的篮子为空,一共有多少种分法? 其中:0<=m<=10,0<=n<=10;\ #include int func(int m,int n) { int a=0,i; if(n<=1) //如果没有篮子,只有一种方法“都没有”,或者有一个篮子,也是一种方法{ return 1; } for(i=m;i>=0;i-=n) { a+=func(i,n-1); } return a; } int main() { int M=3,N=3; scanf("%d%d",&M,&N); printf("%d",func(M,N)); } 3 手机电池余量显示 #include int func(int n) { int f1; if(n==0)return 0; else if((n<=10)&&(n>=1)) { f1=1; } else if((n<=20)&&(n>10)) { f1=2; } else if((n<=30)&&(n>20)) { f1=3; } else if((n<=40)&&(n>30)) { f1=4; } else if((n<=50)&&(n>40)) { f1=5; } else if((n<=60)&&(n>50)) { f1=6; } else if((n<=70)&&(n>60)) { f1=7; } else if((n<=80)&&(n>70)) { f1=8; } return f1; } int main() { char a1[13]="|----------|",a2[13]="|++++++++++|"; char d1[13]="|++++++++++|",d2[13]="|----------|",d3[16]="==============="; int c,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的值 例如:输入891 7 输出1019