赞
踩
往期文章>>>
Java最全面试题【五分钟看完】
Java后端精选面试题分享
Java经典面试题 带答案(五)
Java经典面试题 带答案(四)
Java经典面试题 带答案(三)
2023年春招Java面试选择题及答案解析
2023饿了吗Java后端面经和网易Java面经【赶紧来试试!】
…
单选题
A、Map m=new Map();
B、Map m=new Map(init capacity, increment capacity);
C、Map m=new Map(new Collection());
D、Map是接口,所以不能实例化
正确答案:D
单选题
int i=0;
int a[]={3,6,4,8,5,6};
do{
a[i]-=3;
}while(a[i++]<4);
for(i=0;i<6;i++)
{
printf("%d",a[i]);
}
A、31556
B、64856
C、31523
D、364856
正确答案:A
单选题
A、进程是处于执行期的程序以及相关资源的总称
B、内核调度的对象是线程,而不是进程
C、当进程处于TASK_UNINTERRUPTIBLE状态时可以被杀死
D、线程被视为一个与其他进程共享某些资源的进程
正确答案:C
单选题
4、若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( )
A、for(i=1,p=1;i<=5;i++) p*=i;
B、for(i=1;i<=5;i++){ p=1; p*=i;}
C、i=1;p=1;while(i<=5){p*=i; i++;}
D、i=1;p=1;do{p*=i; i++; }while(i<=5);
正确答案:B
单选题
int a[3][5] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
请问 a[1][4] 的值为多少?()
A、4
B、9
C、10
D、11
正确答案:C
单选题
A、双向链表更稳定
B、双向链表中的任意一个结点都可以直接访问前驱结点和后继结点
C、双向链表删除节点更方便
D、双向链表复杂度更低
正确答案:B
单选题
A、传输控制协议(TCP),面向连接,提供可靠的数据传输。
B、用户数据报协议(UDP),无连接,提供不可靠的数据传输。
C、TCP和UDP协议都属于传输层协议。
D、Socket通信只能使用TCP协议进行通信。
正确答案:D
单选题
A、128
B、256
C、512
D、1024
正确答案:C
单选题
A、函数参数,局部变量自动分配在栈上。
B、栈的空间大小是有限制的,当函数调用层次过深时会出现栈溢出。
C、在堆上分配的内存需要程序主动释放。
D、程序结束时,在堆上分配的没有释放的内存会造成泄漏。
正确答案:D
单选题
A、AndroiD、B、MacOS
C、Ubuntu
D、RedHat
正确答案:B
单选题
A、正在运行的进程所分配的时间片结束
B、正在运行的进程访问一个临界区时,保护此临界区的互斥信号量已经被其他进程加锁
C、当一个进程执行了一条转移指令后
D、当一个进程创建了一个新进程时
正确答案:C
多选题
A、MOV AL, [BX+SI+20]
B、DEC [BX]
C、XCHG VAL1, AX
D、SUB [BX],[BP][DI]
正确答案:ACD
多选题
A、局部变量存放在栈上
B、全局变量存放在数据段
C、静态变量存放在数据段
D、C++中new一个对象是从堆上分配内存的
正确答案:ABCD
多选题
A、希尔排序是插入排序的改进版本
B、希尔排序是冒泡排序的改进版本
C、增量的选择直接影响着排序的速度与效率
D、希尔排序是一种十分稳定的算法
正确答案:AC
多选题
void sort(vector<int>& nums)
{
for(int i=0;i<nums.size();i++)
for(int j=i;j<nums.size();j++)
{
if(nums[j]<nums[i])
{
int temp=nums[i];
nums[i]=nums[j];nums[j]=temp;
}
}
}
A、这是插入排序
B、这是冒泡排序
C、空间复杂度为O(1)
D、时间复杂度为O(n^2)
正确答案:BCD
多选题
A、进程终止后,这个进程所打开的文件也会被系统删除
B、删除一个文件,同时会删除与此文件对应的文件控制块
C、一个文件在磁盘上存放的磁盘块必须是相邻的
D、符号连接所连接的文件被删除后,符号连接也会消失
正确答案:ACD
多选题
A、冒泡排序的最好情况和最坏情况时间复杂度一样
B、归并排序的最好情况和最坏情况时间复杂度一样
C、选择排序的最好情况和最坏情况时间复杂度不一样
D、直接插入排序的最好情况和最坏情况时间复杂度不一样
正确答案:BD
多选题
A、数据段存放程序中的静态变量和已初始化且不为零的全局变量
B、代码段存放可执行文件的操作指令,代码段是只读的,不可进行写操作
C、BSS段( Block Started By Symbol):存放未初始化的全局变量,在变量使用前由运行时初始化为零
D、分段是为了提高内存利用率,减少内存碎片
正确答案:ABCD
多选题
A、数组逻辑上相邻的元素在物理存储位置上也相邻,而链表一定不相邻
B、链表的长度是按实际需要可以伸缩,而数组的长度是在定义时要给定
C、插入和删除时,数组平均需要移动n/2个元素,而链表只需修改指针即可
D、查找制定节点,数组和链表平均时间复杂度都为O(1)
正确答案:AD
多选题
A、虚拟内存是计算机系统内存管理的一种技术,使得应用程序认为它拥有连续可用的内存
B、虚拟内存使得多个应用程序之间切换会花费更少的时间
C、实现进程地址空间隔离
D、虚拟内存和物理内存的映射通过页表(page table)来实现
正确答案:ACD
多选题
A、DELETE TABLE X
B、DELETE X
C、DROP X
D、DROP TABLE X
正确答案:D
多选题
A、where中索引列有运算
B、OR语句前后有同时使用索引
C、复合索引未使用左列字段
D、没有以“%”开头的LIKE语句,模糊匹配
正确答案:AC
多选题
A、数组是一种对象
B、数组属于一种原生类
C、int number=[]={31,23,33,43,35,63}
D、数组的大小可以任意改变
正确答案:BCD
多选题
A、使用FileOutputStream可以将对象进行传输
B、使用PrintWriter可以将对象进行传输
C、使用ObjectOutputStream类完成对象存储,使用ObjectInputStream类完成对象读取
D、对象序列化的所属类需要实现Serializable接口
正确答案:CD
多选题
A、同步和异步关注的是消息通信机制
B、阻塞和非阻塞关注的是程序在等待调用结果时的状态
C、异步操作后, 可以不使用回调函数来获取操作结果
D、非阻塞操作, 必定是异步的
正确答案:ABCD
有表Products
【问题】编写 SQL 语句,返回所有价格在 3美元到 6美元之间的产品的名称(prod_name)和价格(prod_price),使用 AND操作符,然后按价格对结果进行升序排序
【示例结果】
返回商品名称prod_name和商品价格prod_price
注:不需要考虑价格相同时的排序问题
A、select prod_name,prod_pricefrom Products where prod_price between 3 and 6 order by prod_price
B、select prod_name,prod_price from Products where prod_price between 3 and 6 order by prod_price desc
C、select * from Products where prod_price between 3 and 6 order by prod_price desc
D、select *from Products where prod_price < 3 and prod_price > 6 order by prod_price desc
正确答案:A
给第 11 行施 11 千克肥料;
给第 22 行施 11 千克肥料;
…
给第 n-1n−1 行施 11 千克肥料;
给第 nn 行施 11 千克肥料;
然后更改方向给第 n-1n−1 行施 11 千克肥料;
给第 n-2n−2 行施 11 千克肥料;
…
即每次给整个农田施一遍肥料,无人机就会自动更改方向继续施肥直到无人机携带的肥料用完位置。
现在大明想知道每行最终施了多少肥料。
函数传入两个正整数 nn 和 mm 分别代表农田的行数和无人机携带的肥料数,你需要返回一个数组,假设数组为 aa ,则 a_{i}a i
表示第 i+1i+1 行农田被灌溉了 a_{i}a i
千克的肥料 (0 \leq i \leq n-1)(0≤i≤n−1) 。
(施肥前每一行都是0)
解析:找一下数学规律就行,在m足够大的情况下,我们先列出来看看:
第1趟施肥,可以影响第1行到第n行;
第2趟施肥,可以影响第n-1行到第1行;
第3趟施肥,可以影响第2行到第n行;
第4趟施肥,可以影响第1行到第n-1行;
第5趟施肥,可以影响第2行到第n行;
……
可以发现除了第1趟影响了第1n行,从第2趟开始,偶数趟都是影响前n-1行,奇数趟影响后n-1行。我们可以先不考虑余数(m-n)%(n-1),这时候除了第1趟施肥了n千克,中间的第2n-1行都可以施肥(m-n)/(n-1)千克,第1行和第n行可以施肥(m-n)/(n-1)/2千克。最后再根据(m-n)/(n-1)的奇偶性,来判断最后(m-n)%(n-1)千克的肥料应该施在哪些行。
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @param m long长整型 * @return long长整型一维数组 */ public long[] FarmerNN (int n, long m) { // write code here long[] res = new long[n]; if(m < n){ for(int i = 0; i < m; i++){ res[i]++; } }else{ if(n == 2){ if(((m - n) & 1) != 0){ res[0] = (m >> 1)|1; res[1] = m >> 1; }else{ res[0] = m >> 1; res[1] = res[0]; } }else{ Arrays.fill(res, 1); m -= n; long remain = m % (n - 1); long times = m / (n - 1); if(times > 0){ for(int i = 1; i < n - 1; i++){ res[i] += times; } res[0] += times >> 1; res[n - 1] += times >> 1; } if((times & 1) == 0){ for(int i = n - 2; i >= n - 1 - remain; i--){ res[i]++; } }else{ for(int i = 0; i <= remain; i++){ res[i]++; } } } } return res; } }
解析:先定义两个指针left和right,均从0开始,作为窗口的左右边界,记区间的左右边界为L和R。
遍历数组,扩张窗口的右边界,考察每个元素a[right]为区间右端点的情况。当右边界遍历到某个位置right时,累加a[right]的频数。
如果a[right]t在哈希表内,说明之前加入的数中存在一个数a[right]t,当它作为区间左边界元素时,在a[right]为区间右边界的情况下会造成a[L]a[R]=a[right]ta[right]=t,使得[L,R]为非奇特区间,此时开始收缩窗口的左边界,直到非奇特区间被排除在外,即a[right]t不在哈希表内。如果a[right]^t不在哈希表内,说明[left,right]中都是奇特区间,在right为区间右端点的情况下,从left到right-1都可以作为区间的左端点形成奇特区间,此时有right-left个奇特区间产生,将其累加到奇特区间的总数上。
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * @param a int整型一维数组 * @param t int整型 * @return long长整型 */ public long section (int[] a, int t) { // write code here int n = a.length; HashMap<Integer, Integer> counter = new HashMap<>(); int left = 0, right = 0; long count = 0; while(right < n){ counter.put(a[right], counter.getOrDefault(a[right], 0) + 1); while(counter.containsKey(a[right] ^ t)){ // 收缩左边界 if(counter.get(a[left]) == 1){ counter.remove(a[left]); }else{ counter.put(a[left], counter.get(a[left]) - 1); // 排除一个能与a[right]异或得到t的值 } left++; } count += right - left; // 扩张右边界 right++; } return count; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。