文档视界 最新最全的文档下载
当前位置:文档视界 › 华为校招2013-2016年机试题目-个人整理

华为校招2013-2016年机试题目-个人整理

华为校招2013-2016年机试题目-个人整理
华为校招2013-2016年机试题目-个人整理

2016校招机试题

第一题

输入一串用空格隔开的数字串,对于数字串的奇数位按升序排序,偶数位按降序排序示例输入:4 6 2 3 7 8 1

处理过程:

奇数位:4268升序排序结果:2468

偶数位:6371 降序排序结果:7631

结果输出:2 7 4 6 6 3 8 1

#include

#include

#include

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

void main()

{

char input1[]="4 6 2 3 6 7 8 1";

char output1[16];

int m=15;

sort(input1,m,output1);

for(int i=0;i

printf("%c ",output1[i]);

printf("\n");

}

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

{

int i,j,t1,t2,t=0;

int *b=(int *)malloc(sizeof(int)*n);

int *c=(int *)malloc(sizeof(int)*n);

b[0]=input[0]-'0';

for(i=4,t1=1;i

{

for(j=t1-1;((input[i]-'0')=0);j--)

{

b[j+1]=b[j];

}

b[j+1]=input[i]-'0';

}

c[0]=input[2]-'0';

for(i=6,t2=1;i

{

for(j=t2-1;((input[i]-'0')>c[j])&&(j>=0);j--)

{

c[j+1]=c[j];

}

c[j+1]=input[i]-'0';

}

for(i=0,j=0;i

{

output[i]=b[j]+'0';

output[i+1]=' ';

output[i+2]=c[j]+'0';

output[i+3]=' ';

}

}

2.精灵王子爱好冒险,在一次探险历程中,他进入了一个神秘的山洞。在洞穴深处,精灵王子不小心触动了洞穴内暗藏的机关,整个洞穴将很快塌陷,精灵王子必须尽快逃离洞穴。精灵王子的跑步速度为17m/s,以这样的速度可能是无法逃出洞穴的。庆幸的是精灵王子拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗法值10点。精灵王子的魔法值恢复的速度为4点/s,只能在原地休息状态时才能恢复。

现在已知精灵王子的魔法初值M,他所在洞穴中的位置与洞穴出口之间的距离S,距离洞穴塌陷的时间T. 你的任务是写一个程序帮助精灵王子计算如何在最短时间内逃离洞穴。若能逃出,输出“Yes”,并输出逃出所用的最短时间;若不能逃出,则输出”No“,同时输出精灵王子在剩下的时间内能走的最远距离。注意字母大小写。注意精灵王子跑步,闪烁或休息活动均以秒(s)为单位。且每次活动的持续时间为整数秒。距离的单位为米(m)。

注:M,S,T均是大于等于0的整数。由输入保证取值合法性,考生不用检查。

提醒:

如果输入的S为0,则说明本身已经在出口,输出应为:Yes 0

如果输入的T为0(且S不为0),则说明已经没有时间了,输出应为:No 0

输入格式:

M

S

T

输出格式:

Yes 逃出洞穴所用时间

No在洞穴塌陷前能逃跑的最远距离

10

#include

void main()

{

int M,S,T;

int de1=0,de2=0;

int start=T;

scanf("%d %d %d",&M,&S,&T);

if(S==0)

printf("Yes 0\n");

else

{

if(T==0)

printf("No 0\n");

else

{

while(T)

{

T--;

if(M>=10)

{

M-=10;

de1+=60;

}

else

{

M+=4;

}

de2+=17;

if(de2

de2=de1;

if(de2>S)

{

printf("Yes %d\n",start-T);

break;

}

else

{

printf("No %d\n",de2);

break;

}

}

}

}

}

2015校招机试题

第一题(60分):

按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8,“abc” ,“123456789”,则输出为“abc00000”,“12345678“,”90000000”

#include

#include

void main()

{

int m,n,i,j,p=0;

char str[1024];

int a[10];

scanf("%d%d",&m,&n);

printf("please input %d string:\n",m);

for(i=0;i

{

scanf("%s",&str[p]);

a[i]=strlen(str+p);

p=p+a[i];

}

p=0;

for(i=0;i

{

if(a[i]

{

for(j=p;j

printf("%c",str[j]);

for(j=a[i];j

printf("0");

printf("\n");

}

else if(a[i]==n)

{

for(j=p;j

printf("%c",str[j]);

printf("\n");

}

else

{

for(j=p;j

printf("%c",str[j]);

printf("\n");

for(j=n+p;j

printf("%c",str[j]);

for(j=0;j<(2*n-a[i]);j++)

printf("0");

printf("\n");

}

p=p+a[i];

}

}

第一题:拼音转数字

输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:描述: 拼音 yi er san si wu liu qi ba jiu

阿拉伯数字 1 2 3 4 5 6 7 8 9

输入字符只包含小写字母,所有字符都可以正好匹配

运行时间限制:无限制

内存限制:无限制

输入:一行字符串,长度小于1000

输出:一行字符(数字)串样例输入:yiersansi

样例输出:1234

#include

#include

void main()

{

int i,j;

char str[1000];

char ch;

scanf("%s",str);

int len=strlen(str);

for(i=0;i

{

switch (str[i])

{

case 'y':

printf("1");

i=i+2;

break;

case 'e':

printf("2");

i=i+2;

break;

case 's':

if(str[i+1]=='a')

{

printf("3");

i=i+3;

}

else

{

printf("4");

i=i+2;

}

break;

case 'w':

printf("5");

i=i+2;

break;

case 'l':

printf("6");

i=i+3;

break;

case 'q':

printf("7");

i=i+2;

break;

case 'b':

printf("8");

i=i+2;

break;

case 'j':

printf("9");

i=i+3;

break;

default:

break;

}

}

}

第二题:去除重复字符并排序

运行时间限制:无限制

内容限制:无限制

输入:字符串

输出:去除重复字符并排序的字符串

样例输入:aabcdefff

样例输出:abcdef

#include

#include

#include

void solve(char *str , int len)

{

int i,hash[256];

memset(hash,0,sizeof(hash));

for(i=0;i

{

if(0==hash[str[i]])

hash[str[i]]=1;

}

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

{

if(0!=hash[i])

putchar(i);

}

printf("\n");

}

int main(void)

{

int len;

char str[1000];

while(scanf("%s" , str) != EOF)

{

len = strlen(str);

solve(str , len);

}

return 0;

}

第三题:等式变换

输入一个正整数X,在下面的等式左边的数字之间添加+号或者-号,使得等式成立。

1 2 3 4 5 6 7 8 9 = X

比如:

12-34+5-67+89 = 5

1+23+4-5+6-7-8-9 = 5

请编写程序,统计满足输入整数的所有整数个数。

输入:正整数,等式右边的数字

输出:使该等式成立的个数

样例输入:5

样例输出:21

#include

#include

int ops[21];

const char sym[3]={'+','-',' '};

int result,num;

void dfs(int layer,int currentResult,int lastOp,int lastSum)

{

lastSum*=(layer>9)?100:10;

lastSum+=layer;

if(layer==9)

{

currentResult+=(lastOp)?(-1*lastSum):lastSum;

if(currentResult==result)

{

++num;

printf("1");

for(int i=2;i<=9;++i)

{

if(sym[ops[i-1]]!=' ')

printf(" %c ", sym[ops[i-1]]);

printf("%d",i);

}

printf("=%d\n",result);

}

return;

}

ops[layer]=2;

dfs(layer+1,currentResult,lastOp,lastSum); //Continue

currentResult+=(lastOp)?(-1*lastSum):lastSum;

ops[layer]=0;

dfs(layer+1,currentResult,0,0); //Plus

ops[layer]=1;

dfs(layer+1,currentResult,1,0); //Minus

}

void main()

{

while(scanf("%d", &result)!=EOF)

{

num=0;

dfs(1,0,0,0);

printf("%d\n",num);

}

}

2014校招机试题

一、题目描述(60分):

通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。

比如字符串“abacacde”过滤结果为“abcde”。

要求实现函数:void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr); #include

#include

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

void main()

{

char str[100];

char sr[100];

scanf("%s",str);

int len=strlen(str);

stringFilter(str,len,sr);

printf("%s\n",sr);

}

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

{

int i,j;

int m=0;

char hash[256];

memset(hash,0,256);

for(i=0;i

{

if(hash[pInputStr[i]]==0)

{

hash[pInputStr[i]]=1;

pOutputStr[m]=pInputStr[i];

m++;

}

}

pOutputStr[m]='\0';

}

二、题目描述(40分):

通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。

压缩规则:

1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。

2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。

要求实现函数:

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

【输入】pInputStr:输入字符串

lInputLen:输入字符串长度

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

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

示例

输入:“cccddecc”输出:“3c2de2c”

输入:“adef”输出:“adef”

输入:“pppppppp” 输出:“8p”

#include

#include

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

void main()

{

int i,j;

char str[256];

char sr[256];

scanf("%s",str);

int len=strlen(str);

stringZip(str,len,sr);

printf("%s\n",sr);

}

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

{

int i=0,j;

int m,z=0;

while(i

{

m=0;

for(j=i+1;j

{

if(pInputStr[i]==pInputStr[j])

m++;

else

break;

}

pOutputStr[z]=m+1+48;

pOutputStr[z+1]=pInputStr[i];

z=z+2;

i=i+m+1;

}

pOutputStr[z]='\0';

}

三、题目描述(50分):

通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。输入字符串的格式为:“操作数1 运算符操作数2”,“操作数”与“运算符”之间以一个空格隔开。

补充说明:

1、操作数为正整数,不需要考虑计算结果溢出的情况。

2、若输入算式格式错误,输出结果为“0”。

要求实现函数:

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

【输入】pInputStr:输入字符串

lInputLen:输入字符串长度

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

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

示例

输入:“4 + 7”输出:“11”

输入:“4 - 7”输出:“-3”

输入:“9 ++ 7”输出:“0” 注:格式错误

#include

#include

#include

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

void main()

{

char str[256];

char sr[256];

//scanf("%s",str);

gets(str);

printf("\n%s\n",str);

int len=strlen(str);

arithmetic(str,len,sr);

printf("%s\n",sr);

}

void arithmetic(const char* pInputStr,long lInputLen,char* pOutputStr) {

int i,j,num1,num2,result,num_space;

char buffer[4];

bool add,sub;

add=sub=false;

for(i=0,num_space=0;i

{

if(pInputStr[i]==' ')

++num_space;

}

if(2!=num_space) //空格数非法

{

pOutputStr[0] = '0';

pOutputStr[1] = '\0';

return;

}

num1=num2=0;

for(i=0;pInputStr[i]!=' ';++i)

{

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

num1=num1*10+pInputStr[i]-'0';

else //第一个操作数中有非法字符

{

pOutputStr[0]='0';

pOutputStr[1]='\0';

return;

}

}

for(j=i+1;pInputStr[j]!=' ';++j);

if(1!=j-i-1) //运算符长度不合法

{

pOutputStr[0]='0';

pOutputStr[1]='\0';

return;

}

else //操作符的长度为1

{

if('+'!=pInputStr[i+1]&&'-'!=pInputStr[i+1]) //操作符号非法

{

pOutputStr[0]='0';

pOutputStr[1]='\0';

return;

}

else

{

if('+'==pInputStr[i+1])

add=true;

if('-'==pInputStr[i+1])

sub=true;

for(i=j+1;i

{

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

num2=num2*10+pInputStr[i]-'0';

else //第二个操作数中有非法字符

{

pOutputStr[0]='0';

pOutputStr[1]='\0';

return;

}

}//for

if(add)

result=num1+num2;

else if(sub)

result=num1-num2;

memset(buffer,0,sizeof(buffer));

//itoa(result,buffer,10); //将整数按10进制转换为字符串

sprintf(pOutputStr,"%d",result);

//strcpy(pOutputStr,buffer);

}//esle

}//else

}

2013校招机试题

1、删除子串,只要是原串中有相同的子串就删掉,不管有多少个,返回子串个数。#include

#include

#include

int delete_sub_str(const char *str,const char *sub_str,char *result)

{

char *temp;

int n,count=0;

n=strlen(sub_str);

temp=(char *)malloc(n+1);

memset(temp,0,n+1);

while(*str)

{

// memcpy(temp,str,n);

strncpy(temp,str,n);

if(strcmp(temp,sub_str)==0)

{

count++;

memset(temp,0,n+1);

str=str+n;

}

else

{

*result=*str;

str++;

result++;

memset(temp,0,n+1);

}

}

free(temp);

return count;

}

void main()

{

char s[100]={'\0'};

int num=delete_sub_str("123abc12de234fg1hi34j123k","123",s);

printf("The number of sub_str is %d\r\n",num);

printf("The result string is %s\r\n",s);

}

2、约瑟夫环是一个数学的应用问题:已知n 个人(以编号1,2,3...n 分别表示)围坐在一张圆桌周围。从编号为k 的人开始报数,数到m 的那个人出列;他的下一个人又从 1 开始报数,数到m 的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。

#include

#include

typedef struct Node

{

int num;

struct Node *next;

}LinkList;

LinkList * creat(int n)

{

LinkList *p,*q,*head;

int i;

p=(LinkList *)malloc(sizeof(LinkList));

p->num=1;head=p;

for(i=2;i<=n;i++)

{

q=(LinkList *)malloc(sizeof(LinkList));

q->num=i;

p->next=q;

p=q;

}

p->next=head; /*使链表尾指向链表头形成循环链表*/

return head;

}

void fun(LinkList *L,int m)

{

int i;

LinkList *p,*s,*q;

p=L;

printf("出列顺序为:");

while(p->next!=p)

{

for(i=1;i

{

q=p;

p=p->next;

}

printf("%5d",p->num);

s=p;

q->next=p->next;

p=p->next;

free(s);

}

printf("%5d\n",p->num);

}

void main()

{

LinkList *L;

int n,m;

n=9; m=5;

L=creat(n);

fun(L,m);

}

3.比较一个数组的元素是否为回文数组

1234321 123 4 321 这个就是回文.

“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。

设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。

注意:

1.偶数个的数字也有回文数124421

2.小数没有回文数

#include

#include

void main()

int i=0,j;

char str[100];

gets(str);

int len=strlen(str);

while(i

{

if(str[i]==str[len-i-1])

{

i++;

}

else

break;

}

if(i==len/2)

printf("The %s is huiwen array\n",str);

else

printf("The %s is not huiwen array\n",str);

}

4数组比较(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[])

【输入】int len1:输入被比较数组1 的元素个数;

int array1[]:输入被比较数组1;

int len2:输入被比较数组2的元素个数;

int array2[]:输入被比较数组2;

【输出】无

【返回】不相等元素的个数,类型为int

?示例

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

#include

#include

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

void main()

int n;

int a1[]={3,4,5};

int len1=3;

//int a2[]={1,2,4,5,7};

int a2[]={1,2,3,4,5};

int len2=5;

n=array_compare(len1,a1,len2,a2);

printf("%d\n",n);

}

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

{

int i=len1-1,j=len2-1;

int m=0;

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

{

if(array1[i]==array2[j])

{

i--;

j--;

}

else

{

i--;

j--;

m++;

}

}

return m;

}

5、约瑟夫问题

?问题描述:

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

#include

#include

#include

typedef struct Node

{

int num;

struct Node *next;

}Linklist;

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

Linklist *creatL(int a[],int w);

void main()

{

int n=4;

int array[]={3,1,2,4};

int array1[4];

int z=7;

array_iterate(n,array,z,array1);

for(int i=0;i

{

printf("%d ",array1[i]);

}

printf("\n");

}

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

{

int i,j=0,t;

t=m;

Linklist *head,*p,*q,*s;

head=creatL(input_array,len);

p=head;

while(p->next!=p)

{

for(i=0;i

q=p;

p=p->next;

}

output_array[j++]=p->num;

t=p->num;

s=p;

q->next=p->next;

p=q->next;

}

output_array[j]=p->num;

}

Linklist *creatL(int a[],int w)

{

int i;

Linklist *p,*q,*L;

L=(Linklist *)malloc(sizeof(Linklist));

L->num=a[0];

p=L;

for(i=1;i

{

q=(Linklist *)malloc(sizeof(Linklist));

q->num=a[i];

p->next=q;

p=q;

}

p->next=L;

return L;

}

6、手机号码合法性判断(20分)

问题描述:我国大陆运营商的手机号码标准格式为:国家码+手机号码,例如:8613912345678。特点如下:1、长度13 位;2、以86 的国家码打头;3、手机号码的每一位都是数字。

请实现手机号码合法性判断的函数要求:

1)如果手机号码合法,返回0;

2)如果手机号码长度不合法,返回1

3)如果手机号码中包含非数字的字符,返回2;

4)如果手机号码不是以86打头的,返回3;

【注】除成功的情况外,以上其他合法性判断的优先级依次降低。也就是说,如果判断出长度不合法,直接返回1即可,不需要再做其他合法性判断。要求实现函数:

Int verifyMsisdn(char * inMsisdn)

【输入】char* inMsisdn,表示输入的手机号码字符串。

【输出】无

【返回】判断的结果,类型为int。

示例

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

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

输入:inMsisdn = “86139123456789“输出:无返回:0

#include

#include

int verifyMsisdn(char * inMsisdn);

void main()

{

int n;

char str[100];

gets(str);

n=verifyMsisdn(str);

printf("%d\n",n);

}

int verifyMsisdn(char * inMsisdn)

{

int len;

len=strlen(inMsisdn);

if(len!=13)

{

return 1;

}

else

{

for(int i=0;i

{

if((inMsisdn[i]<'0')||(inMsisdn[i]>'9'))

return 2;

}

if((inMsisdn[0]!='8')||(inMsisdn[1]!='6'))

return 3;

else

return 0;

}

}

7、使用C语言实现字符串中子字符串的替换描述:编写一个字符串替换函数,如函数名为StrReplace(char* strSrc, char* strFind, char* strReplace),strSrc为原字符串,strFind 是待替换的字符串,strReplace 为替换字符串。举个直观的例子吧,如:“ABCDEFGHIJKLMNOPQRSTUVWXYZ”这个字符串,把其中的“RST”替换为“ggg”这个字符串,结果就变成了:ABCDEFGHIJKLMNOPQgggUVWXYZ

#include

#include

void StrReplace(char* strSrc,char* strFind,char* strReplace);

void main()

{

char str[]="ABCDEFGHIJKLMN";

char str1[]="HIJ";

char str2[]="ggg";

StrReplace(str,str1,str2);

printf("%s\n",str);

}

void StrReplace(char* strSrc,char* strFind,char* strReplace) {

int len1,len2,z,i,j,p;

len1=strlen(strSrc);

len2=strlen(strFind);

for(i=0;i

{

p=z=i; j=0;

while(strSrc[p++]==strFind[j++])

{

if(j==len2)

{

for(p=0;p

strSrc[p+z]=strReplace[p];

}

}

}

}

8.算分数的问题,去掉一个最高分一个最低分,求平均分#include

int average(int a[],int n);

void main()

{

int m;

int b[5]={2,1,4,7,3};

m=average(b,5);

printf("%d\n",m);

}

int average(int a[],int n)

{

int i,j,temp;

int sum=0;

for(i=0;i

{

for(j=0;j

{

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

{

temp=a[j];

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

a[j+1]=temp;

}

}

2016华为硬件机试题库

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

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

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

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

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

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

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

华为机试试题汇总解析

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

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

华为硬件笔试题、面试题

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

华为公司应聘硬件笔试题

华为公司应聘硬件笔试题 一填空 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的传递函数; 计算题

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

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

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

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

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

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

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

华为笔试题目很全

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

华为招聘笔试题目

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

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

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

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

华为公司硬件研収类笔试试题 一.填空题(共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选一的数据选择器,其地址输入端有()个

华为机试试题汇总

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

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

华为成都上机笔试题

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

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

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

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

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

华为笔试试题大全

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

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

相关文档