华为校招历年机试题目

华为校招历年机试题目
华为校招历年机试题目

华为历年笔试题目总结

因最近要参加华为的招聘,便从网上搜集了一些华为笔试历年题目,现总结献给大家,因本人非软件出生,水平有限,仅供参考,若有误处,请海涵。

1、字符串问题

?问题描述:

把一个字符串中的除大写字母、小写字母和数字字符之外的其他字符都去掉,输出新字符串。

?要求实现函数:

void my_string(char* input, char* output)

【输入】char* input,输入的字符串

【输出】char* output,输出的字符串

【返回】无

?示例

输入:inp ut = “A*(BC&De+_fg/*”

输出:output = “ABCDefg”

输入:input = “aB+_9”

输出:output = “aB9”

程序如下:

void my_string(char* input, char* output)

{

int i,j;

i=j=0;

while(*(input+i)!='\0')

{

if((*(input+i)>='A'&&*(input+i)<='Z')||

(*(input+i)>='a'&&*(input+i)<='z')||(*(input+i)>='0'&&*(input+i)<='9'))

{

*(output+j)=*(input+i);

j++;

}

i++;

}

*(output+j+1)='\0';

}

题目描述:

输入一个字符串,将其中大写字母转换为对应小写字母之后的第五个字母,

若原始大写字母为V~Z, 则转换为对应小写字母的值减21。

其他字符不变,输出转换后的字符串。

例如,对于字母A,则转换为小写字母f;若形参是字母W,则转换为小写字母b

要求实现函数:

void TransferString(const char * pInputStr, long lInputLen, char * pOutputStr);

【输入】pInputStr:输入字符串

lInputLen:输入字符串长度

【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;

【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出

示例

输入:“Axs3mWss”

输出:“fxs3mbss”

void TransferString(const char * pInputStr, long lInputLen, char * pOutputStr)

{

int i=0;

for(i=0;i

{

if(pInputStr[i]>='A'&&pInputStr[i]<'V')

pOutputStr[i]=pInputStr[i]+'a'-'A'+5;

else if(pInputStr[i]>='V'&&pInputStr[i]<='Z')

pOutputStr[i]=pInputStr[i]+'a'-'A'-21;

else

pOutputStr[i]=pInputStr[i];

}

}

3. 单词统计

题目描述:

输入一段英文文本,用程序统计出现频率最高和最低的两个单词;

英文文本中仅出现这四类字符:空格( )、英文逗号(,)、英文句号(.)、英文大小写字母(a-z、A-Z)

单词之间的分隔符仅考虑这三种:空格( )、英文逗号(,)、英文句号(.);

仅大小写不同的单词算同一个单词;

如果两个单词出现次数相同,则在文本中首次出现的单词优先返回。

返回的单词统一用小写字母返回

例如:

输入字符串“Hello world, i said hello world to the world”,返回“world”,“i”

输入字符串“Somebody like somebody,i do not like it”,返回“somebody”,“i”

要求实现函数:

void WordStat(const char * pInputStr, char * pOutputHotWord, char * pOutputColdWord);

【输入】pInputStr:输入字符串,指向一段英文文本

【输出】pOutputHotWord:输出字符串,返回出现次数最多的单词,该指针所指存储空间已经分配好,且足够大

pOutputColdWord:输出字符串,返回出现次数最少的单词,该指针所指存储空间已经分配好,且足够大

【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出

示例

输入:“Hello world, i said hello world to the world”

void WordStat(const char * pInputStr, char * pOutputHotWord, char * pOutputColdWord)

{

//分割输入字符串Hello world, i said hello world to the world

struct eng_t chaifen[20];

int i=0,j=0,k=0;

while (pInputStr[i]!='\0')

{

while((pInputStr[i]!='

')&&(pInputStr[i]!=',')&&(pInputStr[i]!='.')&&(pInputStr[i]!='\0'))

{

if(pInputStr[i]>='a'&&pInputStr[i]<='z')

chaifen[j].word[k]=pInputStr[i];

else

chaifen[j].word[k]=pInputStr[i]+'a'-'A';

i++;

k++;

}

if(k>0)

{

chaifen[j].word[k]='\0';

j++;

}

k=0;

i++;

}

//统计重复次数并存入num中

k=0;

int a=0;

for(i=0;i

{

for(k=0;k<=j;k++)

{

if(strcmp(chaifen[i].word,chaifen[k].word)==0)

a++;

}

chaifen[i].num=a;

a=0;

}

//查找最大值

int temp1=0,temp2=0;

for(i=0;i

{

if(chaifen[i].num>temp1)

{

temp1=chaifen[i].num;

temp2=i;

}

}

strcpy(pOutputHotWord,chaifen[temp2].word);

//查找最小值

temp1=chaifen[0].num;

for(i=0;i

{

if(chaifen[i].num

{

temp1=chaifen[i].num;

temp2=i;

}

}

strcpy(pOutputColdWord,chaifen[temp2].word);

}

/*手机号码合法性判断(20分)

问题描述:我国大陆运营商的手机号码标准格式为:

国家码+手机号码,例如:8613912345678。

特点如下:1、长度13位;2、以86的国家码打头;

3、手机号码的每一位都是数字。请实现手机号码合法性判断的函数

(注:考生无需关注手机号码的真实性,

也就是说诸如86123123456789这样的手机号码,我们也认为是合法的),

要求:1)如果手机号码合法,返回0;2)如果手机号码长度不合法,返回13)

如果手机号码中包含非数字的字符,返回2;4)如果手机号码不是以86打头的,返回3;

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

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

要求实现函数:int s int verifyMsisdn(char* inMsisdn)【输入】char* inMsisdn,

表示输入的手机号码字符串。【输出】无【返回】判断的结果,类型为int。

示例输入:inMsisdn = “869123456789“输出:无返回:1输入:

inMsisdn = “88139123456789“输出:无返回:3输入:inMsisdn = “86139123456789“

输出:无返回:

*/

#include

using namespace std;

int verifyMsisdn(char* inMsisdn)

{

int i=0;

while(*(inMsisdn+i)!='\0')

i++;

if(i!=14)

return 1;

for(i=0;i<13;i++)

{

if(*(inMsisdn+i)>'9'||*(inMsisdn+i)<'0')

return 2;

}

if(*(inMsisdn)!='8'||*(inMsisdn+1)!='6')

return 3;

return 0;

}

/*

2. 将一个字符串的元音字母复制到另一个字符串,并排序(30分)

问题描述:有一字符串,里面可能包含英文字母(大写、小写)、数字、特殊字符,现在需要实现一函数,

将此字符串中的元音字母挑选出来,存入另一个字符串中,并对字符串中的字母进行从小到大的排序

(小写的元音字母在前,大写的元音字母在后,依次有序)。

说明:1、元音字母是a,e,i,o,u,A,E,I,O,U。

2、筛选出来的元音字母,不需要剔重;最终输出的字符串,小写元音字母排在前面,大写元音字母排在后面,依次有序。

要求实现函数:void sortV owel (char* input, char* output);

【输入】char* input,表示输入的字符串

【输出】char* output,排好序之后的元音字符串。

【返回】无示例

输入:char *input = “Abort!May Be Some Errors In Out System. “输出:char *output =“aeeeooAEIO “

*/

#include

using namespace std;

void sortVowel (char* input, char* output)

{

int i=0,j=0,k=0;

int numlong;

char temp;

while(* (input+i)!='\0')

{

if(*(input+i)=='a'||*(input+i)=='e'||*(input+i)=='i'||

*(input+i)=='o'||*(input+i)=='u'||*(input+i)=='A'||

*(input+i)=='E'||*(input+i)=='I'||*(input+i)=='O'||

*(input+i)=='U')

*(output+j++)=*(input+i);

i++;

}

numlong=j;

for(i=1;i

{

for(k=0;k

{

if(*(output+k)>*(output+k+1))

{

temp=*(output+k);

*(output+k)=*(output+k+1);

*(output+k+1)=temp;

}

}

}

for(i=0,k=0;i

{

if(*(output+k)>='A'&&*(output+k)<='Z')

k++;

}

for(i=0;i

*(output+numlong+i)= *(output+i);

for(i=0;i

*(output+i)=*(output+i+k);

*(output+numlong+1)='\0';

}

/*问题描述:

把一个字符串中的除大写字母、小写字母和数字字符之外的其他字符都去掉,输出新字符串。

要求实现函数:

void my_string(char* input, char* output)

【输入】char* input,输入的字符串

【输出】char* output,输出的字符串

【返回】无

示例

输入:input = “A*(BC&De+_fg/*”

输出:output = “ABCDefg”

输入:input = “aB+_9”

输出:output = “aB9”

*/

#include

using namespace std;

void my_string(char* input, char* output)

{

int i,j;

i=j=0;

while(*(input+i)!='\0')

{

if((*(input+i)>='A'&&*(input+i)<='Z')||

(*(input+i)>='a'&&*(input+i)<='z')||(*(input+i)>='0'&&*(input+i)<='9'))

{

*(output+j)=*(input+i);

j++;

}

i++;

}

*(output+j+1)='\0';

}

2、数组问题

/*对一个数组,将数组中偶数从大到小排序,奇数从小到大排序,

奇数和偶数交叉着放且输出数组第一位放奇数,若奇数和偶数不等长,则把剩下的直接放到数组中。

*/

#include

#include

using namespace std;

void maopaopaixu1(int *ps,int num)//从小到大

{

int i,j;

int temp;

for(i=1;i

{

for(j=0;j

{

if(ps[j]>ps[j+1])

{

temp=ps[j];

ps[j]=ps[j+1];

ps[j+1]=temp;

}

}

}

}

void maopaopaixu2(int *ps,int num)//从大到小{

int i,j;

int temp;

for(i=1;i

{

for(j=0;j

{

if(ps[j]

{

temp=ps[j];

ps[j]=ps[j+1];

ps[j+1]=temp;

}

}

}

}

void changnum(int *pa,int num)

{

int i;

int j=0;

int oddnum=0,evennum=0;

int *odd=(int *)malloc(num*sizeof(int));

int *even=(int *)malloc(num*sizeof(int));

for(i=0;i

{

if(pa[i]%2==1)

odd[oddnum++]=pa[i];

else

even[evennum++]=pa[i];

}

//排序

maopaopaixu2(even,evennum);

maopaopaixu1(odd,oddnum);

//奇数和偶数交叉着放且输出数组第一位放奇数

int num1;

if((evennum-oddnum)>=0)

num1=(num-(evennum-oddnum))/2;

else

num1=(num-(oddnum-evennum))/2;

for(i=0;i<2*num1;)

{

pa[i++]=odd[j];

pa[i++]=even[j];

j++;

}

if(evennum>num1)

{

for(i=2*num1;i

pa[i]=even[j++];

}

else

{

for(i=2*num1;i

pa[i]=odd[j++];

}

free(odd);

free(even);

}

?问题描述:

在掷骰子游戏中,会根据所掷数字在地图中前进几步,前进完成后需要根据当前地图位置所示的障碍进行相应操作,其中障碍表示:

1)9:无障碍

2)1:停掷一轮,即下轮所掷数字无效;

3)2:后退两步,如果已经到起点不再后退;

4)3:奖励前进一步

如果在游戏过程中,已经走到地图终点,则游戏结束。根据输入的地图数组,和5个骰子数的数组,返回最终玩家前进了多少步。

?要求实现函数:

void dice(int map_len, int* map, int* dice_val, int* output)

【输入】int map_len,地图数组的长度

int* map,地图数组,值表示障碍

int* dice_val,5个骰子数的数组

【输出】int *output,玩家共前进了多少步

【返回】无

注:玩家是从起始位置开始,即地图数组的第一位,骰子数只能是1~6 示例

1)输入:map_len = 15, map = {9,1,9,9,9,2,9,9,9,9,9,9,9,9,9},dice_val = {1,2,1,3,1},返回:4

2)输入:map_len = 16, map = {9,9,9,9,9,1,9,3,9,9,2,9,9,9,9,9},dice_val = {2,1,4,1,6},返回:15

int dice(int map_len, int* map, int* dice_val, int *output)

{

int i=0,j=0,k=0;

while(i<5||k>map_len)

{

k=k+*(dice_val+i);//走的步数

j=map[k];

if(j==1)

i++;

if(j==2)

k=k-2;

if(k<0)

k=0;

if(j==3)

k=k+1;

i++;

}

if(k>map_len)

k=map_len;

*output=k;

}

/*有一个数组a[N]如a[10]={0,1,2,3,4,5,6,7,8,9}

每隔两个数删除一个数,如0,1,2(删除),3,4,5(删除),6,7,8(删除),9,

到数组尾部回到数组头部继续删除,要求编写一个函数实现实现上述操作,

返回最后一个数的数组下标。

函数接口:int getLast(int iLen)

参数:数组初始元素个数iLen

*/

#include

using namespace std;

int getLast(int iLen)

{

int i,len;

int *s=(int *)malloc(sizeof(int)*iLen);

for(i=0;i

s[i]=i;

len=iLen;

int j=0,k;

while(len>1)

{

if(j+2>len)

j=j-len;

else

j=j+2;

for(k=j;k

{

s[k]=s[k+1];

}

len--;

}

return *s;

}

*1、选秀节目打分,分为专家评委和大众评委,

score[] 数组里面存储每个评委打的分数,

judge_type[] 里存储与score[] 数组对应的评委类别,

judge_type[i] == 1,表示专家评委,judge_type[i] == 2,

表示大众评委,n表示评委总数。

打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分取整),

然后,总分= 专家评委平均分? *?0.6 + 大众评委* 0.4,总分取整。

如果没有大众评委,则总分= 专家评委平均分,总分取整。函数最终返回选手得分。*/

#include

using namespace std;

int avrscore(int score[],int judge_type[],int n)

{

int i,ex_num,pu_num,ex_avr,pu_avr;

ex_num=pu_num=ex_avr=pu_avr=0;

for(i=0;i

if(judge_type[i]==1)

{

ex_avr+=score[i];

ex_num++;

}

if(judge_type[i]==2)

{

pu_avr+=score[i];

pu_num++;

}

}

if(pu_num==0)

return(ex_avr/ex_num);

else

return (int)(ex_avr/ex_num*0.6+pu_avr/pu_num*0.4);

}

/*2、给定一个数组input[] ,如果数组长度n为奇数,

则将数组中最大的元素放到output[] 数组最中间的位置,

如果数组长度n为偶数,则将数组中最大的元素放到output[]

数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,

依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。

例如:input[] = {3, 6, 1, 9, 7}?? output[] = {3, 7, 9, 6, 1};

input[] = {3, 6, 1, 9, 7, 8}??? output[] =?{1, 6, 8, 9, 7, 3}

函数接口void sort(int input[[, int n, int output[])

*/

#include

using namespace std;

void sort(int input[], int n, int output[])

{

int i,j,temp;

for(i=1;i

{

for(j=0;j

{

if(input[j]

{

temp=input[j];

input[j]=input[j+1];

input[j+1]=temp;

}

}

output[n/2]=input[0];

for(i=1,j=1;i<=n/2;i++,j++)

{

output[n/2-i]=input[j];

j++;

output[n/2+i]=input[j];

}

}

/* 3、操作系统任务调度问题。操作系统任务分为系统任务和用户任务两种。

其中,系统任务的优先级< 50,用户任务的优先级>= 50且<= 255。

优先级大于255的为非法任务,应予以剔除。现有一任务队列task[],

长度为n,task中的元素值表示任务的优先级,数值越小,优先级越高。

函数scheduler实现如下功能,将task[] 中的任务按照系统任务、用户任务依次存放到system_task[] 数组和user_task[] 数组中

(数组中元素的值是任务在task[] 数组中的下标),

并且优先级高的任务排在前面,优先级相同的任务按照入队顺序排列(即先入队的任务排在前面),

数组元素为-1表示结束。例如:task[] = {0, 30, 155, 1, 80, 300, 170, 40, 99}

system_task[] = {0, 3, 1, 7, -1}??? user_task[] = {4, 8, 2, 6, -1}

*/

#include

using namespace std;

void scheduler1(int task[],int system_task[],int user_task[],int num)

{

int i,a=0,b=0,j,temp;

int *user_task1=(int*)malloc(num*sizeof(int));

int *system_task1=(int*)malloc(num*sizeof(int));

for(i=0;i

{

if(task[i]<50)

{

system_task[a]=i;

*(system_task1+a)=task[i];

a++;

}

if(task[i]>=50&&task[i]<=255)

{

user_task[b]=i;

*(user_task1+b)=task[i];

b++;

}

}

for(i=1;i

{

for(j=0;j

{

if(system_task1[j]>system_task1[j+1])

{

temp=system_task1[j];

system_task1[j]=system_task1[j+1];

system_task1[j+1]=temp;

temp=system_task[j];

system_task[j]=system_task[j+1];

system_task[j+1]=temp;

}

}

}

system_task[a]=-1;

for(i=1;i

{

for(j=0;j

{

if(user_task1[j]>user_task1[j+1])

{

temp=user_task1[j];

user_task1[j]=user_task1[j+1];

user_task1[j+1]=temp;

temp=user_task[j];

user_task[j]=user_task[j+1];

user_task[j+1]=temp;

}

}

}

user_task[b]=-1;

}

从两个数组的最后一个元素比较两个数组中不同元素的个数,如有array1[5]={77,21,1,3,5}, array2[3]={1,3,5},从array1[4]与array2[2]比较开始,到array1[2]与array[0]比较结束。这样得出它们不同的元素个数为0,若array1[6]={77,21,1,3,5,7},那么他们不同的元素为3。

函数原型为int compare_array( int len1, int array1[], int len2, int array2[] );

其中,len1与len2分别为数组array1[]和array2[]的长度,函数返回值为两个数组不同元素的个数。

以下是上题的函数完整实现:

int compare_array(int len1, int array1[], int len2, int array2[])

{

int i;

int num=0;

for(i=0;i

{

if(array2[len2-1-i]==array1[len1-1-i])

num++;

}

return num;

}

3、字符计算问题

此问题是难点,我会将问题扩展之后给出更全面的答案

?问题描述:

在软件园开饭店的小明最近很郁闷,经常在进行账目核查时出错,每次的计算结果总是有偏差。小王知道后打算为小明解决这个问题,经过调查发现,问题出现在计算器上,当前的计算器计算方法大部分是:输入数据,输入运算符,再输入数据,立刻给出计算结果,然后不断循环。当计算结束时,如果出现偏差或者数据,无法回顾查看到底是哪一步出错,如果需要再次核查,还需要再全部输入一次,非常耽误时间。小王打算帮老板设计一种新的计算器,能够支持表达式的计算,由于是第一个版本,只需要支持整数的“+,-,*”和“( )”即可, 当然括号内的运算优先级高于括号外,“*”的优先级是高于“+,-”的。

注:输入的表达式字符串长度小于20。且表达式一定是合法的表达式。

?要求实现函数:

void calculate(char* input, int* rel)

【输入】char *input,待计算的表达式

【输出】int* rel,计算结果

【返回】无

?示例

1)输入:input = 5+2-10*2+5

输出:rel = -8

#define maxsize 20

struct astack

{

int top;

int maxtop;

char *data;

};

typedef struct astack*Stack;

void push(char x,Stack s)

{

if(s->top!=s->maxtop)

{

s->top++;

s->data[s->top]=x;

}

}

char pop(Stack s)

{

if(s->top!=-1)

{

s->top--;

return(s->data[(s->top)+1]);

}

}

int compare(char a,char b)

{

if(b=='+'||b=='-'||b=='*')

{ switch(a)

{

case('+'):

return 1;

case('-'):

return 1;

case('*'):

if(b=='*')

return 1;

else

return 0;

}}

else

return 0;

}

void calculate(char* input, int* rel)

{

Stack s1=(struct astack*)malloc(sizeof(struct astack));//创建s1用于储存运算符

Stack s2=(struct astack*)malloc(sizeof(struct astack));//创建s2用于临时存储

s1->data=(char *)malloc(sizeof(char)*maxsize);

s2->data=(char *)malloc(sizeof(char)*maxsize);

s1->top=-1;

s2->top=-1;

s1->maxtop=maxsize;

s2->maxtop=maxsize;

char temp=0;

char temp1,temp2;

int i=0;

int comp;

while(input[i]!='\0')//将元素压入栈中

{

if(input[i]>='0'&&input[i]<='9')//当元素是数字的时候

{

while(input[i]>='0'&&input[i]<='9')//计算数值

{

temp=(input[i]-'0')+temp*10;

i++;

}

push(temp,s2);

temp=0;

}

else if(input[i]=='(')//如果是(时候直接送入s1栈顶

{

push(input[i],s1);

i++;

}

else if(input[i]==')')//若取出的字符是“)”,则将距离S1栈栈顶最近的“

//(”之间的运算符,逐个出栈,依次送入S2栈,此时抛弃“(”

{

while((temp=pop(s1))!='(')

{

push(temp,s2);

}

i++;

temp=0;

}

else

/*若取出的字符是运算符,

则将该运算符与S1栈栈顶元素比较,

如果该运算符优先级大于S1栈栈顶运算符优先级,

则将该运算符进S1栈,否则,将S1栈的栈顶运算符弹出,

送入S2栈中,直至S1栈栈顶运算符低于(不包括等于)

该运算符优先级,则将该运算符送入S1栈。

*/

{

while(compare(input[i],s1->data[s1->top]))

{

temp=pop(s1);

push(temp,s2);

}

push(input[i],s1);

i++;

temp=0;

}

}

//将si中取出压入s2中

while(s1->top!=-1)

{

temp=pop(s1);

push(temp,s2);

}

//对s2逆序存入s1中

while(s2->top!=-1)

{

temp=pop(s2);

push(temp,s1);

}

//对s1中进行计算

while(s1->top!=-1)

{

temp=pop(s1);

if(temp!='+'&&temp!='-'&&temp!='*')

{

push(temp,s2);

}

else

{

temp1=pop(s2);

temp2=pop(s2);

if(temp=='+')

temp1=temp1+temp2;

if(temp=='-')

temp1=temp2-temp1;

if(temp=='*')

temp1=temp1*temp2;

push(temp1,s1);

}

}

*rel=s2->data[0];

}

4、链表问题

2. 逆序链表输出。

题目描述:

将输入的一个单向链表,逆序后输出链表中的值。链表定义如下:typedef struct tagListNode

{

int value;

struct tagListNode *next;

}ListNode;

要求实现函数:

2016华为硬件机试题库

华为硬件机试题目(2016版本) 1.(判断题)DRAM上电时存储单元的内容是全0,而Flash上电时存储单元的内容是全1。(4分)? A.正确? B.错误 2.(判断题)眼图可以用来分析高速信号的码间干扰、抖动、噪声和衰减。(4分)? A.正确? B.错误 3.(判断题)以太网交换机将冲突域限制在每个端口,提高了网络性能。(4分)? A.正确? B.错误 4.(判断题)放大电路的输出信号产生非线性失真是由于电路中晶体管的非线性引起的。(4分)? A.正确? B.错误 5.(判断题)1的8位二进制补码是0000_0001,-1的8位二进制补码是 1111_1111。(4分)?

B.错误 6.(判断题)洗衣机,电冰箱等家用电器都使用三孔插座,是因为如果不接地,家用电器是不能工作的。(4分)? A.正确? B.错误 7.(判断题)十进制数据0x5a与0xa5的同或运算结果为:0x00。(4分)? A.正确? B.错误 8.(判断题)硅二极管的正向导通压降比锗二极管的大(4分)? A.正确? B.错误 9.(单选题)一空气平行板电容器,两级间距为d,充电后板间电压为u。然后将电源断开,在平板间平行插入一厚度为d/3的金属板。此时电容器原板间电压变为(4分)? A.U/3? B.2U/3? C.3U/4?

10.(单选题)8086CPU内部包括哪些单元(4分)? A.ALU,EU? B.ALU,BIU? C.EU,BIU? D.ALU,EU,BIU 11.(单选题)为了避免50Hz的电网电压干扰放大器,应该用那种滤波器:(4分)? A.带阻滤波器? B.带通滤波器? C.低通滤波器? D.高通滤波器 12.(单选题)关于SRAM和DRAM,下面说话正确的是:(4分)? A.SRAM需要定时刷新,否则数据会丢失? B.DRAM使用内部电容来保存信息? C.SRAM的集成度高于DRAM? D.只要不掉点,DRAM内的数据不会丢失 13.(单选题)在RS232串口中,采用哪一种校验方式:(4分)?

华为视频会议试题库-笔试

一、填空题 1.会议电视系统是集_视频_通讯、_ 音频_通讯和_ 数据_通讯于一体的新一代交互式多 媒体通信系统,是基于通信网络上的一种增值业务。 2.视频会议协议体系包括H.320 、H.323 、SIP 。 3.会议平台使用的双流协议为_ H.239 _。 4.720P视频格式的分辨率是_1280X720 _、1080P视频格式的分辨率是_ 1920X1080 。 5.华为会议电视终端9039S支持最大带宽8M 和视频格式1080P30 。 6.华为会议电视终端9039A具有 3 个高清输入端口。 7.华为会议电视终端9039S具有 3 个高清输出端口。 8.SMC2.0 由web服务端、后台服务、数据库三部分组成。 9.MCU是由MC 和MP 两个模块组成。 10.摄像机的3A技术是指自动曝光、自动白平衡、自动聚焦。 11.华为VP9660的主控板名称为ECCB 。 12.华为高端一体化终端在召开720P50/60会议时的建议会议带宽为4M 。 13.在H.323协议体系中, GK的基本功能包括地址解析、带宽管理、区域管理。 14.VP9660最多支持168 路分辨率为1080P30的会场。 15.SMC2.0采用B/S 架构。 16.MCU的GE0 接口为默认业务网口。 17.视频会议系统通过RTP 协议传输音视频码流。 18.终端“诊断”功能中的声音测试项可检测该终端音频输出是否正常。 19.CIF格式的图像分辨率为352X288 。 20.H.264编解码协议中,I帧采用___帧编码方式。 21.会议电视系统中声音的质量取决于采样率、量化位数和__编解码协议____。 22.音视频编码的三个基本过程有抽样、_量化_和编码。 23.VP8660 MCU设备的一块POEA扣板可以接入 4 路带宽为2M 的4E1终端。 24.VP8660 MCU设备的一块POEB扣板可以接入 4 路带宽为4M 的4E1终端。 25.VP8660 MCU设备的一块POEC扣板可以接入 4 路带宽为6M 的4E1终端。 26.VP8660 MCU设备的一块POED扣板可以接入 4 路带宽为8M 的4E1终端。 27.VP9660 MCU设备的一块Media单板支持24 端口1080P30会场接入。 28.H.323体系中,会议电视终端向GK发起注册请求的RRQ消息承载于UDP 层。

华为校招·硬件技术工程师机考试题及答案

精品文档 1.(判断题)DRAM上电时存储单元的内容是全0,而Flash上电时存储单元的内容是全1。(4分) A.正确 B.错误 FLASH可保存 2.(判断题)眼图可以用来分析高速信号的码间干扰、抖动、噪声和衰减。(4分) A.正确 B.错误 3.(判断题)以太网交换机将冲突域限制在每个端口,提高了网络性能。(4分) A.正确 B.错误 4.(判断题)放大电路的输出信号产生非线性失真是由于电路中晶体管的非线性引起的。(4分) A.正确 B.错误 5.(判断题)1的8位二进制补码是0000_0001,-1的8位二进制补码是1111_1111。(4分) A.正确 B.错误 6.(判断题)洗衣机,电冰箱等家用电器都使用三孔插座,是因为如果不接地,家用电器是不能工作的。(4分) A.正确 B.错误 7.(判断题)十进制数据0x5a与0xa5的同或运算结果为:0x00。(4分) A.正确 B.错误 8.(判断题)硅二极管的正向导通压降比锗二极管的大(4分) A.正确 B.错误 9.(单选题)一空气平行板电容器,两级间距为d,充电后板间电压为u。然后将电源断开,在平板间平行插入一厚度为d/3的金属板。此时电容器原板间电压变为(4分) A.U/3 B.2U/3 C.3U/4 D.不变但电容的大小不是由 Q(带电量)或U(电压)决定的,即: C=εS/4πkd。其中,ε是一个常数, S为电容极板的正对面积, d为电容极板的距离, k则是静电力常量。而常见的平行板电容器 电容为C=εS/d.(ε为极板间介质的介电常数, S 为极板面积, d为极板间的距离。) 3电容器的电势能计算公式: E=CU^2/2=QU/2 10.(单选题)8086CPU内部包括哪些单元(4分) A.ALU,EU B.ALU,BIU C.EU,BIU D.ALU,EU,BIU 80x86从功能上分执行单元EU(Execution Unit),和总线接口单元BIU(Bus Interface Unit),执行单元由8个16位通用寄存器,1个16位标志寄存器,1个16位暂存寄存器,1个16位算术逻辑单元ALU及EU控制电路组成。 总线接口单元由4个16位段寄存器(CS,DS,SS,ES),1个16位的指令指针寄存器,1个与EU通信的内部暂存器,1个指令队列,1个计算20位物理地址的加法器∑及总线控制电路构成。 11.(单选题)为了避免50Hz的电网电压干扰放大器,应该用那种滤波器:(4分) A.带阻滤波器 B.带通滤波器 C.低通滤波器 D.高通滤波器 12.(单选题)关于SRAM和DRAM,下面说话正确的是:(4分) A.SRAM需要定时刷新,否则数据会丢失 B.DRAM使用内部电容来保存信息 C.SRAM的集成度高于DRAM D.只要不掉点,DRAM内的数据不会丢失 【解析】SRAM和DRAM都是随机存储器,机器掉电后,两者的信息都将丢失。它们的最大区别就是:DRAM是用电容有无电荷来表示信息0和1,为防止电容漏电而导致读取信息出错,需要周期性地给电容充电,即刷新;而SRAM是利用触发器的两个稳态来表示信息0和1,所以不需要刷新。另外,SRAM 的存取速度比DRAM更高,常用作高速缓冲存储器Cache。

华为机试试题汇总解析

1.第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50 #include main() { intnum[50]={0}; inti,n; printf("请输入整型数组的长度(1~50):"); scanf("%d",&n); printf("请输入整型数组的元素:"); for(i=0;inum[j]) min_num=num[j]; } intsum=min_num+max_num; printf("数组中最大与最小值之和:%d\n",sum); return0; } 2.求两个长长整型的数据的和并输出,例如输入1233333333333333。。。3111111111111111111111111.。。。,则输出。。。。

#include #include #include main() { char*num1,*num2; //两个长长整型数据 char*sum; // inttemp; int len_num1,len_num2; // 两个长长整型数据的长度 intlen_max,len_min; num1=(char*)malloc(sizeof(char)); num2=(char*)malloc(sizeof(char)); printf("输入两个长长整型数据:"); scanf("%s",num1); printf("输入两个长长整型数据:"); scanf("%s",num2); len_num1=strlen(num1); len_num2=strlen(num2); len_max=(len_num1>=len_num2)?len_num1:len_num2; len_min=(len_num1<=len_num2)?len_num1:len_num2; int len_max1=len_max; sum=(char*)malloc(sizeof(char)*len_max); memset(sum,0x00,len_max+1);//切忌初始化 for(;len_num1>0&&len_num2>0;len_num1--,len_num2--) { sum[len_max--]=((num1[len_num1-1]-'0')+(num2[len_num2-1]-'0')); } if(len_num1>0) { sum[len_max--]=num1[len_num1- 1 ]-'0'; len_num1--; } if(len_num2>0) {

华为硬件笔试题、面试题

一简答 1.CISC,RISC 答:CISC(复杂指令集计算机)和RISC(精简指令集计算机)是前CPU 的两种架构。早期的CPU全部是CISC架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务。CISC(Complex Instruction Set Computer)结构有其固有的缺点,CISC 指令集的各种指令中,其使用频率却相差悬殊,大约有20%的指令会被反复使用,占整个程序代码的80%。而余下的80%的指令却不经常使用,在程序设计中只占20%,显然,这种结构是不太合理的。RISC 并非只是简单地去减少指令,而是把着眼点放在了如何使计算机的结构更加简单合理地提高运算速度上。RISC 结构优先选取使用频最高的简单指令,避免复杂指令;将指令长度固定,指令格式和寻地方式种类减少;以控制逻辑为主,不用或少用微码控制等措施来达到上述目的。 到目前为止,RISC体系结构也还没有严格的定义,一般认为,RISC 体系结构应具有如下特点: 采用固定长度的指令格式,指令归整、简单、基本寻址方式有2~3种。 使用单周期指令,便于流水线操作执行。 大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/ 存储指令可以访问存储器,以提高指令的执行效率。当然,和CISC 架构相比较,尽管RISC 架构有上述的优点,但决不能认为RISC 架构就可以取代CISC 架构,事实上,RISC 和CISC 各有优势,而且界限并不那么明显。现代的CPU 往往采CISC 的外围,内部加入了RISC 的特性,如超长指令集CPU 就是融合了RISC 和CISC 的优势,成为未来的CPU 发展方向之一 2.数据链路层 答:数据链路可以粗略地理解为数据通道。物理层要为终端设备间的数据通信提供传输媒体及其连接,.媒体是长期的,连接是有生存期的。在连接生存期内,收发两端可以进行不等的一次或多次数据通信.每次通信都要经过建立通信联络和拆除通信联络两过程.这种建起 来的数据收发关系就叫作数据链路. 二填空 1.IIR滤波器 答:IIR滤波器有以下几个特点: ①IIR数字滤波器的系统函数可以写成封闭函数的形式。 ②IIR数字滤波器采用递归型结构,即结构上带有反馈环路。 ③IIR数字滤波器在设计上借助了成熟的模拟滤波器的成果 ④IIR数字滤波器的相位特性不好控制,对相位要求较高时,需加相位校准网络。 2.简述分组交换的特点和不足 答:分组交换也称为包交换。分组交换机将用户要传送的数据按一定长度分割成若干个数据段,这些数据段叫做“分组”(或称包)。传输过程中,需在每个分组前加上控制信息和地址标识(即分组头),然后在网络中以“存储——转发”的方式进行传送。到了目的地,交换机将分组头去掉,将分割的数据段按顺序装好,还原成发端的文件交给收端用户,这一过程称为分组交换。 分组交换的特点有: ①分组交换方式具有很强的差错控制功能,信息传输质量高。 ②网络可靠性强。 ③分组交换网对传送的数据能够进行存储转发,使不同速率、不同类型终端之间可以

华为机试(南京)-面试题

求一串字符串中出现次数最多的单词 南京 同学都陆续到华为参加了机试,题目整体难度不大,基本上都是考字符串相关的题目。这里就分享一套2012年华为南京机试C++或者C 的编程题目。 2012年华为南京机试第一题整数化成字符串 给定一个整数(有可能是负数),将整数变成字符串。函数已经声明好类似void change(int number, char s[])的形式。可以自己写用例测试。 2012年华为南京机试第二题单链表逆序 给定一个已经定义好的单链表,将单链表中的数字逆序。输入为head 指针,返回的也是一个head 指针。函数声明为void sor(Node **head)的形式。 2012年华为南京机试第三题字符串最大回文子串 给定一个字符串,寻找它的一个最大子串,该子串是回文。例如给定用例字符 串”gabcdcbaef”,那么最大回文字串是”abcdcba”。函数声明为void huiwen(char input[], int len, char output[])。 一天几个考场的题目有相同的也有不同的,基本上难度都不大。要求做前两题就可以了,有能力的可以做第三题并且计入总分。有同学做完当场就看到是100分,也有0分的,至于怎么计分的不太清楚。希望七叶草提供的2012年华为南京机试编程题对你有帮助! 武汉 题目:有一个数组a[N]如a[10]={0,1,2,3,4,5,6,7,8,9}每隔两个数删除一个数,如0,1,2(删除),3,4,5(删除),6,7,8(删除),9,到数组尾部回到数组头部继续删除,要求编写一个函数实现实现上述操作,返回最后一个数的数组下标。 函数接口:int getLast(int iLen) 参数:数组初始元素个数iLen 01 #include 02 #include 03 04 typedef struct node *List; 05 typedef struct node *PNode; 06 07 typedef struct no

最全的华为校园招聘笔试题

最全的华为校园招聘笔试题 华为笔试 1.局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用 “::“ 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2.如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3.全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错。

4.语句for( ;1 ;)有什么问题?它是什么意思? 答:无限循环,和while (1)相同。 5.do……while和while……do有什么区别? 答:前一个循环一遍再判断,后一个判断以后再循环。 6.请写出下列代码的输出内容#i nclude main() { int a,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf(“b,c,d:%d,%d,%d“,b,c,d); return 0; } 答:10,12,120 一.判断题(对的写T,错的写F并说明原因,每小题4分,共20分) 1.有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0。() 2.int (*ptr) (),则ptr是一维数组的名字。() 3.指针在任何情况下都可进行>, =, =MAX_SRM) return (NULL_SRM); else return SRM_no; } 3. 写出程序运行结果 int sum(int a) { auto int c=0; static int b=3; c+=1; b+=2; return(a+b+C); } void main() { int I; int a=2; for(I=0;Inext = NULL; p=h; for(i=0;inext = s; printf(“Please input the information

华为笔试题目很全

[笔试]华为笔试集合,很全面 [此帖已被设为推荐]本人收集的一些华为笔试 华为软件工程笔试题 写一个程序,要求功能:求出用1,2,5这三个数不同个数组合的和为100的组合个数。如:100个1是一个组合,5个1加19个5是一个组合。。。。请用C++语言写。答案:最容易想到的算法是:设x是1的个数,y是2的个数,z是5的个数,number是组合数注意到0=x=100,0=y=50,0=z=20,所以可以编程为:number=0;for(x=0;x=100;x++)for(y=0;y=50;y++)for (z=0;z=20;z++)if((x+2*y+5*z)==100)number++;coutnumberendl;上面这个程序一共要循环100*50*20次,效率实在是太低了事实上,这个题目是一道明显的数学问题,而不是单纯的编程问题。我的解法如下:因为x+2y+5z=100所以x+2y=100-5z,且z=20x=100y=50所以(x+2y)=100,且(x+5z)是偶数对z作循环,求x的可能值如下:z=0,x=100,98,96,...0z=1,x=95, 93,...,1z=2,x=90,88,...,0z=3,x=85,83,...,1z=4,x=80,78,...,0......z=19,x=5,3,1z=20,x=0因此,组合总数为100以内的偶数+95以内的奇数+90以内的偶数+...+5以内的奇数+1,即为:(51+48)+(46+43)+(41+38)+(36+33)+(31+28)+(26+23)+(21+18)+(16+13)+(11+8)+(6+3)+1某个偶数m以内的偶数个数(包括0)可以表示为m/2+1=(m+2)/2某个奇数m以内的奇数个数也可以表示为(m+2)/2所以,求总的组合次数可以编程为:number=0;for(int m=0;m=100;m+=5){number+=(m+2)/2;}coutnumberendl;这个程序,只需要循环21次,两个变量,就可以得到答案,比上面的那个程序高效了许多倍----只是因为作了一些简单的数学分析这再一次证明了:计算机程序=数据结构+算法,而且算法是程序的灵魂,对任何工程问题,当用软件来实现时,必须选取满足当前的资源限制,用户需求限制,开发时间限制等种种限制条件下的最优算法。而绝不能一拿到手,就立刻用最容易想到的算法编出一个程序了事 【华为硬件笔试题1】 一选择13个题目,没有全部抄下来,涉及的课程有电路,模拟电路,数字电路,信号与系统,微机原理,网络,数字信号处理 1.微分电路 2.CISC,RISC 3.数据链路层二填空10个题目,没有全部抄下来,涉及的课程有电路,模拟电路,数字电路,信号与系统,微机原理,网络,数字信号处理有关于 1.TIC6000DSP 2.二极管 3.RISC 4.IIR三简答 1.x(t)的傅立叶变换为X(jw)=$(w)+$(w-PI)+$(w-5) h(t)=u(t)-u(t-2)问:(1),x(t)是周期的吗?(2),x(t)*h(t)是周期的吗?(3),两个非周期的信号卷积后可周期吗?2.简述分组交换的特点和不足四分析设计 1.波形变换题目从正弦波->方波->锯齿波->方波,设计电路2.74161计数器组成计数电路,分析几进制的3.用D触发器构成2分频电路 4.判断MCS-51单片机的指令正确还是错误,并指出错误原因(1)MUL R0,R1(2) MOV A,@R7(3)MOV A,#3000H(4)MOVC@A+DPTR,A(5)LJMP#1000H() 5.MCS-51单片机中,采用12Mhz时钟,定时器T0采用模式1(16位计数器),请问在下面程序中,p1.0的输出频率MOV TMOD,#01H SETB TR0LOOP:MOV TH0,#0B1H MOV TL0,#0E0H LOOP1:JNB TF0,LOOP1CLR TR0CPL P1.0SJMP LOOP 【华为硬件笔试题2】 全都是几本模电数电信号单片机题目 1.用与非门等设计全加法器 2.给出两个门电路让你分析异同 3.名词:sram,ssram,sdram 4.信号与系统:在时域与频域关系 5.信号与系统:和4题差不多 6.晶体振荡器,好像是给出振荡频率让你求周期(应该是单片机的,12分之一周期....) 7.串行通信与同步通信异同,特点,比较8.RS232c高电平脉冲对应的TTL逻辑是?(负逻辑?)9.延时问题,判错10.史密斯特电路,求回差电压11.VCO是什么,什么参数

华为招聘笔试题目

华为招聘笔试题目 华为是很多求职者都想要进入的,下面是搜集整理的华为招聘笔试题目,欢迎阅读,供大家参考和借鉴! 华为笔试题一:基础知识 1、string 是最基本的数据类型吗? 2、int 和 integer 有什么区别 3、string 和 stringbuffer 的区别 4、运行时异常与一般异常有何异同? 5、说出 servlet 的生命周期,并说出 servlet 和 cgi 的区别。 华为笔试题二:专业知识 6、说出 arraylist,vector, linkedlist 的存储性能和特性

7、ejb 是基于哪些技术实现的?并说出 sessionbean 和entitybean 的区别,statefulbean 和statelessbean 的区别。 8、collection 和 collections 的区别。 9、&和&&的区别。 10、hashmap 和 hashtable 的区别。 华为笔试题三:知识拓展 11、final, finally, finalize 的区别。 12、sleep() 和 wait() 有什么区别? 13、overload 和 override 的区别。overloaded 的方法是否可以改变返回值的类型? 14、error 和 exception 有什么区别? 15、同步和异步有何异同,在什么情况下分别使用他们?举例说明。

16、abstract class 和 interface 有什么区别? 一、判断题(对的写T,错的写F并说明原因,每小题4分, 共20分) 1、有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值 为0。( ) 2、int (*ptr) (),则ptr是一维数组的名字。( ) 3、指针在任何情况下都可进行>, <, >=, <=, = =运算。( ) 4、switch(c) 语句中c可以是int, long, char, float,unsigned int 类型。( ) 5、#define print(x) printf("the no, "#x",is ") 二、填空题(共30分) 1、在windows下,写出运行结果,每空2分,共10分。 char str[ ]= "Hello";

华为机试试题汇总

1 ?第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50 #i nclude mai n() { intn um[50]={0}; in ti, n; printf("请输入整型数组的长度(1~50):"); scan f("%d",&n); printf("请输入整型数组的元素:"); for(i=0;i nu m[j]) min_num=nu m[j]; } in tsum=min_nu m+max_ num; printf("数组中最大与最小值之和:%d\n",sum); return。; } 2. 求两个长长整型的数据的和并输出,例如输入123333333333333 3.OO

3111111111111111111111111。。O,则输出。OOO #i nclude #i ncludevstri ng.h> #i nclude mai n() { char* nu ml,* num2; //两个长长整型数据 char*sum; // in ttemp; int Ien_num1,len_num2; //两个长长整型数据的长度 in tle n_ max,le n_min; nu m1=(char*)malloc(sizeof(char)); nu m2=(char*)malloc(sizeof(char)); printf("输入两个长长整型数据:"); scan f("%s", nu m1); printf("输入两个长长整型数据:"); scan f("%s", nu m2); len_nu m仁strle n(nu m1); len_nu m2=strle n(nu m2); len_ max=(le n_nu m1>=le n_nu m2)?le n_nu m1:le n_nu m2; len_ mi n=(le n_nu m1<=le n_nu m2)?le n_nu m1:le n_nu m2; int len _max1=le n_max; sum=(char*)malloc(sizeof(char)*le n_max); memset(sum,OxOO,len_max+1);〃切忌初始化 for(;le n_nu m1> 0&&le n_nu m2>0;le n_nu m1--,le n_nu m2--) { sum[len_max--]=(( nu m1[len_num1-1]-'0')+( nu m2[len_num2-1]-'0')); } if(len_num1>0) { sum[le n_max--]=nu m1[le n_nu m1- 1 ]-'0'; len_nu m1--; } if(len_num2>0) {

华为成都上机笔试题

2010年华为软件校园招聘编程测 类别:软件C语言 编程题(共2题,第一题40分,第二题60分,共100分。请上机编写程序,按题目要求提交文件。[详见考试说明] 本试题采用自动测试用例进行评分,测试用例不对考生公开,凡不满足提交要求导致不能运行或用例不通过,不予评分)。 1. 删除字符串中所有给定的子串(40分) 问题描述:在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。 要求实现函数: int delete_sub_str(const char *str, const char *sub_str, char *result_str) 【输入】str:输入的被操作字符串 sub_str:需要查找并删除的特定子字符串 【输出】result_str:在str字符串中删除所有sub_str子字符串后的结果 【返回】删除的子字符串的个数 注: I、子串匹配只考虑最左匹配情况,即只需要从左到右进行字串匹配的情况。比如:在字符串"abababab"中,采用最左匹配子串"aba",可以匹配2个"aba"字串。如果 匹配出从左到右位置2开始的"aba",则不是最左匹配,且只能匹配出1个"aba"字串。II、输入字符串不会超过100 Bytes,请不用考虑超长字符串的情况。 示例

输入:str = "abcde123abcd123" sub_str = "123" 输出:result_str = "abcdeabcd" 返回:2 输入:str = "abcde123abcd123" sub_str = "1234" 输出:result_str = "abcde123abcd123" 返回:0 2. 高精度整数加法(60分) 问题描述: 在计算机中,由于处理器位宽限制,只能处理有限精度的十进制整数加减法,比如在32位宽处理器计算机中,参与运算的操作数和结果必须在-231~231-1之间。如果需要进行更大范围的十进制整数加法,需要使用特殊的方式实现,比如使用字符串保存操作数和结果,采取逐位运算的方式。如下: 9876543210 + 1234567890 = ? 让字符串num1="9876543210",字符串num2="1234567890",结果保存在字符串result = "11111111100"。 -9876543210 + (-1234567890) = ? 让字符串num1="-9876543210",字符串num2="-1234567890",结果保存在字符串result = "-11111111100"。 要求编程实现上述高精度的十进制加法。

华为软件测试工程师笔试题

华为软件测试工程师笔试题 软件测试工程师笔试题目 一(填空 1、系统测试使用( C )技术, 主要测试被测应用的高级互操作性需求, 而无需考虑被测试应用的内部结 构。 A、单元测试 B、集成测试 C、黑盒测试 D、白盒测试 2、单元测试主要的测试技术不包括(B )。 A、白盒测试 B、功能测试 C、静态测试 D、以上都不是 3、(A )的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。 A、系统测试 B、集成测试 C、单元测试 D、功能测试 4、如果一个产品中次严重的缺陷基本完成修正并通过复测,这个阶段的成品是( A )。 A、 Alpha版 B、Beta版 C、正版 D、以上都不是 5、自底向上法需要写(A )。 A、驱动程序 B、桩程序 C、驱动程序和桩程序 D、 .以上都不是 6、测试ATM取款功能,已知取款数只能输入正整数,每次取款数要求是100的倍数且不能大于500,下 面哪个是正确的无效等价类(C)

A、(0,100)、(100,200)、(200,300)、(300,400)、(400,500)、(500,+?); B、(500,+?) C、(500,+?)、任意大于0小于500的非100倍数的整数; D、(-?,100)、(100,200)、(200,300)、(300,400)、(400,500)、(500,+?); 7、因果图/判定表工程方法在以下那种情况下不适用(C) A、输入输出明确,或输入输出因果关系明确的情况下 B、被分析的特性或功能点复杂,输入项目很多的情况下 C、系统输入之间相互约束多,需要做大范围的组合测试情况下 D、系统输入之间基本没有相互联系 8、以下说法不正确的是(D) A、测试原始需要明确了产品将要实现了什么 B、产品测试规格明确了测试设计内容 C、测试用例明确了测试实现内容 D、以上说法均不正确 9、可测试性中,有关系统可观察性的理解,下面说法那个是错误的( B) A、系统所有的输出结果可观察,错误输出易于识别; B、系统运行状态和内部处理的过程信息可观察; C、系统内部变量名及其取值可观察; D、系统内部重要对象的状态和属性可观察; E、系统内部重要的操作的处理时间可观察; F、系统内部重要的资源的占用情况及单个资源的创建、保持、释放过程可观察 10、测试脚本的编写规范强调:(ABCD )

华为笔试试题大全

华为笔试试题大全 (陈远跃/整理) 1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用 2.引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 3.描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性。 4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在堆栈。 5.什么是平衡二叉树? 左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。 6.堆栈溢出一般是由什么原因导致的? 没有回收垃圾资源。 7.什么函数不能声明为虚函数? constructor函数不能声明为虚函数。 8.冒泡排序算法的时间复杂度是什么? 时间复杂度是O(n^2)。 9.写出float x 与“零值”比较的if语句。 if(x>0.000001&&x<-0.000001) 10.Internet采用哪种网络协议?该协议的主要层次结构? Tcp/Ip协议 主要层次结构为:应用层/传输层/网络层/数据链路层/物理层。 11.Internet物理地址和IP地址转换采用什么协议?

ARP (Address Resolution Protocol)(地址解析協議) 12.IP地址的编码分为哪俩部分? IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。 13.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。 循环链表,用取余操作做 14.不能做switch()的参数类型是: switch的参数不能为实型。 上海华为的一道关于指针方面的编程题 int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路) 华为笔试题含答案 [软件工程题] 写一个程序, 要求功能:求出用1,2,5这三个数不同个数组合的和为100的组合个数。 如:100个1是一个组合,5个1加19个5是一个组合。。。。请用C++语言写。 答案:最容易想到的算法是: 设x是1的个数,y是2的个数,z是5的个数,number是组合数 注意到0<=x<=100,0<=y<=50,0<=z=20,所以可以编程为: number=0; for (x=0; x<=100; x++) for (y=0; y<=50; y++) for (z=0; z<=20; z++) if ((x+2*y+5*z)==100) number++; cout<

华为机试题及答案

华为机试题及答案 1、通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。 测试:输入:“abc def gh i d”输出:“abc,def,gh,i,d,” #include #include void DivideString(const char *pInputStr, long lInputLen, char *pOutputStr) { int i=0,j=0; int flag=0; while(pInputStr[i]==' ') { i++; } for(;i

continue; } if(flag==1) { flag=0; pOutputStr[j++]=','; } pOutputStr[j++]=pInputStr[i]; } pOutputStr[j++]=','; pOutputStr[j]='\0'; } int main() { char test[40]; char re[40]; gets(test); DivideString(test, strlen(test), re); printf("%s",re); return 0; } 2、将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循

环转换后输出:a->b,b->c,…,y->z,z->a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次。例如:aa 转换为 bc,zz 转换为 ab;当连续相同字母超过两个时,第三个出现的字母按第一次出现算。 测试:输入:char*input="abbbcd" 输出:char*output="bcdcde" #include #include void convert(char *input,char* output) { int i; for(i=0;i

华为结构与材料工程师笔试题目

判断 1、Fe-C相图,Fe3C是最稳定的富碳相。错误 2、在二元合金系中,只有共晶成分的合金在结晶时才能发生共晶转变,其他任何 成分的合金在结晶时都不可能发生共晶转变。错误 3、从热力学上看,系统的焓是由原子间的键合决定,熵是由晶体的原子排列决定。 4、塑性变形时,滑移面总是晶体的密排面,滑移方向也总是密排方向。 5、材料的硬度越大,其弹性模量也越大 6、PTFE根据聚合方法的不同可分为悬浮聚合和分散聚合,前者使用与模压成型和挤压成型,后者制成的乳液可作为金属表面涂层 7、固溶体或合金的强度高于纯金属,主要原因是杂质原子的存在对位错运动具有牵制作用。正确 8、1wt%二氧化钛掺入到氧化铝中,是否有利于降低氧化铝陶瓷的烧结温度。 9、Fe合金的焊缝晶体形态主要是柱状晶和少量的等轴晶。正确 10、孪生是晶体难以进行滑移时,而进行的另外一种塑性变形方式。 11、一般情况下,同一种材料使用DSC、TMA、DMA测试出材料Tg点相差不会超过2度。 12、相图是材料工作者常用的工具之一,其常用来表示材料的相状态与温度和成分之间的关系,其不仅能表示相的平衡态,而且能反应相的亚稳态。正确 13、按照聚合物和单体元素组成和结构变化,可将聚合反应分成加成聚合反应和 缩合聚合反应两大类。 选择 1、能进行交滑移的位错必然是: 螺旋位错混合位错刀型位错 2、Db、Ds、Dl分别代表金属或合金中的晶界扩散、表面扩散、点阵扩散的扩散系数,一般情况下,有:Ds > Db >Dl 3、二氧化锆陶瓷可以用做氧气气氛下的炉体加热元件,但需要将氧化锆陶瓷加热到1000℃以上,这是因为?

产生明显的离子电导增加热膨胀量防止相变发生 4、以下三种界面作用力最大的是: 氢键范德华力静电化学键 5、以下化学键,键长最短的是: 配位键氢键离子键共价键 6、烧结过程分下述几个阶段,正确顺序是:(1)无规则形状颗粒表面趋圆(2) 颗粒之间颈缩(3)颈部加宽(4)晶粒生长 7、丙烯酸酯型材料不能通过以下哪种方式固化: UV固化湿气固化双组份室温固化加热固化 8、用来反映材料在交变载荷作用下,抵抗破坏能力的物理概念是: 抗拉强度疲劳强度硬度屈服热度 9、每个体心立方晶胞中包含有(2)个原子。 10、以下场景可以使用厌氧胶粘接的是: 塑胶支架对接玻璃与PC粘接 PC与PC粘接金属螺钉锁固 11、烧结中晶界移动的推动力是: 晶界两侧自由焓差空位浓度差自由能 12、拉伸试样的直径一定,标距越长则测出的断面收缩率会: 越低不变无规律可循越高 13、CuSi合金中hcp富Si相的(111)面与fcc富Cu相的(0001)面的点阵常数相等,它们可以形成: 半共格界面非共格界面 K-S关系的界面完全共格界面 14、分体颗粒表面不同部位应力不同,其空位形成所需能量大小关系哪一项正确? 无应力<张应力<压应力? 15、陶瓷经烧结后在宏观上的表达表述不正确的是? 体积收缩气孔率降低致密度减小强度增加 16、下列哪类材料随着温度升高电导率降低? 氧化铝空气碳化硅金属铝 17、下列过程中,哪一个能使烧结体的强度增加而不引起胚体收缩? 体积扩散流动传质溶解-沉淀蒸发-凝聚 18、形变后的材料再升温,发生回复和再结晶现象,则点缺陷浓度下降明显发生在:C

相关文档
最新文档