编程笔试测试试题及参考的答案doc.docx
- 文档编号:14958079
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:18
- 大小:38.53KB
编程笔试测试试题及参考的答案doc.docx
《编程笔试测试试题及参考的答案doc.docx》由会员分享,可在线阅读,更多相关《编程笔试测试试题及参考的答案doc.docx(18页珍藏版)》请在冰点文库上搜索。
编程笔试测试试题及参考的答案doc
2008年4月笔试试卷及参考答案
一、选择题
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
(1)程序流程图中带有箭头的线段表示的是
A)图元关系B)数据流
C)控制流D)调用关系
(2)结构化程序设计的基本原则不包括
A)多态性
B)自顶向下
C)模块化
D)逐步求精
(3)软件设计中模块划分应遵循的准则是
A)低内聚低耦合B)高内聚低耦合
C)低内聚高耦合D)高内聚高耦合
(4)在软件开发中,需求分析阶段产生的主要文档是
A)可行性分析报告
B)软件需求规格说明书
C)概要设计说明书
D)集成测试计划
(5)算法的有穷性是指
A)算法程序的运行时间是有限的
B)算法程序所处理的数据量是有限的
C)算法程序的长度是有限的
D)算法只能被有限的用户使用
(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是
A)快速排序B)冒泡排序C)直接插入排序D)堆排序
(7)下列关于栈的叙述正确的是
A)栈按“先进先出”组织数据B)栈按“先进后出”组织数据
C)只能在栈底插入数据D)不能删除数据
(8)在数据库设计中,将E-R图转换成关系数据模型的过程属于
A)需求分析阶段B)概念设计阶段C)逻辑设计阶段D)物理设计阶段
(9)有三个关系R、S和T,如下:
由关系R和S通过运算得到关系T,则所使用的运算为
A)并B)自然连接C)笛卡尔积D)交
(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为
A)课号,成绩B)学号,成绩
C)学号,课号D)学号,姓名,成绩
(11)下列对Java特性的叙述中,错误的是
A)在编写Java子类时可以自由地增加新方法和属性
B)Java的Applet要求编程首先创建JFrame窗口
C)Java语言用解释器执行字节码
D)Java中的类一般都有自己的属性和方法
(12)下列对Java源程序结构的叙述中,错误的是
A)import语句必须在所有类定义之前
B)接口定义允许0或多个
C)JavaApplication中的publicclass类定义允许0或多个
D)package语句允许0或1个
(13)下列变量定义中,正确的是
A)long1=123LB)long1=3.14156fC)inti=k
D)doubled=1.55989E2f(14)下列Java表达式
19/3
(int)71.7-2*37%3
(double)1/8+3计算结果是
A)6.3B)6C)6.4D)66463676521212.53.1252.53.125
(15)switch语句中表达式(expression)的值不允许用的类型是
A)byteB)int
C)booleanD)char
(16)下列语句能给数组赋值而不使用for循环的是
A)myArray{[1]=One;[2]=Two;[3]=Three;}
B)Strings[5]=newString[]{Zero,One,Two,There,Four};C)Strings[]=newString[]{Zero,One,Two,There,Four};D)Strings[]=newString[]=|Zero,One,Two,There,Four};(17)Swing与AWT相比新增的布局管理器是
A)CardLayoutB)CardLayoutC)CardBagLayoutD)BoxLayout(18)下列语句中正确的是
A)System.out.println(1+'1');B)inti=2+2;C)Stings=on+'ong';D)byteb=257;(19)下列关键字中可以表示常量的是
A)finalB)defaultC)privateD)transient
(20)在Java语言中,被称为内存分配的运算符是
A)newB)instanceofC)[]D)()(21)阅读下面程序
pubicclassCycle{
publicstaticvoidmain(Stringargs[]){System.out.println(args[0]);
在命令行中输入javaCycleonetwo,该程序输出结果是
A)CycleB)one
C)twoD)上述A、B、C、均不对
(22)阅读下面程序
publicclassMyVal{
publicstaticvoidmain(Stringargs[]){MyValm=newMyVal();
m.amethod();
}
publicvoidamethod(){
booleanb[]=newBoolean[5];
}}
程序编译或运行结果是
A)1B)nullC)D)编译不能过
(23)阅读下面求质数的程序
importjava.lang.Math.*;publicclassMorePrimesTest{
publicstaticvoidmain(String[]args){long[]primes=newlong[20];primes[0]2L;primes[1]3L;longnumber=5L;outer:
for(intcount=2;count<primes.length;number+=2L){
longlimit=(long)Math.ceil(Math.sqrt((double)number));for(inti=1;i<count&&primes[i]<limit;i++){if(number______primes[i]==0L){cotinueouter;}}
for(intj=0;j<primes.length;j++){longn=primes[j];
System.out.println(n);}}}
在程序下画线处填入的正确选项是
A)&B)*C)/D)%
(24)接口中,除了抽象方法之外,还可以含有
A)变量B)常量C)成员方法D)构造方法
(25)StringBuffer类字符串对象的长度是
A)固定B)必须小于16个字符
C)可变D)必须大于16个字符
(26)阅读下面写文件的程序
importjava.io.*;
publicclassWriteFile{
publicstaticvoidmain(String[]A){int[]myArray={10,20,30,40};try{
FileOutputStreamf=newFlieOutStream(ints.dat);DataOutputStream______=newDataOutputStream(f);for(inti=0;i<myArray.length;i++)dos.writeInt(myArray[i]);dos.close();
System.out.prinfln(Havewrittenbinaryfileints.dat);}
catch(IOExceptionioe){
System.out.println(IOException);}}
在程序下画线处填入的正确选项是
A)myArrayB)dosC)ioeD)ints(27)阅读下面程序
publicclassTest2______{
publicstaticvoidmain(String[]args){Threadt=newTest2();t.start();}
publicvoidrun(){
System.out.priatln(Howareyou.);}}
在程序下画线处填入的正确的选项是
A)implementsThreadB)extendsRunnableC)implementsRunnableD)extendsThread(28)阅读下面程序
publicclassTestimplementsRunnable{publicstaticvoidmain(String[]args){
_______________________________________;t.start();}
publicvoidmR(){
System.out.println(Hello!
);}
在程序下画线处填入正确选项是
A)Testt=flewTest()
B)Threadt=newThread();
C)Threadt=newThread(newTest());D)Testt=newThread();
(29)下列关于Applet中加载图像的说法,错误的是
A)可以使用Applet类的getImage()方法获得图像对象
B)程序员必须自行定义获得图像及显示图像的类和方法
C)图像由一个java.Image类的对象来表示
D)可以使用Graphics类的drawImage()方法显示图像
(30)下列带下画线的标识符符合Java命名约定的是
A)packagecom.Bi.hrB)publicclassxyz
C)intID)voidsetCustomerName()
(31)RandomAccessFile是java.io包中的一个兼有输入输出功能的类。
由于它是随机访问,所以文件读写一个记录的位置是
A)起始B)终止C)任意D)固定
(32)阅读下面Applet程序
importjavax.swing.*;importjava.awt.*;
publicclassSwintgAppletextendsJApplet{
JLabel1=newJLabel(ThisisaSwingApplet.);publicvoidinit(){
________________________________}}
在程序下画线处填入正确的选项是
A)ContainercontentPane=getContenPane();cotentPane.add
(1);B)JPanelcomtenPane=newJpane();contentPane.add
(1);C)contentPane.add
(1);D)add
(1);
(33)在Java中,“目录”被看作是
A)文件B)流C)数据D)接口
(34)阅读下面实现堆栈类并发控制的部分代码
publicclassDataStack{privateintidx=0;
privateint[]data=newint[8];publicvoidpush(inti){
.________________{data[idx]=i;idx++;}}}……
}
在程序下画线处填入正确选项是
A)synchronizedB)synchronized(this)C)synchronized()D)synchronized(idx)(35)下列关于对象串行化的说法错误的是
A)Java中,默认所有类的对象都可串行化
B)在对象串行化时,不保存对象所属类的构造方法
C)在实现Serializeble接口的类中,用transient关键字可使某些数据不被串行化
D)ObjectInputStream和ObjectOutputStream类都支持对象的读和写
二、填空题
注意:
以命令关键字填空的必须拼写完整。
(1)测试用例包括输入值集和【1】值集。
(2)深度为5的满二叉树有【2】个叶子结点。
(3)设某循环队列的容量为50,头指针front=5(指向队头元素的前一位置),尾指针rear=29(指向队尾元素),则该循环队列中共有【3】个元素。
(4)在关系数据库中,用来表示实体之间联系的是【4】。
(5)在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,【5】
负责数据的模式定义与数据的物理存取构建。
(6)按照Java中的命名约定,方法名的起始字母一般都是小写,但是【6】方法例外。
(7)Swing中的按钮类是【7】。
(8)Java中的三元运算符是【8】。
(9)Java输入/输出流中包括字节流、【9】、文件流、对象流及管道流。
(10)在Java中,对象流以【10】方式传送和存储。
(11)请将下面程序补充完整。
publicclassPowerCalc{
publicstaticvoidmain(String[]args){doublex=5.0;
System.out.println(x+tothepower4is+power(x,4));System.out.println(7.5tothepower5is+power(7.5,5));System.out.println(7.5tothepower0is+power(7.5,0));System.out.println(10tothepower-2is+power(10,-2));}
staticdouble【11】
(doublex,intn){if(n>1)
returnx*power(x,n-1);elseif(n<0)
return1.0/power(x,-n);else
returnn==0?
1.0:
x;}}
(12)请将下面的Applet程序补充完整。
importjava.awt.*;importjava.applet.*;publicclassHi【12】
{
publicvoidpaint(Graphicsg){g.drawString(Hi!
25,25);}}
(13)Swing中的组件往往采用MVC结构,MVC指的是Model、View和【13】。
(14)Java中,可以通过建立java.lang.【14】类或其子类的实例创建和控制线程。
(15)如果一个线程调用【15】()方法,将使该线程进入休眠状态。
参考答案及解析
一、选择题
(1)[答案]C)
[解析]程序流程图是人们对解决问题的方法、思路或算法的一种描述。
其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。
带箭头的线段在数据流程图中表示数据流。
带箭头的线段在程序流程图中表示控制流。
题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。
在模块之间用带有箭头的线段表示调用关系。
构成程序流程图的基本图符及含义:
→或↓表示控制流;□表示加工步骤;◇表示逻辑条件。
(2)[答案]A)
[解析]结构化程序设计的原则包括:
“自顶而下,逐步求精”的设计思想,“独立功能,单出、入口”的模块化设计等。
多态性是面向对象程序语言的特征。
(3)[答案]B)
[解析]模块划分应遵循的准则包括模块之间的耦合和内聚。
一般来说,要求模块之间的耦合尽可能地低,即模块尽可能独立,要求模块的内聚程度尽可能地高,即高内聚、低耦合的原则。
(4)[答案]B)
[解析]需求分析阶段的工作主要包括需求获取、需求分析、编写需求规格说明书和需求评审等4方面。
产生的主要文档为软件需求规格说明书,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进程的依据。
(5)[答案]A)
[解析]算法具有5个特性:
①有穷性:
一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的。
②确定性:
算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。
③可行性:
一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。
④输入:
一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合。
⑤输出:
一个算法有一个或多个输出。
(6)[答案]D)
[解析]在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都是n(n-1)/2,堆排序需要比较的次数为nlog2n。
(7)[答案]B)
[解析]在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的一端称为栈底。
栈顶元素总是最后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。
即栈是按照“先进后出”或“后进先出”的原则组织数据的。
(8)[答案]C)
[解析]数据库的逻辑设计分为:
①将概念模型转换成一般的数据模型;②将一般的数据模型转换为特定的数据库管理系统所支持的数据模型。
把概念模型转换成关系数据模型就是把E-R图转换成一组关系模式。
(9)[答案]D)
[解析]在关系运算中,交的定义如下:
设R1和R2为参加运算的两个关系,它们具有相同的度n,且相对应的属性值取自同一个域,则R1∩R2为交运算,结果仍为度等于n的关系,其中,交运算的结果既属于R1又属于R2。
(10)[答案]C)
[解析]“选课SC”表是“学生S”表和“课程C”表的映射表,主键是两个表主键的组合。
(11)[答案]B)
[解析]编写自己的Applel时不需要创建JFrame窗口,但需要继承Applet类,并嵌入html网页中运行。
(12)[答案]C)
[解析]Javaapplication中的publicclass定义只能是0个或1个,不能为多个,而且如果是1个的话,文件名要与publicclass修饰的类名相同。
(13)[答案]A)
[解析]根据Java向下转型的特点,B)需要强制类型转换,C)字符串类型不能赋给整型,D)可以自动类型转换,但不推荐使用。
(14)[答案]D)
[解析]“/”表示整除,“int”将71.7强制转化为整数71后再做减法运算,“%”是取余运算,“double”将1/8转化成double类型后做加法运算。
(15)[答案]C)
[解析]switch语句用于多重选择,其参数可以是字节型、整型或字符型;而布尔型只有两个值(True、False),一般用于if语句。
(16)[答案]C)
[解析]A)、D)语法不正确,B)中s[5]的形式只能通过for循环的格式进行赋值,而不能直接赋值。
C)中表达式左侧的“[]”说明现在定义一个数组,不需要指明数组长度,而表达式右侧“[]”在后面直接紧跟初始内容时也是不需要指定数组大小的,数组大小直接由初值长度决定。
(17)[答案]D)
[解析]AWT的布局管理器有FlowLayout、GridLayout、BorderLayout、CardLayout和GridBagLayout。
Swing的布局管理器有CenterLavout、BoxLayout、OverlayLayout和SpringLayout。
(18)[答案]A)
[解析]B)整型不能与字符串类型直接相加,D)中“+”表示两个字符串的拼接,“one”是非法字符串常量声明,D)中赋值类型不匹配。
(19)[答案]A)
[解析]final关键字声明的变量不能再修改,即为常量。
default关键字用于在switch分支里作默认分支项;private关键字则用于声明私有变量和方法类;transient关键字用于修饰变量以表明此变量易变,不需要串行化处理。
(20)[答案]A)
[解析]在Java中对内存进行动态分配的只有通过使用关键字new。
instanceof用于测试某个对象是否为某个类的实例;[]、()是与数组、函数声明或运算相关的符号,不涉及内存分配。
(21)[答案]B)
[解析]main方法中的参数args是String类型的数组,所以当在命令行中输入参数one、two时,args数组中有两个元素:
arg[0]=one,arg[1]=two。
所以打印输出arg[0]为one。
(22)[答案]C)
[解析]编译能通过,但不在控制台输出任何信息。
程序只是实例化了一个布尔类型的数组,且由于此数组为局部变量,不会自动初始化,故其中值都为null。
(23)[答案]D)
[解析]数组primes[]用于保存已经判断出来的质数,内层循环用来判断number是否为质数,判断的方法是用number去除数组中已判断的质数,看余数是否为0。
若为0则不是质数,跳到外层循环。
所以下画线处应是取余操作。
(24)[答案]B)
[解析]接口只提供抽象方法,但并不提供对其的实现,并且方法默认都是公有的,而提供实例字段和方法实现是继承接口类的任务,所以接口中没有成员方法和构造方法。
接口中还可以定义常量,但不能定义变量。
(25)[答案]C)
[解析]StringBuffer是动态构造字符串的类,它能根据字符串长度动态分配内存,且它的实现是同步的。
与之对应的是StringBuilder,此类并不保证同步,但占用资源更少且执行速度更快,是JDK1.5新增的类。
(26)[答案]B)
[解析]要求填写的是一个DataOuputStream类的对象名称,根据程序下文中出现的dos.writeInt可知,对象名称为dos。
(27)[答
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程 笔试 测试 试题 参考 答案 doc