![Java程序员面试分类模拟22_第1页](http://file4.renrendoc.com/view2/M01/29/35/wKhkFmZb9AmARr6WAAGSs9T2HXg038.jpg)
![Java程序员面试分类模拟22_第2页](http://file4.renrendoc.com/view2/M01/29/35/wKhkFmZb9AmARr6WAAGSs9T2HXg0382.jpg)
![Java程序员面试分类模拟22_第3页](http://file4.renrendoc.com/view2/M01/29/35/wKhkFmZb9AmARr6WAAGSs9T2HXg0383.jpg)
![Java程序员面试分类模拟22_第4页](http://file4.renrendoc.com/view2/M01/29/35/wKhkFmZb9AmARr6WAAGSs9T2HXg0384.jpg)
![Java程序员面试分类模拟22_第5页](http://file4.renrendoc.com/view2/M01/29/35/wKhkFmZb9AmARr6WAAGSs9T2HXg0385.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java程序员面试分类模拟22一、单项选择题1.
下图是一个非确定有限自动机(NFA)的状态转换图,其等价的正规式为______。
A.0*|(0|1)0B.(0|10)*C.0*(10)*D.0*((0|1)0)*正确答案:B[解析]从上面的自动机的状态转换图可以看出,这个自动机可以识别如下几种表达式:
1)0个或多个0。
2)0个或多个如下的表达式:先识别0或1,接着识别一个0;也就是说,识别00串或10串,对于00串而言,与1)是相同的。
3)1)和2)组合的表达式。
综上所述,这个自动机可以识别0个或多个10串,或0个或多个0的组合。
由此可见,选项B满足条件,所以,选项B正确。上图中的自动机可以识别100串,而选项A、选项C和选项D都无法识别。所以,选项A、选项C与选项D都错误。
所以,本题的答案为B。
2.
有如下代码:classA{publicA(){System.out.println("A");}classBextendsA{publicB(){System.out.println("B");}publicstaticvoidmain(String[]args){Bb=newB();}}
上述程序将______。A.不确定B.通过编译,输出为ABC.通过编译,输出为BD.通过编译,运行时错误正确答案:A[解析]本题中,当这个程序所在的Java文件名为B.java时,运行结果为AB,否则,编译能通过,运行时会出错,因为找不到程序的入口方法main。所以,选项A正确。
3.
某网络的IP地址空间为/24,采用定长子网划分,子网掩码为48,则该网络的最大子网个数、每个子网内最大可分配地址个数各为______。A.8,32B.32,8C.32,6D.8,30正确答案:C[解析]本题中,网络的IP地址空间为/24,这是一个C类IP地址块,其默认子网掩码为。但按照题目要求,如果采用定长子网划分,子网掩码48的二进制表示为11111111.11111111.11111111.11111000,它是在的基础上,向原主机号借用了5个比特位作为新的子网号,因此,本网络的最大子网个数为2^5个,即32个,此时可以排除选项A与选项D。
每个子网内的最大可分配地址个数=2^(32-29)-2=2^3-2=8-2=6个,之所以需要减去2,是因为主机号为全0的地址被保留用于标识子网本身、主机号为全1的地址被保留用作该子网的广播地址,它们不在可分配地址中。所以,选项C正确。
4.
在bash中,需要将脚本demo.sh的标准输出和标准错误输出重定向至文件demo.log,以下用法正确的是______。A.bashdemo.sh&>demo.logB.bashdemo.sh>&demo.logC.bashdemo.sh>demo.log2>&1D.bashdemo.sh2>demo.log1>demo.log正确答案:C[解析]输出可以分为标准输出和标准错误输出,其中2代表标准错误输出,1代表标准输出。重定向有两种方式:>demo.log与>>demo.log。其中,>demo.log把标准输出流重定向到demo.log文件中,这种方式会清空demo.log中的内容,而>>demo.log也只把标准输出重定向到demo.log,但不会清空demo.log中已有的内容。对于本题而言,bashdemo.sh>demo.log,用来把标准输出定向到demo.log文件中,2>&1用来把标准错误重定向到标准输出。
所以,本题的答案为C。
5.
一个完全二叉树总共有289个结点,则该二叉树中的叶子结点数为______。A.145B.128C.146D.156正确答案:A[解析]对于任何的一棵二叉树,度为0的结点(就是叶子结点)数总是比度为2的结点数多一个。即假定度为0的结点(就是叶子结点)个数为n0,度为2的结点的个数为n2,那么数值上满足如下计算公式:n0=n2+1。
而在一个完全二叉树中,其左右子树的深度之差不大于1,所以,要么只有一个度为1的结点,要么没有。定义二叉树中所有结点个数为n,度为1的结点数为n1,那么n0+n1+n2=n,而n0=n2+1,所以叶子结点的个数n0=(n+1-n1)/2,其中n1要么为0,要么为1,n=289,只有当n1=0的时候,n+1-n1才能整除2,因此,n1=0,此时n0=(289+1)/2=145。所以,选项A正确。
6.
现有个数约为50K的数列需要进行从小到大排序,数列特征是基本逆序(多数数字从大到小,个别乱序),以下排序算法中,在事先不了解数列特征的情况下性能大概率最优(不考虑空间限制)的是______。A.冒泡排序B.堆排序C.选择排序D.快速排序正确答案:B[解析]由于排序元素个数为50K,数据量大,所以,冒泡、选择、插入等排序算法基本不适用,所以,选项A与选项C错误。由于数列特性基本逆序,而快速排序的最差情况就是基本逆序或者基本有序的情况,所以,选项D错误。根据排除法可知,堆排序是最为合理的排序方法,所以,选项B正确。
所以,本题的答案为B。
7.
Java接口的修饰符可以为______。A.staticB.protectedC.finalD.abstract正确答案:D
8.
某主机的IP地址为2/20,其子网掩码是______。A.B.C.D.正确答案:B[解析]在计算机网络与通信中,予例掩码用来指明一个IP地址的哪些位标识的是主机所在的子网,它的作用就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。本题中,/20表示IP地址的前20位都是网络号,后12位是主机号。由此可以确定,子网掩码为11111111111111111111000000000000,即。所以,选项B正确。
9.
有如下代码:Strings="xbcde";System.out.priutln(s.charA.t(4));
以下针对上述代码段的描述中,正确的是______。A.输出字符eB.什么都没有,抛出ArrayIndexOutOfBoundsExceptionC.输出字符dD.代码编译不成功,因为charA.t()方法不属于String类正确答案:D[解析]在Java语言中,String是一个特殊的包装类数据,本题中,由于String类中没有charA.t()方法,因此,会编译失败,所以,选项D正确。
正确的方法应该是charAt,charAt(intindex)方法是一个能够用来检索特定索引下的字符的方法,charAt()方法返回指定索引位置的char值。索引范围为0~length()-1,其中,length()返回的是字符串的长度,例如str.charAt(0)检索字符串str中的第一个字符,str.charAt(str.length()-1)检索字符串str的最后一个字符。
10.
以下不是合法标识符的是______。A.STRB.x3abC.voidD.abcd正确答案:C[解析]在Java语言中,变量名、方法名和数组名统称为标识符,Java语言规定标识符只能由字母(a~z,A~Z)、数字(0~9)、下划线______和$组成,并且标识符的第一个字符必须是字母、下划线或$。而且,标识符也不能包含空白字符(换行符、空格和制表符)。此外,Java语言的关键字也不能作为标识符来使用。
以上这四个选项都符合变量的命名规则,但是,选项C中的void是Java语言的关键字,因此,它不能被用作标识符使用。所以,选项C不正确。
所以,本题的答案为C。
11.
对于1.0/0.0的返回值,下面说法正确的是______。A.抛出异常B.输出InfinityC.编译错误D.以上都不正确正确答案:B[解析]Double类提供了三个属性:POSITIVE_INFrNITY(正无穷大),NEGATIVE_INFINITY(负无穷大)、NaN(不是一个数字)。在内存中,浮点数是无法等于0的,因此,本题中,被除数0.0表示的是一个极小的浮点数,所以,1.0/0.0的返回值为正无穷大Double.POSITIVE_INFINITY,输出对应的字符串为Infinity。所以,选项B正确。
为了更加深入地理解上述描述内容,下面给出另外一个例子:publicclassTest{publicstaticvoidmain(String[]args){System.out.println(1.0/0.0);System.out.println(Double.islnfinite(1.0/0.0));System.out.println(Double.NEGATIVE_INFINITY);System.out.println(Double.POSITIVE_INFINITY);}}程序的运行结果为:Infinitytrue-InfinityInfinity
12.
在Java语言中,下面接口以键一值对的方式存储对象的是______。A.java.util.ListB.java.util.MapC.java.util.CollectionD.java.util.Set正确答案:B[解析]对于选项A,List中保存了相同类型的多个元素,元素是按照存入的顺序存储的,元素可以重复。所以,选项A错误。
对于选项B,Map是以键一值对的方式来存储对象的,并且键不允许重复。所以,选项B正确。
对于选项C,java.util.Collection是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法。而Set与List是它的两个具体的接口,由于Set与List都不是以键一值对的方式来存储对象的,因此,Collection接口也不是。所以,选项C错误。
对于选项D,Set中也保存了相同类型的多个元素,元素是不能重复的。所以,选项D错误。
下表是各接口的区别。各接口的区别类型是否有序是否允许重复是否线程同步Collection否是
ListArrayList否是否Vector是LinkedList否SetHashSet否否否TreeSet是否MapHashMap否<key,value>,key不允许重复否TreeMaD是否Hashtable否是
所以,本题的答案为B。
13.
如果系统的umask设置为244,那么创建一个新文件后,它的权限是______。A.--w-r--r--B.-r-xr--r--C.-rw--w-D.-r-x-wx-wx正确答案:C[解析]umask主要用来设置用户创建文件的默认权限(设置的是权限的补码),在计算新创建文件的默认权限的时候,首先写出文件最大的权限模式,然后从这个模式中拿走umask就可以得到新创建文件的默认权限。Linux操作系统中的文件有三种权限:r(读)、w(写)和x(执行),分别用数字4、2、1代表。对于新创建的文件来说,最大的权限是6,因为新创建的文件不能有执行权限,只能在创建后通过chmod命令(chmod是Linux系统管理员最常用到的命令之一,用于改变文件或目录的访问权限)给文件增加执行权限。新创建的文件的最大权限模式为666(-rw-rw-rw-),由于unmask设置为244,因此,从666中拿去244后变为422(-rw--w-)。
所以,本题的答案为C。
14.
下列有关继承的描述中,正确的是______。A.子类能继承父类的非私有方法和属性B.子类能继承父类的所有方法和属性C.子类只能继承父类的公有方法和属性D.子类能继承父类的方法,而不是属性正确答案:A[解析]本题中,继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力,子类能继承父类的公有和受保护的方法和属性,但是不能继承私有方法和属性。所以,选项A正确,选项B、选项C与选项D错误。
15.
一棵有12个结点的完全二叉树,其深度为______。A.4B.5C.3D.6正确答案:A
16.
同一进程下的多个线程可以共享的资源是______。A.栈B.数据区C.寄存器D.线程ID正确答案:B
17.
往一个栈中顺序push下列元素:ABCDE,其pop可能的序列中,不可能存在的情况是______。A.BACDEB.ACDBEC.AEBCDD.AEDCB正确答案:C
18.
容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变?______A.CardLayoutB.FlowLayoutC.BorderLayoutD.GridLayout正确答案:B
19.
IP协议属于______。A.网络互联层B.应用层C.数据链路层D.传输层正确答案:A
20.
在JSP叶旨令中,isELIgnored="boolean"的意思是______。A.决定该页面是否是一个错误处理页面B.决定是否实现setvlet的单线程模式C.决定是否支持EL表示D.没有具体的含义正确答案:C[解析]isELIgnored属性用来指定该JSP文件是否支持EL(ExpressionLanguage,表达式语言)表达式。如果值为true,那么对于类似于${..}这样的内容,直接会原样输出,而不会进行EL表达式运算;如果值为false,那么表示EL表达式不会被忽略,该EL表达式将会被执行。其属性配置语法格式如下:<%@pageisELIgnored="true|false"%>。所以,选项C正确。
21.
在JavaScript中,以下验证一个数据是否是数字的描述中,正确的是______。A.imtI=value若报错就不是数字B.如果用Integer.parseInt(yalue)有误就不是数字C.没有方法验证D.利用isNaN(value)返回的boolean进行判断正确答案:D[解析]对于选项A,JavaScript是弱类型语言(也称为弱类型定义语言,与强类型定义相反。弱类型语言允许将一块内存看作多种类型,比如直接将整型变量与字符变量相加。C/C++是静态语言,是强类型语言;Perl与PHP是动态语言,但也是弱类型语言),只有一种类型var。所以,选项A错误。
对于选项B,Integer.parseInt(value)是Java语言中的方法,而不是JavaScript的方法。所以,选项B错误。
对于选项C,JavaScript中验证一个数据是否是数字是存在方法的,可以使用isNaN()函数判断,也可以使用正则表达式判断。所以,选项C错误。
对于选项D,JavaScript提供了一个isNaN()函数用于检查其参数是否是非数字值。所以,选项D正确。
22.
有以下代码:
for(inti=4;i>0;1--){
intj=0;
do{
j++;
if(j=2){
break;
}
}while(j<=i);
System.out.print(j);
}
程序的运行结果是______A.4321B.1232C.2211D.2222正确答案:D[解析]do/while循环是while循环的变体。在检查条件是否为真之前,该循环首先会执行一次代码块,然后检查条件是否为真,如果条件为真,就会重复这个循环。
for循环语句的基本结构如下:
for(表达式1;表达式2;表达式3)
{
循环体
}
它的执行过程如下:
1)执行初始化语句:表达式1(只会被执行一次)。
2)执行表达式2,如果表达式2的结果为false,则结束循环,否则,执行循环体,然后执行表达式3。
3)循环步骤2),直到表达式2的结果为false时退出循环,或者循环体内有退出循环的语句(return或break)。
对于本题而言,第一次进入for循环体时,i=4;然后进入do/while循环体,此时j=0,然后这个循环一直执行j++,直到j=2或j>i的时候退出循环体,显然会先满足j=2的条件退出循环体,此时j的值为2,因此,输出2。下一次for循环的时候,i=3,同理输出结果仍然为2。下一次for循环的时候,i=2,同理输出结果为2。下一次for循环的时候,i=1,同理也会输出2,此时执行for循环的i--操作,i的值变为0,不满足i>0的条件,因此,for循环结束,所以,输出结果为2222,选项D正确。
23.
在Java语言中,用于调用存储过程的对象是______。A.DriverManagerB.ResultSetC.CallableStatemetD.PreparedStatement正确答案:C[解析]存储过程(StoredProcedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。
本题中,对于选项A,DriverManager是JDBC的管理层,它作用于用户和驱动程序之间,管理一组JDBC驱动程序的基本服务,提供用来建立数据库连接的一系列方法。除此以外,DriverManager还处理诸如驱动程序登录时间限制以及登录与跟踪消息的显示等事务。因此,选项A错误。
对于选项B,ResultSet表示查询的结果集,通常通过执行查询数据库的语句生成。ResultSet对象具有指向其当前数据行的光标。最初,光标被置于第一行之前,next方法将光标移动到下一行,因为该方法在ResultSet对象没有下一行时返回false,所以,可以在while循环中使用它来迭代结果集。因此,选项B错误。
对于选项C,CallableStatement提供了用来调用数据库中存储过程的接口,如果有输出参数要注册,说明是输出参数。因此,选项C正确。
对于选项D,PreparedStatement表示预编译的SQL语句的对象,用于执行带参数的预编译SQL语句。因此,选项D错误。
24.
以链接方式存储的线性表(x1、x2、...、xn),访问第i个元素的时间复杂度为______。A.O(1)B.O(n)C.O(logn)D.O(n^2)正确答案:B[解析]单链表查找的时候从头结点开始一直找下一个结点,如果要查找的元素在最后,就相当于找了n次,所以,时间复杂度为O(n)。所以,选项B正确。
25.
代码生成阶段的主要任务是______。A.把高级语言翻译成汇编语言B.把高级语言翻译成机器语言C.把中间代码变换成依赖具体机器的目标代码D.把汇编语言翻译成机器语言正确答案:C[解析]代码生成阶段的主要任务是把中间代码(或经优化处理之后)变换成特定机器上的低级语言代码,它的工作有赖于硬件系统结构和机器指令含义。很显然,选项C正确。
26.
主进程调用fork产生子进程,以下子进程无法继承的资源是______。A.锁B.打开的文件C.进程组IDD.控制终端正确答案:A[解析]fork产生的子进程继承了父进程大部分的资源,主要包括:①父进程的运行环境;②堆栈和内存;③控制终端;④打开文件的描述符和文件方式创建屏蔽字;⑤执行时关闭标志;⑥进程组号;⑦当前工作目录和根目录等。
由此可见,选项B、选项C和选项D的描述是正确的,而锁是与每个进程相关的资源,无法共享。如果可以共享会导致两个进程同时进入临界区访问,进而导致程序运行错误。所以,选项A错误。
27.
对于一个具有n个顶点的无向图,若采用邻接表数据结构表示,则存放表头结点的数组大小为______。A.nB.n+1C.n-1D.n+边数正确答案:A[解析]无向图指的是边没有方向的图。采用邻接表表示的无向图,存放表头结点的数组的大小为图的顶点个数。本题中,无向图的顶点个数为n,所以,存放表头结点的数组大小为n,选项A正确。
28.
有如下代码:
Stringstr1="abcd";
Stringstr2="ab"+new
String("cd");
System.err.println(str1==str2);
上面程序的运行结果是______。A.trueB.falseC.不确定D.编译错误正确答案:B
29.
下列关于Java语言基础知识的描述中,正确的是______。A.类是方法和变量的集合体B.抽象类或接口可以被实例化C.数组是无序数据的集合D.类成员数据必须是公有的正确答案:A[解析]对于选项A,类可以被理解为变量和方法的集合体。因此,选项A正确。
对于选项B,抽象类是不能被实例化的,只有实现了抽象类的具体类才能被实例化。接口也不能被实例化,只有实现了接口方法的类才能被实例化。因此,选项B错误。
对于选项C,数组是一些相同类型数据的集合,而描述中没有提到相同类型,不是很合理。因此,选项C错误。
对于选项D,类的数据类型可以是公开的,也可以是私有的,由于面向对象封装的特点,一般会把成员数据设计为私有的,然后提供公有的方法对其访问。因此,选项D错误。
30.
在有n个结点的顺序表中,算法的时间复杂度是O(1)的操作是______。A.访问第i个结点(1<=i<=n)和求第i个结点的直接前驱(2<=i<=n)B.在第i个结点后插入一个新结点(1<=i<=n)C.删除第i个结点(1<=i<=n)D.将n个结点从小到大排序正确答案:A[解析]线性表也叫顺序表,在线性表中的数据元素,其关系是一一对应的,即除了第一个数据元素和最后一个数据元素之外,其他数据元素都是首尾相接的。
本题中,对于选项A,线性表是随机存取结构,当对其执行插入和删除操作时,只要不是针对最后一个元素,此时都需要进行元素的搬家,最坏情况下的时间复杂度是O(n)。因此,访问第i个结点(1<=i<=n)和求第i个结点的直接前驱(2<=i<=n),其时间复杂度都为O(1)。所以,选项A正确。
对于选项B和选项C,由于插入和删除操作都需要移动元素,此时算法的时间复杂度为O(n),它与题目要求的O(1)的时间复杂度不相符。所以,选项B与选项C错误。
对于选项D,将n个结点从小到大排序的时间复杂度通常介于O(n)与O(n^2)之间,它与题目要求的O(1)的时间复杂度不相符。所以,选项D错误。
二、论述题1.
什么是视图?正确答案:视图是由从数据库的基本表中选取出来的数据组成的逻辑窗口,与基本表不同,它是一个虚表。在数据库中,存放的只是视图的定义,而不存放视图包含的数据项,这些项目仍然存放在原来的基本表结构中。
视图的作用主要有以下几点:首先,可以简化数据查询语句;其次,可以使用户能从多角度看待同一数据;然后,通过引入视图可以提高数据的安全性;最后,视图提供了一定程度的逻辑独立性等。
通过引入视图机制,用户可以将注意力集中在其关心的数据上(而非全部数据),这样就大大提高了用户效率与用户满意度,而且如果这些数据来源于多个基本表结构,或者数据不仅来自于基本表结构,还有一部分数据来源于其他视图,并且搜索条件又比较复杂时,需要编写的查询语句就会比较烦琐,此时定义视图就可以使数据的查询语句变得简单可行。定义视图可以将表与表之间的复杂的操作连接和搜索条件对用户不可见,用户只需要简单地对一个视图进行查询即可,故增加了数据的安全性,但不能提高查询的效率。
2.
用一条SQL语句查询出每门课都大于75分的学生姓名,表名为score,表格式见下表。score表namecoursemark张三语文81张三数学75李四语文76李四数学90王五语文81王五数学100王五英语90正确答案:selectdistinctnamefromscoreawherenotexists(select*fromscorebwhere=andb.mark<=75)。
3.
List、set和Map是否继承自Collection接口?正确答案:List和set继承自Collection接口,Map不是。
4.
实时操作系统的基本特性是什么?正确答案:实时操作系统(Real-TimeOperatingSystem,RTOS)是指当外界事件或数据产生时,能够接受并以足够快地速度予以处理,其处理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初级银行业法律法规与综合能力-银行专业初级《法律法规》名师预测卷1
- 怎样写仲裁申请书
- 仲裁申请书 房屋买卖
- 100以内加减乘除快速能力提升1000题(可打印)
- 新版北师版一年级下册数学课件综合实践 设计教室装饰图第3课时 装饰图展示会
- 维修瓷砖墙漆合同(2篇)
- 调动理由申请书
- 四川省部分名校2024-2025学年高三上学期联合质量检测物理试题(解析版)
- 湖北省随州市2024-2025学年高三上学期元月期末联考物理试题(解析版)
- 生态城市规划与自然的和谐共生
- 烹饪刀工与原料成型技术课件
- 消防设施维护与日常检查培训讲义
- 最新安全生产管理教材电子版
- 良性阵发性位置性眩晕完整版本课件
- 典当业务计划方案
- 《跨境电商B2B操作实务》教学大纲
- 老化箱点检表A4版本
- 音标教学课件(共73张PPT)
- 2012数据结构英文试卷A及答案
- 二次回路施工验收
- 自由组合定律的应用9331的变式
评论
0/150
提交评论