( 2019 ---- 2020 学年第 学期)
课程名称: Java程序设计 适用专业(班级): 考试时间:90分钟 考试形式:上机考试 满分:100分 一、选择题(每题3分,共45分) 1、Java是从( )语言改进重新设计。 A、Python B、C++ C、Pasacal D、BASIC 2、下列那个标识符的定义是不正确的( )。 A、Class B、_123Name C、eye-num D、$100 3、下列语句哪一个正确( )。 A.Java程序经编译后会产生machine code B.Java程序经编译后会产生byte code C.Java程序经编译后会产生DLL D.以上都不正确 4、下列说法正确的有( )。 A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 5、提供Java存取数据库能力的包是( )。 A.java.sql B.java.awt C.java.lang D.java.swing 6、下列运算符合法的是( )。 A.&& B.<> C.if D.:= 7、执行如下程序代码: int a=0; int c=0; do{ 第 1 页,共 9 页
--c; a=a-1; }while(a>0); 后,c的值是( ) A.0 B.1 C.-1 D.死循环 8、下列哪一种叙述是正确的( )。 A. abstract修饰符可修饰属性、方法和类 B.抽象方法的body部分必须用一对大括号{ }包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 9、下列语句正确的是( )。 A.形式参数可被视为local variable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象 10、下列哪种说法是正确的( )。 A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 11、下列说法正确的是( )。 A.数组是一种对象 B.数组属于一种原生类 C.int number=[]={31,23,33,43,35,63} D.数组的大小可以任意改变 12、可以用来修饰interface的有( )。 A.private B.public C.protected D.static 13、下列说法正确的有( )。 A.Java面向对象语言容许单独的过程与函数存在 B.Java面向对象语言容许单独的方法存在 C.Java语言中的方法属于类中的成员(member) D.Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同 14、设有定义语句int a[]={1,2,3},则以下对此语句的叙述中错误的是()。 A.定义了一个名为a的一维数组 第 2 页,共 9 页
B.a数组有三个元素 C.a数组的下标为1,2,3 D.数组a中的每个元素是整型 15、字符串”\\’a\\’”的长度是( )。 A、3 B、4 C、5 D、6 二、填空题(每空1分,共15分) 1.SUN公司将java细分为三个版本,三个版本简称为:____________、____________、____________。 2.字符串分两大类,一类是字符串常量,使用____________类的对象表示;另一类是字符串变量,使用____________类的对象表示。 3.数组x定义如下:String x[][]=new String[3][2];x[0][0]=”abc”,x[0][1]=”12345”;。则x.length的值为_______,x[0][1].length的值为__________。 4.Java中类成员的限定词有以下几种:____________、____________、____________和____________,其中____________的限定范围最大。 5.Java_语言中的Math类包含以下常用的方法:求绝对值的方法名为____________、求平方根的方法名为____________,求x的y次方的方法名为____________。 三、简答题(每题5分,共10分) 1.简述面向对象编程的3个原则。 2. 什么是线程?它和进程有什么区别?。 第 3 页,共 9 页
四、编程题(每题10分,共30分) 题1、求1+2!+3!+...+20!的和。 public class Question1 { public static void main(String[] args) { int sum = 0;//总和 (省略) System.out.println(\ } //求阶乘的实现 private static int factorial(int i) { //求阶乘 (省略) return mult;//返回阶乘结果 } } 题2、已知整型数组 int[] arr={4,2,5,3,1},请将数组中的数字按从小到大进行排列(排序方法不限)。 public class Question2 { public static void main(String[] args) { int[] arr = { 4, 2, 5, 3, 1 }; for (int i = 0; i < arr.length; i++) { int tem = i; // 将数组中从i开始的最小的元素所在位置的索引赋值给tem for (int j = i; j < arr.length; j++) { if (arr[j] < arr[tem]) { tem = j; } } // 上面获取了数组中从i开始的最小值的位置索引为tem,利用该索引将第i位上的元素与其进行交换 (省略) } } } 题3、编写Java程序测试JDBC是否已连接MySQL数据库(数据库主机名为localhost,访问账号为root,密码为123456,数据库名为test)。 import java.sql.Connection; import java.sql.DriverManager; public class Question3 { public static void main(String[] args) { Connection conn=null; 第 4 页,共 9 页
} } String hostName=\String dbName=\String userName=\String password=\ (省略)
第 5 页,共 9 页