最新最全华为校园招聘软件研发笔试题4.docx
- 文档编号:3989018
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:6
- 大小:15.99KB
最新最全华为校园招聘软件研发笔试题4.docx
《最新最全华为校园招聘软件研发笔试题4.docx》由会员分享,可在线阅读,更多相关《最新最全华为校园招聘软件研发笔试题4.docx(6页珍藏版)》请在冰豆网上搜索。
最新最全华为校园招聘软件研发笔试题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){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 华为 校园 招聘 软件 研发 笔试