1、const char*, char const*, char*const的区别问题:
Bjarne在他的The C++ Programming Language里面给出过一个助记的方法:
把一个声明从右向左读
char * const cp; // ( * 读成 pointer to )
cp is a const pointer to char
const char * p;
p is a pointer to const char;
2、char类型为一个字节,取值范围是[-128,127],unsigned char [0 ,255]
3、n阶阶层的递归算法:
int fact(int n) { if(n == 1) return 1; else return n*fact(n-1); }
4、求数组a[ ]中最大值的递归算法:
int Max(int a[ ], int first, int n) { int max; if(first == n-1) return(a[first]); max = Max(a, first+1, n); if(max < a[first]) return a[first]; else return max; }
5、折半查找法(二分法)的递归算法:
int bsearch(int b[], int x, int L, int R) //在下届为L,上界为R的数组b 中折半查找数据元素x { int mid; if(L > R) return -1; mid = (L+R)/2; if(m == b[mid]) return mid; else if(x < b[mid]) return bsearch(b, x, L, mid-1); else return bsearch(b, x, mid+1, R); }
6、非递归计算如下递归函数的值(斐波拉契):
f(1)=1
f(2)=1
f(n)=f(n-1)+f(n-2) n>2
解:
int f(int n) { int i,s,s1,s2; s1=1;/*s1用于保存f(n-1)的值*/ s2=1;/*s2用于保存f(n-2)的值*/ s=1; for(i=3;i<=n;i++) { s=s1+s2; s2=s1; s1=s; } return(s); }
7、交换两个数,不用第三块儿内存:
int a = ……;
int b = ……;
解:
a = a + b; b = a - b; a = a - b;
8、OSI的七层协议:
应用层、表示层、回话层、运输层、网络层、数据链路层、物理层
a 物理层 为数据链路层提供物理连接,在其上串行传送比特流,即所传送数据的单位是比特。此外,该层中还具有确定连接设备的电气特性和物理特性等功能。
b 数据链路层 负责在网络节点间的线路上通过检测、流量控制和重发等手段,无差错地传送以帧为单位的数据。为做到这一点,在每一帧中必须同时带有同步、地址、差错控制及流量控制等控制信息。
c 网络层 为了将数据分组从源(源端系统)送到目的地(目标端系统),网络层的任务就是选择合适的路由和交换节点,使源的传输层传下来的分组信息能够正确无误地按照地址找到目的地,并交付给相应的传输层,即完成网络的寻址功能。
d 传输层 传输层是高低层之间衔接的接口层。数据传输的单位是报文,当报文较长时将它分割成若干分组,然后交给网络层进行传输。传输层是计算机网络协议分层中的最关键一层,该层以上各层将不再管理信息传输问题。
e 会话层 该层对传输的报文提供同步管理服务。在两个不同系统的互相通信的应用进程之间建立、组织和协调交互。例如,确定是双工还是半双工工作。
f 表示层 该层的主要任务是把所传送的数据的抽象语法变换为传送语法,即把不同计算机内部的不同表示形式转换成网络通信中的标准表示形式。此外,对传送的数据加密(或解密)、正文压缩(或还原)也是表示层的任务。
g 应用层 该层直接面向用户,是OSI中的最高层。它的主要任务是为用户提供应用的接口,即提供不同计算机间的文件传送、访问与管理,电子邮件的内容处理,不同计算机通过网络交互访问的虚拟终端功能等。
9、TCP/IP的四层协议:
应用层、运输层、网际层IP、网络接口层
a 网络接口层 这是TCP/IP协议的最低一层,包括有多种逻辑链路控制和媒体访问协议。网络接口层的功能是接收IP数据报并通过特定的网络进行传输,或从网络上接收物理帧,抽取出IP数据报并转交给网际层。
b 网际网层(IP层) 该层包括以下协议:IP(网际协议)、ICMP(Internet Control Message Protocol,因特网控制报文协议)、ARP(Address Resolution Protocol,地址解析协议)、RARP(Reverse Address Resolution Protocol,反向地址解析协议)。该层负责相同或不同网络中计算机之间的通信,主要处理数据报和路由。在IP层中,ARP协议用于将IP地址转换成物理地址,RARP协议用于将物理地址转换成IP地址,ICMP协议用于报告差错和传送控制信息。IP协议在TCP/IP协议组中处于核心地位。
c 传输层 该层提供TCP(传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)两个协议,它们都建立在IP协议的基础上,其中TCP提供可靠的面向连接服务,UDP提供简单的无连接服务。传输层提供端到端,即应用程序之间的通信,主要功能是数据格式化、数据确认和丢失重传等。
d 应用层 TCP/IP协议的应用层相当于OSI模型的会话层、表示层和应用层,它向用户提供一组常用的应用层协议,其中包括:Telnet、SMTP、DNS等。此外,在应用层中还包含有用户应用程序,它们均是建立在TCP/IP协议组之上的专用程序。
(五层协议:应用层、运输层、网络层、数据链路层、物理层)
10、IP协议 是支持网间互连的数据报协议,它与TCP协议(传输控制协议)一起构成了TCP/IP协议族的核心。
与IP协议配套使用的还有三个协议:地址解析协议ARP、网际控制报文协议ICMP、网际组管理协议IGMP。
IP地址的划分: