华为公司上机笔试题剖析
来源:互联网 发布:mac上图片编辑 编辑:程序博客网 时间:2024/05/17 04:17
最近正值各大名企校园招聘高峰期,电信、互联网行业对软件研发人员的需求很大,所以招聘时一般考核应聘者的C、C++基本编程能力,笔者最近意欲向华为、爱立信、腾讯等电信互联网企业示好,所以从网上搜集了历届几道机试真题,写好给与各位探讨,函数执行效率未在考虑之列。
/*问题描述:0·64位的数字以字符串形式输入,乘以一个0-9之间的任意数字,结果以字符串输出*/
void longMultiply(char* num, int nummultiply, char* result)
{
int i,j;
int cnt=0; //位数统计辅助
long temp; //辅助变量
int data=0;
int one_array;
long sum=0;
/*方法一:实现库函数atol()*/
/*
int num_len = strlen(num); //获取输入字符串长度
for(i=0;i<num_len;i++)
{
data = num[i]-'0'; //计算字符串对应的位
one_array = data*powf(10.0,(float)(num_len-1-i));
sum+=one_array; //求和
}
*/
/*方法2:使用库函数,在允许的情况下,执行效率较高*/
sum = atol(num);
long out = nummultiply*sum; //计算乘积
printf("out:%d\n",out);
/*统计Long型数的位数*/
temp = out;
while(temp!=0)
{
temp = (long)temp/10;
cnt++; //计数变量加1
}
printf("cnt:%d\n",cnt);
/*赋值到字符数组中*/
for(j=0;j<cnt;j++)
{
result[cnt-1-j] = out%10+'0';
out/=10;
}
printf("Result:%s\n",result);
}
问题描述:分为专家评委和大众评委,score[] 数组里面存储每个评委打的分数,judge_type[] 里存储与 score[] 数组对应的评委类别,judge_type == 1,表示专家评委,judge_type == 2,表示大众评委,n表示评委总数。打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分取整),然后,总分 = 专家评委平均分 * 0.6 + 大众评委 * 0.4,总分取整。如果没有大众评委,则 总分 = 专家评委平均分,总分取整。函数最终返回选手得分。
/*选秀节目打分题*/
int cal_score(int score[], int judge_type[], int n) //注意此处的数组作为函数的参数是指针类型
{
int i,j,k;
int judge_num=0;
int whole_score=0;
int sum1=0,sum2=0;
int cnt=0;
//判断是不是有大众评委
for(i=0;i<n;i++)
judge_num += judge_type[i];
if(judge_num==n) //如果全为专家评委
{
//总分为专家评委分数取平均
for(j=0;j<n;j++)
whole_score += score[j];
whole_score /= n; //求平均分
}
//如果两类评委都有
else
{
for(k=0;k<n;k++)
{
if(judge_type[k]==1) //如果是专家评委
{
sum1 += score[k];
cnt++; //统计专家评委数目
}
else //如果是大众评委
{
sum2 += score[k];
}
}
whole_score = 0.6*sum1/cnt+0.4*sum2/(n-cnt);
}
return whole_score;
}
/*爬坑问题描述:乌龟爬一个深n m的坑,白天爬5m,晚上滑下来2m,请问几天可以爬上去
入口参数:int n 坑的高度
返回值:int day 天数*/
int climbRamp(int n)
{
int days=1;
if(n<=5)
days=1; //如果小于或者等于5m,一天可以爬上来
else
{
do{
n-=3;
days++;
}while(n>5);
}
return days;
}
/*字符串处理函数:大写变小写,小写变大写,0-9数字保留,其余字符去除
入口参数:str处理前的字符指针,strResult处理后的字符指针
返回值:无
*/
void dealString(char* str,char* strResult)
{
while(*str!='\0')
{
if(*str>='A'&&*str<='Z') //大写字母
{
*str+=32;
*strResult = *str;
str++;
strResult++;
}
else if(*str>='a'&&*str<='z')
{
*str-=32;
*strResult = *str;
str++;
strResult++;
}
else if(*str>='0'&&*str<='9')
{
*strResult = *str;
str++;
strResult++;
}
else
{
str++;
}
}
*strResult='\0';
}
/*计算n的阶乘*/
long fac(int n)
{
long result;
if(n==1)
result=1;
else
result=n*fac(n-1);
return result;
}
/*计算1!+2!+3!+4!+......+n!
入口参数:自然数n
出口参数:计算的自然数阶乘和*/
long calculate(int n)
{
long sum=0;
int i;
for(i=1;i<=n;i++)
{
sum+=fac(i);
}
return sum;
}
- 华为公司上机笔试题剖析
- 华为上机笔试题
- 华为上机笔试题(2)
- 2012华为校园招聘上机笔试题
- 华为2013校园招聘上机笔试题
- 华为2013校园招聘上机笔试题
- 华为2011上机笔试题3
- 华为2011上机笔试题2
- 华为2011上机笔试题1
- 2013华为笔试上机题 等式变换
- 华为2014年华为笔试上机题
- 华为2011上机笔试题一
- 华为2016校园招聘上机笔试题
- 华为2016校园招聘上机笔试题
- 华为2016校园招聘上机笔试题
- 成绩排名——华为上机笔试题
- 华为2016校园招聘上机笔试题
- 华为上机笔试题之约瑟夫环
- bash 脚本编程十四 maven自动部署
- 2012年9月17日汇报 Axure RP Pro 6.5.0.3037 for Windows 简体中文加强正式版进展
- 用 Java 技术创建 RESTful Web 服务
- 小米做的好的原因:专注,极致,口碑,快。
- 深入研究mysql中group by与order by取分类最新时间内容——同理在android里也可用
- 华为公司上机笔试题剖析
- 使用zlib:uncompress(Data)导致的port泄露分析
- Android HAL hardware module分析 以GPS module为例
- 数据预处理
- 《电磁通论》关于量纲
- CAM350中DFM检验
- 机房收费系统 大体分析
- NSOperation和NSOperationQueue
- Android开发——MediaProvider源码分析(1)