最全的华为校园招聘笔试题合集Word文档下载推荐.docx
《最全的华为校园招聘笔试题合集Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《最全的华为校园招聘笔试题合集Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
#include<
stdio.h>
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])
{
}
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;
请问输出是什么?
解答:
这道题的答案取自于编译器,因为不同的编译器有不同的压栈顺序,一般情况下是从右往左压,即答案为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
运行有问题?
Voidtest3(char*str1)
if(strlen(str1)<
=10)
2.
找错
#defineMAX_SRM256
DSNget_SRM_no()
staticintSRM_no;
intI;
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()
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"
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<
n;
i++)
{
s=(structstu*)malloc(sizeof(structstu));
p->
next=s;
Pleaseinputtheinformationofthestudent:
namesexnoage\n"
);
scanf("
%s%c%d%d"
s->
name,&
s->
sex,&
no,&
age);
s->
p=s;
Createsuccessful!
return(h);
voiddeletelist(structstu*s,inta)
structstu*p;
while(s->
age!
=a)
p=s;
s=s->
next;
if(s==NULL)
Therecordisnotexist."
p->
next=s->
Deletesuccessful!
voiddisplay(structstu*s)
while(s!
=NULL)
%s%c%d%d\n"
name,s->
sex,s->
no,s->
s=s->
intmain()
structstu*s;
intn,age;
Pleaseinputthelengthofseqlist:
\n"
scanf("
%d"
&
n);
s=creatlist(n);
display(s);
Pleaseinputtheage:
d