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 sort(int a[])

{ int temp;

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

for(int j=i+1;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;

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

int k=fun(a);

cout<

return 0;

}

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

判断是否是回文数组:

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;

}

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

if(0==n%2)

{

while(i

{

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

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

}

}

if(1==n%2)

{

while(i

{

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

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

}

output[(n-1)/2]=input[k];

//cout<

}

for(int j=0;j

cout<

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;

}

p=p->next;

}

}

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;

}

改进后的冒泡排序:

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

for(int i=1;i

x=a[i];

for( j=i-1;j>=0&&x

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

}

str[i]='\0';

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行字符

for(int i=0;i

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;

j--;

}

if(k==1)

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

result[n]='\0';

}

}

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

void fun(char a[])

{

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

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

5G无线维护考试题及答案-华为设备

5G无线试题 一、判断题 1.FANc和FANd风扇板可以放置在BBU5900机框中使用。() 2.BBU5900的槽位编号是从左往右编排,再从上到下编排。() 3.操作时必须确保正确的ESD防护措施,如佩戴防静电腕带或手套,以避免单板、模块或电子部件遭到静电损害。( ) 4.5GAAU模块使用双电源线供电方案时需要外接ODM,输入2路电源线输出转成1路电源线。( ) 5、BBU3900与BBU5900槽位分布一致。() 6.IMB05机框挂墙是只允许竖放,不允许横放。( ) 7.当前NSA场景主流的组网方案是Option 3x方案。( ) 8.5G标准站点解决方案中AAU拉远距离需小于100米,超出100米的场景需单独申请特殊场景方案。( ) 9.5G AAU支持级联。() 10.AAU本身有保护接地,在安装好保护接地线的情况下,AAU的电源线不需要剥开露出电源线屏蔽层进行固定。( ) 11.pRRU支持级联。() 12.安装AAU电源线应注意:必须先连接AAU端连接器,再连接供电设备端连接器。如果连接顺序错误或电源线极性反接,可能导致AAU设备损坏或人身伤害。() 13.目前已经发布的5G试点频段低频主要有2.6G、3.5G、4.9G、10G。( ) 14.UMPTe3单板支持GPS及北斗。()

15.UPEUd电源板不能放置在BBU5900机框中使用。( ) 一、单选题 1、5G基站主控板推荐优先部署在BBU5900几号槽位(D ) A.0 B.3 C.6 D.7 2、DCDU-12B 电源模块的输出规格为(A) A.10路30A B.10路20A C.7路30A D.7路20A 3、5G AAU使用的eCPRI光模块带宽大小是多少(B) A.10GE B.25GE C.50GE D.100GE 4、按照标准5G站点解决方案,BBU5900部署大于等于2个UBBPfw1全宽基带板时,需要配置UPEUe电源模块的数量为(B ) A.1个 B.2个 C.1个或者2个均可以D、以上均不对 5、按照标准站点解决方案,无功分器、放大器场景GPS最大拉远距离为(C ) A.50m B.70m C.150m D.170m 6、BBU5900安装在第三方机柜时为防止系统风量不足,建议相邻BBU之间预留(A )U或以上间距,并安装挡风板,避免风道回流 A.1U B.3U C.5U D.6U 7、5G BBU5900与传输对接使用的光模块带宽大小是多少C A.100M B.1GE C.10GE D.100GE 8、BBU5900 UPEUe电源模块输入电源线需要几路(直流电源线正负算1路)B A.1路 B.2路 C.3路 D.5路 9、5G 全宽基带板推荐部署在BBU5900的槽位优先级顺序为A A.0>2>4 B.4>2>0 C.4>2>0>1>3>5 D.5>3>1

华为笔试题(答案)

笔试题 选择题 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

华为光网络试题答案精编

华为光网络试题答案精 编 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地址

华为硬件笔试题-真实有效

华为公司硬件研収类笔试试题 一.填空题(共10题,共计20分) 1、从通信系统的一般模型上看,通信系统中的编码有信源编码和_______两种方式。 2、为使三极管处于饱和工作状态,必须保证基极电流大于________ 3、可以将逻辑函数Y=AB+~AC优化成Y=________,从而消除由A造成的竞争冒险。 4、用卡诺图将逻辑函数Y=ABC+ABD+A~CD+~C~D+A~BC为________ 5、采用单片机进行点对多点的主从通信时,通过______来区分数据信息和地址信息。 6、MCS-8051单片机有_______个外部中断管脚。 7、将1k*8位的RAM扩展为2k*16位的RAM,需用________片1k*8位的RAM。 8、如果器件中的管脚为OC/OD门结构,在电路设计中应该对输出进行 _______处理 9、已知同步五进制计数器输入时钟频率为200kHz,则第一能触収器的输出等于____ 10、MCS-51访问外部数据存储器用______指令。 二.单选择题(共12题,共计24分) 1、反向门X驱动反向门Y,当X输出为低电平时,反相门X() A、输出源电流 B、吸收源电流 C、输出灌电流 D、吸收灌电流 2、设某函数的表达式F=AB,若用4选1多路选择器(数据选择器)来设计,则数据端口D0D1D2D3的状态是()。(设A为权值高位) A、0001 B、1110 C、0101 D、1010

3、PCM30/32路系统中,1帧中含有的比特数为() A、256 B、512 C、160 D、240 4、电容器的等效电路图() A、电感+电阻串联模型 B、电感+电阻并联模型 C、电容+电感+电阻并联模型 D、电容+电感+电阻串联模型 5、下列功率放大器类型哪一类的晶体管工作半个周期?() A、甲类功率放大器 B、乙类功率放大器 C、甲乙类功率放大器 D、丙类功率放大器 6、下列各进制数中,数值最大的是() A、[1000011]2 B、[53]16 C、[64]10 D、[01100011]8421BCD 7、8421码10010111表示的十进制数是() A、97 B、151 C、227 D、98 8、当TTL非门的输入端对地接一个10k欧电阻时,门电路工作在()A、饱和区B、线性区C、转折区D、截止区 9、锁相环回路中的滤波电路为() A、高通 B、低通 C、带通 D、全通 10、若两个输入变量A,B取值相同时,输出F=1,则其输出与输入的关系是()A、同或运算B、异或运算C、或运算D、与运算 11.当MCS-51的时钟频率f=6M时,一个机器周期T=( )微秒。 A.1 B 2 C.1/3 D.1/6 12.一个512选一的数据选择器,其地址输入端有()个

华为认证网络工程师考试试题笔试及标准答案.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.360docs.net/doc/c516915379.html, 2

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

精品文档 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.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)在计算机局域网中,常用通信设备有(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 一个简单的公司网络场景,SW1和SW2为楼层交换机,PC-1和PC-3属于公司的部门A,PC-2和PC-4属于公司的部门B,PC-5属于部门A和部门B的上级部门C。在网络规划中,部门A属于VLAN 10,部门B属于VLAN 20,部门C属于VLAN 30。公司希望通过VLAN 的划分和配置,使部门A和部门B均能够与部门C进行通信,但是部门A和部门B之间不能互相通信。

题目2 Host通过Switch接入网络,Gateway为企业出口网关,各Host均使用静态配置的IP地址。管理员希望Host使用管理员分配的固定IP地址上网,不允许私自更改IP地址非法获取网络访问权限。

题目1答案: 步骤1:配置SW1 vlan batch 10 20 30 # interface GigabitEthernet0/0/1 port link-type hybrid port hybrid untagged vlan 10 30 port hybrid pvidvlan 10 # interface GigabitEthernet0/0/2 port link-type hybrid port hybrid untagged vlan 20 30 port hybrid pvidvlan 20 # interface GigabitEthernet0/0/24 port link-type hybrid port hybrid tagged vlan 10 20 30 # 步骤2:配置SW2 vlan batch 10 20 30 # interface GigabitEthernet0/0/1 port link-type hybrid port hybrid untagged vlan 10 30 port hybrid pvidvlan 10 # interface GigabitEthernet0/0/2 port link-type hybrid port hybrid untagged vlan 20 30 port hybrid pvidvlan 20 # interface GigabitEthernet0/0/3 port link-type hybrid port hybrid untagged vlan 10 20 30 port hybrid pvidvlan 30 # interface GigabitEthernet0/0/24

华为笔试题目很全

[笔试]华为笔试集合,很全面 [此帖已被设为推荐]本人收集的一些华为笔试 华为软件工程笔试题 写一个程序,要求功能:求出用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是什么,什么参数

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

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

相关文档
最新文档