1、中软国际入职机试题优选稿 集团公司文件内部编码:(TTT-UUTT-MMYB-URTTY-ITTLTY-DBTTY-9886)中软国际入职机试题1 邮箱地址合法性验证,合法输出字符“1”,不合法输出字符“0” 合法条件: A 仅包含一个“”。 B 最后三位必须是“.com” C 字符直接没有空格 B 有效数组是19、az、AZ、“.”、“”、“_” 程序#include int main() char input100,out=1; int len,i,flag=0,flag1=0,flag2=0,flag3=0,ttt=0; scanf(%s,input); len=strlen(input
2、); if(inputlen-1=m)&(inputlen-2=o)&(inputlen-3=c)&(inputlen-4=.) for(i=0;i=1)&(inputia)&(inputiA) &(inputiZ)|(inputi=.)|(inputi=)|(inputi=_)=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=
3、10,0=n=10;#include int func(int m,int n) int a=0,i; if(n=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=1) f1=1; else if(n10) f1=2; else if(n20) f1=3; else if(n30) f1=4; else if(n40
4、) f1=5; else if(n50) f1=6; else if(n60) f1=7; else if(n70) f1=8; return f1;int main() char a113=|-|,a213=|+|; char d113=|+|,d213=|-|,d316=; int c,i,m; while(1) scanf(%d,&m); m=10-func(m); printf(%sn,d1); for(i=0;i=m-1;i+) printf(%sn,a1); for(i=0;i(10-m);i+) printf(%sn,a2); printf(%sn,d2); printf(%sn
5、,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&=(1d); tmp|=1d; c=tmp; printf(%d,c); else printf(%s,input error); 5 输入一个字符串。交换前后顺序后再输出
6、。#include int main() char a100,b100; int len,i; while(1) scanf(%s,a); len=strlen(a); for(i=len;i=0;i-) blen-i=ai-1; printf(%sn,b); 6 输入一个同学各科的高考成绩,计算出他的总成绩和平均成绩,共4个科目。每个成绩范围0150,无效分数不计算在总分数内(但科目永远是4课)#include int main() int a1,a2,a3,a4,sum,aver; while(1) scanf(%d%d%d%d,&a1,&a2,&a3,&a4); if(a1=0)&(a1
7、=0)&(a2=0)&(a3=0)&(a4=150) sum=a1+a2+a3+a4; aver=sum/4; printf(%d %dn,sum,aver); 7 找众数。输入10个整形,输出10个整形中的众数。#include int main() int a10,b10=1,1,1,1,1,1,1,1,1,1,i=0,j,max=0; while(1) for(i=0;i10;i+) /输入个数 scanf(%d,&ai); /把个数每个数出现的次数存到bi中 for(i=0;i9;i+) for(j=i+1;j10;j+) if(ai=aj)&(bi!=0) bi+; bj=0; /求
8、出bi中的最大值 max=b0; for(i=1;ibi)max:bi; /把bi中最大值对应的ai中的数字输出 for(i=0;i m和n,如果mn,k=m%n (若m 如果k=0,则n为最大公约数3 若k不等于0,m=n,n=k,再执行1 B 最大公倍数求法: m和n,w=m*n/最大公约数#include int func(int m,int n) int t,g; if(mn) t=m; m=n; n=t; g=m%n; if(g!=0) m=n; n=g; return func(m,n); return n;int main() int a1,a2,s1,s2; while(1)
9、scanf(%d%d,&a1,&a2); s1=func(a1,a2); s2=a1*a2/s1; printf(最大公约数:%d最小公倍数%dn,s1,s2); 9 求字符种类计数。字符包括:”az”,”AZ”,09。 输入的字符长度不超过20个,不同字符总数不超过10个。 输入:字符串长度,字符串。 输出:字符种类个数。#includevoid main() char a,c,*p,tt21; int b,i,j,rr21,out=0; while(1) for(i=0;i20;i+)rri=1; scanf(%d,&b); /先输入个数b /输入间隔符,限定“,”或者“” a=getch
10、ar(); if(a=,)|(a= ) for(i=0;i=a)&(a=A)&(a=0)&(a=9) tti=a; tti=0; /统计字符中每个字符出现的个数,存放到对应数组rr中 /重复字符在第一次出现的对应位置“+”,重复字节对应位置为“” for(i=0;ib-1;i+) for(j=i+1;jb;j+) if(tti=ttj)&(rri!=0) rri+; rrj=0; /统计标记rr中不为“”的个数 for(i=0;i0)out+; printf(%d,out); 10 求1100之间的素数,并输出。#includeint func(int n) int c=sqrt(n),i;
11、if(n=1)return 1; for(i=2;i=c;i+) if(n%i=0)return 0; else return 1; void main() int i,j=1; for(i=1;i=100;i+) if(func(i)=1) printf(%d ,i); if(j%10=0) printf(n); j+; 11 输入整形值转换成二进制,再由二进制转换成十进制。#includeint func(int n,int m)/求n函数2m次方 int sum=0,i; if(m=0) return 1; else if(m=1) return n; else for(i=1;i=0;
12、i-) printf(%d ,bi); sum=0; if(b0=1)sum=1; for(i=1;i=k;i+) if(bi=1) sum=func(2,i)+sum; printf(%d,sum); 12 比较一个数组的元素 是否为回文数组。#includevoid huiwen(char str) int i,len,k=1; len=strlen(str); for(i=0;i=len-1;i+) if(stri!=strlen-1-i) k=0; break; if(k=0) printf(%s 不是一个回文数n,str); else printf(%s 是一个回文数n,str);void main() char str100 = 0; int i; while(1) printf(Input a string:); /*提示输入Input a string:*/ scanf(%s, str); /*scan()函数输入一个字符串:*/ huiwen(str);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1