中软国际入职机精彩试题.docx

上传人:b****8 文档编号:10053442 上传时间:2023-02-08 格式:DOCX 页数:17 大小:17.80KB
下载 相关 举报
中软国际入职机精彩试题.docx_第1页
第1页 / 共17页
中软国际入职机精彩试题.docx_第2页
第2页 / 共17页
中软国际入职机精彩试题.docx_第3页
第3页 / 共17页
中软国际入职机精彩试题.docx_第4页
第4页 / 共17页
中软国际入职机精彩试题.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

中软国际入职机精彩试题.docx

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

中软国际入职机精彩试题.docx

中软国际入职机精彩试题

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

合法条件:

A仅包含一个“”。

B最后三位必须是“.”

C字符直接没有空格

B有效数组是1~9、a~z、A~Z、“.”、“”、“_”

程序

#include

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

{

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

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

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

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

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

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

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

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

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

{

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

{

for(j=i+1;j

{

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

=0))

{

rr[i]++;

rr[j]=0;

}

}

}

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

for(i=0;i

{

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

}

printf("%d",out);

}

}

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

#include

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

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

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