最全的华为校园招聘笔试题合集.docx

上传人:b****5 文档编号:2866368 上传时间:2022-11-16 格式:DOCX 页数:17 大小:26.73KB
下载 相关 举报
最全的华为校园招聘笔试题合集.docx_第1页
第1页 / 共17页
最全的华为校园招聘笔试题合集.docx_第2页
第2页 / 共17页
最全的华为校园招聘笔试题合集.docx_第3页
第3页 / 共17页
最全的华为校园招聘笔试题合集.docx_第4页
第4页 / 共17页
最全的华为校园招聘笔试题合集.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

最全的华为校园招聘笔试题合集.docx

《最全的华为校园招聘笔试题合集.docx》由会员分享,可在线阅读,更多相关《最全的华为校园招聘笔试题合集.docx(17页珍藏版)》请在冰豆网上搜索。

最全的华为校园招聘笔试题合集.docx

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

华为笔试

1、局部变量能否和全局变量重名?

    答:

能,局部会屏蔽全局。

要用全局变量,需要使用":

:

"

局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。

对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。

2、如何引用一个已经定义过的全局变量?

    答:

extern

    可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。

3、全局变量可不可以定义在可被多个.C文件包含的头文件中?

为什么?

   答:

可以,在不同的C文件中以static形式来声明同名全局变量。

   可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错。

4、语句for(;1;)有什么问题?

它是什么意思?

   答:

无限循环,和while

(1)相同。

5、do……while和while……do有什么区别?

   答:

前一个循环一遍再判断,后一个判断以后再循环。

6、请写出下列代码的输出内容

#include

main()

{

inta,b,c,d;

a=10;

b=a++;

c=++a;

d=10*a++;

printf("b,c,d:

%d,%d,%d",b,c,d);

return0;

}

答:

10,12,120

一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分)

 

1、有数组定义inta[2][2]={{1},{2,3}};则a[0][1]的值为0。

(    )

 

2、int(*ptr)(),则ptr是一维数组的名字。

(    )

 

3、指针在任何情况下都可进行>,<,>=,<=,==运算。

(    )

 

4、switch(c)语句中c可以是int,long,char,float,unsignedint类型。

(  )

 

5、#defineprint(x) printf("theno,"#x",is")

 

二、填空题(共30分)

 

1、在windows下,写出运行结果,每空2分,共10分。

 

charstr[]="Hello";

 

char*p=str;

 

intn=10;

 

sizeof(str)=(     )

 

sizeof(p)=(      )

 

sizeof(n)=(      )

 

voidfunc(charstr[100])

{   }

 

sizeof(str)=(    )

 

2、voidsetmemory(char**p,intnum)

 

{*p=(char*)malloc(num);}

 

voidtest(void)

 

{ char*str=NULL;

 

  getmemory(&str,100);

 

  strcpy(str,"hello");

 

  printf(str);

 

}

 

运行test函数有什么结果?

(                               )10分

 

3、设intarr[]={6,7,8,9,10};

 

    int*ptr=arr;

 

  *(ptr++)+=123;

 

 printf("%d,%d",*ptr,*(++ptr));

 

(                                  )10分

 

 

 

二、编程题(第一小题20,第二小题30分)

 

1、 不使用库函数,编写函数intstrcmp(char *source,char*dest)

 相等返回0,不等返回-1;

 

2、 写一函数intfun(char*p)判断一字符串是否为回文,是返回1,不是返回0,出错返回-1

ntarr[]={6,7,8,9,10};

int*ptr=arr;

*(ptr++)+=123;

printf("%d,%d",*ptr,*(++ptr));

请问输出是什么?

解答:

这道题的答案取自于编译器,因为不同的编译器有不同的压栈顺序,一般情况下是从右往左压,即答案为8,8。

但我们也不否认出现7,8或8,9的情况。

1.请你分别画出OSI的七层网络结构图和TCP/IP的五层结构图。

  2.请你详细地解释一下IP协议的定义,在哪个层上面?

主要有什么作用?

TCP与UDP呢?

  3.请问交换机和路由器各自的实现原理是什么?

分别在哪个层次上面实现的?

  4.请问C++的类和C里面的struct有什么区别?

  5.请讲一讲析构函数和虚函数的用法和作用。

  6.全局变量和局部变量有什么区别?

是怎么实现的?

操作系统和编译器是怎么知道的?

  7.8086是多少位的系统?

在数据总线上是怎么实现的?

找错

Voidtest1()

{

   charstring[10];              [11]

   char*str1="0123456789";

   strcpy(string,str1);

}

Voidtest2()

{

   charstring[10],str1[10];

   for(I=0;I<10;I++)                I未定义

   {

       str1[i]='a';                     I

   }

   strcpy(string,str1);              运行有问题?

}

Voidtest3(char*str1)

{

   charstring[10];

   if(strlen(str1)<=10)

   {

   strcpy(string,str1);

   }

}

2.   找错

#defineMAX_SRM256

DSNget_SRM_no()

{

       staticintSRM_no;

       intI;

       for(I=0;I{

SRM_no%=MAX_SRM;

if(MY_SRM.state==IDLE)

{

   break;

}

}

if(I>=MAX_SRM)

return(NULL_SRM);

else

returnSRM_no;

}

3.   写出程序运行结果

intsum(inta)

{

       autointc=0;

       staticintb=3;

c+=1;

b+=2;

return(a+b+C);

}

   

voidmain()

{

       intI;

inta=2;

for(I=0;I<5;I++)

{

   printf("%d,",sum(a));

}

}

4.   

intfunc(inta)

{

   intb;

   switch(a)

   {

       case1:

30;

       case2:

20;

       case3:

16;

       default:

0

}

returnb;

}

则func

(1)=?

5:

inta[3];

a[0]=0;a[1]=1;a[2]=2;

int*p,*q;

p=a;

q=&a[2];

则a[q-p]=?

  2

6.

定义int**a[3][4],则变量占有的内存空间为:

_____4

7.

编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。

如输入2004年12月31日23时59分59秒,则输出2005年1月1日0时0分0秒。

1、一个学生的信息是:

姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起,给出一个age,在些链表中删除学生年龄等于age的学生信息。

#include"stdio.h"

#include"conio.h"

structstu{

   charname[20];

   charsex;

   intno;

   intage;

   structstu*next;

}*linklist;

structstu*creatlist(intn)

{

   inti;

   //h为头结点,p为前一结点,s为当前结点

   structstu*h,*p,*s;

   h=(structstu*)malloc(sizeof(structstu));

   h->next=NULL;

   p=h;

   for(i=0;i

   {  

       s=(structstu*)malloc(sizeof(structstu));

       p->next=s;

       printf("Pleaseinputtheinformationofthestudent:

namesexnoage\n");

       scanf("%s%c%d%d",s->name,&s->sex,&s->no,&s->age);

       s->next=NULL;

       p=s;

   }

   printf("Createsuccessful!

");

   return(h);

}

voiddeletelist(structstu*s,inta)

{

 structstu*p;

 while(s->age!

=a)

 {

  p=s;

  s=s->next;

 }

 if(s==NULL)

  printf("Therecordisnotexist.");

 else

 {

  p->next=s->next;

  printf("Deletesuccessful!

");

 }

}

voiddisplay(structstu*s)

{

 s=s->next;

   while(s!

=NULL)

   {

       printf("%s%c%d%d\n",s->name,s->sex,s->no,s->age);

       s=s->next;

   }

}

intmain()

{

   structstu*s;

 intn,age;

 printf("Pleaseinputthelengthofseqlist:

\n");

 scanf("%d",&n);

   s=creatlist(n);

   display(s);

 printf("Pleaseinputtheage:

\n");

 scanf("%d",&age);

 d

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1