中软国际入职机试题

  • 格式:docx
  • 大小:16.16 KB
  • 文档页数:9

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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' ))||((inpu t[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 个相同的篮子里。允许有的篮子为空,一共有多少种分法?其中:#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 #include

int main()

{

unsigned int c,tmp;

unsigned char d;

while (1)

{

scanf( "%d%d,"&c,&d);

if ((d>=0)&&(d<=31))

{

tmp=c; tmp&=~(1<

c=tmp;

printf( "%d",c);

}

else

{

printf( "%s", "input error" );

}

}

}

5 输入一个字符串。交换前后顺序后再输出。

#include

int main()

{

char a[100],b[100];

int len,i;

while (1)

{

scanf( "%s",a); len=strlen(a);

for (i=len;i>=0;i--)

{