华为笔试题㈠1.请你分别画出OSI的七层网络结构图和TCP/IP的五层结构图。2.请你详细地解释一下IP协议的定义,在哪个层上面?主要有什么作用?TCP与UDP呢?3.请问交换机和路由器各自的实现原理是什么?分别在哪个层次上面实现的?4.请问C++的类和C里面的struct有什么区别?5.请讲一讲析构函数和虚函数的用法和作用。6.全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的?7.8086是多少位的系统?在数据总线上是怎么实现的?㈡1H.323协商。2ipsec为什么是三层的。l2tp为什么是二层的?3ospf中包的ttl值是多少?4为什么要划分区域?6MPLS中RD和RT的作用分别是什么?7RR防止环路的机制。8BGP控制out-bound用_____,控制进来的用_____9ospf是工作在哪个协议上的?10ospf的LSA类型。11简述OSPF的基本工作机制。12ppp的lcp和ncp协商过程。13PSTN的信令控制有哪几种?14sloari8.0查看进程的命令是什么?linux7.3查看IP的命令是什么15IP是5.32.0.0,掩码255.224.0.0。请问最大的有效地址是多少17LX/LH的有效距离是多少?18IP包头几个字节?20CQ能不能有一种流量统治第二种流量,(dominate)?21FTP下载一个文件完成。有几个TCP连接联想笔试题1.设计函数intatoi(char*s)。2.inti=(j=4,k=8,l=16,m=32);printf(“%d”,i);输出是多少?3.解释局部变量、全局变量和静态变量的含义。4.解释堆和栈的区别。5.论述含参数的宏与函数的优缺点。函数是内置的,执行效率高,速度快。宏可以自己定制,灵活性较大,但执行速度相对慢。普天C++笔试题1.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。删除{p->pre->next=p->next;p->next->pre=p->pre;deletep;}插入{new->next=p->next;new->pre=p;p->next->pre=new;p->next=new;}2.写一个函数,将其中的都转换成4个空格。3.Windows程序的入口是哪里?写出Windows消息机制的流程。4.如何定义和实现一个类的成员函数为回调函数?5.C++里面是不是所有的动作都是main()引起的?如果不是,请举例。6.C++里面如何声明constvoidf(void)函数为C程序中的库函数?7.下列哪两个是等同的intb;Aconstint*a=&b;Bconst*inta=&b;Cconstint*consta=&b;Dintconst*consta=&b;8.内联函数在编译时是否做参数类型检查?voidg(base&b){b.play;}voidmain(){sons;g(s);return;}2005年华为招聘--C语言笔试试题一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分)1、有数组定义inta[2][2]={{1},{2,3}};则a[0][1]的值为0。(T)2、int(*ptr)(),则ptr是一维数组的名字。(F,ptr为一个函数指针)3、指针在任何情况下都可进行>,<,>=,<=,==运算。(F,指针比较大小没有任何意义,但是可以比较==与!=)4、switch(c)语句中c可以是int,long,char,float,unsignedint类型。(F,不可以为float)5、#defineprint(x)printf("theno,"#x",is")(T)二、填空题(共30分)1、在windows下,写出运行结果,每空2分,共10分。charstr[]="Hello";char*p=str;intn=10;sizeof(str)=(6)sizeof(p)=(4)sizeof(n)=(4)voidfunc(charstr[100]){}sizeof(str)=(4)2、voidsetmemory(char**p,intnum){*p=(char*)malloc(num);}voidtest(void){char*str=NULL;setmemory(&str,100);strcpy(str,"hello");printf(str);}运行test函数有什么结果?(hello)10分3、设intarr[]={6,7,8,9,10};int*ptr=arr;*(ptr++)+=123;printf("%d,%d",*ptr,*(++ptr));(8,8)10分二、编程题(第一小题20,第二小题30分)1、不使用库函数,编写函数intstrcmp(char*source,char*dest)相等返回0,不等返回-1;#include#includeintmystrcmp(char*source,char*dest){while(*source==*dest&&*source!=''\0''&&*dest!=''\0''){source++;dest++;}if(*source==''\0''&&*dest==''\0'')return0;elsereturn-1;}intmain(){char*str1="abcde";char*str2="abcd";printf("ret=%d",mystrcmp(str1,str2));return0;}2、写一函数intfun(char*p)判断一字符串是否为回文,是返回1,不是返回0,出错返回-1#include#includeintrollback(char*str...