版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1:请你分别划OSI的七层网络构造图,和TCP/IPH勺五层构造图?
OSI日勺七层网络构造图,和TCP/IP的五层构造图
OSI
OSI是OpenSystemIntcrconneci的缩写,意为开放式系统互联。在OSI出现之前,计算机
网络中存在众多口勺体系构造,其中以IBM企业的JSNA(系统网络体系构造)和DEC企业日勺
DNA(Digi(alNetworkArchiteclure)数字网络体系构造最为著名。为了处理不一样体系构造於J
网络的互联问题,国际原则化组织ISO(注意不要与OSI搞混))于1981年制定了开放系统
互连参照模型(OpenSystemInlerconnectionReferenceModel,OSI/RM)。这个模型把网络通
信的工作分为7层,它们由低到高分别是物理层(PhysicalLayer),数据链路层(DataLinkLayer),
网络层(NetworkLayer),传播层(TransportLayer),会话层(SessionLayer),表达层(Presenlation
Layer)和应用层(ApplicationLayer)。第■层到第三层属于OSI参照模型欧J低三层,负责创
立网络通信连接口勺链路;第四层到第七层为OSI参照模型的高四层,详细负责端到端口勺数
据通信。每层完毕一定的功能,每层都直接为其上层提供服芬,并且所有层次都互相支持,
而网络通信则可以自上而下(在发送端)或者自下而上(在接受端)双向进行。当然并不是
每一通信都需要通过OSIR勺所有七层,有日勺甚至只需要双方对应的某一层即可。物理接口
之间的转接,以及中继器与中继器之间的连接就只需在物理层中进行即可;而路由渊与路由
器之间的连接则只需通过网络层如下H勺三层即可。总H勺来说,双方H勺通信是在对等层次上进
行的,不能在不对称层次上进行通信。
OSI参照模型的各个层次的划分遵照下列原则:
1、同一层中的各网络节点均有相似的层次构造,具有同样的功能。
2、同一节点内相邻层之间通过接口(可以是逻辑接口)进行通信。
3、土层构造中的每一层使用下一层提供的服务,并日向其卜层提供服务.
4、不一样节点的同等层按照协议实现对等层之间的通信。
第一层:物理层(PhysicalLayer),规定通信设备的机械H勺、电气股I、功能H勺和过程的特性,
用以建立、维护和拆除物理链路连接。详细地讲,机械特性规定J'网络连接时所需接插件的
规格尺寸、引脚数量和排列状况等;电气特性规定了在物理连接上传播bit流时线路上信号
电平时大小、阻抗匹配、传播速率距离限制等;功能特性是指对各个信号先分派确切的信号
含义,即定义了DTE和DCE之间各个线路H勺功能;规程特性定义了运用信号线进行bit流
传播的一组操作规程,是指在物理连接的建立、维护、互换信息是,DTE和DCE双放在各
电路上的动作系列。
在这一层,数据U勺单位称为比特(bit)o
属于物理层定义日勺经典规范代表包括:EIA/TIARS-232.EIA/TIARS-449、V.35、RJ-45等。
第二层:数据链路层(DataLinkLayer):在物理层提供比特流服务II勺基础上,建立相邻结点之
间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错日勺传播,并进行各电路
上的动作系列。
数据链路层在不可靠的物理介质上提供可靠的传播。该层的作用包括:物理地址寻址、数据
的成帧、流量控制、数据的检错、重发等。
在这一层,数据U勺单位称为帧(frame)。
数据链路层协议H勺代表包括:SDLC、HDLC、PPP、STP、帧中继等。
第三层是网络层
在计算机网络中进行通信的两个计算机之间也许会通过诸多种数据链路,也也许还要通过诸
多通信子网。网络层的任务就是选择合适的网间路由和互换结点,保证数据及时传送。网
络层将数据链路层提供的帧构成数据包,包中封装有网络层包头,其中具有逻辑地址信息--
源站点和FI的站点地址的网络地址。
假如你在谈论一种IP地比,那么你是在处理第3层的J问题,这是“数据包”问题,而不是
第2层的“帧"。IP是第3层问题日勺一部分,此外尚有某些路由协议和地址解析协议(ARP)。
有关路由的一切事情都在第3层处理。地址解析和路由是3层的重要目日勺。网络层还可以实
现拥塞控制、网际互连等功能。
在这层,数据日勺单位称为数据包(pack”)。
网络层协议R勺代表包括:IP、IPX、RIP、OSPF等。
第四层是处理信息的传播层。第4层日勺数据单元也称作数据包(packets)o不过,当你谈论
TCP等详细的协议时又有特殊日勺叫法,TCP日勺数据单元称为段(segments)而UDP协议时
数据单元称为“数据报(datagrams)\这个层负责获取所有信息,因此,它必须跟踪数据
单元碎片、乱序抵达的数据包和其他在传播过程中也许发生的危险。第4层为上层提供端到
端(最终顾客到最终顾客)的透明日勺、可靠的数据传播服务。所为透明的传播是指在通信过
程中传播层对上层屏蔽了通信传播系统的详细细节。
传播层协议的I代表包括:TCP、UDP、SPX等。
第五层是会话层
这一层也可•以称为会面层或对话层,在会话层及以上的高层次中,数据传送的单位不再此外
命名,统称为报文。会话层不参与详细的I传播,它提供包括访问验证和会话管理在内的建立
和维护应用之间通信的机制。如服务器验证顾客登录便是由会话层完毕日勺。
第六层是表达层
这一层重要处理拥护信息日勺语法表达问题。它将欲互换的数据从适合于某一顾客的J抽象语
法,转换为适合于OSI系统内部使用的传送语法。即提供格式化口勺表达和转换数据服务。
数据的压缩和解压缩,加密和解密等工作都由表达层负责。
笫七层应用层,应用层为操作系统或网络应用程序提供访问网络服务日勺接口。
应用层协议R勺代表包括:Telnet、FTP、、SNMP等。
通过OSI层,信息可以从一台计算机口勺软件应用程序传播到另一台口勺应用程序上。例
如,计算机A上的应用程序要将信息发送到计算机BH勺应用程序,则计算机A中的应用
程序需要将信息先发送到其应用层(第七层),然后此层将信息发送到表达层(第六层),表
达层将数据转送到会话层(第五层),如此继续,直至物理层(第一层)。在物理层,数据被
放置在物理网络媒介中并被发送至计算机B。计算机B的物理层接受来自物理媒介的数
据,然后将信息向上发送至数据链路层(第二层),数据链路层再转送给网络层,依次继续
直到信息抵达计算机B的应用层。最终,计算机B日勺应用层再将信息传送给应用程序接
受端,从而完毕通信过程,下面图示阐明了这一过程。
OSI曰勺七层运用多种各样口勺控制信息来和其他计算机系统H勺对应层进行通信。这些控
制信息包括特殊日勺祈求和阐明,它们在对应日勺OSI层间讲行互换。每一层数据的头和尾星
两个携带控制信息的基本形式。
对于从上一层传送下来的数据,附加在前面II勺控制信息称为头,附加在背面的控制信息
称为尾。然而,在对来自上一-层数据增长协议头和协议尾,对-•种OSI层来说并不是必需
的。
当数据在各层间传送时,每一层都可以在数据上增长头和尾,而这些数据已经包括了上
一层增长的头和尾。协议头包括了有关层与层间的通信信息。头、尾以及数据是有关联的概
念,它们取决于分析信息单元的协议层。例如,传播层头包括了只有传播层可以看到的信息,
传播层下面的其他层只将此头作为数据的一部分传递。对于网络层,一种信息单元由第三层
的头和数据构成。对于数据链路层,经网络层向下传递的所有信息即第三层头和数据都被看
作是数据。换句话说,在给定日勺某一OSI层,信息单元的数据部分包括来自于所有上层的
头和尾以及数据,这称之为封装。
•种OSI层与另•层之间的通信是运用第二层提供的服务完毕日勺。相邻层提供的服务
协助一OSI层与另一计算机系统的对应层进行通信。一种OSI模型口勺特定层一般是与此
外三个OSI层联络:与之直接相邻的上一层和下一层,尚有目的I联网计算机系统的I对应层。
例如,计算机A的数据链路层应与其网络层,物理层以及计算机B日勺数据链路层进行通
信
2:请你详细的解释一下IP协议H勺定义,在哪个层上面,重要有什么作用?TCP与UDP
呢?
3:请问互换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?
4:请问C++日勺类和C里面的struct有什么区别?
5:请讲一讲析构函数和虚函数R勺使用方法和作用?
6:全局变量和局部变量有什么区别?实怎么实现H勺?操作系统和编译器是怎么懂得的?
7:某些寄存器"勺题忖,重要是寻址和内存管理等某些知识。
8:8086是多少尉的)系统?在数据总线上是怎么实现的?
4次件测就aJ各陷段!
面试就是跟你聊聊工作,看经验J'
笔试,看看数据构造,二叉树,排序,什么的
也许会考多线程
互换的基础协议
1.软件测试对应开发流程各阶段应当怎么样划分?单元测试,集成测试,系统测试各对应与
开发流程的那几种文档?
2.压力测试和性能测试口勺区别?
switch(n)中“勺n不能是如下那种类型AcharBintCunsignedDdouble
华为全套面试题
华为全套面试题(基础版)
(一)
慧通:
1。什么是预编译,何时需要预编译:
答案:1、总是使用不常常改动的)大型代码体。
2、程序由多种模块构成,所有模块都使用一组原则的包括文献和相似的编译选项。在这种
状况下,可以将所有包括文献预编译为一种预编译头。
2。char*constp
charconst*p
constchar*p
上述三个有什么区别?
答案:
char*constp;//常量指针,pB勺值不可以修改
charconst*p:〃指向常量的指针,指向时常量俏不可以改
constchar*p;〃和charconst*p
3。charstrl[]="abc";
charstr2[]=Mabc";
constcharstr3[j="abc";
constcharstr4n="abc";
constchar*str5="abc";
constchar*str6="abc";
char*str7="abc";
char*str8="abc";
coui<<(sirl==sir2)«endl;
cout«(str3==str4)«endl;
cout«(str5==str6)«endl;
cout«(str7==str8)«endl;
成果是:0011
strl,str2,str3,str4是数组变量,它们有各自的]内存空间;
而str5,str6,str7,str8是指针,它们指向相似H勺常量区域。
4。如下代码中H勺两个sizeof使用方法有问题吗?[C易]
voidUppcrCasc(charstr[])//将str中H勺小写字母转换成大写字母
(
for(sizc_ti=0;i<sizcof(str)/sizcof(str[OJ);++i)
if('a'<=str[i]&&str[i]<='z')
str[i]-=('a'-'A');
)
charsir[]="aBcDe";
cout«"str字符长度为:"«sizeof(str)/sizeof(str[0])«endl;
UpperCase(str);
cout«str«endl;
答案:函数内Fl勺sizeof有问题。根据语法,sizeof如用于数组,只能测出静态数组的大小,
无法检测动态分派的或外部数组大小。函数外的市是一种静态定义H勺数组,因此其大小为
6,由于尚有'O'函数内的str实际只是一种指向字符串的指针,没有任何额外的与数组有
关的信息,因此sizcof作用于上只将其当指针看,一种指针为4个字节,因此返回4。
5。一种32位H勺机器,该机器H勺指针是多少位
答案:指针是多少位只要看地址总线的位数就行了。80386后来的机子都是321向数据总线。
因此指针的位数就是4个字节了。
6omain()
(
inta[5]={l,2,3,4,5};
int*ptr=(int*)(&a+l);
printf("%d,%d'\*(a+l)?(ptr-l));
I
答案:2。5
*(a+l)就是a[l],*(ptr-l]就是a[4],执行成果是2,5
&a+l不是首地址+1,系统会认为加一种a数组日勺偏移,是偏移了一种数组的大小(本例是
5个int)
int*ptn=(int*)(&a+l);
则ptr实际是&(a[5]),也就是a+5
原因如下:
&a是数组指针,其类型为int(*)[5];
而指针加1要根据指针类型加上一定的值,
不一样类型及I指针+1之后增长口勺大小不一样
a是长度为5的int数组指针,因此要加5*sizeof(int)
因此pir实际是a[5]
不过prt与(&a+l)类型是不•样样的(这点很重要)
因此prt-1只会减去sizeoflim*)
a,&a日勺地址是同样的,但意思不一样样,a是数组首地址,也就是a[0]的I地址,&a是对象
(数组)首地址,a+1是数组下一元素的地址,即a[l],&a+l是下一种对象的I地址,即a[5].
7。请问如下代码有什么问题:
inimain()
chara;
char*str=&a;
slrcpy(str,"hello");
printf(str);
return0;
)
答案:没有为st「分派内存空间,将会发生异常
问题出在将一种字符串复制进一种字符变量指针所指地址。虽然可以对的输出成果,但由于
越界进行内在读写而导致程序瓦解.
8。char*s="AAA";
printf("%s",s);
s[O]='B';
printf("%s'\s);
有什么错?
答案:”AAA"是字符串常量。s是指针,指向这个字符串常量,因此申明s"勺时候就有问题。
cosntchar*s="AAA";
然后又由于是常量,因此对是s[0]的赋值操作是不合法的。
九写一种“原则”宏,这个宏输入两个参数并返回较小的一种。
答案:.#defineMin(X,Y)[(X)XY)?(Y):(X))〃结尾没有';'
10o嵌入式系统中常常要用到无限循环,你怎么用C编写死循环。
答案:while⑴。或者for(;;)
th关键字static的作用是什么?
答案:定义静态变量
12o关键字const有什么含意?
答案:表达常量不可以修攻的变量。
13。关键字volatile有什么含意?并举出三个不一样的例子?
答案:提醒编译器对象的值也许在编译器未监测到的状况下变化。
14。int(*s[l()])(int)表达的是什么啊?
答案:int(*s[10])(int)函数指针数组,每个指针指向一种intfimc(intparam)的函数。
15。有如下体现式:
inta=248;b=4:intconstc=21:constint*d=&a;
int*cons(e=&b;intconst*fconst=&a;
请问下列体现式哪些会被编译器严禁?为何?
答案:*c=32;d=&b;*d=43:e=34;e=&a;f=0x321f;
*c这是个什么东东,严禁
*d说了是const,严禁
e=&a说了是const严禁
const*fconst=&a;严禁
16互换两个变量l内值,不使用第三个变量。即a=3,b=5,互换之后a=5.b=3;
答案:有两种解法,一种用算术算法,一种用人(异或)
a=a+b;
b=a-b;
a=a-b;
or
a=aAb;//只能对int,char..
b=aAb;
a=aAb:
or
A=bA=a;
17.c和C++中的Jstruct有人么不一样?
答案:c和C++中slnictH勺重要区别是c中口勺struct不可以具有组员函数,而C++中的Jstrucl
可以。C++中struct和class的重要区别在于默认11勺存取权限不一样,struct默认为public,而
class默认为private
I8.#include<stdio.h>
#include<stdlib.h>
voidge(memory(char*p)
{
p=(char*)malloc(100l;
strcpy(p,"hclloworld");
)
intmain()
{
char*str=NLJLL;
getmeniory(str);
printf("%s/n",str);
free(str);
return0:
)
答案:程序瓦解,getmemory中欧Jmalloc不能返叵I动态内存,free()对str操作很危险
19.charszstr[10];
strcpy(szstr."");
产生什么成果?为何?
答案:长度不一样样,会导致非法的OS
20.列举几种进程的同步机制,并比较其优缺陷。
答案:原子操作
信号量机制
自旋锁
管程,会合,分布式系统
21.进程之间通信的途径
答案:共享存储系统
消息传递系统
管道:以文献系统为基础
22.进程死锁口勺原因
答案:资源竞争及进程推进次序非法
23.死锁口勺4个必要条件
答案:互斥、祈求保持、不可剥夺、环路
24.死锁U勺处理
答案:鸵鸟方略、防止方略、防止方略、检测与解除死锁
25.操作系统中进程调度方略有哪几种?
答案:FCFS(先来先服务),优先级,时间片轮转,多级反馈
26类H勺静态绢员和非静态绢员有何区别?
答案:类的I静态组员每个类只有一种,非静态组员每个对象一种
27.纯虚函数怎样定义?使用时应注意什么?
答案:virtualvoidf()=0;
是接口,子类必须要实现
28.数组和链表日勺区别
答案:数组:数据次序存储,固定大小
连表:数据可以随机存储,大小可动态变化
29.ISO的七层模型是什么?lep/udp是属于哪一层?icp/udp有何优缺陷?
答案:应用层
表达层
会话层
运送层
网络层
物理链路层
物理层
tcp/udp属于运送层
TCP服务提供了数据流传播、可靠性、有效流控制、全双工操作和多路复用技术等。
与TCP不一样,UDP并不提供对IP协议的可靠机制、流控制以及错误恢复功能等。由
于UDP比较简朴,UDP头包括很少日勺字节,比TCP负载消耗少。
tcp:提供稳定日勺传播服务,有流量控制,缺陷是包头大,冗余性不好
udp:不提供稳定的服务,包头小,开销小
30:(void*)ptr和(*(void**))ptr的成果与否相似?其中ptr为同一■种指针
答案:.(void*)ptr和(*(void**))ptr值是相似E向
31:inimain()
(
intx=3;
printf("%d'\x);
return1;
)
问函数既然不会被其他函数调用,为何要返回I?
答案:mian中,c原则认为。表达成功,非0表达错误c详细的值是某中详细出错信息
32,要对绝对地址0x100000赋值,我们可以用
(unsignedint*)Ox100000=1234;
那么要是想让程序跳转到绝对地址是0x100000去执行,应当怎么做?
答案:*((void(*)())0x100000)();
首先要将0x10000()强制转换成函数指针•,即:
(void(*)())0x100000
然后再调用它:
*((void(*)0)0x100000)();
用typcdef可以看得更直观些:
typedefvoid(*)()voidFuncPtr;
*((voidFuncPtr)0x100000)();
33,已知一种数组table,用一种宏定义,求出数据的元素个数
答案:^defineNTBL
#defineNTBL(sizeof(table)/sizeof(table[0]))
34o线程与进程日勺区别和我络?线程与否具有相似日勺堆栈?dll与否有独立日勺堆栈?
答案:进程是死H勺,只是某些资源H勺集合,真正H勺程序执行都是线程来完毕的,程序启动口勺
时候操作系统就帮你创立了一种主线程。
每个线程有自己日勺堆枝。
DLL中有无独立口勺堆栈,这个问题不好I可答,或者说这个问题自身与否有问题。由于DLL
中的代码是被某党线程所执行,只有线程拥有堆栈,假如DLL中的代码是EXE中U勺线程所
调用,那么这个时候是不是说这个DLL没有自己独立口勺堆栈?假如DLL中的代码是由DLL
自己创立的线程所执行,那么是不是说DLL有独立的堆栈?
以上讲的是堆栈,假如对于堆来说,每个DLL有自己的堆,因此假如是从DLL中动态分派
的内存,最佳是从DLL中删除,假如你从DLL中分派内存,然后在EXE中,或者此外一
种DLL中删除,很有也许导致程序瓦解
35ounsignedshortA=10;
prinlf("〜A=%u\n",~A);
charc=128;
printf("c=%d\ii",c);
输出多少?并分析过程
答案:第一题,〜A=0xfffffff5,int值为-11,但输出时是uint。因此输出
第二题,c=0xl0,输出口勺是ini,最高位为1,是负数,因此它H勺值就是0x00的补码就是128,
因此输出一128。
这两道题都是在考察二进制向int或uint转换时的最高位处理。
(二)
1.-127,28,,126请问28和126中间那个数是什么?为何?
答案:第一题H勺答案应当是4A3-1=63
规律是M3・l(当n为偶数0,2,4)
23+1(当n为奇数1,3,5)
2.用两个栈实现一种队列的功能?规定给出算法和思绪!
答案:设2个栈为A,B,一开始均为空.
入队:
将新元素push入栈A;
出队:
(1)判断栈B与否为空;
(2)假如不为空,则将栈A中所有元素依次pop出并push到栈B:
(3)将枝B的栈顶元素pop出;
这样实现的队列入队和出队的平摊复杂度都还是0(1),比上面的几种措施要好。
3.在c语言库函数中将一种字符转换成整型的函数是atol。吗,这个函数的原型是什么?
答案:函数名:atol
功能:把字符串转换成长整型数
用法:longatol(constchar*nptr);
程序例:
//include<sidlib.h>
#include<stdio.h>
intmain(void)
(
long1;
char*str="98765432";
1=atol(lstr);
piintf'Cslring=%sinteger=%kl\n",str,1);
rcturn(O);
)
40对于一种频繁使用11勺短小函数,在C语言中应用什么实现,在C++中应用什么实现?
答案:c用宏定义,C++用inline
5。直接链接两个信令点的一组链路称作什么?
答案:PPP点到点连接
7。软件测试均有那些种类?
答案:黑盒:针对系统功能的测试白合:测试函数功能,各函数接口
8。确定模块的功能和模块H勺接口是在软件设计H勺那个队段完毕H勺?
答案:概要设计阶段
9。enumstring
xl,
x2,
x3=10,
x4,
x5,
}x;
问X:
答案:取值在0。L10011。12中日勺一种
10ounsignedchar*pl;
unsignedlong*p2;
p1=(unsigncdchar*)0x801000;
p2=(unsignedlong*)0x810000;
请问pl+5二;
p2+5=;
答案:801005;810014。不要忘掉了这个是16进制的J数字,p2要加20变为16进制就是
14
选择题:
I.Ethtemet链接到Internet用到如下那个协议?
A.HDLC;B.ARP;C.UDP;D.TCP;E.ID
2.属于网络层协议H勺是:
3.Windows消息调度机制是:
A.指令队列;B.指令堆枝;C.消息队列;D.消息堆栈;
答案:b,a,c
四.找错题:
1.请问下面程序有什么错误?
intal60][250][10001,i,j,k;
for(k=0;k<=l000;k++)
for(j=0;j<250;j++)
for(i=0;i<60;i++)
a[i]皿k]=0;
答案:把循环语句内外换一下
2。如下是求一种数日勺平方的程序,请找出错误:
#defineSQUARE(a)((a)*(a))
inta=5;
intb;
b=SQUARE(a++);
答案:这个没有问题,s(a++),就是((a++)X(a++))唯一要注意日勺就是计算后a
=7了
3。lypedefunsignedcharBYTE
intcxamply_fun(BYTEgt_lcn;BYTE*gt_codc)
BYTE*gt_buf;
gt_buf=(BYTE*)MALLOC(Max_GT_Length);
if(gt_len>Max_GT_Length)
returnGT_Length_ERROR;
答案:要释放内存
问答题:
LIPPhone曰勺原理是什么?
答案:IPV6
2.TCP/IP通信建立的过程怎样,端口有什么作用?
答案:三次握手,确定是哪个应用程序使用该协议
(三)
I、局部变量能否和全局变革重名?
答案:能,局部会屏蔽全局。要用全局变量,需要使用'::"
局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名口勺局部变量,而不会
用到全局变量。对于有些编译器而言,在同一种函数内可以定义多种同名H勺局部变量,例如
在两个循环体内都定义一种同名的局部变量,而那个局部变量的作用域就在那个循环体内
2、怎样引用一种已经定义过日勺全局变量?
答案:extern
可以用引用头文献日勺方式,也可以用exlem关键字,假如用引用头文献方式来引用某个在头
文献中申明的全局变理,限定你将那个变写错了,那么在编译期间会报错,假如你用extern
方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错
3、全局变量可不可以定义在可被多种.C文献包括口勺头文献中?为何?
答案:可以,在不一样的C文献中以static形式来申明同名全局变量。可以在不一样的C文
献中申明同名日勺全局变量,前提是其中只能有•种C文献中对此变量赋初值,此时连接不
会出错
4、语句for(;1;)有什么问题?它是什么意思?
答案:和while⑴相似。
5、do……while和while……do有什么区别?
答案:前一种循环一遍再判断,后一种判断后来再循环。
6、请写出下列代码的输出内容
#includc<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
a=10;
b=a++;//a=lIb=10
c=++a;//a=12c=12
d=10*a++;//a=l3d=120
同级题
1、static全局变量与一般1勺全局变量有什么区别?static局部变量和一般局部变量有什么区
别?static函数与一般函数有什么区别?
答案:
全局变量(外部变量)的阐明之前再冠以static就构成了静态的全局变量。全局变量自身就是
静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不一样。
这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一种源程序由多种源文献
构成时,非静态H勺全局变量在各个源文献中都是有效H勺。
而静态全局变量则限制了其作用域,即只在定义该变量日勺源文献内有效,在同一源程序H勺
其他源文献中不能使用它,由于静态全局变最欧I作用域局限于一种源文献内,只能为该源文
献内的函数公用,因此可以防止在其他源文献中引起错误。从以上分析可以看出,把局部
变量变化为静态变量后是变化了它的存储方式即变化了它口勺生存期。把全局变量变化为静态
变量后是变化了它的作用域,限制了它代I使用范围。
static函数与一般函数作用域不一样。仅在本文献。只在目前源文献中使用的函数应当阐明
为内部函数(static),内部函数应当在目前源文献中阐明和定义。对于可在目前源文献以外使
用的函数,应当在一种头义献中阐明,要使用这些函数II勺源文献要包括这个头文献
static全局变量与一般的全局变量有什么区别:static全局变量只初使化一次,防止在其他文
献单元中被引用;
slatic局部变量和一般局部变量有什么区别:static局部变量只被初始化一次,下一次根据上
一次成果值;
static函数与一般函数有什么区别:sialic函数在内存中只有一份,一般函数在每个被调用中
维持一份拷贝
2、程序曰勺局部变量存在于()中,全局变量存在于()中,动态申请数据存在于()中。
答案:栈;静态区:堆
3、设有如下阐明和定义:
typedefunion{longi;intk[5];chare;}DATE;
structdata{intcat;DATEcow;doubledog;}too;
DATEmax;
则语句prinlf("%d",sizeof(loo)+sizeof(max));H勺执行成果是:
答案:DATE是一种union,变量公用空间.里面最大的变量类型是int[5],占用20个字节.因
此它的J大小是20
data是一种slruct,每个变量分开占用空间.依次为int4'+DATE20+double8=32.
因此成果是20+32=52.
当然…在某些16位编辑器下,int也许是2字节,那么成果是int2+DATE10+double8=20
4、队列和栈有什么区别?
答案:队列先进先出,栈后进先出+
5、这道题目出错了.这里就不写卜了.
6、己知一种单向链表H勺头,请写出删除其某一种结点的算法,规定,先找到此结点,然后
删除。
答案:slnodetype*Delete(slnodetype*Head,intkey){}中if(Head->number==key)
(
Head=Pointer->next;
free(Pointer);
break;
)
Back=Pointer;
Pointer=Pointer->next;
if(Pointcr->numbcr==kcy)
Back->next=Pointer->next;
frcc(Pointer);
break;
}
voiddelete(Node*p)
(
if(Head=Node)
while(p)
I
7、请找出下面代码中H勺因此错误
阐明:如下代码是把一种字符串倒序,如“abed”倒序后变为“deba”
1、UincludeHstring.h"
2^main()
3、
4、char*src="hello,world";
5、char*dest=NULL;
6、intlen=strlen(src);
7^dcst=(char*)malloc(lcn);
8、char*d=dest;
9^char*s=src[len];
10^while(len-!=O)
11、d++=s—;
12、printf("%su,dest);
13、return();
14、}
答案:还要加上#indude<stdio.h>
intmain(){
char*src="hello,world";
intlen=strlen(src);
char*dest=(char*)malloc((lcn+1)*sizcof(char));〃要为\()分派一种空间
char*d=dest;
char*s=&src[len-l];〃指向最终一种字符
while(len-!=0)
*d++=*s—;
*d=0;〃尾部要力口\0
printf("%s\n",desl);
free(dest);//使用完,应当释放空间,以免导致内存汇泄露
return0;
华为笔试题(3)
2023-09-2919:41
一、判断题(对H勺写「错时写F并阐明原因.每题4分,共20分)
1、有数组定义inta⑵⑵={{1},{2,3}};则刊0][1胆值为0。(对的)
2、ini(*ptr)。则ptr是一维数组的名字。(错误int(*plr)()淀义一种指向函数的指针变
量)
3、指针在任何状况下都可进行>,<>=,<=,==运算。(错误)
4、switch(c)语句中c可以是intJong,char,float.unsignedint类型。(错,不能用实彩)
二、填空题(共30分)
1、在windows下,写出运行成果,每空2分,共10分,
charstr[J="Hello";
char*p=str;
intn=10;
sizcof(str)=()
sizcof(p)=()
sizeof(n)=()
voidfunc(charstr[1()()]){
sizeof(str)=()
答案:6,4,4,4,详细解释请参看我的空间里日勺“C/C++程序员应删试题剖析”
2、voidgetmemory(charintmini)
{*p=(char*)malloc(nuni);}
voidtest(void)
{char*sir=NULL;
getmemory(&str,100);
strcpy(stn"hello");
printf(str);
运行test函数有什么成果?()10分
答案:输出hello,不过发生内存泄漏。
3、设iniaE]=(6,7,8,9,10;;
int*ptr=arr;
*(ptr++)+=123;
printf("%d,%d**,*ptr,*(++ptr));
()10分
答案:8,8。这道题目的意义不大,由于在不一样H勺编译器里printf的参数的方向是不一样
样的J,在vc6.0下是从有到左,这里先*(++ptr)后*pt,于是成果为8,8
二、编程题(第一小题20,第二小题30分)
1、不使用库函数,编写函数inlstrcmp(char*source,char*dest)
相等返回0,不等返回-1;
答案:一、
intstrcmp(char*source,char*dcst)
asscrt((sourcc!=NULL)&&(dcst!=NULL));
inti,j;
for(i=0;source[i]==dcst|i];i++)
(
if(sourccli]=-\0,&&dest[ij—\0')
return0;
else
retum-1;
)
I
答案:二、
intstrcmp(char*source,char*dest)
while((*sourcc!='\0')&&("source==*dcst))
source++;
dcst++;
)
return((*source)-(*dcst))?-1:0;
)
2、写一函数intfun(char*p)判断一字符串与否为回文,是返回1,不是返回0,出错返回
-I
答案:一、
inifun(char*p)
|
if(p==NULL)
return-1;
else
intlength=0;
inti=0;
intjudge=1;
length=strlcn(p);
for(i=0;i<length/2;i++)
if(p[i]!=p[length-1-i])
judge=0;
break;
if(judge==0)
return0;
else
return1;
答案:二、
intfun(char*p){intlen=strlcn(p)-1;char*q=p+len;if(!p)return-1;while(p<q){if
((*p++)!=(*q-))return0;)returnI;)
华为笔试网络题(3)
2023-09-3012:48
1.在OSI7层模型中,网络层的功能有()
A.保证数据的传送对日勺无误B.确定数据包怎样转发与路由
C.在信道上传送比特流D.纠错与流控
2.FDDI使用的是一局域网技术。()
A.以太网;B.迅速以太网;C.令牌环;D.令牌总线。
3.下面那种LAN是应用CSMA/CD协议日勺()
A.令牌环B.FDDIC.ETHERNETD.NOVELL
4.TCP和UDP协议的相似之处是()
A.面向连接的协议B.面向非连接的协议C.传播层协议D.以上均不对
5.应用程序PING发出的是—报文.()
A.TCP祈求报文。B.TCP应答报文。C.ICMP祈求报文。D.ICMP应答报文。
6.如下说法错误口勺是(多)()
A.中继器是工作在物理层II勺设备B.集线器和以太网互换机工作在数据连路层
C.路由嘏是工作在网络层的设备D.桥能隔离网络层广播
7.当桥接受的分组口勺目口勺MAC地址在桥的J映射表中没有对应的表项时,采用的方略是()
A.丢掠该分组B.将该分组分片C.向其他端口广播该分组D.以上答案均不时
8.LANSwitch在网络层次模型中的地位()
A.物理层B.链路层C.网络层D.以上都不是
9.不不小于—WTCP/UDP端口号已保留与既有服务一一对应,此数字以上的端口号可自由
分派。()
A.199B.100C,1024D.2048
10.当一台主机从一种网络移到另一种网络时,如下说法对的口勺是()
A.必须变化它的IP地址和MAC地址B.必须变化它的IP地址,但不需改动MAC地址
C.必须变化它的MAC地址,但不需改动IP地址D.MAC地址.IP地址都不需改动
答案:l.B;2.C;3,C;4.C;5.C;6.BD;7.C;8.B:9.C;10.B.
华为笔试题(4)
2023-09-3013:00
I.找错
voidtest1()
charstring110J;
char*strl="";
strcpy(string,strl);
I
答:表面上并且编译都不会错误。但假如string数组原意表达H勺是字符串的话,那这个赋值
就没有到达意图。最佳定义为charstringlllj,这样最终一种元素可以存储字符串结尾符'\0?
voidtest2()
(
charstring!10],strl[10];
ror(im1=0;K10U++)
{
strl[I]='a*;
strcpy(string,strl);
答:strcpy使用错误,str叩y只有碰到字符串末尾欧no才会结束,而和1并没有结尾标志,
导致strcpy函数越界访问.不妨让st川这样就正常了。
voidtest3(char*strl)
|
charstringfl01;
if(strlen(strl)<=IO)
(
strcpy(slring,strl);
答:这又会出现第•道改错题日勺错误了。strlen(sW)算出来日勺值是不包括结尾符VT的,假如
strl刚好为10个字符+1结尾符,string就得不到结尾符了。可将strlcn(strl)<=10改为
strlcn(strl)<l()o
2.找错
#defineMAX.SRM256
DSNgct_SRM_no()
staticintSRM_no;
intI;
for(I=0;I<MAX_SRM;I++,SRM_no++)
{
SRM_no%=MAX_SRM;
if(MY_SRM.state==IDLE)
(
break;
}
)
if(I>=MAX_SRM)
return(NULL_SRM);
else
returnSRM_no;
)
答:我不懂得这段代码的详细功能,但明显有两个错误
1,SRM_no没有赋初值
2,由于static的申明,使该函数成为不可重入(即不可预测成果)函数,由于SRM_n。变
量放在程序的全局存储区中,每次调用的时候还可以保持本来的赋值。这里应当去掉static
申明。
3.写出程序运行成果
intsum(inta)
(
autointc=0;
staticintb=3;
c+=l;
b+=2;
return(a+b+c);
voi(imain()
(
iniI;
inta=2;
for(I=0;I<5;I++)
(
printf("%d,",sum(a));
)
)
答:8J0J2J4J6
该题比较简朴。只要注意b申明为static静态全局变量,其值在下次调用时是可以保持住本
来的赋值的就可以。
4.
intfunc(inta)
intb;
switch(a)
case1:b=30;
case2:b=20;
case3:b=16;
default:b=0;
returnb;
则func(l)=?
答:func(l)=O,由于没有break语句,switch中会一直计算到b=(k这是提醒我们不要忘了
breako呵呵。
5:
inta[3];
a[0]=0;a[l]=l;a[2]=2;
int*p,*q;
p=a;
q=&a[2];
则a[q-pj=?
答:a[q-p]=a[2]=2;这题是要告诉我们指针的运算特点
6.
定义int**a[3][4],则变量占有的内存空间为:
答:此处定义FI勺是指向指针的指针数组,对于32位系统,指针占内存空间4字节,因此总
空间为3X4X4=48。
7.
编写一种函数,规定输入年月日时分秒,输出该年月日时分秒H勺下一秒。如输入2023年12
月31日23时59分59秒,则输出2023年1月1日0时。分。秒。
答:
/*输入年月日时分秒,输出年月日时分秒的下一秒,输出仍然在原内存空间*/
voidNex(Minute(int*nYear,int*nMonth,int*nDate,inl*nHour,int*nMinute,int*nSecond)
(
intnDays;
(*nSecond)++;//秒加1
if(*nSecond>=60)〃秒满60,做出特殊处理,下面时,日,月等类同
{
*nSecond=0:
(*nMinute)++;
if(*nMinute>=60)
*nMinute=O;
(*nHour)++;
if(*nHour>=24)
*nHour=0;
(*nDate)++;
switch(*nMonth)
case1:
case3:
case5:
case7:
case8:
case10:
case12:
nDays=31;
break;
case2://判断闰年
if(*nYear%400==0||*nYear%100!=0&&*nYear%4==0)
nDays=29;
else
nDays=28;
break;
default:
nDays=30;
break;
if(*nDate>nDays)
*nDate=l;
(*nMonth)++;
ir(*nMonlh>12)
*nMonth=I;
(*nYear)++;
/*示例可运行代码*/
voidmain()
intnYear=2023.nMonth=12,nDate=31,nHour=59.nMinute=59.nSecond=59;
NexlMinuie(&nYear,&nMonih,&nDaie,&nHour,&nMinu(e,&nSecond);
printf("Theresult:%d-%c-%d%d:%d:%d",nYear,nMonthtnDate,nHour,nMinute,nSeconcl);
华为硬件笔试题
2023-09-3013:01
一选择
13个题目,没有所有抄下来,波及的课程有电路,模拟电路,数字电路,信号与系统,微机原理,网
络,数字信号处理
有有关
1.微分电路
2.CISC,RISC
3.数据链路层
二填空
10个题没有所有抄下来,波及的课程有电路,模拟电路,数字电路,信号与系统,微机原理,网
络,数字信号处理
有有关
1.TIC6000DSP
2.二极管
3.RISC
4.I1R
三简答
1.x⑴口勺傅立叶变换为X(jw)=$(w)+$(w-PI)+$(w-5)
h(t)=u(t)-u(t-2)
问:(l),x(t)是周期的吗?
(2),x(t)*h⑴是周期时吗?
(3),两个非周期日勺信号卷积后可周期吗?
2.简述分组互换的特点和局限性
四分析设计
1.波形变换题目
从正弦波〉方波,锯齿波,方波,设计电路
2.74161计数器构成计数电路,分析儿进制H勺
3.用D触发器构成2分频电路
4.判断MCS-5I单片机的指令对的还是错误,并指出错误原因
(l)MULRO.Rl
(2)MOVA.@R7
(3)MOVA,#3()()()H
(4)MOVC@A+DPTR.A
(5)LJMP#1()()()H()
5.MCS-51单片机中,采用12Mhz时钟,定期器TO采用模式1(16位计数器),请问在下面程序
中,p1.0口勺输出频率
MOVTMOD,#OIH
SETBTRO
LOOP:MOVTHO,#OB1H
MOVTL0,#()E0H
LOOP1JNBTF0,LOOP1
CLRTRO
CPLP1.0
SJMPLOOP
华为硬件面试题
2023-09-3013:02
全都是几本模电数电信号单片机题目
1.用与非门等设计全加法器
2.给出两个门电路让你分析异同
3.名i司:sram,ssram,sdram
4.信号与系统:在时域与频域关系
5.信号与系统:和4题差不多
6晶体振荡器.仿佛是给出振荡频率计你求周期(应当是单片机时,12分之一周期..
7.串行通信与同步通信异同,特点,比较
8.RS232C高电平脉冲时应时TTL逻辑是?(负逻辑?)
9.延时问题,判错
1().史密斯特电路,求回差电压
11.VCO是什么,什么参数(压控振荡器?)
12.用D触发器做个二分颦的电路.又问什么是状态图
13.什么耐奎斯特定律,怎么由模拟信号转为数字信号
14.用D触发器做个4进制的计数
15.那种排序措施最快?
一、研发(软件)
用C语言写一种递归算法求N!;
给一种C日勺函数,有关字符串和数组,找出错误;
防火墙是怎么实现的?
你对哪方面编程熟悉?
硬件:
1、继电器控制电路。
2、SDRAM是怎么工作的
3、写出逻辑体现式阐明A2A1A0不小于B2B1B0。
4、常用触发器有儿种
5、示波器有几种触发方式,举出三种
华为3C0M数据通信工程师试题
2023-09-2918:53
1H.323协商
答案:12个包协商,先H225然后H245,需要注意的是面试官也许会问到跟SIP日勺比较
2ipsec为何是三层欧J。L2tp为何是二层的?
答案:IPSec(Internet协议安全)是一种工业原则网络安全协议,为IP网络通信提供透明口勺
安全服务,保护TCP/IP通信免遭窃听和篡改,可以有效抵御网络袭击,同步保持易用性。
IPSec有两个基本目啊:1)保护IP数据包安全;2)为抵御网络袭击提供防护措施。
第三层保护的长处
一般IPSec提供日勺保护需要对系统做一定的修改。不过IPSec在IP传播层即第三层对
方略执行"(strategicimplementation)几乎不需要什么额外开销就可以实现为绝大多数应用
系统、服务和上层协议提供较高级别的保护;为既有H勺应用系统和操作系统配置IPSec几乎
不必做任何修改,安全方略可以在ActiveDirectory里集中定义也可以在某台主机上进行当
地化管理。
IPScc方略在ISO参照模型第三层即网络层上实行H勺安全保护,其范围几乎涵盖了
TCP/IP协议簇中所有IP孙议和上层协议,如TCP、UDP、ICMP,Raw(第255号协议)、
甚至包括在网络层发送数据的客户自定义协议。在第三层上提供数据安全保护的重要长处就
在于:所有使用IP协议进行数据传播的应用系统和服务都可以使用IPSec,而不必对这些应
用系统和服务自身做任何修改。
运作于第三层以上的J其他某些安全机制,如安全套接层SSL,仅对懂得怎样使用SSL
的应用系统(如Web浏览器)提供保护,这极大地限制了SSL日勺应用范围;而运作于第三
层如下的安全机制,加链路层加密,一般只保护了特定锥路间的J数据传播,而无法做到在数
据途径所通过口勺所有链路间提供安全保护,这使得链接层加密无法合用『Internet或路由
In
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年云南省腾冲市高二生物下册期末考试测试卷(考试直接用)附答案
- 2026年江西省庐山市高二生物下册期末考试检测卷附答案(预热题)
- 2025年辽宁省开原市高二生物下册期末考试考试卷加答案
- 2026年江西省共青城市高二生物下册期末考试测试卷及参考答案【轻巧夺冠】
- 2026年辽宁省盖州市高二生物下册期末考试考试卷附参考答案(突破训练)
- 2026年江西省乐平市高二生物下册期末考试检测卷及参考答案【基础题】
- 2026年湖北省汉川市高二生物下册期末考试考试卷及一套完整答案
- 2025年江苏省如皋市高二生物下册期末考试试卷一套附答案
- 2025年山东省安丘市高二生物下册期末考试考试卷及参考答案(轻巧夺冠)
- 2026年辽宁省东港市高二生物下册期末考试试卷附参考答案【预热题】
- 2026年河南省八年级地理生物会考试卷题库及答案
- 2026关于开展学习教育整改整治工作情况的汇报
- 2026年小学五年级语文第二学期期末考试卷及答案(共七套)
- 【全国】时事政治必考题及答案2026年
- 13.2《装在套子里的人》+2025-2026学年+统编版高一语文必修下册
- 浙江省杭州市上城区2023-2024学年五年级下学期语文期末试卷(含答案)
- 2026年湖南高考政治考试卷含答案
- 2026扬州家用电器制造行业市场供需互动及投资发展规划研究报告
- 2025年中考乡土历史《湖南地方文化常识》复习提纲
- 公路工程技术标准(2025版)
- 建筑垃圾消纳处置方案
评论
0/150
提交评论