中软国际入职机试题.docx

上传人:b****6 文档编号:4810895 上传时间:2022-12-09 格式:DOCX 页数:16 大小:19.50KB
下载 相关 举报
中软国际入职机试题.docx_第1页
第1页 / 共16页
中软国际入职机试题.docx_第2页
第2页 / 共16页
中软国际入职机试题.docx_第3页
第3页 / 共16页
中软国际入职机试题.docx_第4页
第4页 / 共16页
中软国际入职机试题.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

中软国际入职机试题.docx

《中软国际入职机试题.docx》由会员分享,可在线阅读,更多相关《中软国际入职机试题.docx(16页珍藏版)》请在冰豆网上搜索。

中软国际入职机试题.docx

中软国际入职机试题

1邮箱地址合法性验证,合法输出字符“1",不合法输出字符“0”

合法条件:

A仅包含一个“@”。

B最后三位必须是“。

com”

C字符直接没有空格

B有效数组是1~9、a~z、A~Z、“。

”、“@”、“_"

程序

#include

h>

intmain()

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;i〈len—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;\

#include〈stdio。

h>

intfunc(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手机电池余量显示

#include〈stdio。

h>

intfunc(intn)

{

intf1;

if(n==0)return0;

elseif((n〈=10)&&(n〉=1))

f1=1;

elseif((n〈=20)&&(n>10))

{

f1=2;

}

elseif((n〈=30)&&(n〉20))

f1=3;

elseif((n<=40)&&(n>30))

{

f1=4;

}

elseif((n<=50)&&(n〉40))

{

f1=5;

}

elseif((n<=60)&&(n〉50))

{

f1=6;

elseif((n〈=70)&&(n〉60))

f1=7;

}

elseif((n<=80)&&(n〉70))

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

#include〈stdio.h〉

intmain()

unsignedintc,tmp;

unsignedchard;

while

(1)

{

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

if((d〉=0)&&(d〈=31))

{

tmp=c;

tmp&=~(1<

tmp|=1<

c=tmp;

printf("%d”,c);

}

else

{

printf(”%s”,”inputerror");

}

}

5输入一个字符串。

交换前后顺序后再输出。

#include〈stdio。

h〉

intmain()

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课)

#include

h>

intmain()

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个整形中的众数。

#include

h〉

intmain()

inta[10],b[10]={1,1,1,1,1,1,1,1,1,1},i=0,j,max=0;;

while

(1)

{

for(i=0;i<10;i++)//输入个数

scanf("%d",&a[i]);

//把个数每个数出现的次数存到b[i]中

for(i=0;i〈9;i++)

for(j=i+1;j<10;j++)

{

if((a[i]==a[j])&&(b[i]!

=0))

{

b[i]++;

b[j]=0;

//求出b[i]中的最大值

max=b[0];

for(i=1;i<10;i++)

{

max=(max〉b[i])?

max:

b[i];

}

//把b[i]中最大值对应的a[i]中的数字输出

for(i=0;i〈10;i++)

if(b[i]==max)

{

printf(”%d”,a[i]);

}

}

}

8求两个数的最大公倍数,最大公约数。

A最大公约数求法:

1>m和n,如果m>n,k=m%n(若m

2>如果k==0,则n为最大公约数

3〉若k不等于0,m=n,n=k,再执行1〉

B最大公倍数求法:

m和n,w=m*n/最大公约数

#include

h>

intfunc(intm,intn)

intt,g;

if(m

{

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个.

输入:

字符串长度,字符串.

输出:

字符种类个数。

#include〈stdio。

h〉

voidmain()

{

chara,c,*p,tt[21];

intb,i,j,rr[21],out=0;

while

(1)

for(i=0;i〈20;i++)rr[i]=1;

scanf(”%d",&b);//先输入个数b

//输入间隔符,限定“,”或者“”

a=getchar();

if((a==’,’)||(a=='’))

{

for(i=0;i〈b;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;i〈b—1;i++)

{

for(j=i+1;j〈b;j++)

if((tt[i]==tt[j])&&(rr[i]!

=0))

{

rr[i]++;

rr[j]=0;

}

}

//统计标记rr中不为“”的个数

for(i=0;i〈b;i++)

{

if(rr[i]>0)out++;

printf("%d",out);

}

10求1~100之间的素数,并输出。

#include〈stdio。

h>

intfunc(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输入整形值转换成二进制,再由二进制转换成十进制.

#include〈stdio。

h>

intfunc(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。

小数没有回文.

#include〈stdio.h>

voidhuiwen(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);

else

printf(”%s是一个回文数\n”,str);

voidmain()

{

charstr[100]={0};

inti;

while

(1)

printf("Inputastring:

”);/*提示输入Inputastring:

*/

scanf("%s",str);/*scan()函数输入一个字符串:

*/

huiwen(str);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1