XX计算机专业企业招聘笔试试题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面试准备题(包括高质量c++题)

const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。

事实上这个概念谁都有只是三种声明方式非常相似很容易记混。

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;

char const * p;

同上因为C++里面没有const*的运算符,所以const只能属于前面的类型。

---------------------------------

下面这个程序执行后会有什么错误或者效果:

#define MAX 255

int main()

{

unsigned char A[MAX],i;

for (i=0;i<=MAX;i++)

A[i]=i;

}

解答:

MAX=255

数组A的下标围为:0..MAX-1,这是其一..

其二.当i循环到255时,循环执行:

A[255]=255;

这句本身没有问题..但是返回for (i=0;i<=MAX;i++)语句时,

由于unsigned char的取值围在(0..255),i++以后i又为0了..无限循环下去.

注:char类型为一个字节,取值围是[-128,127],unsigned char [0 ,255]

---------------------------------

编写用C语言实现的求n阶阶乘问题的递归算法:

long int fact(int n)

{

int x;

long int y;

if(n<0)

{

printf("error!");

}

if(n==0)

return 1;

x=n-1;

y=fact(x);

return (n*y);

}

--------------------------------二分查找算法:

1、递归方法实现:

int BSearch(elemtype a[],elemtype x,int low,int high)

/*在下届为low,上界为high的数组a中折半查找数据元素x*/

{

int mid;

if(low>high) return -1;

mid=(low+high)/2;

if(x==a[mid]) return mid;

if(x

else return(BSearch(a,x,mid+1,high));

}

2、非递归方法实现:

int BSearch(elemtype a[],keytype key,int n)

{

int low,high,mid;

low=0;high=n-1;

while(low<=high)

{

mid=(low+high)/2;

if(a[mid].key==key) return mid;

else if(a[mid].key

else high=mid-1;

}

return -1;

}

--------------------------------非递归计算如下递归函数的值(斐波拉契):

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);

}

------------------------------

交换两个数,不用第三块儿存:

int a = ……;

int b = ……;

a = a + b;

b = a - b;

a = a - b;

-------------------------------

Q1:请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图?

1、OSI每层功能及特点

a 物理层为数据链路层提供物理连接,在其上串行传送比特流,即所传送数据的单位是比特。此外,该层中还具有确定连接设备的电气特性和物理特性等功能。

b 数据链路层负责在网络节点间的线路上通过检测、流量控制和重发等手段,无差错地传送以帧为单位的数据。为做到这一点,在每一帧中必须同时带有同步、地址、差错控制及流量控制等控制信息。

c 网络层为了将数据分组从源(源端系统)送到目的地(目标端系统),网络层的任务就是选择合适的路由和交换节点,使源的传输层传下来的分组信息能够正确无误地按照地址找到目的地,并交付给相应的传输层,即完成网络的寻址功能。

d 传输层传输层是高低层之间衔接的接口层。数据传输的单位是报文,当报文较长时将它分割成若干分组,然后交给网络层进行传输。传输层是计算机网络协议分层中的最关键一层,该层以上各层将不再管理信息传输问题。

e 会话层该层对传输的报文提供同步管理服务。在两个不同系统的互相通信的应用进程之间建立、组织和协调交互。例如,确定是双工还是半双工工作。

f 表示层该层的主要任务是把所传送的数据的抽象语法变换为传送语法,即把不同计算机部的不同表示形式转换成网络通信中的标准表示形式。此外,对传送的数据加密(或解密)、正文压缩(或还原)也是表示层的任务。

g 应用层该层直接面向用户,是OSI中的最高层。它的主要任务是为用户提供应用的接口,

相关文档
最新文档