最新最全华为校园招聘软件研发笔试题4.docx

上传人:b****5 文档编号:3989018 上传时间:2022-11-26 格式:DOCX 页数:6 大小:15.99KB
下载 相关 举报
最新最全华为校园招聘软件研发笔试题4.docx_第1页
第1页 / 共6页
最新最全华为校园招聘软件研发笔试题4.docx_第2页
第2页 / 共6页
最新最全华为校园招聘软件研发笔试题4.docx_第3页
第3页 / 共6页
最新最全华为校园招聘软件研发笔试题4.docx_第4页
第4页 / 共6页
最新最全华为校园招聘软件研发笔试题4.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

最新最全华为校园招聘软件研发笔试题4.docx

《最新最全华为校园招聘软件研发笔试题4.docx》由会员分享,可在线阅读,更多相关《最新最全华为校园招聘软件研发笔试题4.docx(6页珍藏版)》请在冰豆网上搜索。

最新最全华为校园招聘软件研发笔试题4.docx

最新最全华为校园招聘软件研发笔试题4

2012最新最全华为校园招聘软件研发笔试题(4)

 

flag=(flag+1)%2;p++;}printf(\n);return0;}

 

17、编写一个程序实现功能:

将两个字符串合并为一个字符串并且输出,用指针实现。

 

charstr1[20]={Hello},str2[20]={World};答案:

 

#include

 

intmain(){charstr1[20]={Hello},str2[20]={World};char*p=str1,*q=str2;

 

while(*p)p++;while(*q){

 

*p=*q;p++;q++;}

 

*p=\0

 

printf(%s\n,str1);

 

return0;}

 

18、算分数的问题,去掉一个最高分一个最低分,求平均分#include

 

floatavescore(floatscore[],intn){

 

floatmin=0;floatmax=0;

 

intminindex=0;intmaxindex=0;floatsum=0;min=score[0];

 

for(inti=0;i

 

min=score[i];minindex=i;}

 

score[minindex]=0;max=score[0];for(i=0;i

 

if(score[i]max){

 

max=score[i];maxindex=i;}

 

score[maxindex]=0;for(i=0;i

 

returnsum;}

 

voidmain(){

 

floatscore[6]={70,80,90,98,87,86};floatlastscore;

 

lastscore=avescore(score,6);

 

printf(thelastscoreis:

%5.2f\n,lastscore);}

 

运行结果:

 

thelastscoreis:

85.7519、对一个数组,将数组中偶数从大到小排序,奇数从小到大排序,奇数和偶数交叉着放且输出数组第一位放奇数若奇数和偶数不等长,则把剩下的直接放到数组中。

思路:

先进行奇偶判断,得到奇数和偶数数组。

然后对两数组排序,进行长度判断,最后组织数据。

#include#include

 

voidjiou(inta[],intn){

 

int*p1;int*p2;

 

inti,j;intk=0;intkk=0;

 

intcount1=0;intcount2=0;inttemp;inttemp2;intm=0;

 

p1=(int*)malloc(sizeof(int)*n);p2=(int*)malloc(sizeof(int)*n);for(i=0;i

 

p1[i]=0;p2[i]=0;}

 

for(i=0;i

 

if((a[i]%2)!

=0){p2[kk++]=a[i];}else

 

{p1[k++]=a[i];}}

 

count1=k;count2=kk;

 

for(i=0;i

 

for(i=0;i

 

for(j=0;jp2[j+1])

 

{temp2=p2[j];p2[j]=p2[j+1];p2[j+1]=temp2;}for(i=0;i

 

for(i=0;i

 

for(i=0;i

 

for(j=0;j

 

{temp=p1[j];p1[j]=p1[j+1];p1[j+1]=temp;}

 

for(i=0;i

 

if(count1count2){

 

for(i=0;i

 

a[i+m]=p2[i];a[i+1+m]=p1[i];m=m+1;}

 

for(i=0;i

 

for(i=0;i

 

a[i+m]=p2[i];a[i+1+m]=p1[i];m=m+1;}

 

for(i=0;i

 

for(i=0;i

 

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

 

printf(%\n}

 

voidmain(){

 

inta[10]={2,3,14,6,2,15,12,14,4,11};jiou(a,10);}

 

运行结果:

3151131115

 

21462121441414126422

 

314111415126422

 

20.判断身份证号码的合法性

 

/*我国公民的身份证号码特点如下:

1、长度为18位;

 

2、第1~17位只能为数字;

 

3、第18位可以是数字或者小写英文字母x。

 

4、身份证号码的第7~14位表示持有人生日的年、月、日信息。

 

例如:

511002198808080111或511002************。

 

请实现身份证号码合法性判断的函数。

除满足以上要求外,需要对持有人生日的年、月、日信息进行校验。

年份大于等于1900年,小于等于2100年。

需要考虑闰年、大小月的情况。

所谓闰年,能被4整除且不能被100整除或能被400整除的年份,闰年的2月份为29天,非闰年的2月份为28天。

其他情况的合法性校验,考生不用考虑。

函数返回值:

 

1)如果身份证号合法,返回0;

 

2)如果身份证号长度不合法,返回1;

 

3)如果身份证号第1~17位含有非数字的字符,返回2;

 

4)如果身份证号第18位既不是数字也不是英文小写字母x,返回3;

 

5)如果身份证号的年信息非法,返回4;6-96)如果身份证号的月信息非法,返回5;10-11

 

7)如果身份证号的日信息非法,返回6(请注意闰年的情况);12-13

 

【注】除成功的情况外,以上其他合法性判断的优先级依次降低。

也就是说,如果判断出长度不合法,直接返回1即可,不需要再做其他合法性判断。

#include#include

 

intverifyID(char*inID){intlen=strlen(inID);inti;if(len!

=18)return1;

 

for(i=0;ii++){if(*(inID+i)0||*(inID+i)9)return2;}if(*(inID+17)0||*(inID+17)9)if(*(inID+17)!

=x)return3;chartemp1[10]={0};chartemp2[10]={0};chartemp3[10]={0};memcpy(temp1,inID+6,4);intyear=atoi(temp1);if(year1900||year2100)return4;memcpy(temp2,inID+10,2);intmon=atoi(temp2);if(mon1||mon12)return5;memcpy(temp3,inID+12,2);intday=atoi(temp3);if(1==mon){if(day0||day31)return6;}if(2==mon)//能被4整除且不能被100整除或能被400整除的年份,闰年的2月份为29天,非闰年的2月份为28天。

{if(((year%4==0)(year%100!

=0))||(year%400==0)){if(day0||day29)return6;}else{if(day0||day28)return6;}}if(3==mon){if(day0||day31)return6;}if(4==mon){if(day0||day30)return6;}if(5==mon){if(day0||day31)return6;}if(6==mon){if(day0||day30)return6;}if(7==mon){

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

当前位置:首页 > 小学教育 > 数学

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

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