校园招聘笔试面试题及部分答案Word文档下载推荐.docx

上传人:b****7 文档编号:22967337 上传时间:2023-02-06 格式:DOCX 页数:61 大小:103.53KB
下载 相关 举报
校园招聘笔试面试题及部分答案Word文档下载推荐.docx_第1页
第1页 / 共61页
校园招聘笔试面试题及部分答案Word文档下载推荐.docx_第2页
第2页 / 共61页
校园招聘笔试面试题及部分答案Word文档下载推荐.docx_第3页
第3页 / 共61页
校园招聘笔试面试题及部分答案Word文档下载推荐.docx_第4页
第4页 / 共61页
校园招聘笔试面试题及部分答案Word文档下载推荐.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

校园招聘笔试面试题及部分答案Word文档下载推荐.docx

《校园招聘笔试面试题及部分答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《校园招聘笔试面试题及部分答案Word文档下载推荐.docx(61页珍藏版)》请在冰豆网上搜索。

校园招聘笔试面试题及部分答案Word文档下载推荐.docx

如果应试者能正确答复这个问题,我将问他一个附加的问题:

下面的声明都是什么意思?

constinta;

intconsta;

constint*a;

int*consta;

intconst*aconst;

前两个的作用是一样,a是一个常整型数。

第三个意味着a是一个指向常整型数的指针〔也就是,整型数是不可修改的,但指针可以〕。

第四个意思a是一个指向整型数的常指针〔也就是说,指针指向的整型数是可以修改的,但指针是不可修改的〕。

最后一个意味着a是一个指向常整型数的常指针〔也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的〕。

如果应试者能正确答复这些问题,那么他就给我留下了一个好印象。

顺带提一句,也许你可能会问,即使不用关键字const,也还是能很容易写出功能正确的程序,那么我为什么还要如此看重关键字const呢?

我也如下的几下理由:

1)关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。

如果你曾花很多时间清理其它人留下的垃圾,你就会很快学会感谢这点多余的信息。

〔当然,懂得用const的程序员很少会留下的垃圾让别人来清理的。

2)通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。

3)合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。

简而言之,这样可以减少bug的出现。

14、虚基类抽象基类的用法

答:

在派生类继承基类时,加上一个virtual关键词那么为虚拟基类继承,如:

  classderive:

virtualpublicbase

  {

  };

  虚基类主要解决在多重继承时,基类可能被屡次继承,虚基类主要提供一个基类给派生类,如:

  classB

  classD1:

publicB

  classD2:

  classC:

publicD1,publicD2

  这里C在D1,D2上继承,但有两个基类,造成混乱。

因而使用虚基类,即:

virtualpublicB

virtualpublicB

publicD1,publicD2

15、Java线程中的sleep,yeild,notify的作用和区别

sleep:

让线程睡眠

yeild:

暂停当前正在执行的线程对象,并执行其他线程

notify:

唤醒线程

16、面向对象的特征有哪些方面

封装、继承、多态

17、ServletConfig对象与ServletContext对象的作用和区别

servletconfig对象可以使用一个或多个<

init-param>

标签为servlet配置一些初始化参数,servlet配置了初始化参数后,web容器在创立servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。

进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息。

WEB容器在启动时,它会为每个WEB应用程序都创立一个对应的ServletContext对象,它代表当前web应用。

ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。

18、编程:

链表的反转、两个排好序链表结合成一个有序链表

19、写一个程序实现字符串反转。

〔新大陆〕

20、多态性意味着一个操作在不同的类中可以有不同的实现方式。

21、二分搜索算法

22、树:

节点个数与树高的计算

这个可以用深搜和广搜实现,节点个数没遇到一个还没标记的节点就加1并标记该节点。

把根节点记为1,然后对于还没标记的节点就等于他父亲的值+1,这过程中出现的最大值就是树高。

对于树的一些定义数据结构书上有P一三8-P一三9。

23、操作系统:

内存的大小端,生产者、消费者问题

1-2.生产者消费者问题:

生产者与消费者问题可以被描述为:

一个有限缓冲区和两类线程,它们是生产者和消费者,生产者把产品放入缓冲区,相反消费者便是从缓冲区中拿走产品。

生产者在缓冲区满时必须等待,直到缓冲区有空间才继续生产。

消费者在缓冲区空时必须等待,直到缓冲区中有产品才能继续读取。

P,V操作来解决进程同步与进程通信的问题。

信号量是最早出现的用来解决进程同步与互斥问题的机制,包括一个称为信号量的变量及对它进行的两个原语操作。

信号量为一个整数,我们设这个信号量为:

sem。

很显然,我们规定在sem大于等于零的时候代表可供并发进程使用的资源实体数,sem小于零的时候,表示正在等待使用临界区的进程的个数。

根据这个原那么,在给信号量附初值的时候,我们显然就要设初值大于零。

p操作和v操作是不可中断的程序段,称为原语。

P,V原语中P是荷兰语的Passeren,相当于英文的pass,V是荷兰语的Verhoog,相当于英文中的incremnet。

P原语操作的动作是:

〔1〕sem减1;

〔2〕假设sem减1后仍大于或等于零,那么进程继续执行;

〔3〕假设sem减1后小于零,那么该进程被阻塞后进入与该信号相对应的队列中,然后转进程调度。

V原语操作的动作是:

〔1〕sem加1;

〔2〕假设相加结果大于零,那么进程继续执行;

〔3〕假设相加结果小于或等于零,那么从该信号的等待队列中唤醒一等待进程,然后再返回原进程继续执行或转进程调度。

需要提醒大家一点就是P,V操作对于每一个进程来说,都只能进行一次。

而且必须成对使用。

且在P,V愿语执行期间不允许有中断的发生。

24、软件工程的类图

类图(Classdiagram)是最常用的UML图,显示出类、接口以及它们之间的静态结构和关系;

它用于描述系统的结构化设计。

〔Class〕  一般包含3个组成局部。

第一个是类名;

第二个是属性〔attributes〕;

第三个是该类提供的方法。

类与类间关系

常见的关系有:

继承〔Generalization〕,关联关系〔Association〕,聚合关系〔Aggregation〕,组合关系〔Composition〕,依赖关系〔Dependency〕。

  其中,聚合关系〔Aggregation〕,组合关系〔Composition〕属于关联关系〔Association〕。

 

详见软件工程教材。

25、C语言:

c语言的关键字、运算符的优先级与结合性、宏、指针的理解、typedef等

关键字是由C语言规定的具有特定意义的字符串,通常也称为保存字。

用户定义的标识符不应与关键字相同。

c语言关键字共32个:

1、数据类型关键字〔12个〕:

(1).char:

声明字符型变量或函数

(2).double:

声明双精度变量或函数

(3).enum:

声明枚举类型

(4).float:

声明浮点型变量或函数

(5).int:

声明整型变量或函数

(6).long:

声明长整型变量或函数

(7).short:

声明短整型变量或函数

(8).signed:

声明有符号类型变量或函数

(9).struct:

声明结构体变量或函数

(10).union:

声明联合数据类型

(11).unsigned:

声明无符号类型变量或函数

(12).void:

声明函数无返回值或无参数,声明无类型指针〔根本上就这三个作用〕

2、控制语句关键字〔12个〕:

A.循环语句

(1).for:

一种循环语句(可意会不可言传〕

(2).do:

循环语句的循环体

(3).while:

循环语句的循环条件

(4).break:

跳出当前循环

(5).continue:

结束当前循环,开始下一轮循环

B.条件语句

(1).if:

条件语句

(2).else:

条件语句否认分支〔与if连用〕

(3).goto:

无条件跳转语句

C.开关语句

(1).switch:

用于开关语句

(2).case:

开关语句分支

(3).default:

开关语句中的“其他〞分支

D.

return:

子程序返回语句〔可以带参数,也看不带参数〕

3、存储类型关键字〔4个〕:

(1).auto:

声明自动变量一般不使用

(2).extern:

声明变量是在其他文件正声明〔也可以看做是引用变量〕

(3).register:

声明积存器变量

(4).static:

声明静态变量

4、其它关键字〔4个〕:

(1).const:

声明只读变量

(2).sizeof:

计算数据类型长度

(3).typedef:

用以给数据类型取别名〔当然还有其他作用〕

(4).volatile:

说明变量在程序执行中可被隐含地改变

3-2.运算符的优先级与结合性、宏、指针的理解、typedef等

注:

谭浩强那本书附录很详细。

c语言运算符

  1级优先级左结合

  ()圆括号

  []下标运算符

  ->

指向结构体成员运算符

  .结构体成员运算符

  2级优先级右结合

  !

逻辑非运算符

  ~按位取反运算符

  ++前缀增量运算符

  --前缀增量运算符

  +正号运算符

  -负号运算符

  (类型)类型转换运算符

  *指针运算符

  &

地址与运算符

  sizeof长度运算符

  3级优先级左结合

  *乘法运算符

  /除法运算符

  %取余运算符

  4级优先级左结合

  +加法运算符

  -减法运算符

  5级优先级左结合

  <

<

左移运算符

  >

>

右移运算符

  6级优先级左结合

、<

=、>

、>

=关系运算符

  7级优先级左结合

  ==等于运算符

=不等于运算符

  8级优先级左结合

按位与运算符

9级优先级左结合

^按位异或运算符

  10级优先级左结合

  |按位或运算符

  11级优先级左结合

&

逻辑与运算符

  12级优先级左结合

  ||逻辑或运算符

  一三级优先级右结合

  ?

:

条件运算符

  14级优先级右结合

  =+=-=*=/=%=&

=^=|=<

=>

=全为赋值运算符

  一五级优先级左结合

,逗号运算符

26、网络:

就osi模型

OSI七层模型介绍

OSI是一个开放性的通行系统互连参考模型,他是一个定义的非常好的协议标准。

OSI模型有7层结构,每层都可以有几个子层。

OSI的7层从上到下分别是

7应用层6表示层5会话层4传输层3网络层2数据链路层1物理层

其中高层,既7、6、5、4层定义了应用程序的功能,下面3层,既3、2、1层主要面向通过网络的端到端的数据流。

下面我给大家介绍一下这7层的功能:

1)应用层:

与其他计算机进行通讯的一个应用,它是对应应用程序的通信效劳的。

例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。

但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。

例如:

telnet,HTTP,FTP,WWW,NFS,SMTP等。

2)表示层:

这一层的主要功能是定义数据格式及加密。

例如,FTP允许你选择以二进制或ASII格式传输。

如果选择二进制,那么发送方和接收方不改变文件的内容。

如果选择ASII格式,发送方将把文本从发送方的字符集转换成标准的ASII后发送数据。

在接收方将标准的ASII转换成接收方计算机的字符集。

加密,ASII等。

3)会话层:

他定义了如何开始、控制和结束一个会话,包括对多个双向小时的控制和管理,以便在只完成连续消息的一局部时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,那么用数据代表表示层。

RPC,SQL等。

4)传输层:

这层的功能包括是否选择过失恢复协议还是无过失恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。

TCP,UDP,SPX。

5)网络层:

这层对端到端的包传输进行定义,他定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。

为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。

IP,IPX等。

6)数据链路层:

他定义了在单个链路上如何传输数据。

这些协议与被讨论的歌种介质有关。

ATM,FDDI等。

7)物理层:

OSI的物理层标准是有关传输介质的特性标准,这些标准通常也参考了其他组织制定的标准。

连接头、针、针的使用、电流、电流、编码及光调制等都属于各种物理层标准中的内容。

物理层常用多个标准完成对所有细节的定义。

Rj45,802.3等。

27、在一个工程中,如果一个文件向要引用其他文件中定义的一个变量或者函数,请问需要添加什么关键字?

extern。

28、volatile:

29、

voidfunc(void){

staticinti=0;

i++;

printf("

%d\n"

i);

}

voidmain(){

func();

请问输出是:

1

2

〔关键考察static关键字〕

30、指针的应用方面,数组应用,链表应用。

31、一些简单的字符串处理函数,排序函数〔冒泡,快排等〕。

32、智力游戏:

你面前有一对黑白棋,同色给你足够多的黑白棋〔以防不够用〕。

你每次从这一堆黑〔B〕白(W)棋中随机抽取出2颗棋子,如果同色〔BB,WW〕,那么向这一堆中放入一颗黑棋,否那么〔RW〕放入一颗白棋。

最后只剩下一颗。

请问,最终状态和初始状态有和关系?

解:

由于当抽取出RW时,放入W,即W没有减少,而抽取出WW时,放入的是B,因此W只能成对减少。

因此结果与W的奇偶有关,W为奇,那么剩下W;

否那么剩下B。

33、500Mtxt搜abcd串

34、封装,继承,多态,析构函数,解析函数相关的题目

35、给你10万个关键词,然后再给你一些文章〔这些文章的大小为k的数量级的〕,然后把文章中出现的关键词过滤不确定的解答:

先根据10万个关键词构建AC自动机,然后对每一篇文章进行一次AC自动机处理,这样的空间复杂度是10万个关键词的字典树的空间消耗。

他的下一个问题是如何进行空间优化,当事人表示不懂。

36、编程题:

String[]str={“test〞,null,〞〞,〞中国〞,〞福富软件〞}

设一全局变量*然后让字符数组变成t*e*s*t中*国,福*富*软*件并输出

答案:

源码(仅供参考):

publicclassTest{

publicstaticvoidmain(String[]args){

String[]str={"

"

中国"

null,"

福富软件"

test"

};

for(inti=0;

i<

str.length;

i++){

StringBuffersb=newStringBuffer();

sb.delete(0,sb.length());

ppend(str[i]);

if("

.equals(str[i])||str[i]==null)

System.out.println("

*"

);

else{

intn=1;

intlen=str[i].length();

while((len--)>

1){

sb.insert(n,"

n=n+2;

}//endwhile

System.out.println(sb);

}endelse

}//endfor

}//endmain

}//endclass

37、编程题:

实现数据库连接工具类,并实现增删改查的功能。

二、面试题〔计算机1、3、4、7班提供〕

1、Linux的存储管理?

〔融通〕

Linux采用请求调页策略进行存储管理。

请求调页策略在内外村之间来回传递的是存储页而不是整个进程,从而使得进程的地址映射具有了更大的灵活性,且允许进程的大小比可用物理存储空间大得多。

2、Linux的常用命令?

〔如:

ls及其参数〕〔融通〕

3、数据库索引:

如何建立及其作用?

〔实达电脑〕

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息,索引好比是一本书前面的目录,用之能加快数据库的查询速度

建立索引的一般格式:

create[unique][cluster]index<

索引名>

on<

表名>

〔<

列名>

【<

次序>

】[,<

[<

]]…〕;

4、多进程访问共有资源如何解决冲突?

靠进程间互斥来实现

5、UML的各种图?

〔如请说出几种UML的图〕〔融通〕

用例图,类图,对象图,活动图,状态图,顺序图,协作图,构件图,部署图。

6、最擅长的科目?

接下来的问题:

用一句话概括该科目?

及关于该科目的一些问题

7、在C语言里面用指针要注意哪些方面?

〔福富〕

内存泄露,内存碎片,数组越界.

8、进程间通信实现方式?

〔联迪、实达〕

信号,信号量,消息队列,共享内存,命名管道

9、Const、static、final、typed、define等的用法?

〔网龙、实达〕

1)const是一个C语言的关键字,它限定一个变量不允许被改变。

使用const在一定程度上可以提高程序的平安性和可靠性;

2)C++的static有两种用法:

面向过程程序设计中的static和面向对象程序设计中的static。

前者应用于普通变量和函数,不涉及类;

后者主要说明static在类中的作用,面向过程程序设计中static用法主要有:

静态全局变量,静态局部变量,还有静态函数,定义静态函数的好处:

静态函数不能被其它文件所用;

其它文件中可以定义相同名字的函数,不会发生冲突;

面向对象中的用法有:

静态数据成员,静态成员函数之类的

3)Final:

Java关键字final有“这是无法改变的〞或者“终态的〞含义,它可以修饰非抽象类、非抽象类成员方法和变量。

可以修饰的对象:

final域final方法final类。

final类不能被继承,没有子类,final类中的方法默认是final的。

final方法不能被子类的方法覆盖,但可以被继承。

final成员变量表示常量,只能被赋值一次,赋值后值不再改变。

final不能用于修饰构造方法。

4)Typedef:

为现有类型创立一个新的名字,是一种在计算机编程语言中用来声明自定义数据类型,配合各种原有数据类型来到达简化编程的目的的类型定义关键字。

5)Define:

a)简单的define定义#defineMAXTIME1000

b)define的“函数定义〞#definemax(x,y)(x)>

(y)?

(x):

(y)等等

10、堆和栈的区别?

〔联迪、实达、台达〕

栈区〔stack〕―由编译器自动分配释放,存放函数的参数值,局部变量的值等。

其操作方式类似于数据结构中的栈。

堆区〔heap〕―一般由程序员分配释放,假设程序员不释放,程序结束时可能由OS回收。

注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。

具体差异如下:

〔1〕申请方式:

stack:

由系统自动分配。

例如,声明在函数中一个局部变量intb;

系统自动在栈中为b开辟空间;

heap:

需要程序员自己申请,并指明大小,在c中malloc函数,如p1=(char*)malloc(10);

〔2〕申请后系统的反响:

栈:

只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否那么将报异常提示栈溢出。

堆:

首先应该知道操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1