当前位置:文档之家› 华为2012校园招聘上机试题及答案剖析

华为2012校园招聘上机试题及答案剖析

华为2012校园招聘上机试题及答案剖析
华为2012校园招聘上机试题及答案剖析

2011年华为软件校园招聘编程测验

1、请上机编写程序,按题目要求提交文件。[详见考试说明,点击进入考试说明]

3、评卷通过在给定用例输入下,严格按照试题要求比较考生实现函数的输出与预设输出。两者相同则得分,不同则不得分。

4、评卷人保证测试用例输入参数的合法性,考生不用考虑输入参数非法或异常的情况

5、评卷人保证测试用例输入在被测函数正常合法情况下使用不会导致程序错误

6、如果考生函数异常导致程序崩溃或死循环,则自动评卷可能会被人为终止,剩余用例不被执行,无法得分

7、基于上述阅卷规则,请考生严格按照题目要求功能实现程序,尽量保证实现函数的稳健性,同时建议完成一道题并调试保证正确性后,再考虑并实现下一题目

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[]="87139a3887671";

int k=fun(num);

cout<

return 0;

}

1. 数组比较(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;

}

2. 约瑟夫问题

?问题描述:

输入一个由随机数组成的数列(数列中每个数均是大于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++;

}

}

3. 简单四则运算

?问题描述:

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

注: 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;

}

第五题:一副牌中发五张扑克牌给你:让你判断数字的组成:有以下几种情况: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;}

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

思路:将数组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;

}

四:逆序单链表

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;

}

2. 将一个字符串的元音字母复制到另一个字符串,并排序(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;

}

3. 身份证号码合法性判断

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

1、长度为18位;

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

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

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

例如:511002 19880808 0111或511002 198********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)输入:?511002 111222?,函数返回值:1;

2)输入:?511002 abc123456789?,函数返回值:2;

3)输入:?511002 198********a?,函数返回值:3;

4)输入:?511002 188808081234?,函数返回值:4;

5)输入:?511002 198813081234?,函数返回值:5;

6)输入:?511002 198808321234?,函数返回值:6;

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

8)输入:?511002 198808081234?,函数返回值:0;

{ 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[]="340621198608377817";

int k=fun(a);

cout<

return 0;

}

第二题:比较一个数组的元素是否为回文数组

判断是否是回文数组:

{

int n=strlen(a);

int i=0,j=n-1;

while(i

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

return false;

i++;j--;

}

return true;

}

第三题:求两个数组的和差:就是去掉两个数组中相同的元素然后将两个数组中的元素存放在一个新的数组中且数组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;

}

字符串计算

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;

}

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[])

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;

}

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}

函数接口:

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;

}

地区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 *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;

}

栈的基本操作:

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;

}

改进后的冒泡排序:

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++;

}

}

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

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;

}

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

思路:定义两个游标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;

}

直接插入排序:

void insertsort(int a[],int n)

{ int x,j;

x=a[i];

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

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

a[j+1]=x;

}

提取字符串中的数字:

在字符串"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++;}}

数字转换成字符串:

int main()

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

int i=0,j=0;

int num=1234567;

while(num>0){

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

num=num/10;

i++;

}

i--;

while(i>=0){

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

}

temp[j]='\0';

cout<

return 0;

}

如下输入方法:第一行输入要输入字符的行数N,接下输入N行字符,统计字符中特定字符的个数。方法如下:

int main()

{ char ch;

int N,num=0;cin>>N; //定义输入的行数

getchar(); //输入的N行字符

while(1){ //记住控制方法

ch=getchar(); //这是单个字符

if(ch=='a')num++;

if(ch=='\n')break;

} }

cout<

return 0;

}

大数的运算:

void fun(char *num1,char *num2,char *result)

{ int i=strlen(num1)-1,j=strlen(num2)-1;

char *p=num1;

char *q=num2;

int n=0,k=0;

if(p[0]!='-'&&q[0]!='-'){

//两个正数相加,两个负数相加一样,就是在result[n]中再加上一个‘-’,再反序输出。

while(i>=0&&j>=0){

result[n++]=((p[i]-'0')+(q[j]-'0')+k)%10+'0';

k=((p[i]-'0')+(q[j]-'0'))/10;

i--;j--;

}

while(i>=0){

result[n++]=((p[i]-'0')+k)%10+'0';

k=((p[i]-'0')+k)/10;

i--;

}

while(j>0){

result[n++]=((q[j]-'0')+k)%10+'0';

k=((q[j]-'0')+k)/10;

i--;

}

if(k==1)

{result[n++]=1;} //如果是两个负数相加,加上result[n++]='-';

result[n]='\0';

}

}

求字符串中最大的回文长度:

void fun(char a[])

{

int len=strlen(a);

int i=0,j=len-1,len2=0; //len2是回文的一半长度

char *p,*q;

int max=0,pos1=0,pos2=0;

for(i=0;i

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

{ p=&a[i];q=&a[j];

while(p

{

if(*p==*q)

{len2++;p++;q--;}

Else //上式中,如若不成立,保留下来的len的值可能很大,要将其变成

0,以便继续使用。

{ len=0,break;}

}

if(max

{max=len2;pos1=i;pos2=j;}

len2=0;

}

while(pos1<=pos2)

cout<

}

int main()

{

char a[]="ddaffafFEaabbccccbbaabsgbsbgsbg";

fun(a);

return 0;

}

求一串字符串中出现次数最多的单词:

void fun(char a[])

{ char str[100][100];

char temp[200];

int value[200];

int k1=0,k2=0,k3=0;

int i=0,j=0;

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

if(i==0)

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

temp[k3++]=a[i++];

temp[k3]='\0'; k3=0;

strcpy(str[k1],temp);

value[k1++]=1;

}

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}

华为笔试题(答案)

笔试题 选择题 1、以下程序的输出结果是: #include int main() { int n =4; while (n--) { printf("%d ", --n); } printf("\r\n"); return0; } 答案:2 0 2、设有以下宏定义: #define N 4 #define Y(n) ((N+1)*n) 则执行语句:Y(5+1)为: 答案:26 3、 enum ENUM_A { x1, y1, z1 =5, a1, b1 }; enum ENUM_A enumA = y1; enum ENUM_A enumB = b1; 请问enumA和enumB的值是多少?答案:1,7

4、若有函数max(a,b),并且函数指针变量p已经指向函数,当调用该函数时正确的调用方法是: 答案:(*p)(a,b)或者p(a,b) 5、对栈S进行下列操作:push(1), push(5), pop(), push(2), pop(), pop(), 则此时栈顶元素是: 答案:没有元素,栈空。 6、在一个32位的操作系统中,设void *p = malloc(100),请问sizeof(p)的结果是: 答案:32位操作系统的寻址大小是32位,即4字节。 7、若已定义: int a[9], *p = a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是: A)p+1 B)a+1 C) a++ D) ++p 答案:C 8、设有如下定义: unsigned long pulArray[] = {6,7,8,9,10}; unsigned long *pulPtr; 则下列程序段的输出结果是什么? pulPtr = pulArray; *(pulPtr + 2) += 2; printf("%d, %d\r\n", *pulPtr, *(pulPtr + 2)); A) 8, 10 B) 6, 8 C) 7, 9 D) 6, 10 答案:D 9、以下程序运行后,输出结果是什么? void main() { char *szStr = "abcde"; szStr += 2; printf("%1u\r\n", szStr); return; } A) cde B) 字符c的ASCII码值C) 字符c的地址D) 出错 答案:C

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

华为认证网络工程师--认证考试试题(笔试)及答案 选择题:(每题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 )

华为LTE认证考试试题

华为LTE认证考试试题 一.填空题(每题一分)共15分 1.LTE上行物理信道包含PUSCH,PUCCH,PRACH.(物理上行共享信道 PUSCH - 物理 上行控制信道 PUCCH - 物理随机接入信道 PRACH) 2.BCH的传输时间间隔是40ms. 3.ICIC技术是用来解决系统内同频干扰问题. 4.空口协议伐中,数据的压缩功能位于PDCP层. 5.一个RB时域包含1个slot,频域包含12连续子载波. 6.LTE TDD的帧结构每帧长10ms,包含22个时隙(slot)和10个子帧(subframe). 7.LTE最小的资源单位是RE,最小的资源分配单位是RB. 8.LTE协议规定物理小区标识(PCI)共有504个. 9.LTE ENODEB与EPC之间的接口是S1,ENODEB之间的接口是X2. 二.判断题(每题一分)共15分 1.下行参考信号包括三种类型,包括:Cell-specific,MBSFX-specific,UE-specific。( 对 ) 2.NAS层协议是属于用户面协议。(错)NAS层协议是属于控制面协议 3.基于非竞争的随机接入过程,其接入前导的分配是由网络侧分配的。(对) 4.SFBC是一种发射分集技术,主要获得发射分集增益,用于SINR较低的区域,比如 小区边缘,与STBC相比,SFBC是(对) 5.MIMO的信道容量与空间信道的相关性有关,信道相关性越低,MIMO信道容量越大。(对) 6.MIMO模式分为分集和复用,其中分集主要是提升小区覆盖,而复用主要是提升小区容量。(对) 7.LTE系统中,UE在多个属于同一个TA list下的多个TA间移动,不会触发TA的更新。(对)

华为光网络试题答案精编

华为光网络试题答案精 编 Document number:WTT-LKK-GBB-08921-EIGG-22986

一、填空 1、光同步传输系统中,时钟是其一大特色,时钟的工作方式有哪3种:()、()、()。跟踪方式保持方式自由振荡方式 2、2M接口的阻抗特性一般有非平衡式的()Ω和平衡式的()Ω两种。75 120 3、PCM 基群由 32 个时隙组成,分别用 TS0、 TS1、…...TS31表示,每个时隙编为 8 位二进制码,其抽样频率为 8KHz,故帧周期为()。125μS 4、光纤在波长1310nm的衰减常数技术指标为(), 光纤在波长1550nm的衰减常数技术指标为()。km km 5、为了保证10Gbit/s速率的传输性能,根据需要进行测试,要求敷设的干线光缆的极化色散系数不得大于 ()。√km 6、为了扩大传输容量,经常采用的方法就是复用技术,常见的复用技术有(请任意写出四个)()、 ()、()、()。时分复用(TDM) 空分复用(SDM)波分复用(WDM)码分复用(CDM) 频分复用(FDM) 7、SDH中公务电话一般利用()、()开销字节。E1 E2

8、如果线路时钟比设备时钟快,设备将出现()指针调整(选填“正”、“负”)。负 9、管理单元指针AUPTR的有效值是多少()。0~782 10、支路单元指针TUPTR的有效值是多少()。0~139 11、SDH STM-1的帧结构是()行×()列。 9、270 12、一个复帧包含了()个基帧。4 13、N个网元组成的STM-16单向通道保护环业务最大容量是()。16×STM-1 14、N个网元组成STM-64四纤复用段保护环全环最大业务容量是()。64N×STM-1 15、查看开销S1字节的值是0X02,此时钟是G.()时钟。811 16、波分系统按系统接口分类,可以分为()系统和()系统。集成式开放式 17、PDH信号最终复用成SDH光信号,需经过: ()、()、()三个步骤。映射定位复用

华为认证考试题库-HCNP

1.某公司为其一些远程小站点预留了网段17 2.29.100.0/26,每一个站点有10个IP设备接到网络,下面的那个VLSM掩码能够为该需求提供最小数量的主机数目? A./27 B./28 C./29 D./30 Answer:B 2.网段10.10.4.0/27,可以提供多少主机地址? A.15 B.30 C.32 D.64 Answer:B 3.CIDR使用VLSM技术,突破了传统IP地址分类边界,采用CIDR可以把路由表中的若干条路由汇聚成一条路由,减少了路由表的规模 A. True B. False Answer:A 4.汇总地址172.16.96.0/20包含哪些子网? A.172.16.104.0/21 B.172.16.112.0/21 C.172.16.120.0/21 D.172.16.124.0/21 Answer:A 5.下面那个地址可以配置在主机设备上? A.202.101.1.64/26 B.192.19.11.5/23 C.127.0.0.1 D.224.0.0.2 Answer:B 6.C类地址子网掩码为255.255.255.248,则每个子网可以使用的主机地址数是: A.8 B.6 C.4 D.2 Answer:B 7.一台主机的地址为192.168.9.113/21,则该主机需要发送广播报文,该报文发送的目的地址为: A.192.168.9.255 B.192.168.15.255 C.192.168.255.255 D.192.255.255.255 Answer:B 8.有一个子网网段地址是10.64.0.0,掩码是255.224.0.0,则该网段允许的最大主机IP地址

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

一选择 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

华为认证网络工程师考试试题笔试及标准答案.doc

华为认证网络工程师-- 认证考试试题( 笔试 ) 及答案选择题:(每题 2 分,共 100 分) 1、以下属于物理层的设备是( A ) A、中继器 B、以太网交换机 C、桥 D、网关 2、在以太网中,是根据(B)地址来区分不同的设备的。 A、LLC 地址 B、MAC地址 C、IP 地址 D、IPX 地址 3、以下为传输层协议的是(CD ) A、IP B、ICMP C、UDP D、SPX 4、以下对 MAC地址描述正确的是(BC ) A、由 32 位 2 进制数组成 B、由 48 位 2 进制数组成 C、前 6 位 16 进制由 IEEE 负责分配 D、后 6 位 16 进制由 IEEE 负责分配 5、以下属于数据链路层功能的是(CD )

A、定义数据传输速率 B、定义物理地址 C、描述网络拓扑结构 D、流控制 6、IEEE802.3u 标准是指( B ) A、以太网 B、快速以太网 C、令牌环网 D、FDDI 网 7、如果要将两计算机通过双绞线直接连接,正确的线序是( C ) 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、两计算机不能通过双绞线直接连接 8、在 V.35 和 V.24 规程中,控制信号RTS表示( D) A、数据终端准备好; B、数据准备好; C、数据载体检测; D、请求发送; E、清除发送。 9、路由器作为网络互连设备,必须具备以下哪些特点。(ABE) A、至少支持两个网络接口 B、协议至少要实现到网络层 C、至少支持两种以上的子网协议

huawei(华为)认证考试题库

GB0-363 Designing Enterprise-level Networks Practice Test QUESTION NO: 1 Which of the following descriptions about dynamic routing protocol is correct? ( ) A. The fundamentals ofRIPng are the same as those of RIP, but RIPng speeds up convergence compared with RIP. B. The packet format of OSPFv3 is the same as that of OSPF, but OSPFv3 can support IPv6. C. MBGP is the unique EGP routing protocol in the IPv6 network. D. IS-ISsupports multiple protocols so that it can support IPv6 without any modification. Answer: C QUESTION NO: 2 We usually do not choose the equipment with key module redundancy to backup at the access layer. And dual-uplink backup should be used instead of dual-system backup. A. True B. False Answer: A QUESTION NO: 3 We usually choose the equipment with key module redundancy to backup at the convergence layer. Dual-uplink backup and dual-system backup should be used. Ring topology can be adopted connecting the convergence layer devices. A. True B. False Answer: A QUESTION NO: 4 The equipment with carrier-class reliability refers to the equipment that supports large capacity, non-stop running, key module redundancy, and high stability. A. True B. False Answer: A Huawei GB0-363: Practice Exam "Pass Any Exam. Any Time." - https://www.doczj.com/doc/c518307212.html, 2

华为试题答案

华为试题答案 1)在计算机局域网中,常用通信设备有(abd),A、集线器(HUB)B、交换机(Switch) C、调制解调器(Modem)D、路器(Router) 2)线缆标准化工作主要哪一个协会制定? (c) A、OSI B、ITU-T C、EIA D、IEEE 3)802协议族是下面的哪——个组织定义? (c) A、OSI B、EIA C、IEEE D、ANSI )衡量网络性能的两个主要指标为A、带宽B、可信度C、延迟D、距离)局域网区别与其他网络主要体现在以下方面A、网络所覆盖的物理范围B、网络所使用的传输技术C、网络的拓扑结构D、带宽)不会产生单点故障的是下列拓扑结构。A、总线型B、环型C、网状结构D、星形4)数据交换技术包括A、电路交换

B、报文交换 C、分组交换 D、文件交换5)拓扑结构会受到网络中信号反射的影响?A、网型B、总线型C、环型D、星型6)OSI参考模型按顺序有哪些? A、应用层、传输层、数据链路层、网络层、物理层 B、应用层、表示层、会话层、传输层、数据链路层、网络层、物理层 C、应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 D、应用层、表示层、传输层、网络层、数据链路层、物理层7)在OSI七层模型中,网络层的功能有A、确保数据的传输正确无误B、确定数据包如何转发与路 1 C、在信道上传送比特流D、纠错与流控8)在OSI七层模型中,哪一层的实现对数据的加密。A、传输层B、表示层C、应用层D、网络层9)网络层传输的数据叫做A、比特B、包C、段D、帧10)TCP/IP协议栈中传输层的协议有

A、TCP B、ICMP C、 D、IP 11)数据从上到下封装的格式为A、比特包帧段数据B、数据段包帧比特C、比特帧包段数据D、数据包段帧比特12)物理层定义了物理接口的哪些特性?A、机械特性B、电器特性C、功能特性D、接口特性13)细铜轴电缆传输距离达,粗铜轴电缆的传输距离为A、185米B、200米C、500米D、485米)通常在网吧里,LAN 采用的拓扑结构和网线类型为A、总线型和STP B、总线型和UTP C、星形和UTP D、环型和STP )双绞线为什么能代替网络中的细同轴电缆? A、双绞线电缆可靠性高 B、双绞线电缆抗噪性更好 C、细同轴电缆更廉价 D、双绞线电缆更便于安装)在布线时,细缆和粗缆通常应用在拓扑结构中。A、星形B、环形C、树形D、总线)在局域网中,类型的光

华为笔试试题大全

华为笔试试题大全 (陈远跃/整理) 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<

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

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

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-O 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、以下对交换机工作方式描述正确的是(ABD ) A、可以使用半双工方式工作 B、可以使用全双工方式工作 C、使用全双工方式工作时要进行回路和冲突检测 D、使用半双工方式工作时要进行回路和冲突检测 16、VLAN的主要作用有(ACD ) A、保证网络安全 B、抑制广播风暴 C、简化网络管理 D、提高网络设计灵活性 17、在交换机中用户权限分为几个级别(D )

华为数通网上试题库完整

二:判断(10分) 1、RIP协议使用UDP端口521。(×) 2、如果忘记配置OSPF的router id,则设备缺省下的router id为Loopback最大的地址;如 果没有配置Loopback地址,则router id为数值最小的物理接口地址。(×) 3、RIP版本1是一种有类路由选择协议。(√) 4、在OSPF中,以太接口的网络类型只能为broadcast ( × ) 5、ISIS协议中,如果有优先级更高的路由器出现,DIS会重新选举 ( √ ) 6、如果互联的两个接口的MTU值不一样,则OSPF邻居一定不能建立 ( × ) 7、OSPF发布缺省路由时本地路由表必须先存在缺省路由 (× ) 8、路由聚合可以减轻路由震荡给网络带来的影响 ( √ ) 9、IBGP和EBGP是两种不同的路由协议。(×) 802.1Q以太网帧要比普通的以太网帧多4个字节。(√) 华为数通网上题库 一:交换机 一、填空题: 1、S9300系列交换机具体包括 S9303 、 S9306 、 S9312 三种型号。 2、S9300交换机支持ERSPAN,即可以在镜像报文上添加GRE封装头,路由转发到远端设备。 3、S9300支持增强的VRRP技术,可以提高VRRP的倒换时间达到 50 ms。 4、S8500交换机普通业务板分为B、C、D三类,它们对ACL的支持情况是B类单板不支持全局下发ACL,C类和D类单板才支持全局下发ACL 5、S8500系列交换机支持的最大带宽接口为 10 GE。 6、S8505的槽位数一共有 7 个,主控板可插在__0_槽或__1__槽 7、S8512支持___14__个槽位,其中6、7槽位为主控板槽位,其余均为业务槽位。 8、S6500产品硬件部分主要包括__机箱_或风扇__、___电源__、____背板_、__单板___四部分。 9、S6506交换机共有__7___个槽位,其中主控板在___0___槽位。 10、S6506整机最大功耗为___550____W。 11、S7800系列交换机共有S7802、S7803、S7806、S7806-V、S7810五种型号。 12、S7803共有__5__个槽位,其中主控板有__2__个槽位。 13、S7803交换容量为____480G,S7806交换容量为____768 G。 14、S7806最大包转发能力为488M pps,S7810最大可达773M pps。 15、S7810整机最大支持的GE端口为480个,最大10G端口数量为___24____个。 16、S7800交换机的二层特性对MAC地址最大支持___128___K。 17、S3526交换机同时最大支持____16____条路由。 二、判断题: 1、在S8505上实现MPLS L3VPN混插业务时,做基于IP过滤的重定向配置,重定向的目的端口必须是mx类型端口。(√)

华为笔试题done

试题 选择题 1、以下程序的输出结果是: 2 0 \r\n 正确值2 0 \r转义符:回车,\n转义符:换行 #include int main() { int n = 4; while (n--) { printf("%d ", --n); } printf("\r\n"); return 0; } 2、设有以下宏定义: #define N 4 #define Y(n) ((N+1)*n) 则执行语句:Y(5+1)为:26 如果#define Y(n) ((N+1)*(n)) 则Y(5+1) 为30 3、

enum ENUM_A { x1, y1, z1 = 5, a1, b1 }; enum ENUM_A enumA = y1; enum ENUM_A enumB = b1; 请问enumA和enumB的值是多少?1 7 x1=0,y1=1,a1=6,b1=7 4、若有函数max(a,b),并且函数指针变量p已经指向函数,当调用该函数时正确的调用方法是:(*p)(,) 5、对栈S进行下列操作:push(1), push(5), pop(), push(2), pop(), pop(), 则此时栈顶元素是: NULL 6、在一个32位的操作系统中,设void *p = malloc(100),请问sizeof(p)的结果是:4

7、若已定义: int a[9], *p = a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是: C a的值不能改变 A)p+1 B)a+1 C) a++ D) ++p 8、设有如下定义: unsigned long plArray[] = {6,7,8,9,10}; unsigned long *pulPtr; 则下列程序段的输出结果是什么?D pulPtr = plArray; *(pulPtr + 2) += 2; printf("%d, %d\r\n", *pulPtr, *(pulPtr + 2)); A) 8, 10 B) 6, 8 C) 7, 9 D) 6, 10 9、以下程序运行后,输出结果是什么? C void main() { char *szStr = "abcde"; szStr += 2; printf("%1u\r\n", szStr); return; } A) cde B) 字符c的ASCII码值C) 字符c的地址D) 出错

华为光网络试题答案

一、填空 1、光同步传输系统中,时钟是其一大特色,时钟的工作方式有哪3种:()、()、()。跟踪方式保持方式自由振荡方式 2、2M接口的阻抗特性一般有非平衡式的()Ω和平衡式的()Ω两种。75 120 3、PCM 基群由 32 个时隙组成,分别用 TS0、TS1、…...TS31表示,每个时隙编为 8 位二进制码,其抽样频率为 8KHz,故帧周期为()。125μS 4、光纤在波长1310nm的衰减常数技术指标为(), 光纤在波长1550nm的衰减常数技术指标为()。km km 5、为了保证10Gbit/s速率的传输性能,根据需要进行测试,要求敷设的干线光缆的极化色散系数不得大于()。√km 6、为了扩大传输容量,经常采用的方法就是复用技术,常见的复用技术有(请任意写出四个)()、()、()、()。时分复用(TDM)空分复用(SDM)波分复用(WDM)码分复用(CDM)频分复用(FDM) 7、SDH中公务电话一般利用()、()开销字节。E1 E2 8、如果线路时钟比设备时钟快,设备将出现()指针调整(选填“正”、“负”)。负 9、管理单元指针AUPTR的有效值是多少()。0~782 10、支路单元指针TUPTR的有效值是多少()。0~139 11、SDH STM-1的帧结构是()行×()列。9、270 12、一个复帧包含了()个基帧。4 13、N个网元组成的STM-16单向通道保护环业务最大容量是()。16×STM-1 14、N个网元组成STM-64四纤复用段保护环全环最大业务容量是()。64N×STM-1 15、查看开销S1字节的值是0X02,此时钟是G.()时钟。811 16、波分系统按系统接口分类,可以分为()系统和()系统。集成式开放式 17、PDH信号最终复用成SDH光信号,需经过:()、()、()三个步骤。映射定位复用 18、光放大器在DWDM系统中的三种主要应用形式:()、()、()。光功率放大器光前置放大器光线路放大器 19、在DWDM系统中,建议的监控信道波长为(),速率为()。1510nm,2M 20、业务扩容时,下发增加的时隙配置,发现支路板有()告警,这一般是由于时隙冲突引起。TU-LOP 21、()为高阶通道追踪字节,当收和应收失配时会有()告警。J1 HP-TIM 22、复用段SD保护倒换的两个条件是B2-SD和B2-OVER,这两个告警的误码门限分别是()、()。10-6 10-3 23、如果设备温度过高,应该检查()、(),应该如何处理()。传输设备的防尘网风扇电源清洗防尘网和确保风扇电源的正常运行 24、光纤称为(),在1550nm处具有较小的色散值,在1550nm的损耗系数为(),主要应用于()的()或()。非零色散位移光纤 km左右 1550nm 工作区波分复用(WDM)系统密集波分复用(DWDM)系统 25、模拟的话音信号通过()、()和()变成一路()的数字信号。抽样量化编码 64kb/s 26、在SDH中,开销可分为()和()两大类,段开销细分为()和(),通道开销细分为()和()。段开销通道开销再生段开销复用段开销低阶通道开销(VC-12、VC-3中)高阶通道开销(VC-4)

(整理)华为笔试题.

华为2011第一次笔试题目总结:单选20,多选10,改错3,编程2 有数据结构、网络、操作系统、数据库 一、单项选择题(4选1) 1.如果有N个节点用二叉树结构来存储,那么二叉树的最小深度是: 解析:深度为k的二叉树,最多有2^k-1个节点,这时的二叉树成为满二叉树。 Log2(N+1) 2.形结构的一种重要运算。若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则后序序列是:FEGHDCB 3.下列算法的功能是: /*L是无头节点单链表*/ LinkList Demo(LinkList L){ ListNode *Q,*P; If(L&&L->next){ Q=L; L=L->next; P=L; While(p->next) P=p->next; p->next=Q; Q->next=NULL; } return L; } 解析:将单链表转变为循环链表 4、循环单向链表指:最后一个节点的指针总是指向链表头。 5、折半查找算法的算法复杂度:O(log2N) 6、void example(char acWelcome[]){ Printf(“%d”,sizeof(acWelcome)); return; } Void main(){ Char acWelcome[]=”Welcome to Huawei Test”; Example(acWelcome); return; } 的输出是—— A 4 B 5 C 22 D 23 解析:23 7、设有如下定义: Unsigned long pulArray[]={6,7,8,9,10}; Unsigned long *pulPtr; 则下列程序段的输出结果为——

华为中级认证路由习题库

1.某公司为其一些远程小型站点预留了网段,每一个站点有10 个IP 设备 接到网络,下面的哪个VLSM 掩码能够为该需求提供最小数量的主机数目? A./27 B./28 C./29 D./30 2.网段,可以提供多少主机地址? A.15 B.30 C.32 D.64 3. A.True B.False 4. 5. 6.C A.8 B.6 C.4 D.2 7. 8. 9. A.True B.False 10. 11. A.True B.False 12. 13. WAN A.30 B.254 C.126 D.64 14.一个C 类网络至少需要划分成5 个子网,每个子网最多20 台主机,则适用的子网掩码是 15.汇聚路由包含了多少C 类网络? A.4 B.2 C.8 D.16

16.对于网段,能够分配给主机最大的IP 地址是哪个? 17.对于网段,下面哪个地址可以分配给主机? 18.下面关于VLSM 特征的描述,不正确的有(请选择2 个答案) A.它能够支持IPv4 和IPv6 B.它提供了重叠的地址范围 C.在路由表中它考虑到了更好的路由聚合信息 D.它允许子网能够进一步被划分为更小的子网 19.网段被分割成了8 个子网。下面IP 地址哪些能够分配给第二个子网的主机? 20.某公司申请到了一个C 类地址,但是要连接6 个子公司,最大的子公司有30 台计算机,每个子公司在一个网段中,则子网掩码应设为? 21.现在有一个C 类地址块,需要将该地址块划分9 个子网,每个子网最多有16 台主机,那么下 D. 22. 23. 24.IP A.节约 B. C.提升 D. 25. 26. A.True B.False 27. 一个? 28. D.BGP 29. (请选择 A. B.子网能够寻址到主机或者进一步被子网化 C.子网划分可以胡乱分配地址 D.汇聚的网络必须有相同的高位比特 30.某公司有四个部门,A 部门有90 台PC,B、C 部门各有20 台PC,D 部门有15 台PC,现用VLSM 来对网络进行分段管理(IP 使用),下面描述正确的有 (请选择3 个答案) A.可以将子网分配给部门A,主机段地址范围为1-126 B.可以将子网分配给部门B,主机段地址范围为129-159 C.可以将子网分配给部门C,主机段地址范围为161-190

华为笔试经验及题目

华为笔试经验及题目 华为认证,基于ICT产业链人才个人职业发展生命周期,以层次化的职业技术认证为指引,以下是CN人才网小编整理的华为笔试经验及题目,欢迎阅读参考! H12-211 HCNA-HNTD考试大纲 2.1 考试内容 IP网络基础 1. 路由交换(数通)基础知识 2. 网络基本概念、IP网络构架、标准化组织与协议 3. OSI、TCP/IP协议模型结构、各个层次的功能以及报文封装 4. IPv4子网划分 5. ARP原理 6. TCP/UDP原理 7. 数据转发过程 8. 常用应用层协议FTP、DHCP的工作原理

9. Ping,Tracert,Telnet等常用工具原理与应用 局域网技术 1. 以太网技术、交换机基本原理 2. STP、RSTP、VLAN、GARP&GVRP以及WLAN基本原理以及在VRP中的实现 3. 如何使用STP、RSTP、VLAN、GARP&GVRP以及WLAN 等技术以及华为交换机构建小型交换网络 广域网技术 1.HDLC、PPP、Frame Relay以及在华为产品中的实现 路由技术 1.静态路由协议原理、RIP协议基本原理、OSPF协议基本原理以及在VRP中的实现 2.如何使用路由技术以及华为路由器构建小型路由网络 网络安全 1. AAA工作原理

2. ACL原理以及在华为路由设备中的配置 3. IPsec VPN、GRE原理以及在华为路由设备中的配置 4. 如何利用网络安全技术保证网络安全性 产品知识 1.VRP特点、基本操作与维护 2.华为路由器、交换机产品特点以及在IP网络中的应用 网络管理 1. SNMP原理与配置 2. e-Sight的基础知识以及简单应用 IPv6技术 1. IPv6基础 2. RIPng、OSPFv3协议原理以及在华为路由设备中的配置 3. DHCPv6协议原理以及在IP网络中的应用 题目练习: 1. 找错 void test1()

相关主题
文本预览
相关文档 最新文档