为您找到与腾讯技术岗面试笔试题相关的共200个结果:
浏览量:2
下载量:0
时间:
导语:腾讯控股有限公司(腾讯)是一家民营IT企业,成立于1998年11月,总部在中国广东深圳,是中国最大的互联网综合服务提供商之一。
本人IT屌丝一枚,毕业4年,5年经验(大四在腾讯实习一年,实习生工资,工作内容同正式员工一样)。非常幸运,先后收到过腾讯、百度和阿里的offer,在这里跟大家分享下经验,同诸君共勉。
本人职业生涯的起点开始于腾讯,能入职腾讯其实非常偶然。09年腾讯校招的时候,在本人的学校(学校是2本就不说名字了)开宣讲会,学院很多同学都去了,因为当时对腾讯兴趣不大所以没去,当时希望去中软金蝶这样的传统软件公司。一个宿舍的兄弟要去参加腾讯校招的笔试,我作为亲友团陪他一起去。腾讯的hr很nice给了我一张笔试题和意愿表让我填。本来我想从学校北门直接坐车回家,既然来了反正也没什么事就写了,算是为以后找工作热身。笔试内容主要是编程基础和排序查找算法之类的题,还有用程序实现递归这样的,具体的忘记了。
笔试题感觉很简单,附加题也答上了(本人专业课学霸、其他科学渣)。答完也没检查就坐车回家了,吃饭的时候收到腾讯叫我第二天去一面的短信,刚好我爸爸妈妈在南山的同学去我家做客,就乘阿姨的顺风车回学校准备第二天的面试。
腾讯一面的面试官非常的nice也是我后来的组长,非常有人格魅力的一个人,我去的时候还特意给我倒了一杯水。主要问我了解的技术,我就介绍了下在大学期间做的C++、.Net和J2EE项目,规则引擎、财务系统、学业预警系统、爬虫引擎这些。因为完全没准备所以回忆起来有点吃力,还好面试官没有刁难,发挥还可以。问了Java的内存机制,会不会导致内存泄漏,这个答的不太好;问了下hibernate的机制和作用都回答上了,让写了下爬虫程序的核心代码和正则表达式。
一面整整面了30分钟感觉有戏,就回去好好准备2面的内容,把当年工程代码翻出来复习以免再出现忘记的尴尬。很快第二天就通知去进行技术二面。技术二面就是传说中的压力面,被好一顿虐待。项目中的问题一个没问,问的全是操作系统、数据结构的问题。还好专业都是A+,大多数题都回答上了。问了下我树转二叉树,这个小意思。还问了Java内存机制和是否会有内存泄漏什么情况下会泄漏,good这个在一面回去之后就看了,回答的完美。最后一题是问的查找QQ号。小case,写了个二分查找;他说你认为我会满意吗,我想了想又写了一个哈希查找,他说还是不满意。这个时候我已经有点小不爽了,就说不知道。在有点尴尬的气氛中结束了面试。当时觉得没戏了,有点失落。回家看了下算法导论,原来有一个极为高效的算法是二叉查找,唉,人家已经提示了,但是还没想到,有点小遗憾。
过了一周收到腾讯的hr面试邀请的时候,说实话非常的意外。听说我们学校本科生全军覆没,就我一个过了2面,研究生只有3个过了2面。hr面没问什么特别的,此处不表。一周后收到腾讯的正式offer,还是有点小激动的。薪水方面超过了我的预期,但最主要的是一面的面试官看起来很厉害的样子,感觉腾讯也是一家很厉害的公司。
在腾讯干了四年,正式三年,实习一年。后来开始负责招聘,我们部门在选择求职者的时候主要看聪明程度、视野、大局观、气场等软实力。当时我负责面了一个孩子,各方面挺不错的,组长觉得也还行,但是被总监毙掉了,原因是太软不够霸气。还有一个哥们技术和基础感觉都还行,但是被组长毙掉了,原因是视野和聪明度不够。
所以准备面试腾讯的同学,建议多留意近期的互联网的最新动态,多练练表达。如果能在面试中批判一下近期腾讯的决策失误和产品缺陷,无论对错都会认为这个孩子不错,那么一定会加分的;但是也不能过了,完全说的不对还侃侃而谈会让人觉得你这个人很浮夸也是会被毙掉的。尺度的拿捏很重要。还有一点,语速快而且语气坚决目光坚毅自信的比语速慢表达不流畅的同学成功几率高。我面过一个哥们,后来他顶替了我领域负责人的位置,这是后话。他在面试的时候就非常的自信,如果问一些“弱智”问题会被他反讽,当时大家就觉得这个人很厉害,面试也很顺利,1天连续面了5面,当天就发了offer。腾讯社招是电话面、技术一面、组长面、平台总监面、部门经理面、hr面。总共6面,面谈是5面。
面试的时候首先要自信,如果能做到不卑不亢其实就已经成功了一半。我感觉大多数程序员都不太自信,给人感觉有点文弱,如果你自己都对自己不自信,怎么能奢求公司对你自信呢。但是也不能太自信,自信心爆棚就是自大,面过一个2年开发经验的问他技术都不知道,就谈项目。问他项目中做了什么就谈项目是什么。在我这就被毙掉了还问你们能不能开到30w,我只能让他回家等消息了。
浏览量:3
下载量:0
时间:
1、 面对一个高中生,给他讲讲快速排序
2、为什么选择腾讯,腾讯为什么选择你,分别给出三个点儿理由【狂晕】
3、给他推荐自己最喜欢的小说、电影【晕死】
4、对简历的一些内容做些询问
1、现有具有关联关系的数据,数据量很大超过几百G,如何对数据进行检索,如何设计一个分布式文件系统来做?为什么会有同步问题?举例说明。如何进行同步?如果系统的某个节点崩溃咋办?如果主服务器崩溃呢?
2、现有n多字符串(n>10亿),可能有不少重复出现的,如何管理这些字符串?支持添加,更新,修改,删除等功能。请自己实现一个内存池,来辅助实现这个功能。
3、Hash如何构建,hash函数
4、某公司要安排一个年度聚会,公司人员按照管理层次来组织是一个树状结构,每个人都为总裁准备了一份一定价值的礼物,但是总裁不希望雇员和他的直接上司同时参加,设计一个算法,生成一张客人表,使得总裁收到的礼物总价值最大,并分析算法复杂度。
5、盐糖问题:俩桶,分别盛有盐和唐,现有一小勺,挖一勺盐放到盛有糖的桶里(前题是不会溢出)搅匀,再挖一勺盐糖混合物到盛盐的桶里,问:盐桶中的糖多还是糖桶中的盐多:-)
浏览量:2
下载量:0
时间:
1. 根据以下代码?
int ack(int m,int n)
{
if(m == 0)
return n + 1;
else if(n == 0)
return ack(m-1,1);
else
return ack(m – 1 , ack(m , n-1));
}
如果ack(3,3),。结果为多少
2. A,B两个整数集合,设计一个算法求他们的交集,尽可能的高效。
我的回答的:如果对于数据较小(10W以下)我会采取哈希的方法去求数集较小的那个集合的hash值存在hash表中,然后对另一个表中每一个数进行hash,如果在hash表中找到则这个数是交集的数,输出。这个算法时间效率是O(n+m),空间效率O(3n+m);(因为hash几乎浪费掉一半空间)
对于大数据,我则先把数据hash%100的样子分到许多个小文件中,然后对这些hash值的次数建立一颗二叉查找树,遍历另一个集合的数来找,找到一个就输出一个,最后得到集合数。算法效率是O(n/100*m*log(n/100)),空间效率O(n+m)
3. 请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在队列中所处的位置和变化,队伍可能随时有人加入和退出;当有人退出影响到用户的位置排名时需要及时反馈到用户。
4.怎么在linux下查找一个文件中有多少个给定的字符串
答:这题本来想考察我的shell编程的能力吧,不过我说这个不会,然后他问我如果写程序实现呢
我答我会用trie树去记录字符串出现的次数
然后有被问道更深入一点的,如果文件过大呢?
我答,那就把文件内容hash取模分成多个足够小的文件,然后每个小文件trie记录结果,输出一个小文件,最后把所有结果文件合并就可以得到最终结果
5. 写二叉查找树的查找算法,答案就不写了,简单。
写完之后,面试官又问我由这里到一个什么地方的,要求最短时间,怎么求
这个就是问最短路算法,我就答了这个,然后他又问我怎么知道去的路径通不通,我答用传递闭包去计算,
他问我如何传递闭包,然后我就画图演示了一下这个过程
6. 进程与线程的区别
这题我答得非常不好,我只答了进程有资源,线程没资源,进程个数有限,而线程的个数几乎不限,进程的调度慢,线程的调度快这些基础点
但是被问到为什么进程调度比线程慢时,我答不出,我答是因为用户态和内核态的转换造成的,但是百度一下,答案应该是因为线程调度是在进程中进行,在同一存储区内操作,而进程则在不同存储区操作,所以进程调度数度比线程慢
7. 问我TCP/IP有多少层
我答OSI标准有7层,但是目前工业大多使用5层的标准,然后回答了一下这些标准,我只会答5层标准的那一个。。。
接着又问我IP层(网络层)的作用,
我答了很多,又说了什么TCP、UDP的,然后在面试官的知道下,我才答出,网络层的作用是映射作用,主要是IP和MAC地址、端口的映射(我不知道对不对。。)
接着又问我TCP和UDP的区别
我就答,TCP是有连接的,UDP是无连接的,TCP通过三次握手保证数据的可靠性,UDP则没有
最后还问我滑动窗口的东西,我就答了滑动窗口是为了保证数据被客户端正确接收了,他又问我为什么能保证,然后我就画图演示滑动窗口的发送、接收、移动过程
8:写一个函数,计算给定的一个整数中有多少个0
浏览量:2
下载量:0
时间:
面试(面试成绩100分,占总成绩的60%)。
由黑河广播电视台对应聘人员资格条件进行审查,确定符合报考条件的人选,通知面试,发放准考证。面试采取试镜和综合答辩的方式进行。面试成绩达不到70分者不予聘用。
(1)试镜。测试应试者能否以端庄、大方的良好形象完成出镜上像任务(30分)。
(2)综合答辩。考察应试者综合分析、语言表达、应变能力(70 分)。
以上就是读文网小编为您准备的关于的黑龙江黑河广播电视台招聘专业技术人员面试信息,希望对您的生活工作有帮助。
浏览量:2
下载量:0
时间:
1. 式子7*15=133成立,则用的是几进制()
A 6 B 7 C 8 D 9
2. 输入序列ABCABC经过栈操作变成ABCCBA,下面哪些是可能的栈操作( )
A. push poppush pop push pop pushpush push pop pop pop
B. push pushpush push push push poppop pop pop pop pop
C. push pushpush pop pop pop pushpush pop pop push pop
D. push pushpush push pop pushpop push pop pop pop pop
3. 下列关键码序列哪些是一个堆( )
A. 90 31 53 23 16 48 B 90 48 31 53 16 23
C 16 53 23 903148 D.1631 23 90 53 48
4. 稀疏矩阵压缩的存储方法是:()
A 三元组 B 二维数组 C 散列 D 十字链表
5. 二叉树的后序排列DBEFCA,中序排列DBAECF,那么对其做先序线索化二叉树,节点E的线索化指向节点()
A BC B AC C DF D CF
6. 线性结构的是()
A 串 B链式存储栈 C顺序存储栈 D 顺序存储二叉树
7. Linux命令是哪些()
A ls B mkdir Cmagnify D man
8. Unix系统中,适合任意两个进程通信的是()
AFIFO B PIPE C MessageQueue D sharememory
9. Windows系统中,不适合进程通讯的是()
A 临界区 B 互斥量 C 信号量 D 事件
10. 下面的内存管理模式中,会产生外零头的是()
A 页式 B段式C 请求页式 D 请求段式
11. Linux执行ls,会引起哪些系统调用()
A nmap B read C execveD fork
12. a 是二维数组,a[j]的指针访问方式为:()
A *(a+i+j) B*(*(a+i)+j) C *(a+i)+j D *a+i+j
13 输出以下结果:
#defineadd(a,b) a+b;
Intmain()
{
Printf(“”,3*add(4,7));
}
A33 B 19 C 25 D 49
14 对于以下代码,char * p= newchar[100]
Ap 和 new出来的内存都在栈上
Bp 和 new出来的内存都在堆上
Cp在栈上 new出来的在堆上
Dp在堆上 new出来的在栈上
#p#副标题#e#
15 进程A读取B进程中的某个变量(非共享内存),可行的方式()
A 进程向消息队列写入一个包含变量内容的消息,B进程从队列中读出
B 通过本地环路通信
C 如果A、B 非亲属,那么A通过命名管道把这个变量的地址发给B进程
D 如果 B是A 进程,那么B直接读取变量内容即可
16 使用 send发送大量小的数据包,说法正确的是()
A 带宽利用率低B 网卡吞吐很高 C 网卡中断频繁 D 进程上下文切换频繁
17 TCP的握手与分手可能出现的情形是()
A 握手需要3次通信
B 分手需要进行4次通信
CFin和ACK 在同一包里
DACK 和SYN 在同一包里
18. 新窗口打开网页,以下哪个()
A_self B _blank C _top D _parent
19.二进制数01011011转化为十进制为()
A103 B 91 C 171 D 71
20 版本控制软件是哪些()
Abugzilla B subversion C Git D loadrunner
21 Select A,B from Table1 where A between60 and 100 order by B,下面哪些优化sql性能()
A 字段A 建立hash索引,字段B btree索引
B 字段A 建立hash索引,字段B不建立索引
C字段A 建立btree索引,字段B不建立索引
D 字段A 不建立索引,字段B建立btree索引
22. 数据索引的正确是()
A1个表只能有一个聚族索引,多个非聚族索引
B 字符串模糊查询不适合索引
C 哈希索引有利于查询字段用于大小范围的比较查询
D 多余的索引字段会降低性能
23 CPU与外设的传输数据的方式是()
A 程序方式 B中断 C DMA D 通道方式
31.描述mapreduce的执行过程,最好用画图的方式表示。
32.数据库A的ID从20120120300001到20120120399999,更新ID从00001到99999,递增加1,不重复,不间断(并保持高并发的性能)
浏览量:2
下载量:0
时间:
1 请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在队列中所处的位置和变化,队伍可能随时有人加入和退出;当有人退出影响到用户的位置排名时需要及时反馈到用户。
2 A,B两个整数集合,设计一个算法求他们的交集,尽可能的高效。
解:
方法一:用C++的容器set,不过该方法不适合于负数。
方法二:可以先进行排序,然后设置两个指针,进行处理。
#p#副标题#e#
3、拓扑排序
解:1、在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,称为AOV网。
2、设G = (V,E)是一个具有n个顶点的有向图,V中的顶点序列v1,v2,.......,vn,满足若从顶点vi到vj有一条路径,则在顶点序列中vi必在顶点vj之前,则我们称这样的顶点序列为一个拓扑序列。
3、所谓拓扑排序,其实就是对一个有向图构造拓扑序列的过程。构造时会有两个结果,如果此网的全部顶点都输出,则说明它是不存在环(回路)的AOV网;如果输出顶点数少了,哪怕是少了一个,也说明这个网存在环(回路),不是AOV网。
4、对AOV网进行拓扑排序的基本思路是:从AOV网中选择一个入度为0的顶点输出,然后删除此顶点,并删除以此顶点为尾的弧,继续重复此步骤,直到输出全部顶点或AOV网中不存在入度为0的顶点为止。
拓扑排序设计的结构代码如下所示。
在算法中,我还需要辅助的数据结构一栈,用来存储处理过程中入度为0的顶点,目的是为了避免每个查找时都要去遍历顶点表找有没有入度为0的顶点。
现在看代码,并且进行模拟它。
https://拓扑排序,若GL无回路,则输出拓扑排序序列并返回OK,若有回路,返回ERROR statusTopologicalSort(GraphAdjListGL) { EdgeNode*e; inti,k,gettop; inttop=0;https://用于栈指针下标 intcount=0;https://用于统计输出顶点的个数 int*stack;https://建栈存储入度为0的顶点 stack=(int*)malloc(GL->numVertexes*sizeof(int)); for(i=0;i<GL->numVertexes;i++) { if(GL->adjList[i].in==0) { stack[++top]=i;https://将入度为0的顶点入栈 } } while(top!=0) { gettop=stack[top--];https://出栈 printf("%d->",GL->adjList[gettop].data);https://打印此结点 count++; for(e=GL->adjList[gettop].firstedge;e;e=e->next) { https://对此顶点弧表遍历 k=e->adjvex; if(!(--GL->adjList[k].in)) { https://将k号顶点邻接点的入度减1 stack[++top]=k;https://若为0,则入栈,以便于下次循环输出 } } } if(count<GL->numVertexes)https://如果count小于顶点数,说明存在环 { returnERROR; } else { returnOK; } } |
浏览量:3
下载量:0
时间:
1.考虑函数原型void hello(int a,int b=7,char* pszC="*"),下面的函数调用钟,属于不合法调用的是:C
A hello(5) B.hello(5,8) C.hello(6,"#") D.hello(0,0,"#")
解析:
(1)不填写参数,参数按默认值;
(2)
2.下面有关重载函数的说法中正确的是:C
A.重载函数必须具有不同的返回值类型 B.重载函数形参个数必须不同
C.重载函数必须有不同的形参列表 D.重载函数名可以不同
解析:
重载:必须同名函数;必须参数表不同(包含参数个数不同;参数类型不同;或参数个数与类型都不同)
3. 分析一下程序的运行结果:C
#include
class CBase
{
public:
CBase(){cout<<”constructing CBase class”<
~CBase(){cout<<”destructing CBase class”<
};
class CSub : public CBase
{
public:
CSub(){cout<<”constructing CSub class”<
~CSub(){cout<<”destructing CSub class”<
};
void main()
{
CSub obj;
}
A. constructing CSub class B. constructing CBase class
constructing CBase class constructing CSub class
destructing CSub class destructing CBase class
destructing CBase class destructing CSub class
C. constructing CBase class
constructing CSub class
destructing CSub class
destructing CBase class
D. constructing CSub class
constructing CBase class
destructing CBase class
destructing CSub class
#p#副标题#e#
解析:
子类对象生成时:先调用父类的构造函数,然后在调用子类的构造函数;析构时相反
4.在一个cpp文件里面,定义了一个static类型的全局变量,下面一个正确的描述是:A
A.只能在该cpp所在的编译模块中使用该变量
B.该变量的值是不可改变的
C.该变量不能在类的成员函数中引用
D.这种变量只能是基本类型(如int,char)不能是C++类型
解析:
Static全局变量和普通全局变量:
针对:一个工程里有多个cpp文件时
相同点:存储方式相同,都是静态存储;
不同点:作用域不同。
普通全局变量---作用域是整个源程序(含有多个源文件),在各个源文件中都有效
Static全局变量----作用域是当前源文件
5.观察下面一段代码:
class ClassA
{
public:
virtual ~ ClassA(){};
virtual void FunctionA(){};
};
class ClassB
{
public:
virtual void FunctionB(){};
};
class ClassC : public ClassA,public ClassB
{
public:
};
ClassC aObject;
ClassA* pA=&aObject;
ClassB* pB=&aObject;
ClassC* pC=&aObject;
关于pA,pB,pC的取值,下面的描述中正确的是:C
A. pA,pB,pC的取值相同 B. pC=pA+pB C. pA和pB不相同 D.pC不等于pA也不等于pB
6. 参照1.5的代码,假设定义了ClassA* pA2,下面正确的代码是:D
A. pA2=static_cast
B. void* pVoid=static_cast
pA2=static_cast
C. pA2=pB;
D. pA2=static_cast
#p#副标题#e#
7.参照1.5的代码,下面那一个语句是不安全的:ABC
A. delete pA B. delete pB C. delete pC
删除哪个都有错误,编译是无错误,运行是有错误
8.下列程序的运行结果为:B
#include
void main()
{
int a=2;
int b=++a;
cout<
}
A.0.5 B.0 C0.7 D.0.6666666
9.有如下一段代码:A
#define ADD(x,y) x+y
int m=3;
m+=m*ADD(m,m); //展开后为m=m+m*m+m=3+3*3+3
则m的值为:
A.15 B.12 C.18 D.58
10.如下是一个带权的图,图中结点A到结点D的关键路径的长度是:
A.13 B.15 C.28 D.58
11.下面的模板声明中,正确的是:C
A. template
B. template
C. template
D. template
12.在Windows编程中下面的说法正确的是:C
A. 两个窗口,他们的窗口句柄可以是相同的
B. 两个窗口,他们的处理函数可以是相同的——正确
C. 两个窗口,他们的窗口句柄和窗口处理函数都不可以相同.
13.下面哪种情况下,B不能隐式转换为A?B
A. class B:public A{} B. class A:public B{}
C. class B{operator A();} D. class A{A(const B&);}
14.某公司使用包过滤防火墙控制进出公司局域网的数据,在不考虑使用代理服务器的情况下,下面描述错误的是”该防火墙能够( B )”.
A. 使公司员工只能访问Internet上与其业务联系的公司的IP地址.
B. 仅允许HTTP协议通过,不允许其他协议通过,例如TCP/UDP.
C. 使员工不能直接访问FTP服务器端口号为21的FTP地址.
D. 仅允许公司中具有某些特定IP地址的计算机可以访问外部网络
15.数字字符0的ASCII值为48,若有以下程序:
main()
{
char a=’1’,b=’2’;
printf(“%c,”,b++);
printf(“%d”,b-a);
}
程序运行之后的输出结果是:C
A. 3,2 B. 50,2 C. 2,2 D. 2,50
#p#副标题#e#
二. 填空题(共40分)
本程序从正文文件text.in读入一篇英文短文,统计该短文中不同单词和它的出现次数,并按词典编辑顺序将单词及它的出现次数输出到正文文件word.out中.
程序用一棵有序二叉树存储这些单词及其出现的次数,一边读入一边建立.然后中序遍历该二叉树,将遍历经过的二叉树上的节点的内容输出.
程序中的外部函数
int getword(FILE* pFile,char* pszWordBuffer,int nBufferLen);
从与pFile所对应的文件中读取单词置入pszWordBuffer,并返回1;若单词遇文件尾,已无单词可读时,则返回0.
#include
#include
#include
#include
#define SOURCE_FILE "text.in"
#define OUTPUT_FILE "word.out"
#define MAX_WORD_LEN 128
typedef struct treenode
{
char szWord[MAX_WORD_LEN];
int nCount;
struct treenode* pLeft;
struct treenode* pRight;
}BNODE;
int getword(FILE* pFile,char* pasWordBuffer,int nBufferLen);
void binary_tree(BNODE** ppNode,char* pszWord)
{
if(ppNode != NULL && pszWord != NULL)
{
BNODE* pCurrentNode = NULL;
BNODE* pMemoNode = NULL;
int nStrCmpRes=0;
____(1)_____;pCurrentNode=*ppNode
while(pCurrentNode)
{
/*寻找插入位置*/
nStrCmpRes = strcmp(pszWord, ___(2)___ );pCurrentNode->nCount
if(!nStrCmpRes)
{
___(3)___; pCurrentNode->nCount++
return;
}
else
{
___(4)___; pMemoNode=pCurrentNode
pCurrentNode = nStrCmpRes>0? pCurrentNode->pRight : pCurrentNode->pLeft;
}
}
}
pCurrent=new BNODE;
if(pCurrentNode != NULL)
{
memset(pCurrentNode,0,sizeof(BNODE));
strncpy(pCurrentNode->szWord,pszWord,MAX_WORD_LEN-1);
pCurrentNode->nCount=1;
}
if(pMemoNode==NULL)
{
___(5)___; *ppNode= pCurrentNode
}
else if(nStrCmpRes>0)
{
pMemoNode->pRight=pCurrentNode;
}
else
{
pMemoNode->pLeft=pCurrentNode;
}
}
void midorder(FILE* pFile,BNODE* pNode)
{
if(___(6)___) return;!pNode||!pFile
midorder(pFile,pNode->pLeft);
fprintf(pFile,"%s %d",pNode->szWord,pNode->nCount);
midorder(pFile,pNode->pRight);
}
void main()
{
FILE* pFile=NULL;
BNODE* pRootNode=NULL;
char szWord[MAX_WORD_LEN]={0};
pFile=fopen(SOURCE_FILE,"r");
if(pFile==NULL)
{
printf("Can't open file %s",SOURCE_FILE);
return;
}
while(getword(pFile,szWord,MAX_WORD_LEN)==1)
{
binary_tree(___(7)___);// pRootNode,szWord
}
fclose(pFile);
pFile=fopen(OUTPUT_FILE,"w");
midorder(pFile,pRootNode);
fclose(pFile);
}
#p#副标题#e#
三. 附加题(每题30分,2题,共60分)
1. 从程序健壮性进行分析,下面的FillUserInfo函数和Main函数分别存在什么问题?
#include
#include
#define MAX_NAME_LEN 20
struct USERINFO
{
int nAge;
char szName[MAX_NAME_LEN];
};
void FillUserInfo(USERINFO* parUserInfo)
{
stu::cout<<"请输入用户的个数:";
int nCount=0;
std::cin>>nCount;//未判断输入是否合法
for(int i=0;i
{
std::cout<<"请输入年龄:";
std::cin>>parUserInfo[i]->nAge;//未判断输入是否合法
std::string strName;
std::cout<<"请输入姓名:";
std::cin>>strName; //未判断输入是否合法
strcpy(parUserInfo[i].szName,strName.c_str());
}
}
int main(int argc,char* argv[])
{
USERINFO arUserInfos[100]={0};//
FillUserInfo(arUserInfos);
printf("The first name is:");
printf(arUserInfos[0].szName);
printf("");
return 0;
}
浏览量:2
下载量:0
时间:
EMC(易安信)为一家美国信息存储资讯科技公司, 主要业务为信息存储及管理产品、服务和解决方案。EMC公司创建于1979年,总部在马萨诸塞州霍普金顿市。2003年,EMC收购了VMware。2015年10月,EMC被DELL收购。
今天读文网小编要与大家分享的是:EMC技术支持相关笔试题。具体内容如下,欢迎阅读:
1What are the differences between RAM、ROM and Flash RAM?
2Please explain the following terms.
RAID 0
RAID 1
RAID 3
RAID 5
RAID 6
3What’s the difference between DNS and WINS ?
4For a SATA 160 Gb 10,000rpm disk drive, what is the average amount of time it takes for the data to be read?
5What is a Race Condition? Please provide an example of a Race Condition.
6Small Page Size gives you Small Page Table (T/F)
Small Page Size generates more LTB( Translation Lookaside Buffer) (T/F)
Small Page Size causes less Page Faults (T/F)
7Please compare polling I/O with interrupt-drive I/O .
In what situation would you favour one technique over the other?
8What is the difference between NAS and SAN storage?
浏览量:2
下载量:0
时间:
2004年6月16日,腾讯公司在香港联交所主板公开上市(股票代号00700),董事会主席兼首席执行官是马化腾。腾讯公司发布2015年第三季度财报显示,腾讯本季度总收入为人民币265.94亿元,同比增长32%,环比增长1.8%。相信腾讯这样的大公司是每个毕业大学生想要进入的团队!今天读文网小编要与大家分享的是:2016腾讯实习的笔试相关试题。具体内容如下,欢迎阅读!
2016腾讯实习笔试试题:
本程序从正文文件text.in读入一篇英文短文,统计该短文中不同单词和它的出现次数,并
按词典编辑顺序将单词及它的出现次数输出到正文文件word.out中.
程序用一棵有序二叉树存储这些单词及其出现的次数,一边读入一边建立.然后中序遍历
该二叉树,将遍历经过的二叉树上的节点的内容输出.
程序中的外部函数
int getword(FILE* pFile,char* pszWordBuffer,int nBufferLen);
从与pFile所对应的文件中读取单词置入pszWordBuffer,并返回1;若单词遇文件尾,已无
单词可读时,则返回0.
#include
#include
#include
#include
#define SOURCE_FILE "text.in"
#define OUTPUT_FILE "word.out"
#define MAX_WORD_LEN 128
typedef struct treenode
{
char szWord[MAX_WORD_LEN];
int nCount;
struct treenode* pLeft;
struct treenode* pRight;
}BNODE;
int getword(FILE* pFile,char* pasWordBuffer,int nBufferLen);
void binary_tree(BNODE** ppNode,char* pszWord)
{
if(ppNode != NULL && pszWord != NULL)
{
BNODE* pCurrentNode = NULL;
BNODE* pMemoNode = NULL;
int nStrCmpRes=0;
____(1)_____;pCurrentNode=*ppNode
while(pCurrentNode)
{
/*寻找插入位置*/
nStrCmpRes = strcmp(pszWord, ___(2)___ );pCurrentNode-
>nCount
if(!nStrCmpRes)
{
___(3)___; pCurrentNode->nCount++
return;
}
else
{
___(4)___; pMemoNode=pCurrentNode
pCurrentNode = nStrCmpRes>0? pCurrentNode-
>pRight : pCurrentNode->pLeft;
}
}
}
pCurrent=new BNODE;
if(pCurrentNode != NULL)
{
memset(pCurrentNode,0,sizeof(BNODE));
strncpy(pCurrentNode->szWord,pszWord,MAX_WORD_LEN-1);
pCurrentNode->nCount=1;
}
if(pMemoNode==NULL)
{
___(5)___; *ppNode= pCurrentNode
}
else if(nStrCmpRes>0)
{
pMemoNode->pRight=pCurrentNode;
}
else
{
pMemoNode->pLeft=pCurrentNode;
}
}
void midorder(FILE* pFile,BNODE* pNode)
{
if(___(6)___) return;!pNode||!pFile
midorder(pFile,pNode->pLeft);
fprintf(pFile,"%s %d",pNode->szWord,pNode->nCount);
midorder(pFile,pNode->pRight);
}
void main()
{
FILE* pFile=NULL;
BNODE* pRootNode=NULL;
char szWord[MAX_WORD_LEN]={0};
pFile=fopen(SOURCE_FILE,"r");
if(pFile==NULL)
{
printf("Can't open file %s",SOURCE_FILE);
return;
}
while(getword(pFile,szWord,MAX_WORD_LEN)==1)
{
binary_tree(___(7)___);// pRootNode,szWord
}
fclose(pFile);
pFile=fopen(OUTPUT_FILE,"w");
midorder(pFile,pRootNode);
fclose(pFile);
}
浏览量:2
下载量:0
时间:
行政助理的工作内容以公司运营保障为主,工作内容较多元化,但较基础。那么在面试行政助理时有哪常见笔试提你们都知道吗?以下是读文网小编为大家精心准备的:行政助理面试常见笔试题及相关答案。欢迎参考阅读!
您好,向您介绍一下我自己,我叫xx,毕业于xx大学.
性格开朗,诚实守信,踏实上进,很具有亲和力,与人沟通能力强,学习、适应能力强。
擅长文秘写作和演讲,熟练打字及掌握运用Office办公软件,和基本的操作系统知识,英语已过国家四级,普通话标准,口语良好,并有相关的公关礼仪和讲师培训。
在xx广播电视台任实习助播,认真的配合主播完成每天的播音工作,耐心细致地倾听来电的问题和烦恼,为听众排忧解愁,独特幽默的主持风格和专注负责的工作态度受到许多听众的来电好评和领导的一致认可。
毕业后在xx信用卡中心任行政助理,协助部门经理做好部门各项会议记录及报表和全国各分支行的业务来往邮件收发及资料更新传真扫描,上传下达领导文件,以及负责日常行政管理工作,帮部门同事打理内勤文职工作。工作中与同事、领导友好和谐交流和工作,认真细致的完成工作任务,得到大家的一致认可。
我对个人银行部的理财产品,有一定的认识和了解。
谢谢!
相关
浏览量:2
下载量:0
时间:
销售是最常见的工作,面试销售同样需要一些技巧。今天小编就给大家带来一些销售人员的面试笔试题,欢迎大家查看。
在销售现场,面对顾客,销售员是一个推销员,他们直接和顾客做面对面沟通,向顾客介绍产品,回答顾客提出的问题,诱导顾客做出购买决策。把产品卖出去是销售员的天职,但成就一个好的销售员决不只是把产品卖出去这么简单。销售既然是涉及到买卖双方的事,因此站在顾客与企业的角度,销售员的职责包括以下方面。
1.宣传品牌。销售员不仅要向顾客销售产品,更是销售产品背后的品牌,要在流利介绍产品的基础上,介绍产品的品牌价值,介绍一种品牌承诺,让顾客不仅买到产品本身,更是买一份放心。为此,销售员要做好以下工作:
(1)通过在卖场与消费者的交流,向消费者宣传本品牌产品和企业形象,提高品牌知名度。
(2)在卖场派发本品牌的各种宣传资料和促销品。
2.产品销售:利用各种销售和服务技巧,提高消费者的购买欲望,实现更多的销售。
3.产品陈列。做好卖场生动化、产品陈列和POP维护工作,保持产品与助销品的整洁和标准化陈列。
4.收集信息。销售员要利用直接在卖场和顾客、竞品打交道的有利条件,多方面收集并向公司反馈信息。
(1)收集顾客对产品的期望和建议,及时妥善地处理顾客异议,并及时向主管汇报。
(2)收集竞争品牌的产品、价格和市场活动等信息,及时向主管汇报。
(3)收集卖场对公司品牌的要求和建议,及时向主管汇报,建立并保持与卖场良好的客情关系,获得最佳的宣传和促销支持。
(4)了解卖场的销售、库存情况和补货要求,及时向主管反映。
5.带动终端营业员或服务员做好本产品销售。销售员不仅要自己做好销售,而且要带动终端店的营业员和服务人员做好自己公司产品的销售。为此,销售员要做到:
(1)传递产品知识、企业信息:向终端店员介绍自己的公司和产品信息,让他们在了解情况的基础上做好销售。
(2)示范:销售员可进行销售示范,教会终端店员如何销售自己的产品。
(3)联络感情:与终端店员沟通感情,以激励其销售积极性。
(4)利益激励:赠送礼品、样品、返利、开展销售竞赛等。
浏览量:3
下载量:0
时间:
一场面试成功与否,80%取决于你开场的5分钟自我介绍。面试中自我介绍也是自我推销,要重点突出自己的求职优势。下面小编给大家整理了几篇计算机网络技术专业学生的面试自我介绍范文,欢迎大家参考。
在四年的学习生活中,我系统地掌握了开发与应用方面的技术,同时也对当今网络的发展有了深刻的认识。因此打下扎实的专业基础知识。在思想行为方面,思想上进,积极进取,有自信,有很强的工作责任感和事业心,工作踏实,吃苦耐劳,有较高综合素质修养。
理论学习上,我认真学习专业知识理论,在各方面都能严格要求自己,积极要求上进。在专业学习过程中,学习态度端正,学习踏实努力,专业成绩优异,多次获得校级奖学金。
专业知识上。精通C/C++编程语言,能够熟练运用上述语言进行软件开发;掌握Visual C++6.0编程软件,有丰富的基于Windows平台编写软件的经验;了解TCP/IP协议,熟悉数据库基本原理;具有较为丰富的网站设计开发经验,曾经协助建设和维护学院网站。学习期间,积极参与多项科研项目。具有很强的业务能力。
工作上,学习精神,知识型社会已不再是过去学一技而用终生的时代,必须时时处处学习,时时更新自己的知识体系,为此我经常上网查阅各方面信息,拓宽视野的同时也增加了信息量和知识量,养成独立思考、分辩事非的思维能力。
经过四年的学习,培养我成为一名品德端正、意志坚强、有崇高理想,具有进取精神和团队合作精神的出色的大学生。相信我所具有的知识和处事能力完全可以胜任任何困难的工作。如我有幸成为贵公司的一员,我将把所有的青春和热情倾力投入到工作中,取得应有的成绩,为公司的发展壮大贡献自己的力量。
浏览量:2
下载量:0
时间:
自我介绍是每个职场中人必然要经历的一件事情,成功的自我介绍会为你的职业生涯赢得一个精彩的开端。那关于数控技术面试的自我介绍有哪些呢?下面是读文网小编为你整理的数控技术面试自我介绍范文,希望你喜欢。
我叫xxx,是**学院机电工程系**级数控技术*班的一名应届毕业生 。
我性格内外向,平时喜欢临摹一些风景和人物画,用CAD或PROE画一些生活中的物品,用PHOTOSHOP处理图像的效果,还喜欢看一些哲学性很强的故事类文章,在学习及生活中,我觉得一个人做的好与不好,无非就是你是否想的周到得体,我相信我会发掘出与众不同的东西,能够做好每一件事。
在校内成绩一直名列前三,受到了多项院级奖励,还参加并组织社团/班级活动,受到了领导和同学的认可,在实习期间,由于班内同学在厂出现了问题,我曾安慰同学们的情绪,并且请求了领导的帮助,控制了局面的发展及恶化,得到有效的解决,因此受到领导的表扬和接见。我觉得任何事都有补救的办法,看你去不去想。生活中的人情事故,其实和一幅不完美的画,只要你找出突破口,也许只用绝妙的一笔就可以增加比以前多百倍的美妙效果。
我会全心全意的服务公司,在职一天便要尽责一天,期盼得到贵公司的一份工作,谢谢!
看过“数控技术面试自我介绍范文”
浏览量:2
下载量:0
时间:
不管什么行业,招人都有相同的测评因素,目的都是在最短时间内了解最多的个人信息。下面是读文网小编为你整理的关于腾讯公司程序员的面试题及答案,希望你喜欢。
1、腾讯笔试题:const的含义及实现机制
const的含义及实现机制,比如:const int i,是怎么做到i只可读的?
const用来说明所定义的变量是只读的。
这些在编译期间完成,编译器可能使用常数直接替换掉对此变量的引用。
2、腾讯笔试题:买200返100优惠券,实际上折扣是多少?
到商店里买200的商品返还100优惠券(可以在本商店代替现金)。请问实际上折扣是多少?
由于优惠券可以代替现金,所以可以使用200元优惠券买东西,然后还可以获得100元的优惠券。
假设开始时花了x元,那么可以买到 x + x/2 + x/4 + ...的东西。所以实际上折扣是50%.(当然,大部分时候很难一直兑换下去,所以50%是折扣的上限)
如果使用优惠券买东西不能获得新的优惠券,那么总过花去了200元,可以买到200+100元的商品,所以实际折扣为 200/300 = 67%.
3、腾讯笔试题:tcp三次握手的过程,accept发生在三次握手哪个阶段?
accept发生在三次握手之后。
第一次握手:客户端发送syn包(syn=j)到服务器。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个ASK包(ask=k)。
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1)。
三次握手完成后,客户端和服务器就建立了tcp连接。这时可以调用accept函数获得此连接。
4、腾讯笔试题:用UDP协议通讯时怎样得知目标机是否获得了数据包
用UDP协议通讯时怎样得知目标机是否获得了数据包?
可以在每个数据包中插入一个唯一的ID,比如timestamp或者递增的int。
发送方在发送数据时将此ID和发送时间记录在本地。
接收方在收到数据后将ID再发给发送方作为回应。
发送方如果收到回应,则知道接收方已经收到相应的数据包;如果在指定时间内没有收到回应,则数据包可能丢失,需要重复上面的过程重新发送一次,直到确定对方收到。
5、腾讯笔试题:统计论坛在线人数分布
求一个论坛的在线人数,假设有一个论坛,其注册ID有两亿个,每个ID从登陆到退出会向一个日志文件中记下登陆时间和退出时间,要求写一个算法统计一天中论坛的用户在线分布,取样粒度为秒。
一天总共有 3600*24 = 86400秒。
定义一个长度为86400的整数数组int delta[86400],每个整数对应这一秒的人数变化值,可能为正也可能为负。开始时将数组元素都初始化为0。
然后依次读入每个用户的登录时间和退出时间,将与登录时间对应的整数值加1,将与退出时间对应的整数值减1。
这样处理一遍后数组中存储了每秒中的人数变化情况。
定义另外一个长度为86400的整数数组int online_num[86400],每个整数对应这一秒的论坛在线人数。
假设一天开始时论坛在线人数为0,则第1秒的人数online_num[0] = delta[0]。第n+1秒的人数online_num[n] = online_num[n-1] + delta[n]。
这样我们就获得了一天中任意时间的在线人数。
6、腾讯笔试题:从10G个数中找到中数 在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。
不妨假设10G个整数是64bit的。
2G内存可以存放256M个64bit整数。
我们可以将64bit的整数空间平均分成256M个取值范围,用2G的内存对每个取值范围内出现整数个数进行统计。这样遍历一边10G整数后,我们便知道中数在那个范围内出现,以及这个范围内总共出现了多少个整数。
如果中数所在范围出现的整数比较少,我们就可以对这个范围内的整数进行排序,找到中数。如果这个范围内出现的整数比较多,我们还可以采用同样的方法将此范围再次分成多个更小的范围(256M=2^28,所以最多需要3次就可以将此范围缩小到1,也就找到了中数)。
7、腾讯笔试题:两个整数集合A和B,求其交集
两个整数集合A和B,求其交集。
1. 读取整数集合A中的整数,将读到的整数插入到map中,并将对应的值设为1。
2. 读取整数集合B中的整数,如果该整数在map中并且值为1,则将此数加入到交集当中,并将在map中的对应值改为2。
通过更改map中的值,避免了将同样的值输出两次。
8、腾讯笔试题:找出1到10w中没有出现的两个数字 有1到10w这10w个数,去除2个并打乱次序,如何找出那两个数?
申请10w个bit的空间,每个bit代表一个数字是否出现过。
开始时将这10w个bit都初始化为0,表示所有数字都没有出现过。
然后依次读入已经打乱循序的数字,并将对应的bit设为1。
当处理完所有数字后,根据为0的bit得出没有出现的数字。
首先计算1到10w的和,平方和。
然后计算给定数字的和,平方和。
两次的到的数字相减,可以得到这两个数字的和,平方和。
所以我们有
x + y = n
x^2 + y^2 = m
解方程可以得到x和y的值。
9、腾讯笔试题:需要多少只小白鼠才能在24小时内找到毒药
有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒?
最容易想到的就是用1000只小白鼠,每只喝一瓶。但显然这不是最好答案。
既然每只小白鼠喝一瓶不是最好答案,那就应该每只小白鼠喝多瓶。那每只应该喝多少瓶呢?
首先让我们换种问法,如果有x只小白鼠,那么24小时内可以从多少瓶水中找出那瓶有毒的?
由于每只小白鼠都只有死或者活这两种结果,所以x只小白鼠最大可以表示2^x种结果。如果让每种结果都对应到某瓶水有毒,那么也就可以从2^x瓶水中找到有毒的那瓶水。那如何来实现这种对应关系呢?
第一只小白鼠喝第1到2^(x-1)瓶,第二只小白鼠喝第1到第2^(x-2)和第2^(x-1)+1到第2^(x-1) + 2^(x-2)瓶....以此类推。
回到此题,总过1000瓶水,所以需要最少10只小白鼠。
10、腾讯笔试题:根据上排的数填写下排的数,并满足要求。
根据上排给出十个数,在其下排填出对应的十个数, 要求下排每个数都是上排对应位置的数在下排出现的次数。上排的数:0,1,2,3,4,5,6,7,8,9。
11、腾讯笔试题:判断数字是否出现在40亿个数中?
给40亿个不重复的unsigned int的整数,没排过序的,然后再给几个数,如何快速判断这几个数是否在那40亿个数当中?
答案:
unsigned int 的取值范围是0到2^32-1。我们可以申请连续的2^32/8=512M的内存,用每一个bit对应一个unsigned int数字。首先将512M内存都初始化为0,然后每处理一个数字就将其对应的bit设置为1。当需要查询时,直接找到对应bit,看其值是0还是1即可。
看过“关于腾讯公司程序员的面试题及答案”
浏览量:3
下载量:0
时间:
一直以来,求职面试都被视为人事招聘中最常用的工具。下面是读文网小编为你整理的关于腾讯技术类实习生的面试题,希望你喜欢。
一、 编程题:
求一个单链表的中间节点,要求安全检查,能直接运行的程序。 (很简单,但能写出无 bug、完全能运行的程序也不是非常容易, 要注意边界检查、 指针是否为空、 特殊情况、 编码风格、是否有注释等) 。
二、 网络:
TCP/IP 协议栈各个层次及分别的功能
三、 数据库:
事务的几个特性(含义 举例说明) 。
用 MySQL 语法建一个学生表,包括学生姓名、性别、年龄、班级信息。
(与 var)的区分,什么情况下用 )?(两者区别很重要)
建过索引吗?什么情况下需要建立索引?
索引的作用?为什么能够提高查询速度?(索引的原理)
索引有什么副作用吗?
在 sql 语句中加上字符集的方法。
四、 C 语言
sizeof 使用相关
static 关键字作用(区分 C 语言和 C ,两种语言下作用有所不同) 。
volatile 关键字的作用。
五、 Linux:
会 Linux 开发吗?
会 shell 脚本吗?比如 grep、awk,然后给了一个实用场景,让用 grep 或 awk 进行文本处理。
看过“关于腾讯技术类实习生的面试题”
浏览量:2
下载量:0
时间:
做笔试面试题几乎是每个公司选拔java个人求职者的必要程序,对java个人求职者是一种考核形式。下面是读文网小编为大家带来的2017 java笔试面试题,相信对你会有帮助的。
1答案:ABD
2答案: D
3答案:BC
4答案:AB
5答案AC
6答案:A,G
7答案:A
8A B C D E
9A B C D E
10A B D
11A B C
12B D
13A C
14A B C
15A B C
16答案:C
二 填空
3 123.7 & 2800 2
三判断
× ×√√√√×√×√
四写出相应的SQL语句
1Select job,count(*) from emp group by job;
2Select ename,sal,deptno from emp where deptno=(select deptno from emp where ename=’SMITH’);
3Select ename,sal,grade from emp,salgrade where sal between losal and hisal;
4Select * from (select * from emp order by sal desc) where rownum<=3;
5Select e1.ename empname,e2.ename mgrname from emp e1,emp e2 where e1.mgr=e2.empno;
五简答
可以通过声明和发布来截获自定义异常。
一、在声明部分为声明自定义异常名。
二、在执行部分使用 RAISE 语句显式地发布异常。
三、在相应的异常处理例程中引用已声明的异常。
2(1).抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
(2).继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性, 新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
(3).封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
(4). 多态性:
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。
3List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值
4a、Action类:
struts1.2要求Action类继承一个基类。struts2.0 Action要求继承ActionSupport基类 b、线程模式
struts1.2 Action是单例模式的并且必须是线程安全的,因为仅有一个Action的实例来处理所有的请求。
单例策略限制了Struts1.2 Action能做的事情,并且开发时特别小心。Action资源必须是线程安全的或同步的。
struts2.0 Action为每一个请求产生一个实例,因此没有线程安全问题。
c、Servlet依赖
struts1.2 Action依赖于Servlet API,因为当一个Action被调用时HttpServletRequest和HttpServletResponse被传递给execut方法。
struts2.0 Action不依赖于容器,允许Action脱离容器单独测试。如果需要,Struts2 Action仍
然可以访问初始的Request和Response。
但是,其他的元素减少或者消除了直接访问HttpServletRequest和HttpServletResponse的必要性。
d、可测性
测试struts1.2 Action的一个主要问题是execute方法暴露了Servlet API(这使得测试要依赖于容器)。一个第三方扩展:struts TestCase
提供了一套struts1.2的模拟对象来进行测试。
Struts2.0 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”也使得测试更容易。
点击下页还有更多>>>2017java笔试面试题参考答案
#p#副标题#e#
1. 在工程中加入Struts支持
2. 编辑ApplicationResource.properties文件,在其中加入要使用国际化的信息, 例如: lable.welcome.china=Welcome!!!
3. 创建英文资源文件ApplicationResource_en.properites
4. 创建临时中文资源文件ApplicationResource_temp.properites 例如:
lable.welcom.china=中国欢迎您!
5. 对临时中文资源文件进行编码转换。可以使用myeclipse的插件,也可以在dos下执行: native2ascii -encoding gb2312 ApplicationResource_temp.properties
ApplicationResource_zh_CN.properties
6. 在jsp中加入struts的bean标记库
显示信息:
可以在struts-config.xml文件中定义多个资源包,而每个资源包可使用key属性指定包的名称
6.6form-bean配置:(在配置文件struts-config.xml中):
name: 指定form的名字; type指定form的类型:包名+类名;
action配置:(在配置文件struts-config.xml中)
path=”?”
attribute="?"
input="?"
name="?"
parameter="?"
scope="?"
type="?"
71、hibernate自带的分页机制:获得Session对象后,从Session中获得Query对象。用Query.setFirstResult():设置要显示的第一行数据,
Query.setMaxResults():设置要显示的最后一行数据。
2、不使用hibernate自带的分页,可采用sql语句分页,
如:5:为每页显示的记录,2为当前页: select * top 5 from table where tabId not in (select tabId top (2-1)*5 from table);
8hibernate中一对多配置文件会相应的映射为两张表,并且它们之间的关系是一对多的。
例如:一个student和classes表的关系 。一个学生只能是一个班的,一个班可以有多个学生。
9 1 很少被修改的数据 2 不是很重要的数据,允许出现偶尔并发的数据 3 不会被并发访问
10控制反转IOC AOP
11面向切面编程:主要是横切一个关注点,将一个关注点模块化成一个切面。在切面上声明一个通知(Advice)和切入点(Pointcut); 通知: 是指在切面的某个特定的连接点(代表一个方法的执行。通过声明一个org.aspectj.lang.JoinPoint类型的参数可以使通知(Advice)的主体部分获得连接点信息。)上执行的动作。通知中定义了要插入的方法。切入点:切入点的内容是一个表达式,以描述需要在哪些对象的哪些方法上插入通知中定义的方法。 项目中用到的Spring中的切面编程最多的地方:声明式事务管理。
a、定义一个事务管理器
b、配置事务特性(相当于声明通知。一般在业务层的类的一些方法上定义事务)
c、配置哪些类的哪些方法需要配置事务(相当于切入点。一般是业务类的方法上)
12Insert 条件谓词 inserting;
Update条件谓词 updating;
Delete 条件谓词 deleting。
13视图是一种Oracle对象,是来自一张或多张表或视图中数据的子集的逻辑表示。
特点:限制对数据库的访问;容易实现数据的复杂的查询;维护数据的独立性;对于相同的数据可以产生不同的视图。
14Primary key 确保非空且唯一;
Foreign key 确保引用完整性;
Unique 确保列或者列的组合中的每个值都是唯一的;
Check 限制每条记录都要满足的条件;
Not null 确保该列不能保存空值。
15两者都带有0个或多个参数,参数可以具有模式。
两者都是PL/SQL语句块的不同形式,都有声明段、可执行段以及异常段。
两者都可以存储在数据库中或在语句块中声明
两者不同的是,过程调用本身是一个PL/SQL语句,而函数总是向调用块返回一个值。
16 使用%rowtype属性声明记录变量的优点是什么?
可以不必知道数据库中列的数量和类型。
在运行期间,数据库中列的数量和类型可能发生变化。
在SELECT语句中使用该属性可以有效地检索表中的行。
六编程
1SET serveroutput ON;
Declare
v_empno emp.empno%type:=’&员工编号’;
v_ename emp.ename%type;
v_deptno emp.deptno%type;
v_mgr emp.mgr%type;
Begin
SELECT ename,deptno,mgr INTO v_ename,v_deptno,v_mgr from emp WHERE empno=v_empno;
DBMS_OUTPUT.PUT_LINE(‘员工’||v_ename||’在部门’||’v_deptno’||’主管’||v_mgr);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE(‘没有此员工’);
END;
2Declare
Cursor emp_cur(v_job emp.job%TYPE) is
Select empno,ename,hiredate from emp where job=v_job;
v_empno emp.empno%TYPE;
v_ename emp.ename%TYPE;
v_hiredate emp.hiredate%TYPE;
BEGIN
OPEN emp_cur(upper(‘&job’));
LOOP
Fetch emp_cur INTO v_empno,v_ename,v_hiredate;
Exit when emp_cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(‘编号 姓名 工资’);
DBMS_OUTPUT.PUT_LINE(v_empno||v_ename||v_hiredate);
END LOOP;
CLOSE emp_cur;
END;
Declare
Cursor emp_cur(v_job emp.job%TYPE) is
Select empno,ename,hiredate from emp where job=v_job;
v_empno emp.empno%TYPE;
v_ename emp.ename%TYPE;
v_hiredate emp.hiredate%TYPE;
BEGIN
FOR i IN emp_cur(upper(‘&job’)) LOOP
v_empno:=i.empno;
v_ename:=i. ename;
v_hiredate:=i. hiredate;
DBMS_OUTPUT.PUT_LINE(‘编号 姓名 工资’);
DBMS_OUTPUT.PUT_LINE(v_empno||v_ename||v_hiredate);
END LOOP;
END;
3CREATE OR REPLACE FUNCTION f_emp(f_job emp.job%TYPE)
RETURN BOOLEAN
Is
v_job emp.job%TYPE;
BEGIN
SELECT DISTINCT job INTO v_job FROM emp WHERE job=f_job;
RETURN TRUE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN FALSE;
END f_emp;
Begin
If f_emp(upper(‘&job’)) THEN
DBMS_OUTPUT.PUT_LINE(‘日’);
ELSE
DBMS_OUTPUT.PUT_LINE(‘插’);
END IF;
END;
4CREATE OR REPLACE TRIGGER t_emp_sal
BEFORE INSERT OR UPDATE ON emp
Begin
IF :new.sal>5000 THEN
RAISE_APPLICATIONG_ERROR(‘ERROR!!’);
ELSE
INSERT int up_emp VALUES(empno,sal,sysdate);
END IF;
END;
5很奇怪,结果是Test
这属于脑筋急转弯的题目,在一个qq群有个网友正好问过这个问题,我觉得挺有趣,就研究了一下,没想到今天还被你面到了,哈哈。
在test方法中,直接调用getClass().getName()方法,返回的是Test类名
由于getClass()在Object类中定义成了final,子类不能覆盖该方法,所以,在
test方法中调用getClass().getName()方法,其实就是在调用从父类继承的getClass()方法,等效于调用super.getClass().getName()方法,所以,super.getClass().getName()方法返回的也应该是Test。
如果想得到父类的名称,应该用如下代码:
getClass().getSuperClass().getName();
6返回的结果是2。
我可以通过下面一个例子程序来帮助我解释这个答案,从下面例子的运行结果中可以发现,try中的return语句调用的函数先于finally中调用的函数执行,也就是说return语句先执行,finally语句后执行,所以,返回的结果是2。Return并不是让函数马上返回,而是return语句执行后,将把返回结果放置进函数栈中,此时函数并不是马上返回,它要执行finally语句后才真正开始返回。
7最终的程序代码如下:
public class ThreadTest {} private class Business { boolean bShouldSub = true;https://这里相当于定义了控制该谁执行的一个信号灯 public synchronized void MainThread(int i) { if(bShouldSub) try { this.wait(); https:// TODO Auto-generated catch block } catch (InterruptedException e) { ).start(); for(int i=0;i<50;i++) { business.MainThread(i); } } public void run() { } for(int i=0;i<50;i++) { business.SubThread(i); } public void init() { final Business business = new Business(); new Thread( new Runnable() { } /** * @param args */ public static void main(String[] args) { https:// TODO Auto-generated method stub new ThreadTest().init();
} } } { } } for(int j=0;j<5;j++) System.out.println(Thread.currentThread().getName() + ":i=" + i +",j=" + j); bShouldSub = true; this.notify(); public synchronized void SubThread(int i) { } if(!bShouldSub) { } bShouldSub = false; this.notify(); System.out.println(Thread.currentThread().getName() + try { this.wait(); https:// TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { } for(int j=0;j<10;j++) ":i=" + i +",j=" + j);
8。
Vector newVector = new Vector();
For (int i=0;i
{
Object obj = vector.get(i);
if(!newVector.contains(obj);
newVector.add(obj);
}9
int engishCount;
int chineseCount;
int digitCount;
for(int i=0;i
{char ch = str.charAt(i);
if(ch>=’0’ && ch<=’9’)
{digitCount++}
else if((ch>=’a’ && ch<=’z’) || (ch>=’A’ && ch<=’Z’))
{engishCount++;}
else
{chineseCount++;}}
System.out.println(……………);
(1)select * from employees
where Year(hiredDate) = Year(date())
or (salary between 1000 and 200)
or left(last_name,3)='abc';
(2)mysql> select id,name,salary,deptid did from employee1 where (select avg(salary) from employee1 where deptid = did) > 1800;
(3)select employee1.*,(employee1.salary-t.avgSalary)*100/employee1.salary from employee1,
(select deptid,avg(salary) avgSalary from employee1 group by deptid) as t where employee1.deptid = t.deptid and employee1.salary>t.avgSalary;
看过“2017 java笔试面试题”
浏览量:2
下载量:0
时间: