1.下列与队列结构有关联的是()
A 函数的递归调用
B 数组元素的引用
C 多重循环的执行
D 先到先服务的作业调度
正确答案: D
解释:
队列的修改是以先进先出的原则进行的, D 正确。
2.下面属于黑盒测试方法的是()
A 语句覆盖
B 逻辑覆盖
C 边界值分析
D 路径覆盖
正确答案: C
解释:
黑盒测试不关心程序内部的逻辑,只是根据程序的功能说明来设计测试用例。在使用黑盒测试法时,手头只需要有程序功能说明就可以了。黑盒测试法分等价类
划分法、边界值分析法和错误推测法,答案为 C 。而 A 、 B 、 D 均为白盒测试方法。
3.下列不能用作存储容量单位的是( )。
A Byte
B GB
C MIPS 衡量计算机速度的指标
D KB
正确答案: C
参考答案:
计算机存储信息的最小单位,称之为位( bit ,又称比特),存储器中所包含存储单元的数量称为存储容量,其计量基本单位是字节( Byte ,简称 B ), 8 个
二进制位称为 1 个字节,此外还有 KB 、 MB 、 GB 、 TB 等。 MIPS 即 Million Instruction Per Second 的简写--计算机每秒钟执行的百万指令数,是衡量
计算机速度的指标。
4.一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是( )。
A 1:1联系
B 1:m联系
C m:1联系
D m:n联系
正确答案: D
解释:
因为一个教师可讲授多门课程,而一门课程又能由多个老师讲授所以他们之间是多对多的关系,可以表示为 m : n 。
5.下列关于栈叙述正确的是( )。
A 算法就是程序
B 设计算法时只需要考虑数据结构的设计
C 设计算法时只需要考虑结果的可靠性
D 以上三种说法都不对
正确答案: D
解释:
算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法,所以 A 错误。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的
控制结构。
6.java语言的下面几种数组复制方法中,哪个效率最高?
A for 循环逐一复制
B System.arraycopy
C Array.copyOf
D 使用clone方法
正确答案: B
7.结构化程序的三种基本结构是( )
A 递归、迭代和回溯
B 过程、函数和子程序
C 顺序、选择和循环
D 调用、返回和选择
正确答案: C
解释:
仅使用顺序、选择、循环三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。故本题答案为 C 选项。
8.下面属于软件定义阶段任务的是( )
A 需求分析
B 软件测试
C 详细设计
D 系统维护
正确答案: A
解释:
软件生命周期分为 3 个阶段:软件定义阶段,任务是确定软件开发工作必须完成的目标,确定工程的可行性;软件开发阶段,任务是具体完成设计和实现定义阶
段所定义的软件,通常包括总体设计、详细设计、编码和测试;软件维护阶段,任务是使软件在运行中持久地满足用户的需要。需求分析属于软件定义阶段的任
务。故本题答案为 A 选项。
9.1GB 的准确值是( )。
A 1024×1024 Bytes
B 1024 KB
C 1024 MB
D 1000×1000 KB
正确答案: C
解释:
1GB=1024MB=1024 × 1024KB=1024 × 1024 × 1024B 。
10.关于 Socket 通信编程,以下描述错误的是:( )
A 服务器端通过new ServerSocket()创建TCP连接对象
B 服务器端通过TCP连接对象调用accept()方法创建通信的Socket对象
C 客户端通过new Socket()方法创建通信的Socket对象
D 客户端通过new ServerSocket()创建TCP连接对象
正确答案: D
1.题目描述
A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息:
A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每个人所拥有的糖果数.
现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C。这里保证最多只有一组整数A,B,C满足所有题设条件。
输入描述:
输入为一行,一共4个整数,分别为A - B,B - C,A + B,B + C,用空格隔开。 范围均在-30到30之间(闭区间)。
输出描述:
输出为一行,如果存在满足的整数A,B,C则按顺序输出A,B,C,用空格隔开,行末无空格。 如果不存在这样的整数A,B,C,则输出No
示例1
输入
1 -2 3 4
输出
2 1 3
解题思路:
A -B = a (1)
B - C = b (2)
A + B =c (3)
B + C =d (4)
(1) + (3)得A= (a + c) / 2
(3) - (1)得B1 = (c - a) / 2
(2) + (4) 得B2=(b + d ) / 2
(4) - (2)得C= ((d - b) / 2
如果B1=B2则存在这样的整数
import java.util.*;
//
public class Main {
//n个数里最小的k个
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
int d = scanner.nextInt();
int A = (a + c) / 2;
int B1 = (c - a) / 2;
int B2 = (b + d) / 2;
int C = (d - b) / 2;
if (B1 != B2) {
System.out.println("No");
} else {
System.out.println(A + " " + B1 + " " + C);
}
}
}
}
2.题目描述
给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数
输入描述:
输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。
输出描述:
为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等)
示例1
输入
7 2
输出
111
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()){
int m = scanner.nextInt();
int n = scanner.nextInt();
String table = "0123456789ABCDEF";
StringBuilder s = new StringBuilder();
boolean flag = false;
if(m < 0){
m = -m;
flag = true;
}
while(m != 0){
s.append(table.charAt(m % n));
m = m / n;
}
if(flag){
s.append("-");
}
s.reverse();
System.out.println(s);
}
}
}