程序员面试宝典学习

发布时间:2017-1-17 20:58:57 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"程序员面试宝典学习",主要涉及到程序员面试宝典学习方面的内容,对于程序员面试宝典学习感兴趣的同学可以参考一下。

1.判断数字转换为二进制时“1”的个数 int func(int x){ int count = 0; while(x!=0){ count++; x = x&(x-1); } return count; } 2.加法 int add(int a,int b){ if(b==0) return a; int sum,carry; sum = a^b; carry = (a&b)<<1; return add(sum,carry); } 3.关于指针 char ss[100]="abcdefg"; char *s = "abcdefg"; s只是指向内存中固定字符串的地址,内容不能改变。 而ss是开辟了新的地址,内容可以改变。 4.单精型 float 占用内存 4 Byte;双精型double占用内存8byte;指针占用内存4byte 5.指针和引用的区别 a.任何情况下不能使用指向空值的引用; b.指针可以重新指向,但是引用不可以 6.GetMemory(str,100);//不能给str开辟空间,只能给p开辟,而且产生内存泄露,因为p被新开辟空进的内存覆盖而又不能传给str。 void GetMemory(char * p,int num) {  p = (char *)malloc(sizeof(char)*num); } 7. 整型                                        int a; 整型指针        int *a; 指向整型指针的指针    int **a; 整型数组 int a[10]; 包含10个指向整形的指针的数组 int *a[10];/int *(a[10]); 指向数组的指针,数组包含10个整型变量 int (*a)[10]; 指向函数指针,函数参数整型,返回整形 int (*a)(int); 有十个指针的数组,每个指针指向函数,每个函数形参和返回类型都是整型 int (*a[10])(int); 二级指针,指向一维数组的指针,数据元素是float float (**a)[10]; 指针,指向一个一维数组,数组元素是double* double *(*a)[10]; 函数指针,指向的函数类型是两个int形参且返回一个函数指针的函数,返回的函数指针指向一个有int参数且返回int的函数int (*(*a)(int,int))(int); 8.虚构函数设为virtual型,因为这样使用基类指针指向派生类时,可以调用派生类指针。 9.对于一个空类也含有4个默认函数:构造函数,析构函数,拷贝构造函数,赋值函数。后面三个称为复制控制函数。 10.假如B共有继承A,A中虚函数fun()输出A,B中虚函数fun()输出B,则 int main(){ A *pa = new A(); pa->fun();                //A B * pb = (B*)pa; pb->fun();                //A delete pa,pb; pa = new B();  pa=->fun();               //B pb = (B*)pa; pb->fun();                //B return 0; } 多态性发生于指针指向内容改变。 11.小尾 Little Endian,用于PC,高位放在高地址;    大尾 Big    Endian,用于MAC,高位放在低地址。     检测大小尾: short int A = 0X1122; char a =((char*)(&A))[0]; char b =((cahr*)(&B))[1]; printf("%d %d\n",a,b); 12.static a.函数中static作用范围为本函数体,且每次值保持。 b.模块内static全局变量不能被外部访问。 c.类内static变量为该类共有。 d.类内static成员函数属于类共有,不接受this指针,之智能访问类的static变量和普通变量。 13.删除、插入节点注意事项:判断是否为头尾节点。 14.判断链表中央位置节点:一个节点每次前进2个,一个节点每次前进1个,前一个节点到底时, 后一个节点即到中点。 15.栈区:编译器自动分配,释放    堆区:程序员分配,释放     16.前序遍历:根左右;中序遍历:左根右;后序遍历:左右根。 17.霍夫曼编码:随频率上升,所需比特数下降,0,10,110,111。                频率最小的两个待编码码元概率先合并,再循环。 18.约瑟夫问题 #include<iostream> #include<stdlib.h> #include<stdio.h> typedef struct LNode{ int data; struct LNode * Link; }LNode,*LinkList; void Josephus(int n,int k,int m) //n: total number;k:first number,m:period { LinkList p,r,List,curr; p = (LinkList)malloc(sizeof(LNode)); p->data = 0; p->Link = p; curr = p; for(int i =1;i<n;i++) { LinkList t = (LinkList)malloc(sizeof(LNode)); t->data = i; t->Link = curr->Link; curr->Link = t; curr = t; } r = curr; while(k--) r=p,p=p->Link; while(n--) { for(int s=m-1;s--;r=p,p=p->Link); r->Link=p->Link; printf("%d->",p->data); free(p); p = r->Link; } } void main(){ Josephus(13,4,2); while(true); } 19. A除以B 上取整=(A+B-1)/B (C语言) A除以B 下取整=A/B       (C语言) 20. 观察者模式 一种一对多的模式,多个观察者同时监听一个主题,这个主题在发生状态变化时会通知所有观察者,使之更新。 21.白盒测试方法 覆盖所有分支。 22.死锁 互斥条件(无法破坏)  资源不能被共享,只能由一个进程使用。 请求与保持条件        已经得到资源的进程可以再次申请新的资源。 不可剥夺条件          已经分配的资源不能从相应的进程中被强制地剥夺。 循环等待条件          系统中若干进程组成环路,该环路中每个进程都在等待相邻进程正占用的资源。 23.进程状态 就绪:除未获取CPU之外获得所有资源 执行 阻塞 24.找出表PPP中最小的数 select * from PPP where num<= all (select num from PPP) 25.PPP中重复的记录 select * from PPP where num in (select num from PPP group by num having (count(num)>1)) 26.OSI七层 物理层-》数据链路层-》网络层-》传输层-》会话层-》表示层-》应用层 27.网址=网络号+主机地址 主机地址全零:网络地址,不可用于分配主机 主机地址全一:广播地址,不可用于分配主机 28.防火墙《--》门卫    入侵检测《--》监控     29.常用TCP端口 FTP:21; Telnet:23; SMTP:25 HTTP:80; 常用UDP端口 DNS:53; SNMP:161   简单网络管理协议 29.不能重载运算符 成员运算符. 三目运算符?: 取大小运算符sizeof() 域运算符:: 对指针成员取内容运算符.* 30.网络协议 应用层 DHCP/DNS/FTP/Gopher(文件查询)/HTTTP/IMAP4(叫偶胡适数据访问协议)/IRC(中继聊天)/NNTP(网络新闻传输协议)/XMPP(可扩展通讯和表示协议)/POP3/SIP(类似于HTTP的文本协议)/SMTP/SNMP/SSH(安全协议)/TELNET/RPC(远程过程调用)/RTCP(实时传输控制协议)/RTP(实时传输协议)/RTSP(即时串流协定)/SDP(会议描述协议)/SOAP(简单对象访问协议)/STUN(NAT会话传输应用程序)/NTP(网络时间协议)/SSPP(简单服务发现协议)/GTP(通用数据传输平台) 传输层 TCP/UDP/TLS(传输层安全协议)/DCCP(数据拥塞控制协议)/SCTP(串流控制传输协议)/RSVP(资源预留协议)/PPTP(点对点隧道协议) 网络层 IPv4/IPv6/ICMP(包括ping)/IGMP( 因特网组管理协议)/IS-IS(中间系统到中间系统)/IPsec/BGP/OSPF/RIP/ARP(IP->MAC)/RARP(MAC->IP) 数据链路层 Wi-Fi(802.11)/WiMAX(802.16)/ATM/DTM/令牌环/以太网/FDDI(分布式数据接口)/帧中继/GPRS/EVDO/HSPA/HDLC(高级数据链路控制)/PPP(点对点协议)/L2TP(第二层隧道协议)/ISDN(综合业务数字网,电路交换网)/STP(生成树协议) 物理层 以太网/调制解调器/电力线通信/SDH/光导纤维/同轴电缆/双绞线 30.IPv4 Vs IPv6 IPv4 1.best-effort 2.地址枯竭 3.32位 IPv6 128位 转换机制 a 运行与主机和路由器之间的双堆栈IP实现 b 将IPv4潜入IPv6地址 c IPv6立于IPv4之上的隧道机制 d IPv4/IPv6报头转换 31.路由协议 A。RIP路由信息协议 每30秒广播一次路由表,根据收到路由表计算自己的路由表。 B。OSPF开放最短路径优先 划分区域,每个区域中所有路由器维护一个相同的链路状态数据库,区域分为骨干、非骨干、非骨干区域必须和骨干区域相连。 C。IS-IS中间系统到中间系统 类似于OSPF,但是收敛快。 D。IGRP内部网关路由协议 类似于RIP,引入混合度量值和带宽延时等。 E。EIGRP 引入非等价负载均衡技术,收敛快,在Cisco设备网络中广泛部署。 F。BGP边界网关协议 标准化组织制定的ISP间路由协议

上一篇:extern "C"的用法解析
下一篇:

相关文章

相关评论