【计算机二级Java语言】卷018
选择题
公共知识
算法的复杂度包括时间复杂度与空间复杂度。
算法的时间复杂度是指执行算法所需要的计算工作量; 算法的空间复杂度是指算法在执行过程中所需要的内存空间。
C项中, 元素3有两个前件, 属于非线性结构。
经过一系列入栈与退栈操作后top = m, 则栈中有1个元素, 若现在又退出一个元素, 那么栈顶指针下移一位, 回到m + 1的位置。
循环链表是线性链表的一种形式, 属于线性结构, 采用链式存储结构, 而循环队列是队列的一种顺序存储结构。
则平均比较次数:(1 + 2+┉+n) / n = (n(n + 1) / 2) / n = (n + 1) / 2。
系统软件是管理计算机的资源, 提高计算机使用效率并服务于其他程序的软件, 如操作系统, 编译程序, 汇编程序, 数据库管理系统和网络软件等。
UNIX系统属于操作系统, 故属于系统软件。
ERP系统、办公自动化系统、学生成绩管理系统属于应用软件。
②严格执行测试计划, 排除测试的随意性。
③充分注意测试中的群集现象。
④程序员应避免检查自己的程序。
⑤穷举测试不可能。
⑥妥善保存测试计划、测试用例、出错统计和最终分析报告, 为维护提供方便。
概念模式是数据库系统中全局数据逻辑结构的描述, 是全体用户公共数据视图。
外模式也称子模式或者用户模式, 是用户的数据视图, 也就是用户所能够看见和使用的局部数据的逻辑结构和特征的描述, 是与某一应用有关的数据的逻辑表示。
内模式又称物理模式, 是数据物理结构和存储方式的描述, 是数据在数据库内部的表示方式。
②元组(行)均不相同——元组的唯一性。
③元组(行)的次序可以任意交换——元组的次序无关性。
④元组(行)的分量是不可分割的基本特征——元组分量的原子性。
⑤属性(列)名各不相同——属性名唯一性。
⑥属性(列)与次序无关, 可以任意交换——属性的次序无关性。
⑦属性(列)的分量具有与该属性相同的值域——分量值域的统一性。
满足最低要求的叫第一范式, 简称1NF。
在满足第一范式的基础上, 进一步满足更多要求规范则是第二范式。
然后在满足第二范式的基础上, 还可以再满足第三范式, 以此类推。
对于关系模式, 若其中的每个属性都已不能再分为简单项, 则它属于第一范式。
若某个关系R为第一范式, 并且R中每一个非主属性完全依赖于R的某个候选键, 则称其为第二范式。
第二范式消除了非主属性对主键的部分依赖。
如果关系R是第二范式, 并且每个非主属性都不传递依赖于R的候选键, 则称R为第三范式。
(传递依赖:在关系模式中, 如果Y→X, X→A, 且X不决定Y和A不属于X, 那么Y→A是传递依赖。
)比第三范式更高级的BCF范式, 它要求所有属性都不传递依赖于关系的任何候选键
专业知识
选项B正确, 本题答案为B。
本题答案为D。
int a = 5, b = 6, c = 8, t = 0;
t = a > b ? (a > c ? a : c) : b;
选项C正确, 本题答案为C。
int x = 8, f;
f = 0;
for (int i = 2; i < x; i++) {
if (x % i != 0)
continue;
f = f + i;
}
break:跳出循环体, 继续执行循环外的函数体
return :跳出整个函数体, 函数体后面的部分不再执行
本题的运行结果为6, 选项B正确, 本题答案为B。
int a = 2, b = 8, c = 5;
if (a < b)
a = b;
if (a < c)
a = c;
分支结构中如果多个条件同时满足, 那么只执行最前面的表达式, 后面表达式不执行。
选项B正确, 本题答案为B。
int x = 1, y = 5;
do {
x++;
y--;
} while (x <= y);
在检查while()条件是否为真之前, 该循环首先会执行一次do { } 之内的语句, 然后在while()内检查条件是否为真, 如果条件为真的话, 就会重复do...while这个循环, 直至while()为假。
i++:先引用后增加++i:先增加后引用
i++:先在i所在的表达式中使用i的当前值, 后让i加1++i:让i先加1, 然后在i所在的表达式中使用i的新值
选项B正确, 本题答案为B。
int n = 0;
for (int a = 1; a <= 9; a++)
for (int b = 0; b <= 9; b++)
if ((a * 10 + b) % 10 == 0)
n++;
int[] a = new int[5];
a[0] = 1;
for (int i = 1; i < 5; i++)
a[i] = a[i - 1] * 2;
for (int i = 0; i < 5; i++)
System.out.print(a[i++] + " ");
而抽象类是指在普通类的结构里面增加抽象方法的组成部分。
那么什么叫抽象方法呢?在所有的普通方法上面都会有一个"{}", 这个表示方法体, 有方法体的方法一定可以被对象直接使用。
而抽象方法, 是指没有方法体的方法, 同时抽象方法还必须使用关键字abstract做修饰。
而拥有抽象方法的类就是抽象类, 抽象类要使用abstract关键字声明, 选项B正确, 本题答案为B。
2, 外部类要访问内部类, 必须建立内部类的对象。
一般用于类的设计。
分析事物时, 发现该事物描述中还有事物, 而且这个事物还在访问被描述事物的内容。
这时就是还有的事物定义成内部类来描述。
内部类能直接访问外部类中成员, 是因为内部类持有了外部类的引用, 即外部类名.this。
访问内部类成员 则要显示写出内部类.this内部类也可以存放在局部位置上, 但是内部类在局部位置上只能访问局部中被final修饰的局部变量。
选项C正确, 本题答案为C。
String str1 = "Good";
String str2 = "morning";
String str3 = str1.toLowerCase() + str2.toUpperCase();
System.out.println(str3);
选项B正确, 本题答案为B。
public class Test {
static String s;
public static void main(String[] args) {
System.out.println(" s=" + s);
}
}
int[][] a = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
int[][] b = { { 2, 3, 4 }, { 5, 6, 7 }, { 8, 9, 10 } };
int[][] c = new int[3][3];
int i, j, k, dim = 3;
for (i = 0; i < dim; i++)
for (j = 0; j < dim; j++) {
c[i][j] = 0;
for (k = 0; k < dim; k++)
c[i][j] += a[i][k] * b[k][j];
}
System.out.print(c[0][0] + " " + c[2][2]);
byte studentAge = 0;
Scanner scnr = new Scanner(System.in);
try {
System.out.println("Input student Age: ");
studentAge = scnr.nextByte();
if (studentAge < 0)
throw new Exception("Not Positive");
System.out.println("Student Age: " + studentAge);
} catch (InputMismatchException exc) {
System.out.println("Input mismatch");
} catch (Exception exc) {
System.out.println("Error:" + exc.getMessage());
}
B)boolean add(E e)确保此 collection 包含指定的元素(可选操作)。
C)boolean removeAll(Collection<?>c)移除此 collection 中那些也包含在指定 collection 中 的所有元素。
D)boolean addAll(Collection<?extends E > c)将指定 collection 中的所有元素都添加到此 collection 中。
本题答案为C。
选项B正确, 本题答案为B。
输入流没有Writer选项D说法错误, 本题答案为D。
B)f.getParent();
返回此抽象路径名父目录的路径名字符串;
如果此 路径名没有指定父目录, 则返回 null。
C)f.getParentFile();
返回此抽象路径名父目录的抽象路径名;
如果 此路径名没有指定父目录, 则返回 null D)f.list();
返回一个字符串数组, 这些字符串指定此抽象路径名表 示的目录中的文件和目录。
本题答案为A。
import java.io.*;
public class test {
public static void main(String[] args) {
try {
FileInputStream is = new FileInputStream("D:\\from.txt");
FileOutputStream os = new FileOutputStream("D:\\to.txt");
BufferedInputStream bi = new BufferedInputStream(is);
BufferedOutputStream bo = new _________________(os);
byte[] data = new _____________[1];
while (bi.read(data) != -1) {
bo.write(data);
}
bo.flush();
bi.close();
bo.close();
} catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
其外观与本地操作系统有关。
JButton是Swing中组件, 是用纯JAVA语言编写的, 不信赖于本地操作系统的GUI。
Swing中组件可以跨平台运行。
其外观与本地操作系统无关, 可以同时显示文字和图标。
选项C正确, 本题答案为C。
构件在容器中的放置规律是从上到下、从左到右进行。
BorderLayout是Window、Frame和Dialog默认布局管理器。
BorderLayout布局管理器把容器分成5个区域:North、South、East、West和Center, 每个区域只能放置一个构件。
选项B正确, 本题答案为B。
<img border = "0" alt = "" src = "http://res.weilaijiaoyu.cn/CourseFile/JAVA/PC/Images/ja_19_3.png">
选项A正确, 本题答案为A。
选项D正确, 本题答案为D。
public class Test1 ____________ {
private int x = 0;
boolean flag = true;
public static void main(String[] args) {
Test1 r = new Test1();
Thread t1 = new Thread(r);
t1._______();
}
public void run() {
while (flag) {
x++;
System.out.print(x + " ");
if (x >= 5)
flag = false;
}
}
}
线程开始是调用start()方法, 选项A正确, 本题答案为A。
如果将变量定义为public, 对象在外界可以绕过同步方法的控制而直接取得它, 并改动它。
这也是JavaBean的标准实现方式之一。
2. 如果instance变量是一个对象, 如数组或ArrayList什么的, 那上述方法仍然不安全, 因为当外界对象通过get方法拿到这个instance对象的引用后, 又将其指向另一个对象, 那么这个private变量也就变了, 岂不是很危险。
这个时候就需要将get方法也加上synchronized同步, 并且, 只返回这个private对象的clone()――这样, 调用端得到的就是对象副本的引用了。
选项C正确, 本题答案为C。
Applet运行时, 首先由浏览器调用init()方法, 通知该Applet已经被加载到浏览器中, 使Applet执行一些基本的初始化。
该方法不是必须的, 可以没有, Applet可以正常编译和运行。
选项D正确, 本题答案为D。
<HTML><BODY><APPLET CODE = "AppletTest6.class" WIDTH = 150 HEIGHT = 25></APPLET></BODY></HTML > import java.awt.*;
import __________.*;
public class _________ extends JApplet {
JLabel label;
public void init() {
Container contentPane = getContentPane();
label = new JLabel();
contentPane.add(label);
label.setText(" Happy new year!");
}
}
编程题
在注释行"//**********Found**********"下一行语句的下划线地方填入
正确内容, 然后删除下划线, 请勿删除注释行或改动其他已有语句内容。存
盘时文件必须存放在考生文件夹下, 不得改变原有文件的文件名。
程序中定义了三个整型的一维数组a、b、c, 请将a数组中的对应项与b数组
中的对应项相加后赋给数组c的对应项(例如:c[i] = a[i] + b[i]), 最后计
算输出数组c中所有项之和。程序运行结果如下:
s = 64
1.class 2.length 3.c[j] 4.out
填空1:在java中创建类必须用关键字class
填空2:获取数组的长度用length属性
填空3:程序要求数组c中所有元素的和, 所以必须获取数组c中的每一项值
填空4:输出语句为System.out.println()
Java_2.java是不完整的, 请在注释行"//**********Found**********"
下一行语句的下划线地方填入正确内容, 然后删除下划线, 请勿删除注释行或改动其他已有语句内容。
存盘时文件必须存放在考生文件夹下, 不得改变原有文件的文件名。
本题的要求是:在Applet中显示0至10的阶乘。请完善Java_2.java文件, 并进行调试(在命令行中使用appletviewer Java_2.html, 或者使用集成开发环境), 使运行结果为:
1.Applet 2.add 3.factorial(i)4.number
填空1 : Applet是采用Java编程语言编写的小应用程序, 该程序可以包含在 HTML(标准通用标记语言的一个应用)页中, 与在页中包含图像的方式大致相同。
本程序需要继承该类
填空2:需要将TextArea组件添加到Applet容器的一端, add()方法提供此操作
填空3:在输出语句中需要调用处理阶乘算法的方法, factorial()方法提供算法结果
填空4:阶乘的定义为:n != 1×2×3×...×n。
阶乘亦可以递归方式定义:0 != 1, n != (n - 1) !×n。
在注释行"//**********Found**********"下一行语句的下划线地方填入
正确内容, 然后删除下划线, 请勿删除注释行或改动其他已有语句内容。存
盘时文件必须存放在考生文件夹下, 不得改变原有文件的文件名。
本题的要求是:
程序中用Swing编写了一个窗体, 窗体内含有两个按钮"New"和"Close all"。
当"New"按钮被按下后, 就生成一个新的窗体。当"Close all"按钮被按下
后, 就关闭所有现在已经打开的窗体。程序运行如下图所示。
1.javax 2.extends 3.newButton 4.f 5.ActionListener
填空1:所有swing构件中的类都是java扩展包中的类, java的扩展包为javax
填空2 : JPanel 是 Java图形用户界面(GUI)工具包swing中的面板容器类, 包含在javax.swing 包中, 是一种轻量级容器, 可以加入到JFrame窗体中, 本类需要继承该类才能实现相关效果
填空3:将指定的构件添加到容器中, add()方法提供此操作, 本程序需将按钮构件添加到容器中, newButton为新建的按钮需添加进去
填空4:程序要求将窗口显示出来, CloseFrame类继承JFrame类, 提供setVisible()方法
填空5 : ActionListener用于接收操作事件的侦听器接口。
对处理操作事件感兴趣的类可以实现此接口, 而使用该类创建的对象可使用组件的 addActionListener 方法向该组件注册。
在发生操作事件时, 调用该对象的 actionPerformed 方法。
本程序关闭窗口需要实现该类