365文库
登录
注册
2

腾讯真题整理(含答案)

314阅读 | 14收藏 | 6页 | 打印 | 举报 | 认领 | 下载提示 | 分享:
2
腾讯真题整理(含答案)第1页
腾讯真题整理(含答案)第2页
腾讯真题整理(含答案)第3页
腾讯真题整理(含答案)第4页
腾讯真题整理(含答案)第5页
腾讯真题整理(含答案)第6页
福利来袭,限时免费在线编辑
转Pdf
right
1/6
right
下载我编辑的
下载原始文档
收藏 收藏
搜索
下载二维码
App功能展示
海量免费资源 海量免费资源
文档在线修改 文档在线修改
图片转文字 图片转文字
限时免广告 限时免广告
多端同步存储 多端同步存储
格式轻松转换 格式轻松转换
用户头像
禁品 上传于:2024-05-28
腾讯真题整理(含答案) 整理了几道腾讯真题,来挑战一下看看自己多厉害(含答案及解答)。 1、下列哪些可以用于Linux进程间通讯? A:UNIX套接字 B:信号量 C:无名管道 D:文件锁 E:共享内存 答案:ABCDE。 Linux进程通信六大方式: 1、管道及(pipe)有名管道 2、信号(signal) 3、报文队列 4、共享内存 5、信号量(semaphore) 6、套接字(socket) 2、Java语言中,如果"xyz"没有被创建过,String s =new String(“xyz”);创建了几个String Object? A:1 B:2 C:3 D:4 答案:2。对于这句代码,可以分为两个过程:1、首先JVM 在字符串常量池内里查找是否包含字符串"xyz";如果存在的话,则进入第二步;否则,创建新的 String 对象,并放到字符串常量池里面。2、因为new String(“xyz”),所有会在堆里面创建 String 对象,引用的常量池的“xyz”。 NumberList是一个顺序容器,以下代码执行后,NumberList里的元素依次为:  A:2,4,1,3,5 B:2,1,3,5 C:4,1,3,5 D:1,3,5 答案:C。因为NumberList是顺序容器,第一次循环之后删除元素2,容器中2后面的所有元素需要向前移动一个位置,即{4,1,3,5}。而第二次循环判断的是i=1位置的元素,并没有对4进行操作,所以4并没有被删除。所以答案选C。 关于多线程和多进程编程,下面描述正确的是(): A:多进程里,子进程可获得父进程的所有堆和栈的数据;而线程会与同进程的其他线程共享数据,拥有自己的栈空间。 B:线程因为有自己的独立栈空间且共享数据,所以执行的开销相对较大,同时不利于资源管理和保护。 C:线程的通信速度更快,切换更快,因为他们在同一地址空间内。 D:线程使用公共变量/内存时需要使用同步机制,因为他们在同一地址空间内。 E:因为在多线程里,每个子进程有自己的地址空间,因此相互之间通信时,线程不如进程灵活和方便。 答案:ACD。子进程是父进程的复制品,可以获得父进程的数据空间、堆和栈。相对进程而言,线程拥有自己的栈空间和独立的执行序列,但它可以与同进程的其他线程共享数据。 在Windows编程中下面的说法正确的是: A:两个窗口,他们的窗口句柄可以是相同的 B:两个窗口,他们的处理函数可以是相同的 C:两个窗口,他们的窗口句柄和窗口处理函数都不可以相同 答案:B。窗口句柄就相当于一个身份证,如果两个窗口的句柄相同的话,就会出现消息不知道传给哪个窗口的问题。 输入一个链表,将链表反转后,输出新链表。 例如:输入{1,2,3} 返回值{3,2,1} 答案: public class Solution {     public ListNode ReverseList(ListNode head) {          if(head==null)          {              return null;          }         ListNode second=head.next;         head.next=null;         ListNode three=null;         while(second!=null)         {             three=second.next;             second.next=head;             head=second;             second=three;         }         return head;     } } 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 答案: public class Solution { public int JumpFloor(int target) { int[] dp=new int[target+1]; dp[0]=1; dp[1]=1; for(int i=2; i数组的长度,那么返回一个空的数组。 示例:输入[4,5,1,6,2,7,3,8],4 返回值[1,2,3,4] 答案: import java.util.ArrayList; public class Solution { public ArrayList GetLeastNumbers_Solution(int [] input, int k) { ArrayList list = new ArrayList<>(); if(k>input.length) return list; for(int n = 0;n < k;n++){//冒泡排序,只找到k个小的就行。 for(int i = 0;i < input.length-n-1;i++){ if(input[i] < input[i+1]){//把最小的先找到,即把小的放在后面。 int temp = input[i]; input[i] = input[i+1]; input[i+1] = temp; } } list.add(input[input.length-n-1]);//把后面的即小的放在数组里。 } return list; } } 9、给定两个字符串str1和str2,输出两个字符串的最长公共子串题目。保证str1和str2的最长公共子串存在且唯一。 示例:输入“1AB2345CD”,“12345EF” 返回值:“2345” 答案: import java.util.*; public class Solution { /** * longest common substring * @param str1 string字符串 the string * @param str2 string字符串 the string * @return string字符串 */ public String LCS (String str1, String str2) { String result = ""; int start = 0; int end = 1; while(end<=str2.length()){ String subStr = str2.substring(start,end); if(str1.contains(subStr)){ result = subStr; }else{ start++; } end++; } return result; } } 10、输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 示例:输入“ab” 返回值:[“ab”,ba] 答案: import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.Scanner; //思路:第一步:将输入的字符串中第一个字符与后面每一个字符依次进行比较,若二者不同,则交换位置,第一个位置的字符完成。(第一步的结果是得到若干个“第一个字符不同”的字符串)。 //第二步:保持第一个字符不动,从第二个位置开始依次跟后
tj