搜档网
当前位置:搜档网 › 应聘华为软件的上机试题及部分答案

应聘华为软件的上机试题及部分答案

应聘华为软件的上机试题及部分答案
应聘华为软件的上机试题及部分答案

1,判断电话号码是否合法:

//要注意情况包含,有可能会同时出现几种不好的情况,要按照顺序输出错误。不能同时输出好几种错误,应该是这样包含:先判断长度是否符合,再判断是否以86打头,再判断有无其他字符

int fun(char num[])

{ char *p=num;

int n=strlen(num);

if(n==13){

if(*p=='8'&&*(p+1)=='6')

while(*p!='\0'){

if(*p>='0'&&*p<='9')

p++;

else

return 2;

if(*p=='\0')

return 0;

}

else return 3;

}

else

return 1;

}

int main()

{

char num[]="87139a";

int k=fun(num);

cout<

return 0;

}

2、数组比较(20分)

?问题描述:

比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果2个数组长度不等,则只比较较短长度数组个数元素。请编程实现上述比较,并返回比较中发现的不相等元素的个数

比如:数组{1,3,5}和数组{77,21,1,3,5}按题述要求比较,不相等元素个数为0

数组{1,3,5}和数组{77,21,1,3,5,7}按题述要求比较,不相等元素个数为3

?要求实现函数:

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

?示例

1)输入:int array1[] = {1,3,5},int len1 = 3,int array2[] = {77,21,1,3,5},int len2 = 5 函数返回:0

2)输入:int array1[] = {1,3,5},int len1 = 3,int array2[] = {77,21,1,3,5,7},int len2 = 6 函数返回:3

函数如下:

using namespace std;

int f(int len1,int arry1[],int len2,int arry2[])

{ int k=0;

for(int i=len1-1,j=len2-1;i>=0&&j>=0;i--,j--)

if(arry1[i]!=arry2[j])

k++;

return k;

}

int main()

{

int num1[]={1,3,5};

int num2[]={77,21,1,3,5};

int k=f(3,num1,5,num2);

cout<

return 0;

}

3. 约瑟夫问题

?问题描述:

输入一个由随机数组成的数列(数列中每个数均是大于0的整数,长度已知),和初始计数值m。从数列首位置开始计数,计数到m后,将数列该位置数值替换计数值m,并将数列该位置数值出列,然后从下一位置从新开始计数,直到数列所有数值出列为止。如果计数到达数列尾段,则返回数列首位置继续计数。请编程实现上述计数过程,同时输出数值出列的顺比如:输入的随机数列为:3,1,2,4,初始计数值m=7,从数列首位置开始计数(数值3所在位置)

第一轮计数出列数字为2,计数值更新m=2,出列后数列为3,1,4,从数值4所在位置从新开始计数

第二轮计数出列数字为3,计数值更新m=3,出列后数列为1,4,从数值1所在位置开始计数第三轮计数出列数字为1,计数值更新m=1,出列后数列为4,从数值4所在位置开始计数

最后一轮计数出列数字为4,计数过程完成。

输出数值出列顺序为:2,3,1,4。

?要求实现函数:

void array_iterate(int len, int input_array[], int m, int output_array[ ])

【输入】 int len:输入数列的长度;

int intput_array[]:输入的初始数列

int m:初始计数值

【输出】 int output_array[]:输出的数值出列顺序

?示例

输入:int input_array[] = {3,1,2,4},int len = 4,m=7

输出:output_array[] = {2,3,1,4}

函数如下:

void fun(int len,int a1[],int len2,int a2[])

{ int n=0,i=-1,k=1,m=len2;

while(1){

for(int j=0;j

i=(i+1)%len; //注意这个是%,不要写成/

if(a1[i]!=0)

j++;

}

m=a1[i];

a2[n++]=a1[i];

a1[i]=0;

if(k==len)break;

k++;

}

}

4. 简单四则运算

?问题描述:

输入一个只包含个位数字的简单四则运算表达式字符串,计算该表达式的值

注: 1、表达式只含+, -, *, / 四则运算符,不含括号

2、表达式数值只包含个位整数(0-9),且不会出现0作为除数的情况

3、要考虑加减乘除按通常四则运算规定的计算优先级

4、除法用整数除法,即仅保留除法运算结果的整数部分。比如8/3=2。输入表达式保证无0作为除数情况发生

5、输入字符串一定是符合题意合法的表达式,其中只包括数字字符和四则运算符字符,除此之外不含其它任何字符,不会出现计算溢出情况

?要求实现函数:

int calculate(int len,char *expStr)

【输入】 int len: 字符串长度;

char *expStr: 表达式字符串;

【输出】无

【返回】计算结果

?示例

1)输入:char *expStr = “1+4*5-8/3”函数返回:19

2)输入:char *expStr = “8/3*3”函数返回:6

简化版的四则运算:没有括号,只有加减乘除四种运算

int fun(char a[],int len) //字符数组和字符数组的长度

{ int num[20];

char str[20];

int k1=0,k2=0;

int data=0;

for(int i=0;i

{ if(a[i]>='0'&&a[i]<='9')

num[k1++]=a[i]-'0';

if(a[i]=='-'||a[i]=='+')

str[k2++]=a[i];

if(a[i]=='*')

{num[k1-1]=num[k1-1]*(a[i+1]-'0');i++;}//遇见*,就运算,结果保存在数组中

if(a[i]=='/')

{ num[k1-1]=num[k1-1]/(a[i+1]-'0');i++;}

}

int temp=num[0];

int j=0; //两个数组只剩下数组和加减运算符

while(j

if(str[j]=='-')

temp=temp-num[j+1];

else if(str[j]='+')

temp=temp+num[j+1];

j++;

}

return temp;

}

int main()

{ har a[]="3*3+7+4/3";

int k=fun(a,9);

cout<

return 0;

}

函数实现2:中序表达式转换为后序表达式,使用算法实现

int isp(char c)

{ int p;

switch(c){

case'*':

case'/':p=1;break;

case'+':

case'-': p=0;break;

}

return p;

}

char* transf(int len,char a[],char b[])

{ int k=0;

stack s1;

for(int i=0;i

{ if(a[i]>='0'&&a[i]<='9')b[k++]=a[i];

else

{ if(s1.empty())s1.push(a[i]);

else while(isp(a[i])<=isp(s1.top()))

{b[k++]=s1.top();s1.pop();}

s1.push(a[i]);

}

}

while(s1.empty()){

b[k++]=s1.top();

s1.pop();

}

b[k]='\0';

return b;

}

void fun(char c,stack s2)

{ char p1,p2;

if(!s2.empty()){

p1=s2.top();s2.pop();

else pos=false;

cout<<"kongzhan"<

if(!s2.empty()){

p2=s2.top();s2.top();

else pos=false;

cout<<"kongzhan"<

if(pos=true)

switch(c){

case'+':s2.push(p1+p2);break;

case'-':s2.push(p2-p1);break;

case'*':s2.push(p1*p2);break;

case'/':s2.push(p2/p1);break;

}

}

void eval(char a[])

{ stack s2;

for(int i=len;i

switch(a[i]){

case'+':

case'-':

case'*':

case'/':fun(a[i],&s2);break;

default:s2.push(a[i]-'0');break;

}

}

}

int main()

{ char a[]="1+4*5-8/3";

int len=strlen(a);

char b[20];

char *q=transf(9,a,b);

cout<

return 0;

}

5、一副牌中发五张扑克牌给你:让你判断数字的组成:有以下几种情况:

1:四条:即四张一样数值的牌(牌均不论花色) 2:三条带一对

3:三条带两张不相同数值的牌 4:两对 5:顺子包括10,J,Q,K,A

6:什么都不是 7:只有一对

思路:将数组排序,统计相同的数字的个数,再分情况讨论

void sort(int a[])

{ int temp;

for(int i=0;i<5;i++)

for(int j=0;j<5;j++)

if(a[i]>a[j])

{temp=a[i];a[i]=a[j];a[j]=temp;}

}

void test(int a[])

{ int *b=new int[5];

int k=1;

for(int i=0;i<5;i++)

{ b[i]=a[i];}

for(int j=0;j<4;j++)

if(a[j]==a[j+1])

k++;

if(k==4){

if(b[1]==b[3])

cout<<"四条"<

else

cout<<"三条带一对"<

}

if(k==3){

if(b[1]!=b[2]||b[2]!=b[3])

cout<<"三条带两个不同的牌"<

else

cout<<"两对"<

}

if(k==2)

cout<<"一对"<

if(k==1){

if(b[4]-b[0]==4&&b[4]-b[1]==3&&b[4]-b[2]==2&&b[4]-b[3]==1)

cout<<"顺子<

else

cout<<"什么都不是"<

}

}

int main()

{ int a[]={1,2,4,4,4};

test(a);

return 0;}

6、求两个数组的和差就是去掉两个数组中相同的元素然后将两个数组中的元素存放在一个新的数组中,按大小顺序排序

思路:将数组A和数组B分别进行排序,然后将A与B进行比较,重复的跳过去,不重复的赋给数组C,依次输出。

while(i < la && j < lb)

{ if(aa[i] < bb[j])

{

c[sub] = aa[i];

++sub;

++i;

}

else if(aa[i] > bb[j])

{ c[sub] = bb[j];

++sub;

++j;

}

else if(aa[i] == bb[j])

{ ++i;

++j;

} }

for(; i < la; ++i)

{c[sub] = aa[i];

++sub;

}

for(; j < lb; ++j)

{c[sub] = bb[j];

++sub;

}

7、逆序单链表

node *reverse(node *head)

{ node *p1,*p2,*p3;

p1=head;

p2=head->next;

while(p2){

p3=p2->next;

p2->next=p1;

p1=p2;

p2=p3;

}

head->next=NULL;

head=p1;

return head;

}

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

问题描述:有一字符串,里面可能包含英文字母(大写、小写)、数字、特殊字符,现在需要实现一函数,将此字符串中的元音字母挑选出来,存入另一个字符串中,并对字符串中的字母进行从小到大的排序(小写的元音字母在前,大写的元音字母在后,依次有序)。

说明:1、元音字母是a,e,i,o,u,A,E,I,O,U。 2、筛选出来的元音字母,不需要剔重;最终输出的字符串,小写元音字母排在前面,大写元音字母排在后面,依次有序。

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

using namespace std;

void fun(char a[],char s[]) //提取元音字母,放入数组

{ int i=0,n=0;

while(a[i]!='\0'){

if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u')

s[n++]=a[i];

else if

(a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U')

s[n++]=a[i];

i++;

}

char temp; //将数组排序

for(int i=0;i

for(int j=0;j

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

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

int k=0; //定位大写字母的最后位置

while(s[k]>='A'&&s[k]<='Z'){

k++;

}

for(int j=0;j

cout<

char *p=new char[20]; //将字符串变换位置,输出。

char *q=p;

for(int i=k;i

{*p=s[i];p++;}

for(int j=0;j

{*p=s[j];p++;}

*p='\0';

cout<

}

int main()

{ char str[]="HaJsdStOoAOeINaPQaWEiAIiO";

char s[20];

fun(str,s);

return 0;

}

9、身份证号码合法性判断

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

1、长度为18位;

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

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

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

例如: 0111或 x。

请实现身份证号码合法性判断的函数。除满足以上要求外,需要对持有人生日的年、月、日信息进行校验。年份大于等于1900年,小于等于2100年。需要考虑闰年、大小月的情况。所谓闰年,能被4整除且不能被100整除或能被400整除的年份,闰年的2月份为29天,非闰年的2月份为28天。其他情况的合法性校验,考生不用考虑。

函数返回值:

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

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

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

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

5)如果身份证号的年信息非法,返回4;

6)如果身份证号的月信息非法,返回5;

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

要求实现函数:

int verifyIDCard(char* input)

示例

1)输入:””,函数返回值:1;

2)输入:” abc”,函数返回值:2;

3)输入:” a”,函数返回值:3;

4)输入:” 4”,函数返回值:4;

5)输入:” 4”,函数返回值:5;

6)输入:” 4”,函数返回值:6;

7)输入:” 1989 0229 1234”,函数返回值:7;

8)输入:” 4”,函数返回值:0;

i nt fun(char *str)

{ int year=0,month=0,day=0;

if((strlen(str)-1)<18) //1

{ for(int i=0;i<18;i++)

{ if(str[i]>='0'&&str[i]<='9') //2

;

else return 2;

}

if(str[17]=='x'||(str[17]>='0'&&str[17]<='9'))//3

{for(int i=6;i<10;i++)

year=year*10+str[i]-'0';

if(year>1900&&year<2100)//4

{ for(int i=10;i<12;i++)

month=month*10+str[i]-'0';

if(month>0&&month<=12)//5

{ for(int i=12;i<14;i++)

day=day*10+str[i]-'0';

if(day<=31)//6

{ if(year%4!=0&&month==2&&day<=28)

return 0;

else if(year%4==0&&month==2&&day<29)

return 0;

else if(year%4!=4&&month!=2&&day<31)

return 0;

else return 6;

}

else return 6;

}

else return 5;

}

else return 4;

}

else return 3;

}

else return 1;

}

int main()

{ char a[]="";

int k=fun(a);

cout<

return 0;

}

10、比较一个数组的元素是否为回文数组

判断是否是回文数组:

bool fun(char a[])

{

int n=strlen(a);

int i=0,j=n-1;

while(i

if(a[i]!=a[j])

return false;

i++;j--;

}

return true;

}

11、求两个数组的和差:就是去掉两个数组中相同的元素然后将两个数组中的元素存放在一个新的数组中且数组A中元素要在B数组元素之前

思路:利用循环比较,将相同的数字的标记为0,再赋给数组C

int main()

{ int a[]={1,3,5,7,9,12,13};

int s[]={1,3,5,6,7,8,9};

int len1=sizeof(a)/sizeof(int);

int len2=sizeof(s)/sizeof(int);

for(int i=0;i

for(int j=0;j

if(a[i]==s[j])

{a[i]=0;s[j]=0;}

int t[30];

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

while(i

if(a[i]!=0)

t[k++]=a[i];

i++;

}

while(j

if(s[j]!=0)

t[k++]=s[j];

j++;

}

for(int i=0;i

cout<

return 0;

}

12、字符串计算

1、选秀节目打分,分为专家评委和大众评委,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 sum1=0,sum2=0,avg1=0,avg2=0;

int m=0,k=0;

for(int i=0;i

if(judge_type[i]==1)

{sum1=sum1+score[i];m++;}

if(judge_type[i]==2)

{sum2=sum2+score[i];k++;}

}

avg1=sum1/m;avg2=sum2/k;

return (int)(avg1*0.6+avg2*0.4);

}

int main()

{ int input[]={3,6,1,9,7,8};

int output[]={1,1,2,1,2,2};

int n=sizeof(input)/sizeof(int);

int p=cal_score(input,output,n);

cout<

return 0;

}

13、给定一个数组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[])

using namespace std;

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

{ int i=0,j=n-1;

int temp;

for(int i=0;i

for(int j=0;j

{ if(input[j]>input[j+1])

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

}

int k=0;

i=0;j=n-1;

while(i

output[i++]=input[k++];

output[j--]=input[k++];

}

cout<

}

int main()

{ int input[]={3,6,1,9,7,8};

int output[20];

sort(input,6,output);

return 0;

}

14、操作系统任务调度问题。操作系统任务分为系统任务和用户任务两种。其

中,系统任务的优先级< 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}

函数接口:

void scheduler(int task[], int n,int system_task[], int user_task[])

{ int *p = new int[n];

int i,j,temp;

int k1=0,k2=0;

for(i = 0;i

{ p[i] = i;}

for(i = 0;i

for(j=0;j

{ if(*(task+p[j])>*(task+p[j+1]))

{temp = p[j];p[j] = p[j+1];p[j+1] = temp; //此处是排下标

}}

for(j=0;j

{if(*(task+p[j])<50)

system_task[k1++] = p[j];

if(*(task+p[j])>=50 && *(task+p[j])<=255)

user_task[k2++] = p[j];

}

system_task[k1] = -1;

user_task[k2] = -1;

}

15、地区2:单链表的操作:排序,插入,删除,逆序,创建。

struct node{

int data;

struct node* next;

};

node *creat()

{ node *head,*p,*s;

head=new node[1];

p=head; //p只是定义,并没有分配空间,

int k;

while(cin>>k) { //创建单链表

s=new node[1];

s->data=k;

p->next=s;

p=s;

}

head=head->next; //开始的的时候head是表头节点,现在是第一个节点

p->next=NULL;

return head;

}

node *creat()

{

node *head,*p,*s;

head=new node[1];

p=head;

int k,cyc=1;

while(cyc)

{

cout<<"enter a data:";

cin>>k;

if(k!=0)

{

s=new node[1];

s->data=k;

p->next=s;

p=s;

}

else

{

cout<<"OK!"<

cyc=0;

}

}

head=head->next;

p->next=NULL;

return head;

}

node *reverse(node *head)

{ node *p1,*p2,*p3;

p1=head;

p2=head->next;

while(p2){

p3=p2->next;

p2->next=p1;

p1=p2;

p2=p3;

}

head->next=NULL;

head=p1;

return head;

}

node *del(node *head,int num)

{ node *p,*s;

p=head;

while(p->data!=num&&p->next!=NULL)

{s=p;p=p->next;}

if(p->data==num){

if(p==head)

{head=p->next;delete p;}

else

{s->next=p->next;delete p;}

}

else

cout<<"未找到要删除的节点"<

return head;

}

node *insert(node *head,int num)//要插入和删除的时候要考虑判断特殊位置点{ node *p,*s,*t;

p=head;

t=new node[1];

t->data=num;

while(p->datanext!=NULL)

{s=p;p=p->next;}

if(num<=p->data){

if(p==head)

{t->next=p;head=s;}

else

{t->next=p;s->next=t;}

}

else//把插入点定位在了链尾

{p->next=t;t->next=NULL;}

return head;

}

node *sort(node* head)

{ node *p; int temp;

int n=sizeof(head)/sizeof(node);

if(head==NULL&&head->next==NULL)

return head;

p=head;

for(int i=0;i

p=head;

for(int j=0;j

if(p->data>p->next->data)

{ temp=p->data;

p->data=p->next->data;

p->next->data=temp;

}}}

return head;

}

node *sort(node *head)

{

node *p;

int temp;

int n;

n=length(head);

if(head==NULL&&head->next==NULL)

return head;

for(int i=0;i

{

p=head;

for(int j=0;j

{

if(p->next!=NULL)

{

if(p->data>p->next->data)

{

temp=p->data;

p->data=p->next->data;

p->next->data=temp;

}

p=p->next;

}

}

}

cout<<"new sort is:"<

return head;

}

int main()

{

node *p1;

p1=creat();

sort(p1);

print(p1);

cout<

return 0;

}

16、栈的基本操作:

struct list{

int data;

struct node *next;

}*node;

void initstack(node &top)

{

top=NULL;

}

void push(node &top,int num)

{ node *p;

p=new node;

p->data=num;

p->next=top;

top=p;

}

void pop(node &top)

{ node *p=top;

int n=top->data;

top=top->next;

cout<

delete p;

}

int Isempty(node &top)

{

return top==NULL;

}

17、改进后的冒泡排序:

oid maopao(int *s,int n)

{ int i=1,j,b=1;

int temp;

while(b){

b=0;

for(j=n-i-1;j>i;j--)

if(s[j]

{

b=1;

temp=s[j];

s[j]=s[j-1];

s[j-1]=temp;

}

for(j=i;j

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

{ b=1;

temp=s[j];

s[j]=s[j+1];

s[j+1]=temp;

}

i++;

}

}

18、扫描数组,求出最大的增量长度:

int main()

{ int a[]={7,2,3,4,5,6,8};

int n=7;

int max=1,len=1;

for(int i=1;i

{

if(a[i]>=a[i-1])

{ len++;

continue;//跳出本次循环,继续以下的部分

}

if(max

max=len;

len=1;

}

cout<

return 0;

}

19、扫描整数序列,求出最大长度子序列:

思路:定义两个游标i j分别在数组的左右,从两边收缩,计算i j之间数组的总和,然后比较,求出最大的记录,并将此时的i j 记录下来。

int main()

{ int s[]={1,20,-3,49,59,10,30,20,-41,90,-2,-30,60.-29};

int n=sizeof(s)/sizeof(int);

int i,k,j,a,b,num,max=0;

for( i=0;i

for( j=n-1;j>=i;j--)

{ num=0;

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

num=num+s[k];

if(max

{

max=num;

a=i; b=j;

}

}

for(int m=a;m<=b;m++)

cout<

return 0;

}

20、直接插入排序:

void insertsort(int a[],int n)

{ int x,j;

for(int i=1;i

x=a[i];

for( j=i-1;j>=0&&x>a[j];j--)

a[j+1]=a[j];

a[j+1]=x;

}

21、提取字符串中的数字:

在字符串"ab00cd+123fght456-253.005fgh"中提取的字符是0,123,456,253,5。void fun( char str[], int outArray[])

{ char *p=str;

int count=0,value=0;

while(*p!='\0')

{

if(*p>='0'&&*p<='9')

{

value=0;

while(*p>='0'&&*p<='9')

{

value=value*10+(*p-'0');

p++;

}

outArray[count++]=value;

}

p++;

}

}

22、数字转换成字符串:

int main()

{ char str[20],temp[20];

int i=0,j=0;

int num=;

while(num>0){

str[i]=num%10+'0';

num=num/10;

i++;

}

i--;

while(i>=0){

temp[j++]=str[i--];

}

temp[j]='\0';

cout<

001-华为公司应届生试题-研发软件类(第1套)

说明:本份试题满分100分,完成时间为90分钟。请将答案写在答题纸上,不要写在试卷上,答题完毕将试卷、答题纸和草稿纸一起上交。 一、单选题(共20题计40分) 1、输入序列为ABC,可以变为CBA时,经过的栈操作为() A. push,pop,push,pop,push,pop B. push,push,push,pop,pop,pop C. push,push,pop,pop,push,pop D. push,pop,push,push,pop,pop 2.线程和进程最主要的区别在于 A. 进程是UNIX下的概念,线程是Windows下的概念 B. 进程的效率比线程低 C. 在进程中可以创造线程,但线程中不能生成进程 D. 进程由自己独立的运行空间,线程的运行空间是共享的 3. IP路由发生在TCP/IP体系结构中的哪一层 A. 物理层 B. 数据链路层 C. 网络层 D. 传输层 4. 假设一个IP主机地址为而子网掩码为那么该主机的网络号为_________ 5.120 C 、遍历是树形结构的一种重要运算。若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则它的后序序列必是______。供选择的答案 A) E F G H B C D B) F E G H D C B C) B C D E F G H D) E F G C H D B 6、五层完全二叉树有___个节点。 A. 16 B. 32 C. 31 D. 33 7、用链接方式存储的非循环单向队列,在进行删除运算时,_____。 A) 头、尾指针可能都要修改 B) 仅修改头指针 C) 仅修改尾指针 D) 头、尾指针都要修改 8、如果在排序过程中,每次均将一个待排序的记录按关键字大小加入到前面已经有序的子表中的适当位置,则该排序方法称为() A.插入排序B.归并排序 C.冒泡排序D.堆排序 9、对下列关键字序列用快速排序法进行排序时,速度最快的情形是:( ) (A){25、23、30、17、21、5、9} (B){21、9、17、30、25、23、5} (C){21、25、5、17、9、23、30} (D){5、9、17、21、23、25、30}

华为认证网络工程师考试试题(笔试)及答案讲解

华为认证网络工程师--认证考试试题(笔试)及答案 选择题:(每题2分,共100分) 1、 以下属于物理层的设备是( A ) A 、 中继器 B 、 以太网交换机 C 、 桥 D 、 网关 2、 在以太网中,是根据( B )地址来区分不同的设备的。 A 、 LLC 地址 B 、 MA C 地址 C 、 IP 地址 D 、 IPX 地址 3、 以下为传输层协议的是( CD ) A 、IP B 、 ICMP C 、 UDP D 、 SPX 4、以下对 MAC 地址描述正确的是( BC ) A 、 由 B 、 由 C 、 前 D 、 后 5、 以下属于数据链路层功能的是( CD A 、 定义数据传输速率 B 、 定义物理地址 C 、 描述网络拓扑结构 D 、 流控制 6、 IEEE802.3U 标准是指(B ) A 、 以太网 B 、 快速以太网 C 、 令牌环网 D 、FDDI 网 7、如果要将两计算机通过双绞线直接连接,正确的线序是 A 、1--1、 2一2、3"3、4一4、5一5、6一6、7一7、8一8 B 、1--2、 2一1、3一6、4一4、5"5、6一3、7■■7、8一8 C 、1--3、 2一6、3一1、4一4、5"5、6一2、7■■7、8一8 D 、两计算机不能通过双绞线直接连接 &在V.35和V.24规程中,控制信号 RTS 表示(D ) A 、 数据终端准备好; B 、 数据准备好; C 、 数据载体检测; D 、 请求发送; 32位2进制数组成 48位2进制数组成 6位16进制由IEEE 负责分配 6位16进制由IEEE 负责分配

E、清除发送。 9、路由器作为网络互连设备,必须具备以下哪些特点。 A、至少支持两个网络接口 B、协议至少要实现到网络层 C、至少支持两种以上的子网协议 D、至少具备一个备份口 E、具有存储、转发和寻径功能 F、一组路由协议 G、必须有较高的协议处理能力 10、路由器的作用有(ABDG) A、异种网络互连 B、子网间的速率适配 C、连接局域网内两台以上的计算机 D、隔离网络,防止网络风暴,指定访问规则(防火墙) E、子网协议转换 F、加快网络报文的传递速度 G、路由(寻径):路由表建立、刷新、查找 H、报文的分片与重组 11、调用上一条历史命令的快捷键是(A ) A、CTRL-P B、CTRL-O C、ALT-P D、ALT-0 12、交换机工作在OSI七层的哪一层?(B) A、一层 B、二层 C、三层 D、三层以上 13、以下对CSMA/CD 描述正确的是( A D??) A、在数据发送前对网络是否空闲进行检测 B、在数据发送时对网络是否空闲进行检测 C、在数据发送时对发送数据进行冲突检测 D、发生碰撞后MAC地址小的主机拥有发送优先权 14、以下对STORE AND FORW ARD描述正确的是(CE) A、收到数据后不进行任何处理,立即发送 B、收到数据帧头后检测到目标MAC地址,立即发送 C、收到整个数据后进行CRC校验,确认数据正确性后再发送 D、发送延时较小 E、发送延时较大 15、以下对交换机工作方式描述正确的是( A、可以使用半双工方式工作 B、可以使用全双工方式工作 C、使用全双工方式工作时要进行回路和冲突检测 D、使用半双工方式工作时要进行回路和冲突检测(ABE ) ABD )

华为硬件笔试题

华为各类工程师通信基础面试题库以及答案周凝2010-10-21 14:43:06 比较基础的题目,希望大家看了有所帮助 牛人权当复习了吧 1、语音信号数字化过程中,采用的是的量化方法是非均匀量化。 2、PCM30/32路系统中,每个码的时间间隔是488ns。 3、PCM30/32路系统中,TS0用于传送帧同步信号,TS16用于传送话路信令。 4、PCM30/32路系统中,复帧的重复频率为500HZ,周期为2ms。 5、程控交换机的硬件可分为话路系统和中央控制系统两部分,整个交换机的控制软件都放在控制系统的存储器中。 6、一般二氧化硅光纤的零色散波长在1310nm左右,而损耗最小点在1550nm波长左右。 7、G.652光纤是零色散波长在1310nm的单模光纤。 8、光缆的基本结构由缆芯、加强元件和护套组成。 9、常用的光缆结构形式有层绞式光缆、束管式光缆、骨架式光缆和带状式光缆。 10、在网状网的拓扑结构中,N个节点完全互连需要N(N-1)/2条传输线路。 11、在星型网的拓扑结构中,N个节点完全互连需要N-1条传输线路。 12、ATM技术是电路交换技术和分组交换技术的结合。 13、根据98年发布的《自动交换电话(数字)网技术体制》,我国电话网分为三级。

14、根据新的电话网体制,我国长途电话网分为二级。 15、当电话网全网为三级时,两端局之间最大的串接电路段数为5段,串接交换中心最多为6个。16、新体制中一级长途交换中心(DC1)为省(自治区、直辖市)长途交换中心,其职能主要是汇接所在省(自治区、直辖市)的省际长途来去话务和一级交换中心所在地的长途终端话务。 17、一级长途交换中心(DC1)之间以基干路由网状相连。 18、根据话务流量流向,二级长途交换中心(DC2)也可与非从属的一级长途交换中心DC1建立直达电路群。 19、一级长途交换中心DC1可以具有二级长途交换中心的职能。 20、本地网路由的选择顺序为:直达路由、迂回路由、最终路由。 21、数字本地网中,原则上端至端的最大串接电路数不超过3段。 22、根据CCITT的建议,国内有效号码的长度不超过12位,国际有效号码长度不超过15位。 23、我国电话网目前采用的编号方式为不等位编号。 24、No.7信令中,消息传递部分由低到高依次包括信令数据链路、信令链路功能和信令网功能三个功能级。 25、国内No.7信令网采用由HSTP、LSTP和SP组成的三级信令网。 26、常见的同步基准信号有2048Kbits/s和2048KHz。 27、我国的No.7信令网为三级网络结构。 28、我国No.7信令网中,第一级HSTP间采用A、B平面连接方式,A、B 平面内部各个HSTP网状相连,A和B平面成对的HSTP相连。 29、每个LSTP通过信令链至少要分别连接至A、B平面内成对的HSTP。

华为公司应聘硬件笔试题

华为公司应聘硬件笔试题 一填空 10小题 单相整流的方式,全波,半波 ,_桥式_ fir数字滤波器的名称正弦波电流的有效值 ram的数据线的条数 10进制和16进制的换算绝对可积和频谱存(好像是)在的关系 二单选 大概包括数电模电的一些知识,跟填空题考的内容差不多 记得的有放大器电路中Rb的作用构成线与逻辑的门电路 risc 的处理器三极管开关模式的开关分别工作在哪个模式下随着温度的降低三极管里面的电流怎么样子变化地址数据总线等等 三多选 这部分要难一些,

记得的题目很少,等我记起了之后再补充,只记得一个金属壳电阻容易发生的问题是什么,不懂做还有pll的组成负反馈的作用检波电路的组成竞争冒险的处理几种总线的问题 i2c pci rs323 rs485 吧,题目考什么记不得了~ 四分析题 1 一个时序逻辑电路,先由2选一数据选择器选择信号输入,然后进入d触发器,输出结果再反向进入d触发器,输出结果为y,然后根据二选一的几个输入和cp脉冲的波形画出y的波形。 2 一个集成运放,正端输入vin和电阻,并在正端接稳压管,负端两个等值电阻,一个接地一个反馈,电阻大小等值,求输出电压v0 填空题 1、电阻、电容、电感组成的是分立元件电路。 2、集总电路中电容只存储能量,电感只能量。 3、给补码求原码。

4、差模和共模。 5、x86中内存地址求物理地址。 6、信号分析中分析连续非周期信号用方法,频域的连续性和周期性。 7、信号分析中分析连续周期信号用方法,频域的.连续性和周期性。 8、串口传输方向有哪三种。 9、VHDL赋值语句有哪两种。 选择题 1、互感; 2、三极管工作状态; 3、误码率; 4、网络的几层结构的功能; 5、三极管工作电压; 6、共集、共基和共射; 7、微分方程求传送函数; 8、z的传递函数; 计算题

JAVA面试题(_华为)(答案)

软件开发应试人员考试试题(Java) 姓名:___________ 电话:___________ 以下信息有工作经验人员如实填写,应届毕业不填(时间从毕业参加工作算起) 从事Java开发时间____月熟悉JavaScrip时间____月 熟悉EXT开发时间____月熟悉PDM开发时间____月 熟悉的数据库及时间(如SQLServer 3个月,可多填)___________________ 一、JAVA基础 1、简述你所知道的JA V A修饰符及各自的使用机制?(public、abstract、final、synchronized、super…) public :允许所有客户访问 protected:只能在本包内被该类的子类所使用 private:只允许在本类内使用 abstract:没有提供实现,需要子类提供 static:与整个类相关,与单个对象无关 final:你只能定义一个实体一次,以后不能改变它或继承它。一个final修饰的类不能被子类化,一个final 修饰的方法不能被重写,一个final修饰的变量不能改变其初始值 synchronized:方法获得对对象监控的访问权;如果该方法是static类型的,获得是对类本身的访问权。super:构造器和方法,都用关键字super指向超类,但是用的方法不一样。方法用这个关键字去执行被重载的超类中的方法。 2. String、StringBuffer与StringBuilder之间区别?别简述各自的执行效率? 区别:String 类型和StringBuffer 类型的主要性能区别其实在于String 是不可变的对象, 因此在每次对String 类型进行改变的时候其实都等同于生成了一个新的String 对象,然后将指针指向新的String 对象,所以经常改变内容的字符串最好不要用String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后,JVM 的GC 就会开始工作,那速度是一定会相当慢的, 执行速度:三者在执行速度方面的比较:StringBuilder > StringBuffer > String 使用场景:1.如果要操作少量的数据用= String 2.单线程操作字符串缓冲区下操作大量数据= StringBuilder 3.多线程操作字符串缓冲区下操作大量数据= StringBuffer 2、静态变量和实例变量的区别?能在静态方法中调用非静态变量吗? 静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。实例变量属于该类的对象,必须产生该类对象,才能调用实例变量 静态方法及变量属于整个类,数据将会被存储在公共区域,非静态方法及变量属于对象 静态方法中无法调用实例变量,而实例方法却可以调用静态变量

华为工程师面试题总结(有答案) 80%参考

本题库是华为集团工程师面试 -内部真实评分标准, -内部真实面试案例,后面有工程师考试试卷和答 案。物超所值,学会本文面试通过率提高80% 华为集团面试经验总结: 华为集团是4轮 一面组长,会问到一些这样问题,为什么会离职,为什么来华为集团婚姻状况,与此同时有没有想问面试官的问题。 二面经理,偏向于部门业务服务。有业务上的试卷需要考试。 三面经理,这一轮会谈到一些业务目标和工作中可能出现的一些问题。大概聊一下工作的想 法,部门的价值和目标,对这个岗位的期望等等以及华为集团和行业的情况。聊天的内容与面试者个人有关,可多可少。(二三是交叉面试防止作弊), 四面职业通道委员会,这一轮的面试非常专业,为技术专家面,目的是定级。确定你面试者的水平大概在什么位置。直接影响后面的收入。各个击中要害。不要想着有简单跳过的部分。在介绍工作内容的过程中,要先介绍自己在组织团队所处的位置,发挥的作用,工作绩效等,条例要清楚。这一轮的面试专业性最强。最后是HR谈薪资的部分,因为行业都有规则,所以时间不会太长。 5面背景调查,主要是面试者在填写简历时提供的名字和联系方式,其中包含领导。HR最后offer。 步骤四、五、六每个一个星期,比如三面完后得到职业通道委员会的面试的通知约一周,四面完后,得到通过与否的消息是一个星期。如果某一步一个星期多没消息,那就是没戏了。

面试的重点分享: 面试的气氛需要注意的: 1面试不能一脸严肃,显得很紧张,要适当微笑。给面试官的印象好。 2面试官提问的问题,不能对抗反驳提问。即使面试官的问题比较苛刻。 细节决定成败,面试如同相亲,面试官会注意到每个细节,身上有没有烟味,头发是不是整齐,说话条例要清晰,一定要集中精神,面试等待的时候也不能看手机。自我介绍的时候要强调身体健康可以加班。可以在最后自己介绍的时候,表示出强烈的来工作,一展抱负的意思。让面试官感受你的积极一面。 面试最重要的3点 1要高度认同面试公司的工作文化和理念。 2要强调自己不断学习。不断成长,能承受压力。 3千万不能说因为自己考试,希望的工作是轻松的,清闲的。 最重要的2点要高度认同面试公司的工作文化和理念。面试前要上公司网站查看下这个公司的文化理念,如果在面试过程把这个点说出来,是要加分非常多的。 收尾阶段 面试官一般会问:“你还有什么问题想问我们?”这个时候千万别不问,有啥没啥的都一定要问两个问题,一个问题可以涉及技术层面,另一个可以涉及应聘职位的发展问题. 前公司的离职原因是必问的问题,不能说前公司太多的不好,可以说因为其他原因, 离职原因:优秀回答: A:原来公司亏损,减员,所以申请离职。 B:原来的公司,更换股东,战略有调整,人员调整。 C 原来的公司,因为搬家,搬家到很远的地方,过去不方便。 D 原来的公司,调整作息时间,周二放假,周日上班。 E 自己想要成长,希望可以更换岗位,挑战新的岗位,新的工作。 自我介绍: 是被面试者在纸面之外最能够呈现能力的一个地方。一般情况下,也是被面试者在整个面试过程中惟一一次主动展示自我的机会 第一,考察自我介绍内容和递交简历内容是否相冲突?如果简历是真实的,口述自我介绍就不会有明显出入。如果简历有假,自我介绍阶段一般就会漏马脚。如被面试者反问:“我的经历在简历里都写了”,面试官会认为这人得瑟,印象分一下子降为负数。 第二,考察被面试者基本的逻辑思维能力、语言表达能力,总结提炼概括能力。 第三,考察被面试者是否聚焦,是否简练和精干,现场的感知能力与把控能力。 第四,考察被面试者初步的自我认知能力和价值取向。因为被面试者要叙述职业切换关键节

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

华为软件测试工程师面试题 2010-05-27 10:25 Q1:请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图? 答:七层结构从上到下依次是: 7 应用层;6 表示层;5 会话层;4 传输层;3 网络层;2 数据链路层;1 物理层 五层结构是 5 应用层;4 运输层;3 网络层; 2 链路层;1 物理层。 Q2:请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用?TCP与UDP 呢? 答:UDP,TCP在传输层,IP在网络层, TCP/IP是英文Transmission Control Protocol/Internet Protocol的缩写,意思是"传输控制协议/网际协议"。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到 Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的? 一般意义上说交换机是工作在数据链路层。但随着科技的发展,现在有了三层交换机,三层交换机已经扩展到了网络层。也就是说:它等于“数据链路层+ 部分网络层”。交换机中传的是帧。通过存储转发来实现的。 路由器是工作在网络层。路由器中传的是IP数据报。主要是选址和路由。 Q4:请问C++的类和C里面的STRUCT有什么区别? 答:除关键字不同外(class,struct)的唯一区别是, 结构在默认情况下的成员是公共(public)的, 而类在默认情况下的成员是私有(private)的。 在C++中,结构是特殊的类。 class是从struct发展而来的。之所以将struct和class都保留,是因为: 1、提出class是为了强调一种概念。 2、保留struct是为了照顾到大多数人的习惯。 struct和class是有区别的。 struct保证成员按照声明顺序在内存中存储。class不保证等等 而它们都可以继承,实现多态等。但也有少许区别。比如:

华为硬件笔试题、面试题

一简答 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.简述分组交换的特点和不足 答:分组交换也称为包交换。分组交换机将用户要传送的数据按一定长度分割成若干个数据段,这些数据段叫做“分组”(或称包)。传输过程中,需在每个分组前加上控制信息和地址标识(即分组头),然后在网络中以“存储——转发”的方式进行传送。到了目的地,交换机将分组头去掉,将分割的数据段按顺序装好,还原成发端的文件交给收端用户,这一过程称为分组交换。 分组交换的特点有: ①分组交换方式具有很强的差错控制功能,信息传输质量高。 ②网络可靠性强。 ③分组交换网对传送的数据能够进行存储转发,使不同速率、不同类型终端之间可以

华为笔试试题软件工程试题及答案

华为笔试试题软件工程试题及答案 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地址由两部分组成,网络号和主机号。不过是要和“子网掩

华为HCospfbgp面试题

1.OSPF邻接形成过程 2.互发HELLO包,形成双向通信 3.根据接口网络类型选DR/BDR 4.发第一个DBD,选主从 5.进行DBD同步 6.交互LSR、LSU、LSack进行LSA同步 7.同步结束后进入FULL 8.OSPF中承载完整的链路状态的包LSU 9.链路状态协议和距离矢量协议的比较 10.(1)路由传递方法不同(2)收敛速度不同(3)度量值不同(4)有环无环 (5)应用环境不同(6)有无跳数限制(7)生成路由的算法不同(8)对设备资源的消耗不同 11.OSPF防环措施 12.(1)SFP算法无环(2)更新信息中携始发者信息,并且为一手信息(3) 多区域时要求非骨干区域,必须连接骨干区域,才能互通路由,防止了始发者信息的丧失,避免了环路。 13.OSPF是纯链路状态的协议吗 14.(1)单区域时是纯的链路状态协议,而多区域时,区域间路由使用的是距 离矢量算法。 15.OSPF中DR选举的意义DR选举时的网络类型DR和其它路由器的关系 16.(1)提高LSA同步效率。(2)广播型和NBMA要选DR (3)DR与其它 路由器为邻接关系。 17.OSPF的NSSA区域和其它区域的区别 18.比普通区域相比:去除了四类五类LSA,增加了七类LSA 19.和STUB区域相比:他可以单向引入外部路由 20.OSPF的LSA类型,主要由谁生成 21.一类路由器LSA 所有路由器本区域描述直连拓扑信息 22.二类网络LSA DR 本区域描述本网段的掩码和邻居 23.三类网络汇总LSA ABR 相关区域区域间的路由信息 24.四类ASBR汇总LSA ABR 相关区域去往ASBR的一条路由信息 25.五类外部LSA ASBR 整个AS AS外部的路由信息 26.七类NSSA外部LSA ASBR 本NSSA区域AS外部的路由信息 27.IBGP为什么采用全互联不采用全互联怎么部署 28.(1)解决IBGP水平分割问题(2)反射器或联盟 29.路由反射器的反射原则 30.(1)客户端的路由反射给所有邻居(2)非客户端的路由反射给客户端(3) 只发最优路由(4)两个非客户端路由不能互通(5)反射不改变路由属性 31.OSPF邻居形成过程 32.OSPF有几类LSA 33.OSPF的NSSA区域与其它区域的通信方法 34.PPP协商过程 35.OSPF没有形成FULL状态的原因 36.(1)HELLO和失效时间不一致(2)接口网络类型不一致(3)区域不一 致(4)MA网络中掩码不一致(5)版本不一致(6)认证不通过(7)

华为、中兴通信、康佳硬件工程师考试经验分享版

华为、中兴通信、康佳硬件工程师考试经验分享 一、华为专业面试 面试职位:硬件技术工程师(硬件开发方向),面试形式为一对一。 面试官对应聘者的考察主要基于一些最基础的硬件知识和在校期间所 做的项目。因为作者带了个自己设计的AVR单片机开发板,所以面试 问题主要围绕这个板子展开,如下: 1)假设LED的导通电流为5mA,计算限流电阻的大小。(此题主要考察LED的正向导通压降、欧姆定律。LED导通电压降一般为1.5V到2.5V,因颜色不同而不同) 2)JTAG的各信号线是什么意义?(JTAG为联合测试行动小组的英文简称,主要信号线为:TDI——测试数据输入,TDO——测试数据输出,TCK——测试时钟,TMS——测试模式选择,TRST——测试复位) 3)IIC总线协议。为什么总线需要上拉电阻?(SDA——串行数据线,SCL——串行时钟线。为了避免总线信号的混乱,要求各设备连接到总 线输出端时,为OD或者OC输出。上拉电阻作用为保持总线有正常的 高电平输出) 4)AD电路中,为什么采用磁珠滤波,而不是用电感? 5)按键的中断是电平触发还是边沿触发?两者有什么区别?(电平出发, 如果中断处理时间短于电平的时间,则会发生多次触发中断) 6)按键消抖。(软件延时消抖,硬件双稳态RS触发器消抖,最经济的 硬件消抖方式——RC电路滤波) 7)驱动蜂鸣器的三极管工作在哪个区?如果拿来作为反相器呢?(放大区,做反相器时工作在饱和区和截止区) 8)PCB的两条平行走线过长,会有什么后果?

9)四层PCB的层信号分布怎样的?为什么这样就EMC性能好?(信号层、地层、电源层、信号层) 10)画出简单的低通、高通滤波器? 二、中兴硬件笔试题 中兴硬件类笔试题比较变态,因为硬件开发、硬件测试、射频等工程师的笔试题都是一样的,所以范围覆盖非常广,包括:电路分析、模电、数电、单片机、C语言、汇编语言、FPGA、DSP、高频电路、通信原理、PCB设计等等。 1)三极管的三个工作区域及条件(放大区、截止区、饱和区) 2)PCB的3W原则和20H原则(3W是相邻走线的中心间距大于3倍标准线宽,H指的是电源层与底层之间的介质的厚度,把电源层的边缘向内所20H以上) 3)PCB相邻层走线的方向(尽量相互垂直) 4)第三代移动通信技术3G的制式有哪几种?(移动TD-SDCMA、联通WCMDA、电信CDMA2000) 5)SDRAM和FLASH的区别?程序加载在哪里运行?为什么?(SDRAM——静态同步RAM,FLASH——闪存。程序加载在SDRAM里,因为其读写速度快于FLASH) 6)摩尔状态机和米勒状态的区别?(Moore:输出只与状态相关,与输入无关;Melay:输出与状态和输入都相关) 7)“线与”问题。(“线与”就是将逻辑门的输出直接并联以实现逻辑与的功能。前提条件:逻辑门必须为OC/OD门) 8)锁相环的结构组成? 9)同步电路和异步电路的时钟问题?

华为硬件笔试题(最新版)

一选择 13 个题目,没有全部抄下来,涉及的课程有电路,模拟电路,数字电路,信号与系统,微机原理 ,网络,数字信号处理 有关于 1.微分电路 2.CISC,RISC 3.数据链路层 二填空 10 个题目,没有全部抄下来,涉及的课程有电路,模拟电路,数字电路,信号与系统,微机原理 ,网络,数字信号处理 有关于 1.TIC6000 DSP 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 TR0 LOOP:MOV TH0,#0B1H MOV TL0,#0E0H

LOOP1:JNB TF0,LOOP1 CLR TR0 CPL P1.0 SJMP LOOP

嵌入式软件工程师笔试题_华为课件【新版】

(一) 1什么是预编译,何时需要预编译: 答案: 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。 2 char * const p char const * p const char *p 上述三个有什么区别? 答案: char * const p; //常量指针,p的值不可以修改 char const * p;//指向常量的指针,指向的常量值不可以改const char *p;//和char const *p 3 char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout < < ( str1 == str2 ) < < endl; cout < < ( str3 == str4 ) < < endl; cout < < ( str5 == str6 ) < < endl; out < < ( str7 == str8 ) < < endl; 结果是:0 0 1 1 str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。 4以下代码中的两个sizeof用法有问题吗? [C易] void UpperCase( char str[] ) // 将str 中的小写字母转换成大写字母 { for( size_t i=0; i

应聘华为工程师考题及答案

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 、应聘华为各类工程师通信基础题库以及答案-知己知彼、百战不殆电信基础知识题库 (以下题目可以按填空、判断或简答方式出题,也可以经过变化成为选择题) 1、语音信号数字化过程中,采用的是的量化方法是非均匀量化。 2、PCM30/32路系统中,每个码的时间间隔是488ns 。 3、PCM30/32路系统中,TS0用于传送帧同步信号,TS16用于传送话路信令。 4、PCM30/32路系统中,复帧的重复频率为500HZ,周期为2ms。 5、程控交换机的硬件可分为话路系统和中央控制系统两部分,整个交换机的控制软件都放在控制系统的存储器中。 6、一般二氧化硅光纤的零色散波长在1310nm左右,而损耗最小点在1550nm波长左右。 7、G.652光纤是零色散波长在1310nm的单模光纤。 8、光缆的基本结构由缆芯、加强元件和护套组成。 9、常用的光缆结构形式有层绞式光缆、束管式光缆、骨架式光缆和带状式光缆。 10、在网状网的拓扑结构中,N个节点完全互连需要N(N-1)/2 条传输线路。 11、在星型网的拓扑结构中,N个节点完全互连需要N-1 条传输线路。 12、ATM技术是电路交换技术和分组交换技术的结合。 13、根据98年发布的《自动交换电话(数字)网技术体制》,我国电话网分为三级。 14、根据新的电话网体制,我国长途电话网分为二级。 15、当电话网全网为三级时,两端局之间最大的串接电路段数为5段,串接交换中心最多为6个。 16、新体制中一级长途交换中心(DC1)为省(自治区、直辖市)长途交换中心,其职能主要是

华为应聘笔试题-硬件

【华为硬件笔试题1】 一选择13个题目,没有全部抄下来,涉及的课程有电路,模拟电路,数字电路,信号与系统,微机原理,网络,数字信号处理 1.微分电路 2.CISC,RISC 3.数据链路层 二填空10个题目,没有全部抄下来,涉及的课程有电路,模拟电路,数字电路,信号与系统,微机原理,网络,数字信号处理有关于 1.TIC6000 DSP 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 TR0 LOOP:MOV TH0,#0B1H MOV TL0,#0E0H LOOP1:JNB TF0,LOOP1 CLR TR0 CPL P1.0 SJMP LOOP 【华为硬件笔试题2】 全都是几本模电数电信号单片机题目 1.用与非门等设计全加法器 2.给出两个门电路让你分析异同 3.名词:sram,ssram,sdram 4.信号与系统:在时域与频域关系

华为软件研发岗笔试题总结

华为软件研发岗笔试题 总结 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

操作系统(OperatingSystem,简称OS)是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。 操作系统通常是最靠近硬件的一层系统软件,它把硬件裸机改造成为功能完善的一台虚拟机,使得计算机系统的使用和管理更加方便,计算机资源的利用效率更高,上层的应用程序可以获得比硬件提供的功能更多的支持。 操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。目前微机上常见的操作系统有DOS、OS/2、UNIX、XENIX、LINUX、Windows2000、Netware等。 华为软件笔试题 一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分) 1、有数组定义inta[2][2]={{1},{2,3}};则a[0][1]的值为0。(正确) 2、int(*ptr)(),则ptr是一维数组的名字。(错误) 3、指针在任何情况下都可进行>,<,>=,<=,==运算。(正确) 4、switch(c)语句中c可以是int,long,char,float,unsignedint类型。(错误) 5、#defineprint(x)printf("theno,"#x",is")(正确) 二、填空题(共30分) 1、在windows下,写出运行结果,每空2分,共10分。 charstr[]="Hello"; char*p=str; intn=10; sizeof(str)=(6) sizeof(p)=(4) sizeof(n)=(4) voidfunc(charstr[100]) {} sizeof(str)=(4)

华为网络工程师试题_1

华为网络工程师试题 1、在一个以太网中,30台PC通过QUTDW AY R2501路由器S0口连接INTERNET,QUIDWAY R2501路由器配置如下: Qutidway(config-if-e0)#ip address s0 Qutidway(config-if-s0)#ip address ppp 一台PC机默认网关为路由器会怎样处理发自这台PC的数据包?(A) A.路由器会认为发自这一台PC的数据包不在同一网段,不转发数据包 B.路由器会自动修正这一台PC机的IP地址,转发数据包 C.路由器丢弃数据包,这时候需要重启路由器,路由器自动修正误配 D.路由器丢弃数据包,不做任何处理,需要重配PC网关为 2、关于MAC地址表示正确的是(A ) A、00-e0-fe-01-23-45 B、、D、 3、路由器作为网络互连设备,必须具备以下哪些特点() A、支持路由协议 B、至少具备一个备份口 C、到少支持两个网络接口 D、协议至少要实现到网络层 E、具有存储、转发和寻径功能 F、至少支持两种以上的子网协议 4、某台路由器有两个以太网接口,分别与不同网段的以太网相连,请问:该路由器最多可有几组?() A、1个 B、2个 C、3个 D、4个 E、多于四个。 5、配置备份中心的目的是() A、增加网络带宽 B、提高网络可用性 C、降低网络传输费用 D、防止数据传输意外中止

6、作为国际通用标准的广域网协议,内置的差错纠正,流量控制和丢包重传机制使之具有高度的可靠性,由于数据吞吐率很低,包时延较大,故不适于在质量差的信道上传输数据,这种说法正确吗?( ) A、True B、False 7、V。24接口工作在同步方式下最高传输速率是() A、64000bps B、115200 bps C、2048000 bps D、4096000 bps 8、下列那一条命令用于配置DDR的链路处于断开状态后,重新建立链接等待的时间?( ) A、diater idte-timeout B、diater fast-idle C、diater enable-timeout D、diater wait-for-carmer-time 9、ISDN的物理线路是() A、2B+D B、30B+D C、同轴电缆 D、普通电缆 10、Qutidway路由器上输入“show ip rip“命令,如下所示: Qutidway#show ip rip RIP is rurining on Checkcero is on defauit-metric 16 On neighter Fictucrik all BUTO-surttutiry is on preference 100 下列说法正确的是:( ) A、该条命令显示了RIP当前运行状态和配置信息 B、默认情况下,RIP路由协议优先级为100,可能通过“IP RIP PRICRITY”命令修改其优先级

相关主题