java面向对象程序设计——学银在线-凯发k8一触即发
934 人参与 2023-09-22 03:49:25 分类 :建筑工程题库
2.2java概述 1、【单选题】java语言的特点不包括: a、面向对象 b、跨平台 c、性能低 d、多线程 2、【单选题】如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项? a、d:\jdk; b、d :\jdk\bin; c、d:\jre\bin; d、d:\jre; 3、【填空题】java的三大体系分别是____、____、____。2.3java的基本语法 1、【单选题】下面哪种类型的文件可以在java虚拟机中运行? a、.java b、.jre c、.exe d、.class 2、【单选题】java编译命令是: a、java b、javac c、appletview d、javadoc 3、【单选题】java解释器命令是: a、java b、javac c、appletview d、javadoc 4、【填空题】java源程序文件和字节码文件的扩展名分别为____和____。 5、【填空题】如果将类myclass声明为public,它的文件名称必须是____才能正常编译。 6、【判断题】java application程序中,必有一个主方法main(),该方法有没有参数都可以。 7、【判断题】java程序中不区分大小写字母。2.8单元测试 1、【单选题】java属于以下哪种语言? a、机器语言 b、汇编语言 c、高级语言 d、以上都不对 2、【单选题】下面哪种类型的文件可以在java虚拟机中运行? a、.java b、.jre c、.exe d、.class 3、【单选题】安装好jdk后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种? a、java文档制作工具 b、java解释器 c、java编译器 d、java启动器 4、【填空题】java程序的运行环境简称之为____。 5、【填空题】编译java程序需要使用____命令。 6、【填空题】javac.exe和java.exe两个可执行程序存放在jdk安装目录的____目录下。 1、【单选题】java编译命令是: a、java b、javac c、appletview d、javadoc 2、【单选题】java解释器命令是: a、java b、javac c、appletview d、javadoc 3、【单选题】如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项? a、d:\jdk; b、d :\jdk\bin; c、d:\jre\bin; d、d:\jre; 4、【单选题】java语言具有许多有点和特点,下列哪个反映了java程序并行机制的特点。 a、安全性 b、多线程 c、跨平台 d、可移植 5、【单选题】java语言的特点不包括: a、健壮性 b、安全性 c、性能低 d、解释型 6、【多选题】以下选项中,哪些属于jdk工具?(多选) a、java编译器 b、java运行工具 c、java文档生成工具 d、java打包工具 7、【多选题】下面关于java语言说法正确的是 a、java语言是面向对象的、解释执行的网络编程语言。 b、java语言具有可移植性,是与平台无关的编程语言。 c、java语言可对内存垃圾自动收集。 d、java语言编写的程序虽然是“一次编译,到处运行”,但必须要有java的运行环境。 8、【填空题】如果将类myclass声明为public,它的文件名称必须是____才能正常编译。 9、【填空题】java的三大体系分别是____、____、____。 10、【填空题】____环境变量用来存储java的编译和运行工具所在的路径,而____环境变量则用来保存保存java虚拟机要运行的“.class”文件路径。(填英文) 11、【填空题】java源程序文件和字节码文件的扩展名分别为____和____。 12、【判断题】java语言具有较好的安全性和可移植性及与平台无关等特性。 13、【判断题】java语言的源程序不是编译型的,而是编译解释型的。 14、【判断题】机器不能直接识别字节码文件,它要经过jvm中的解释器边解释边执行。 15、【判断题】当前路径的标识是“.”。 16、【判断题】java命令不区分大小写,而javac命令区分大小写。 17、【判断题】在运行字节码文件时,使用java命令,一定要给出字节码文件的扩展名.class。 18、【判断题】system类中的println()方法分行显示信息,而print()方法不分行显示信息。 19、【判断题】java程序中不区分大小写字母。 20、【判断题】java.util.scanner(system.in)可以接收用户从键盘输入的简单数据。3.2标识符与关键字 1、【单选题】以下标识符中,不是java语言关键字的是 a、wait b、new c、long d、switch 2、【单选题】在下述字符串中,不属于java语言关键字的是 a、float b、new c、java d、return 3、【多选题】以下选项中,哪些属于合法的标识符?(多选) a、hello_world b、class c、123username d、username123 4、【多选题】下面选项中属于有效的标示符的有( )。 a、idolikethelongnameclass b、$byte c、3_case d、_ok3.3变量与常量 1、【单选题】13以下关于变量的说法错误的是? a、变量名必须是一个有效的标识符 b、变量在定义时可以没有初始值 c、变量一旦被定义,在程序中的任何位置都可以被访问 d、在程序中,可以将一个byte类型的值赋给一个int类型的变量,不需要特殊声明 2、【单选题】下列变量定义错误的是 a、int a b、double b=4.5 c、boolean b=true d、float f=9.8 3、【单选题】下列数据类型的精度由高到低的顺序是 a、float,double,int,long b、double, float,int,byte c、byte,long,double,float d、double,int,float,long 4、【填空题】在java中,byte类型数据占____个字节,short类型数据占____个字节,int类型数据占____个字节,long类型数据占____个字节。 5、【填空题】布尔常量即布尔类型的两个值,分别是____和____。 6、【填空题】.java的数据类型双精度浮点型、布尔型数据的保留字分别是:____、____。 7、【判断题】java语言使用的是unicode字符集,每个字符在内存中占8位。3.4运算符与表达式 1、【单选题】下面的运算符中,用于执行除法运算是哪个? a、/ b、\ c、% d、* 2、【单选题】6 5%3 1的值是 a、2 b、1 c、9 d、10 3、【单选题】下面的逻辑表达式中合法的是 a、(7 8)&&(9-5) b、(9*5)||(9*7) c、9>6&&8<10 d、(9%4)&&(8*3) 4、【单选题】为表示关系:x≥y≥z,应使用的java语言表达式是 a、(x>=y)&&(y>=z) b、(x>=y)and(y>=z) c、(x>=y>=z) d、(x>=y)||(y>=z) 5、【填空题】在逻辑运算符中,运算符____和____用于表示逻辑与,____和____表示逻辑或(短符号写前,长符号写后)。 6、【填空题】若x = 2,则表达式 ( x )/3 的值是____。 7、【填空题】若int a =2; a =3;执行后,变量a的值为____。 8、【填空题】表达式"b" 10的值为____,'b' 10的值为____。3.6技术拓展(数据类型转换和变量作用域) 1、【单选题】以下数据类型转换中,必须进行强制类型转换的是 a、int→char b、short→long c、float→double d、byte→int 2、【单选题】java语言中数值数据的类型能自动转换,按照从左到右的转换次序为 a、byte→int→short→long→float→double b、byte→short→int→long→float→double c、byte→short→int→float→long→double d、short→byte→int→long→float→double 3、【判断题】java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。 4、【判断题】强制类型转换运算符的功能是将一个表达式的类型转换为所指定的类型。3.7单元测试 1、【单选题】13以下关于变量的说法错误的是? a、变量名必须是一个有效的标识符 b、变量在定义时可以没有初始值 c、变量一旦被定义,在程序中的任何位置都可以被访问 d、在程序中,可以将一个byte类型的值赋给一个int类型的变量,不需要特殊声明 2、【多选题】以下选项中,哪些属于合法的标识符?(多选) a、hello_world b、class c、123username d、username123 3、【多选题】switch语句判断条件可以接收的数据类型有哪些? (多选) a、int b、byte c、char d、short 4、【填空题】java中程序代码都必须在一个类中定义,类使用____关键字来定义。 5、【填空题】布尔常量即布尔类型的两个值,分别是____和____。 6、【填空题】在java中,byte类型数据占____个字节,short类型数据占____个字节,int类型数据占____个字节,long类型数据占____个字节。 7、【填空题】若x = 2,则表达式 ( x )/3 的值是____。 1、【单选题】下列变量定义错误的是 a、int a b、double b=4.5 c、boolean b=true d、float f=9.8 2、【单选题】下列变量定义错误的是 a、char c b、float f=5.1 c、boolean b=false d、double d=10.0 3、【单选题】下列数据类型的精度由高到低的顺序是 a、float,double,int,long b、double, float,int,byte c、byte,long,double,float d、double,int,float,long 4、【单选题】下面不是java关键字是 a、class b、new c、subclass d、interface 5、【单选题】6 5%3 1的值是 a、2 b、1 c、9 d、10 6、【单选题】下面的逻辑表达式中合法的是 a、(7 8)&&(9-5) b、(9*5)||(9*7) c、9>6&&8<10 d、(9%4)&&(8*3) 7、【单选题】为表示关系:x≥y≥z,应使用的java语言表达式是 a、(x>=y)&&(y>=z) b、(x>=y)and(y>=z) c、(x>=y>=z) d、(x>=y)||(y>=z) 8、【单选题】java语言中,int类型占用的二进制位数是 a、8位 b、16位 c、32位 d、64位 9、【单选题】java语言中数值数据的类型能自动转换,按照从左到右的转换次序为 a、byte→int→short→long→float→double b、byte→short→int→long→float→double c、byte→short→int→float→long→double d、short→byte→int→long→float→double 10、【多选题】下面选项中属于有效的标示符的有( )。 a、idolikethelongnameclass b、$byte c、3_case d、_ok 11、【填空题】表达式"b" 10的值为____,'b' 10的值为____。 12、【填空题】设变量a和b已正确定义并赋初值。请写出与a=a b等价的赋值表达式:____。 13、【填空题】设int x=2, y=1;则表达式x y的值是____。 14、【填空题】在java的基本数据类型中,char型采用unicode编码方案,每个unicode码占用____ 字节内存空间,这样,无论是中文字符还是英文字符,都是占用____字节内存空间。4.2选择语句 1、【单选题】下列语句序列执行后,b 的值为? int a=2, b=4; if( a < - - b ) a*=a; a、5 b、3 c、15 d、10 2、【单选题】若a和b均是整型变量并已正确赋值,正确的switch语句为? a、switch(a b); { ...... } b、switch( a b*3.0 ) { ...... } c、switch a { ...... } d、switch ( a%b ) { ...... } 3、【单选题】下列语句序列执行后,k的值是 int i=4, j=5, k=9, m=5; if(i>j || m a、5 b、10 c、8 d、9 4、【单选题】下列语句序列执行后,ch1 的值为? char ch1=’a’,ch2=’w’; if(ch1 2 < ch2 ) ch1; a、‘a’ b、‘b’ c、‘c’ d、b 5、【单选题】下列语句序列执行后,k的值是 int i=10, j=18, k=30; switch(j-i) { case 8: k ; case 9: k 2; case 10: k =3; default: k/=j; } a、32 b、31 c、2 d、33 6、【多选题】在下面代码中x为何值时输出结果为“out2”? switch(x){ case 1:system.out.println("out1");break; case 2: case 3: system.out.println("out2"); break; default:system.out.println("end"); } a、1 b、2 c、3 d、default 7、【填空题】以下程序段的输出结果是_________。 int x = 5, y = 6, z = 4; if (x y > z && x z > y && z y > x) system.out.println("三角形"); else system.out.println("不是三角形"); 8、【填空题】在执行循环结构或switch结构时,能够立即退出该结构的语句是____。 9、【填空题】请先阅读下面的代码。 int x = 1; int y = 2; if (x % 2 == 0) { y ; } else { y--; } system.out.println("y=" y); 上面一段程序运行结束时,变量y的值为_____________。4.3循环语句 1、【单选题】运行下面的程序将输出 m=37; n=13; while(m!=n){ while(m>n) m = m-n; while(m a、13 b、11 c、1 d、2 2、【单选题】运行下面的程序将输出()次“我爱中国”。 public classchina{ public static void main(){ int i=1; do{ system.out.println(“我爱中国”); }while(i<5); } } a、5 b、4 c、0 d、死循环 3、【单选题】以下for循环的执行次数为? for(int x=0;(x==0)&(x>4);x ); a、无限次 b、一次也不执行 c、执行4次 d、执行3次 4、【单选题】下列语句序列执行后,j 的值为? int j=2; for( int i=7; i>0; i-=2 ) j*=2; a、15 b、1 c、60 d、32 5、【单选题】运行下面的程序将输出 int a=0; while(a<5){ switch(a){ case 0: case 3: a=a 2; case 1: case 2:a=a 3; default:a=a 5; } } system.out.println(a); a、0 b、5 c、10 d、其他 6、【单选题】下列语句序列执行后,k 的值为? int m=3, n=6, k=0; while( (m ) < ( -- n) ) k; a、0 b、1 c、2 d、3 7、【单选题】若有循环: int x=5,y=20; do { y-=x; x =2; }while(x a、2次 b、1次 c、0次 d、3次 8、【单选题】阅读下面程序,while循环的次数是 int i=0; while(i<10){ i ; if(i<1)continue; if(i= =5)break; } a、1 b、10 c、6 d、54.4跳转语句 1、【单选题】continue语句的作用是 a、跳过下一条语句 b、跳出程序 c、跳出本循环,执行下一轮循环 d、是一条空语句,什么也不干 2、【单选题】break语句的作用是 a、跳过循环 b、跳出程序 c、跳出本循环,执行下一轮循环 d、是一条空语句,什么也不干 3、【单选题】阅读下面程序,while循环的次数是 int i=0; while(i<10){ i ; if(i<1)continue; if(i= =5)break; } a、1 b、10 c、6 d、54.6单元测试 1、【单选题】下列语句序列执行后,m 的值为? int i=9, j=8, m=10, n=9; if( i a、6 b、7 c、8 d、9 2、【单选题】下列语句序列执行后,ch1 的值为? char ch1=’a’,ch2=’w’; if(ch1 2 < ch2 ) ch1; a、‘a’ b、‘b’ c、‘c’ d、b 3、【单选题】以下for循环的执行次数为? for(int x=0;(x==0)&(x>4);x ); a、无限次 b、一次也不执行 c、执行4次 d、执行3次 4、【单选题】下列语句序列执行后,k 的值为? int m=3, n=6, k=0; while( (m ) < ( -- n) ) k; a、0 b、1 c、2 d、3 5、【单选题】下列语句序列执行后,k 的值为? int x=6, y=10, k=5; switch( x%y ) { case 0: k=x*y; case 6: k=x/y; case 12: k=x-y; default: k=x*y-x; } a、60 b、5 c、0 d、54 6、【填空题】以下程序段的输出结果是_________。 int x = 5, y = 6, z = 4; if (x y > z && x z > y && z y > x) system.out.println("三角形"); else system.out.println("不是三角形"); 7、【填空题】下面程序段的执行结果是__________。 int a[] = { 2, 3, 4, 5, 6 }; for (int i = a.length - 1; i >= 0; i--) system.out.print(a[i] ""); 1、【单选题】运行下面的程序将输出()次“我爱中国”。 public classchina{ public static void main(){ int i=1; do{ system.out.println(“我爱中国”); }while(i<5) } } a、5 b、4 c、0 d、死循环 2、【单选题】下列语句序列执行后,k的值是 int i=4, j=5, k=9, m=5; if(i>j || m a、5 b、10 c、8 d、9 3、【单选题】下列语句序列执行后,k的值是 int i=10, j=18, k=30; switch(j-i) { case 8: k ; case 9: k 2; case 10: k =3; default: k/=j; } a、32 b、31 c、2 d、33 4、【单选题】break语句的作用是 a、跳过循环 b、跳出程序 c、跳出本循环,执行下一轮循环 d、是一条空语句,什么也不干 5、【单选题】continue语句的作用是 a、跳过下一条语句 b、跳出程序 c、跳出本循环,执行下一轮循环 d、是一条空语句,什么也不干 6、【单选题】运行下面的程序将输出 int a=0; while(a<5){ switch(a){ case 0: case 3: a=a 2; case 1: case 2:a=a 3; default:a=a 5; } } system.out.println(a); a、0 b、5 c、10 d、其他 7、【单选题】运行下面的程序将输出 m=37; n=13; while(m!=n){ while(m>n) m = m-n; while(m a、13 b、11 c、1 d、2 8、【单选题】阅读下面程序,while循环的次数是 int i=0; while(i<10){ if(i<1)continue; if(i= =5)break; i ; } a、1 b、10 c、6 d、5 9、【多选题】在下面代码中x为何值时输出结果为“out2”? switch(x){ case 1:system.out.println("out1");break; case 2: case 3: system.out.println("out2"); break; default:system.out.println("end"); } a、1 b、2 c、3 d、default 10、【填空题】以下程序段的输出结果是____。 int x = 5, y = 6, z = 4; if (x y > z && x z > y && z y > x) system.out.println("三角形"); else system.out.println("不是三角形"); 11、【填空题】在执行循环结构或switch结构时,能够立即退出该结构的语句是____。 12、【分录题】“同构数”是指这样的整数:它恰好出现在其平方数的右端,例如5和6就是同构数。请编写一程序找出10~999之间的同构数,并输出显示。(答案中间不要有空格) public class tgs { public static void main(string[] args) { for(int i=10;i<=999;i ){ if ( (1) || (2) ) system.out.println(i); } } } 13、【分录题】编程求出1-100之间偶数的和。 public class exam1{ public static void main(string args[]){ (1) ;//定义整型变量sum(等号两边不要留空格) for(int i=2;i<=100;){ sum =i; (2) ; }//等号两边不要留空格 system.out.println("1-100之间偶数的和是:" sum); }} 14、【分录题】完成求n!的程序 public class exam2{ public static void main(string args[]) { factorial(3); factorial(6); factorial(9); } void factorial(int n) { long m=1; for (int x=1;x<=n; (1) ) (2) ;//等号两边不要留空格 system.out.println(n "!=" m);} }5.2一维数组 1、【单选题】定义了一维int型数组a[10]后,下面错误的引用是? a、a[0]=1; b、a[10]=2; c、a[0]=5*2; d、a[1]=a[2]*a[0]; 2、【单选题】引用数组元素时,数组下标可以是? a、整型常量 b、整型变量 c、整型表达式 d、以上均可 3、【单选题】数组a的第三个元素表示为? a、a(3) b、a[3] c、a(2) d、a[2] 4、【单选题】下列关于java语言的数组描述中,错误的是 a、数组的长度通常用length表示 b、数组下标从0开始 c、数组元素是按顺序存放在内存的 d、数组空间大小可以任意扩充 5、【单选题】某个main()方法中有以下代码: double [ ]num1; double num3=2.0; int num2=5; num1=new double[num2 1]; num[num2]=num3; 请问以上代码程序编译运行后的结果是 a、num1指向一个有5个元素double型数组 b、num2指向一个有5个元素的int型数组 c、num1数组的最后一个元素的值为2.0 d、num1数组的第3个元素的值为5 6、【多选题】下面正确声明一个一维数组的是 a、string [] a b、string a[] c、char a[][] d、string a[10] 7、【填空题】数组复制时,"="将一个数组的____传递给另一个数组。 8、【填空题】jvm将数组元素存储在____ (堆或栈)中。 9、【填空题】java中数组的下标的数据类型是____ 。 10、【填空题】数组最小的下标是____ 。5.3多维数组 1、【单选题】下面的二维数组初始化语句中,正确的是? a、float b[2][2]={0.1,0.2,0.3,0.4}; b、int a[][]={{1,2},{3,4}}; c、int a[2][]= {{1,2},{3,4}}; d、float a[2][2]=; 2、【单选题】定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数? a、24 b、25 c、18 d、17 3、【单选题】下列初始化字符数组的语句中,正确的是? a、char str[5]="hello"; b、、char str[]={'h','e','l','l','o',''}; c、char str[5]={"hi"}; d、char str[100]=""; 4、【单选题】下面 不是创建数组的正确语句? a、float f[][]=new float[6][6]; b、loat f[]=new float[6]; c、float f[][]=new float[][6]; d、float [][]f=new float[6][]; 5、【单选题】下列关于数组的定义形式,错误的是 a、int[ ]a; a=new int[5]; b、char b[ ]; b=new char[80]; c、int[ ]c=new char[10]; d、int []d[3]=new int[2][ ]; 6、【单选题】下列关于数组的定义形式,正确的是 a、int[ ][ ]num=new int[ ][3]; b、int[ ][ ]num=new int[3][ ]; c、int[ 3] num; d、int[3][ ]num; 7、【单选题】以下数组初始化形式正确的是 a、int t1[ ][ ]={{1,2},{3,4},{5,6}} b、int t2[ ][ ]={1,2.3,4,5,6} c、int t3[3][2]={1,2.3,4,5,6} d、int t4[ ][ ]; t4={1,2.3,4,5,6} 8、【单选题】以下数组初始化形式错误的是 a、int t1[ ]={1,2.3,4,5,6} b、int t2[ ][ ]={{1,2},{3,4},{5,6}} c、int t3[ ][ ]=new int[3][ ]; t3[0]=new int[3] d、int t4[ ][ ]=new int[ ][ 3]; 9、【多选题】public static void main方法的参数描述是 a、string args[] b、string[] args c、strings args[]z d、string args 10、【填空题】矩阵或表格一般用____ 维数组表示。5.6单元测试 1、【单选题】定义了一维int型数组a[10]后,下面错误的引用是? a、a[0]=1; b、a[10]=2; c、a[0]=5*2; d、a[1]=a[2]*a[0]; 2、【单选题】引用数组元素时,数组下标可以是? a、整型常量 b、整型变量 c、整型表达式 d、以上均可 3、【单选题】下列初始化字符数组的语句中,正确的是? a、char str[5]="hello"; b、、char str[]={'h','e','l','l','o',''}; c、char str[5]={"hi"}; d、char str[100]=""; 4、【单选题】数组在java中储存在? a、栈 b、队列 c、堆 d、链表 5、【单选题】数组a的第三个元素表示为? a、a(3) b、a[3] c、a(2) d、a[2] 6、【单选题】下面程序的运行结果是? main() { int x=30; int[] numbers=new int[x]; x=60; system.out.println(numbers.length); } a、60 b、20 c、30 d、50 7、【填空题】数组复制时,"="将一个数组的____传递给另一个数组。 8、【填空题】矩阵或表格一般用____ 维数组表示。 9、【填空题】数组最小的下标是____ 。 1、【单选题】下列关于java语言的数组描述中,错误的是 a、数组的长度通常用length表示 b、数组下标从0开始 c、数组元素是按顺序存放在内存的 d、数组空间大小可以任意扩充 2、【单选题】下列关于java语言的数组描述中,正确的是 a、数组元素的下标是从1开始的 b、声明数组时就已经分配了连续的存储空间 c、数组元素是按顺序存放在内存的 d、数组空间大小可以任意扩充 3、【单选题】下列关于数组的定义形式,正确的是 a、int[ ][ ]num=new int[ ][3]; b、int[ ][ ]num=new int[3][ ]; c、int[ 3] num; d、int[3][ ]num; 4、【单选题】以下数组初始化形式正确的是 a、int t1[ ][ ]={{1,2},{3,4},{5,6}} b、int t2[ ][ ]={1,2.3,4,5,6} c、int t3[3][2]={1,2.3,4,5,6} d、int t4[ ][ ]; t4={1,2.3,4,5,6} 5、【单选题】以下数组初始化形式错误的是 a、int t1[ ]={1,2.3,4,5,6} b、int t2[ ][ ]={{1,2},{3,4},{5,6}} c、int t3[ ][ ]=new int[3][ ]; t3[0]=new int[3] d、int t4[ ][ ]=new int[ ][ 3]; 6、【多选题】下面错误的初始化语句是? a、char str[]="hello"; b、char str[100]="hello"; c、char str[]={'h','e','l','l','o'}; d、char str[]={'hello'}; 7、【多选题】下面正确声明一个一维数组的是 a、string [] a b、string a[] c、char a[][] d、string a[10] 8、【多选题】下面哪几项在编译时候,会出现错误提示? a、int a=integer.parseint(abc789); b、int a=(int)’a’; c、int a=int('a'); d、int a=integer.parseint('a'); 9、【多选题】public static void main方法的参数描述是 a、string args[] b、string[] args c、strings args[]z d、string args 10、【多选题】下列哪些表达式返回的是true?( ) a、"john" == "john" b、"john".equals("john") c、"john" = "john" d、"john".equals(new button("john")) 11、【判断题】char[] chrarray={ 'a', 'b', 'c', 'd', 'e', 'f', 'g'}; char chr=chrarray[6]; 12、【判断题】说明或声明数组时不分配内存大小,创建数组时分配内存大小。 13、【分录题】以下程序段的输出结果为 (注意空格) public class myclass { int a[] = { 1, 2, 3, 4, 5 }; void out() { for (int j = 0; j < a.length; j ) system.out.print(a[j] ""); } public static void main(string[] args) { myclass my = new myclass(); my.out(); } } 14、【分录题】下面的程序通过方法调用从包含7个学号的数组中随机抽取一个学号并输出显示,请将下面的程序填写完整。 public class ex1 { public (1) string getxh(){ string[] xhs = {"201001","201002","201003","201004","201005","201006","201007"}; int index = (2) ; //生成0~6之间的随机数。 return xhs[index]; } public static void main(string[] args){ system.out.println("随机抽取的学号为:" (3) ); } } 15、【分录题】下面的程序是采用冒泡法对数组元素按小到大的顺序排序,请将程序填写完整。(答案中不要留空格) public class arraysort { public static void main(string[] args){ int[] a = new int[]{21,34,211,15,92,68,89,794,11,863}; int temp; for(int i=0;i<10;i ) for(int j=0;j< (1) ;j ) if(a[j]>a[j 1]){ temp = a[j]; (2) ; (3) ; } for(int i=0;i 16、【分录题】下面的程序通过方法调用从包含4个手机号码的字符串数组中随机抽取一个幸运手机号并输出显示,请根据提示将程序填写完整。 public class randomtel { public (1) string gettel(){ string[] tels = {"138****8080","189****6666","133****1234","139****9999"}; int index = (2) ; //用math类中的方法生成0~3之间的随机数 return tels [index]; } public static void main(string[] args){ system.out.println("随机幸运手机号为:" (3) ); } }6.2面向对象编程思想 1、【单选题】下面关于对象说法不正确的是 a、万物皆对象 b、对象一定是看的见摸的着的 c、对象因关注产生 d、对象包含属性和行为 2、【单选题】下列方法定义正确的是 a、void a(){}; b、int a(int a){}; c、a(int b){return 0;} d、char a(){return 23.44} 3、【单选题】关于构造方法,下列说法不正确的是 a、构造方法是类的一种特殊方法,它的方法名必须与类名相同 b、构造方法的返回类型有多种,只是不需要指定返回类型 c、构造方法的主要作用是完成对类的对象的初始化工作 d、一般在创建新对象时,系统会自动调用构造方法 4、【单选题】下列说法不正确的是 a、对象是类的实例 b、实例化对象时需要使用关键字new c、对象是类的具体体现 d、可以先有对象再有类 5、【多选题】下面是面向过程编程与面向对象编程说法正确的是 a、先有面向过程编程,后有面向对象编程 b、面向对象编程比面向过程编程更接近人类的自然思维 c、面向过程编程是按步骤进行设计 d、面向对象编程是按职责进行角色划分6.3类与对象 1、【多选题】面向对象的三大特征 a、封装性 b、继承性 c、多态性 d、多线程 2、【多选题】对一个类定义而言,可以包含三种最常见的成员: a、对象 b、构造器 c、成员变量 d、方法 3、【多选题】下面说法正确的是: a、成员变量用于定义该类或该类的实例所包含的状态数据 b、方法则用于定义该类或该类的实例的行为特征 c、构造器用于构造该类的实例 d、java语言通过new关键字来调用构造器 4、【多选题】下列定义类的格式,和创建对象格式正确的是() a、public class cell{ private int row; int col; public void getcellinfo(){ system.out.println(row ":" col); } } b、创建对象的格式: cell c=new cell(); c、public class cell(){ private int row; int col; public void getcellinfo(){ system.out.println(row ":" col); } } d、创建对象的格式: cell c=new cell; 5、【多选题】面向对象的编程语言有封装、继承 、多态等主要的特征,其中下面关于封装正确的是: a、在面向对象的编程语言中,对象是封装 的最基本单位,面向对象的封装比传统语言的封装更为清晰、更为有力 b、面向对象的封装就 是把描述一个对象的属性和行为的代码封装在一个“模块”中,也就是一个类 c、只要 记住让变量和访问这个变量的方法放在一起,将一个类中的成员变量全部定义成私有的,只 有这个类自己的方法才可以访问到这些成员变量,这就基本上实现对象的封装 d、把对同 一事物进行操作的方法和相关的方法放在同一个类中,把方法和它操作的数据放在同一个类 中。 6、【多选题】面向对象的编程--把握一个原则:把对同 一事物进行操作的方法和相关的方法放在同一个类中,把方法和它操作的数据放在同一个类 中。 例如,人要在黑板上画圆,这一共涉及三个对象:人、黑板、圆,画圆的方法要分配给哪个对象呢? a、由于画圆需要使用到圆心和半径,圆心和半径显然是圆的属性,如果将它们在类中 定义成了私有的成员变量,那么,画圆的方法必须分配给圆,它才能访问到圆心和半径这两 个属性 b、画圆这个方法应该分配 在人这个对象上 c、画圆这个方法应该分配 在黑板这个对象上 d、以上都不是 7、【多选题】面向对象的编程--把握一个原则:把对同 一事物进行操作的方法和相关的方法放在同一个类中,把方法和它操作的数据放在同一个类 中。 司机将火车刹住了,刹车的动作应该分配给哪个对象? a、刹车的动作是分配给司机 b、分配给火车 c、分配给火车及司机 d、都不是 8、【判断题】class是定义类的惟一关键字() 9、【判断题】对象赋值实际上是同一个对象具有两个不同的名字,它们都有同一个引用值() 10、【判断题】使用运算符new创建对象时,赋给对象的值实际上是一个引用值()6.4对象的创建 1、【单选题】关于构造方法,下面说法正确的是: a、构造方法不能带有参数 b、构造方法的名称必须和类名相同 c、构造方法可以定义返回值 d、构造方法不能重载 2、【单选题】关于方法的返回值和return语句,下面说法错误的是: a、return语句用于终止当前方法的执行 b、如果方法的返回类型为void,则方法中不能出现return语句 c、return关键字还会停止方法的执行;如果方法的返回类型为void,则可使用没 有值的return语句来停止方法的执行 d、定义有返回值的方法,必须使用return关键字返回值,且return关键字的后 面必须是与返回类型匹配的值 3、【单选题】下列代码编译或运行的结果是: public class cell{ public string getcellinfo(int x, int y){ return x "," y; } public string getcellinfo(int[] vals){ return "vals"; } public static void main(string[] args){ cell c=new cell(); system.out.println(c.getcellinfo(4, 5)); } } a、public string getcellinfo(int[]vals){行,编译出错 b、system.out.println(c.getcellinfo(4,5));行,抛出运行时异常 c、输出:4,5 d、输出:vals 4、【单选题】关于下列代码说法正确的是: public class cell{ public void drop(){ } public string drop(){ return "下落一行"; } public double drop(int x){ return "下落x行"; } } a、无编译错误 b、代码public string drop(){行,出现编译错误 c、代码public double drop(int x){行,出现编译错误 d、代码return "下落一行";行处出现编译错误 5、【单选题】有一个类cell,以下为其构造方法的声明,其中正确的是: a、public cell(int x){…} b、static cell(int x){…} c、public cell(int x){…} d、void cell(int x){...} 6、【单选题】如果有类cell,请说出下列代码中,创建对象个数: public class cellgame{ public static void main(string[]args){ cell c1=new cell(); c1=new cell(); cell c2=new cell(); } } a、1 b、2 c、3 d、4 7、【单选题】如果有类cell,请说出下列代码中,创建对象个数: public class cellgame{ public static void main(string[] args){ cell cell = null; for(int i=0;i<20;i ){ cell = new cell(); } } } a、10 b、20 c、15 d、25 8、【多选题】下列有关构造方法说法正确的是: a、构造器的方法名必须和类名一致 b、通过new关键字调用 c、如果我们没有定义构造器,无法创建对象 d、构造方法虽然有返回值,但是不能定义返回类型(返回值的类型肯定是本类),不能在构造器里调用return。 9、【多选题】下列关于类的定义的选项中,哪些可以通过new cell()方法来创建该类的一个对象____? a、public class cell { } b、public class cell{ public cell() {}} c、public class cell { public cell(int col) {}} d、public class cell{ public cell(int row,int col) {}} 10、【多选题】下列关于方法重载的使用说法正确的是: a、方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。 调用时,会根据不同的参数列表选择对应的方法,方法调用时,匹配离得最近的类型 b、参数列表不同的含义:类型,个数,顺序不同 c、只有返回值不同不构成方法的重载,只有形参的名称不同,不构成方法的重载 d、与普通方法一样,构造方法也可以重载6.6技术拓展 1、【单选题】关于static关键字,下面说法正确的是: a、用static修饰的成员变量是属于对象的数据结构 b、在static方法中,可以访问非static成员(对象成员) c、static成员变量存储在堆中 d、一个类的static成员变量只有“一份”,无论该类创建了多少对象 2、【单选题】关于java对象的删除,下列说法正确的是: a、必须由程序员完成对象的清除 b、java把没有引用的对象作为垃圾收集起来并释放 c、只有当程序中调用system.gc()方法时才能进行垃圾收集 d、java中的对象都很小,一般不进行删除操作 3、【单选题】程序执行的结果是: public class cellgame{ string name="俄罗斯方块"; public cellgame(string name){ name=name; } public static void main(string[]args){ cellgame cg=new cellgame("tetris"); system.out.println(cg.name); } } a、null b、俄罗斯方块 c、tetris d、"" 4、【单选题】给出下面的代码段: public class cell{ int row; int col; int height; int width; public cell(int row,int col){ this.row=row;this.col=col; } public cell(int row,int col,int height,int width){ <插入代码> this.height=height; this.width=width; } } 在<插入代码>处写下如下代码,正确的是: a、cell(row,col); b、super(row,col); c、this.row=row,this.col=row; d、this(row,col); 5、【多选题】关于public和private,下面说法错误的是: a、private修饰的成员变量和方法仅仅只能在本类中访问 b、public修饰的成员变量和方法可以在任何地方访问 c、private修饰的成员变量和方法可以在本类和子类中访问 d、public修饰的成员变量和方法只能在同一个包中访问 6、【多选题】请看下列代码: public class cell{ static void move(){/*more code here.*/} void drop(){/*more code here.*/} } 下列说法正确的是: a、cell. drop()是调用drop方法的正确方式 b、cell.move()是调用move方法的正确方式 c、drop方法可以直接调用move方法 d、move方法可以盲接调用drop方法 7、【多选题】下面静态变量和实例变量的区别说法正确的是: a、语法定义上的区别:静态变量前要加 static 关键字,而实例变量前则不加。 b、程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量 c、静态变量不属于某个实例对象,而是属于类,所 以也称为类变量,只要程序加载了类的字节码,静态变量就会被分 配空间,静态变量就可以被使用了。 d、静态变量不可以直接使用类名来引用。6.7单元测试 1、【单选题】类的定义必须包含在以下哪种符号之间? a、方括号[] b、花括号{} c、双引号“” d、圆括号() 2、【单选题】在以下什么情况下,构造方法会被调用? a、类定义时 b、创建对象时 c、调用对象方法时 d、使用对象的变量时 3、【单选题】下面关于封装性的描述中,错误的是? a、封装体包含属性和行为 b、被封装的某些信息在外不可见 c、封装提高了可重用性 d、封装体中的属性和行为的访问权限相同 4、【多选题】使用this调用类的构造方法,下面的说法正确的是?(多选) a、使用this调用构造方法的格式为this([参数1,参数2…]) b、只能在构造方法中使用this调用其它的构造方法 c、使用this调用其它构造方法的语句必须放在第一行 d、不能在一个类的两个构造方法中使用this互相调用 5、【多选题】下面哪些可以使用static关键字修饰?(多选) a、成员变量 b、局部变量 c、成员方法 d、成员内部类 6、【多选题】下面对于单例设计模式的描述,正确的是?(多选) a、类中定义一个无参的构造方法,并且声明为私有 b、在内部创建一个该类的实例对象,使用静态变量引用该实例对象 c、使用private修饰静态变量,禁止外界直接访问 d、定义静态方法返回该类实例 7、【填空题】面向对象的三大特征是______、______和______。 8、【填空题】定义在类中的变量被称为______,定义在方法中的变量被称为______。 9、【填空题】在非静态成员方法中,可以使用关键字_____访问类的其它非静态成员。 10、【填空题】当一个对象被当成垃圾从内存中释放时,它的_____方法会被自动调用。 11、【填空题】被static关键字修饰的成员变量被称为______,它可以被该类所有的实例对象共享。 12、【填空题】所谓类的封装是指在定义一个类时,将类中的属性私有化,即使用______关键字来修饰。 13、【填空题】类成员的访问控制符有______、______、______和默认四种。 14、【填空题】protected类型的类成员可被______、同一包中的______和不同包中的______的代码访问引用。 1、【单选题】关于类的构造方法的叙述不正确的是 a、构造方法可以有参数 b、一个类只能有一个构造方法 c、构造方法没有返回值的类型 d、构造方法的名称必须与类名相同 2、【单选题】有关类和对象的叙述不正确的是 a、对象是类的一个实例 b、任何一个对象都属于一个具体的类 c、一个类只能有一个对象 d、类和对象的关系和数据类型与变量的关系相似 3、【单选题】关于访问控制,以下说法不正确的是 a、java语言中的访问权限修饰符有public、private、protected和缺省四种 b、对于类的访问权限有三种:public、private、protected c、对于类的成员的访问控制权限有四种:public、private、protected、缺省 d、public修饰的类可以在任意地方被访问 4、【多选题】下面关于java语言中实例方法和类方法的说法,哪几项是对的? a、实例方法可以直接通过类名调用。 b、类方法可以直接通过类名调用。 c、实例方法可以操作实例变量也可以操作类变量。 d、类方法可以操作实例变量也可以操作类变量。 5、【填空题】java是面向对象语言,类是客观事物的____,而对象是类的____。 6、【填空题】java语言是一种完全的____程序设计语言 7、【填空题】一般java程序的类体由两部分组成:一部分是____,另一部分是____。 8、【填空题】this指____,super指____。 9、【填空题】default类型的类成员只能被______、同一包中的______的代码访问引用。 10、【分录题】写出下面程序的运行结果(注意大小写、空格和英文符号) public class abc { public static void main(string args[]) { ab s = new ab("hello!", "i love java."); system.out.println(s.tostring()); } } class ab { string s1; string s2; public ab(string str1, string str2) { s1 = str1; s2 = str2; } public string tostring() { return s1 s2; } }7.3方法重写 1、【单选题】在java中,所有类的基类是: a、java.iang.object b、java.lang. class c、java.applet.applet d、java.awt.frame 2、【单选题】下列代码的运行结果是: class cell{ public int row; public void drop(){ row =7; } } public class tetromino extends cell{ public void drop(){ row-=3; } public void drop(int x){ drop(); super.drop(); row*=x; } public static void main(string[] args){ tetromino tetrom= new tetromino(); tetrom.drop(2); system.out.println("row is:" tetrom.row); } } a、row is:8 b、row is:-8 c、row is:12 d、row is:-12 3、【单选题】在继承中也可能会在子类覆盖父类中的方法,下面说法错误的是: a、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果; b、覆盖的方法的返回值必须和被覆盖的方法的返回一致; c、覆盖的方法的返回值和被覆盖的方法的返回可以不一致; d、子类方法的访问权限只能比父类的更大,不能 更小 4、【单选题】在java中,以下程序的输出结果是 class tetromino{ public void print(){ system.out.println(“打印四个格子所在的坐标”); } } class tetrominot extends tetromino { public void print(){ system.out.println(“打印tetrominot”); } } class test1 { public static void main(string[] args){ tetromino t = new tetrominot(); t.print(); } } a、打印四个格子所在的坐标 b、打印tetrominot c、打印四个格子所在的坐标 打印tetrominot d、以上都不对 5、【单选题】tetrominot是tetromino的子类,下面代码错误的是 a、tetromino t= new tetrominot(); b、tetromino t = (tetromino )new tetrominot(); c、tetrominot t = (tetrominot )new tetromino(); d、object o = new tetrominot() ; 6、【多选题】下面有关方法的重写说法正确的是: a、构造器 constructor 不能被继承,因此不能重写 override b、重写 override 表示子类中的方法可以与父类中的某个方法的名称和参数完全相同 c、子类可以重写(覆盖)继承自父类的方法,即方法名和参数列表与父类的方法相同;但方法的实现不同。 d、当子类对象的重写方法被调用时(无论是通过子类的引用调用还是通过父类的引用调用),运行的是子类的重写后的版本。 7、【多选题】下列代码的说法正确的是: class cell{ public int row; public cell(int row){} public void drop(int row){} public void move(int row){ system.out.print("移动一行"); } } public class tetromino extends cell{ public cell(int row){}//重写子类的构造器 public void drop(int row){}//重写父类的drop方法 public void move(int row){//重写父类的move方法 drop();} } a、注释为重写子类的构造器语法正确 b、注释为重写子类的构造器语法错误 c、注释为重写父类的drop方法语法正确 d、注释为重写父类的move方法语法正确 8、【多选题】下列代码的说法正确的是: class cell{ public int row; public cell(int row){} public void drop(int row){} protected int move(int row){ system.out.print("移动一行"); return 5; } } public class tetromino extends cell{ public cell(int row){} public void drop(int row){} public int move(int row){ drop(); return 8; } } a、子类tetromino中的drop方法覆盖了父类cell中drop方法 b、子类tetromino中move方法的返回类型要与父类cell中的一致 c、子类tetromino中move方法的访问权限比父类的大,编译报错 d、子类tetromino中move方法的访问权限只能比父类的大或一样 9、【多选题】在java中,关于方法重载和重写的区别描述正确的是 a、在同一个类中,方法名相同、参数列表不同的方法可以构成方法重载 b、在同一个类中,方法名、参数列表和返回值均相同的方法为方法重写 c、在构成方法重载的两个方法中,返回值类型可以不同 d、方法重写中子类方法和父类方法的访问修饰符必须相同 10、【多选题】在java中,子类可以访问父类中访问修饰符为( )的字段。 a、public b、private c、protected d、默认访问修饰符7.9单元测试 1、【单选题】下面关于类的继承性的描述中,错误的是? a、继承是在已有的基础上生成新类的一种方法 b、java语言要求一个子类只有一个父类 c、父类中成员的访问权限在子类中将被改变 d、子类继承父类的所有成员,但不包括私有的成员方法 2、【单选题】在类的修饰符中,规定只能被同一包类所使用的修饰符是? a、public b、默认 c、final d、abstract 3、【单选题】下列关于子类继承父类的成员描述中,错误的是? a、当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成员方法。 b、方法重载是编译时处理的,而方法覆盖是在运行时处理的。 c、子类中继承父类中的所有成员都可以访问。 d、子类中定义有与父类同名变量时,在子类继承父类的操作中,使用继承父类的变量;子类执行自己的操作中,使用自己定义的变量。 4、【单选题】下列关于抽象类的描述中,错误的是? a、抽象类是用修饰符abstract说明的 b、抽象类是不可以定义对象的 c、抽象类是不可以有构造方法的 d、抽象类通常要有它的子类 5、【单选题】下列关于构造方法的叙述中,错误的是? a、构造方法名与类名必须相同 b、构造方法没有返回值,且不用void声明 c、构造方法只能通过new自动调用 d、构造方法不可以重载,但可以继承 6、【单选题】下列对多态性的描述中,错误的是? a、java语言允许方法重载与方法覆盖 b、java语言允许运算符重载 c、java语言允许变量覆盖 d、多态性提高了程序的抽象性和简洁性 7、【多选题】定义一个类名为“myclass.java”的类,并且该类可被一个工程中的所有类访问,则下面哪些声明是正确的? a、public class myclass extends object b、public class myclass c、private class myclass extends object d、class myclass extends object 8、【多选题】设有如下类的定义: public class parent { int change() {}} class child extends parent { } 则,下面哪些方法可加入child类中? a、public int change(){ } b、int chang(int i){ } c、private int change(){ } d、abstract int chang(){ } 9、【填空题】若子类和父类在同一个包中,则子类继承父类中的______、______和______成员(按从宽到窄的顺序填空),将其作为子类的成员,但不能继承父类的______成员。 10、【填空题】若子类和父类不在同一个包中,则子类继承了父类中的______和______成员,将其作为子类的成员,但不能继承父类的______和______成员(按从宽到窄的顺序填空)。 11、【填空题】java的多态性主要表现在______、______和______三个方面。 12、【填空题】java语言中,定义子类时,使用关键字______来给出父类名。如果没有指出父类,则该类的默认父类为______。 13、【填空题】java语言中,重载方法的选择是在编译时进行的,系统根据______、______和参数顺序寻找匹配方法。 1、【单选题】java语言的类间的继承关系是 a、多重的 b、单重的 c、线程的 d、不能继承的 2、【单选题】现有两个类a、b,以下描述中表示b继承自a的是 a、class a extends b b、class b implements a c、class a implements b d、class b extends a 3、【单选题】以下关于java语言继承的说法正确的是 a、java中的类可以有多个直接父类 b、抽象类不能有子类 c、java中接口支持多继承 d、最终类可以作为其他类的父类 4、【单选题】为了区分多态中同名的不同方法,要求 a、采用不同的参数列表 b、返回值类型不同 c、调用时用对象名做前缀 d、参数名不同 5、【单选题】编译并运行以下程序,以下描述哪个选项是正确的( ) 1. class x{ 2. protected string tostring( ){ 3. return super.tostring();} 4. } a、编译通过运行无异常 b、编译通过但运行时出错 c、行2出错,不能成功编译 d、不能成功编译,行3出错 6、【单选题】类parent、child定义如下: public class parent{ public float afun(float a, float b) throws ioexception { } } public class child extends parent{ //第6行 } 将以下哪种方法插入行6是不合法的 a、float afun(float a, float b){ } b、public int afun(int a, int b)throws exception{ } c、public float afun(float p, float q){ } d、public int afun(int a, int b)throws ioexception{ } 7、【多选题】在java中,关于final关键字的说法正确的是 a、如果修饰变量,则一旦赋了值,就等同一个常量。 b、如果修饰类,则该类只能被一个子类继承。 c、如果修饰方法,则该方法不能在子类中被覆盖。 d、如果修饰方法,则该方法所在的类不能被继承。 8、【多选题】下面哪几个函数是public void example(){...}的重载函数? a、public void example( int m){...} b、public int example(){...} c、public void example2(){...} d、public int example ( int m, float f){...} 9、【填空题】子类对父类继承来的属性重新定义称为____。子类对自身拥有的同名方法的重新定义称____。(每空两个字) 10、【填空题】创建一个名为 mypackage的包的语句是____。 11、【分录题】以下程序段的输出结果为 (注意空格) public class father { string name, address, tel; int age; public father(string name, int age) { this.name = name; this.age = age; } void out() { system.out.print("姓名:" name); system.out.print(" 年龄:" age); } void outother() { system.out.print(" 家庭住址:" address); system.out.print(" 电话:" tel); } public static void main(string args[]) { son son = new son("tom", 15); son.address = "金水区"; son.school = "九中"; son.tel = "66123456"; son.out(); } } class son extends father { string school; public son(string name, int age) { super(name, age); } void out() { super.out(); super.outother(); system.out.println(" 学校:" school); } } 12、【分录题】构造一个类来描述一个点,该类的构成包括点的x和y两个坐标,以及一些对点进行的操作,包括:取得点的坐标值,利用另一个点对当前点的坐标进行赋值,请将下面的程序填写完整。 class point{ int x,y; public (1) (int x, int y){ this.x=x; this.y=y; } public point getpoint(){ point temp = new point(0,0); temp.x=x; temp.y=y; return (2) ; } public void setpoint( (3) ){ this.x=s.x; this.y=s.y; } } public class blank3 { public static void main(string[] args){ point a = new point(3,4); point b = new point(0,0); b=a.getpoint(); point c = new point(0,0); c.setpoint(b); } }8.3接口 1、【单选题】关于接口的说法错误的是: a、接口是特殊的抽象类 b、接口是抽象方法和常量值的定义的集合 c、当一个非抽象类实现一个接口时,需要实现接口中的所有方法 d、多个类可以实现一个接口,一个类只能实现一个接口 2、【单选题】关于下列代码说法正确的是: public interface unionpay{ double getbalance(); } interface domore{ boolean drawmoney(double number); } abstract class icbc implements unionpay, domore{ } class icbcimpl implements unionpay{ public float getrange(int x, int y){ return 3.14f; } } interface doaii extends domore{ float getavg(int a, int b, int c, int d); } a、无编译错误 b、abstract class icbc implements unionpay, domore{行,编译错误 c、interface doaii extends domore{行,编译错误 d、float getavg(int a, int b, int c, int d);行,编译错误 3、【单选题】以下关于java中的接口说法不正确的是 a、接口中属性都会自动用public static final修饰 b、接口中所有方法都是抽象方法 c、一个接口可以继承多个接口 d、一个类可以继承多个父类,也可以实现多个接口 4、【多选题】关于接口和抽象类,下列说法正确的是: a、抽象类和接口都不能实例化 b、接口里只能包含抽象方法,抽象类则可以包含普通方法 c、接口里不包含构造器,抽象类里可以包含构造器 d、一个类只能实现一个接口 5、【多选题】java 中有关多态说法正确的是: a、父类或接口定义的引用变量可以指向子类或具体实现类的实例对象 b、程序调用的方法是引用变量所指向的具体实例对象的方法 c、程序调用的方法是引用变量的类型中定义的方法 d、父类或接口定义的引用变量不可以指向子类 6、【判断题】如果一个方法的参数是接口类型,则在调用该方法时,需要创建并传递一个实现此接口类型的对象;而该方法在运行时会调用到参数对象中所实现的方法(接口中定义的)。8.7单元测试 1、【单选题】下面关于接口的描述中,错误的是? a、一个类只允许继承一个接口 b、定义接口使用的关键字是interface c、在继承接口的类中通常要给出接口中定义的抽象方法的具体实现 d、接口实际上是由常量和抽象方法构成的特殊类 2、【单选题】欲构造arraylist类的一个实例,此类继承了list接口,下列哪个方法是正确的? a、arraylist mylist=new object(); b、arraylist mylist=new list(); c、list mylist=new arraylist(); d、list mylist=new list(); 3、【多选题】关于抽象类的说法哪些是正确的? a、抽象类中可以有非抽象方法。 b、如果父类是抽象类,则子类必须重写父类所有的抽象方法。 c、不能用抽象类去创建对象。 d、接口和抽象类是同一个概念。 4、【多选题】以下说法哪些是正确的? a、java语言中允许一个类实现多个接口 b、java语言中不允许一个类继承多个类 c、java语言中允许一个类同时继承一个类并实现一个接口 d、java语言中允许一个接口继承一个接口 5、【填空题】实现接口中的抽象方法时,必须使用______(填二个或四个字)的方法头,并且还要用______(填英文单词)修饰符。 6、【填空题】接口中定义的数据成员均是______,所有成员方法均为______方法,且没有______方法。(填中文) 7、【填空题】如果一个类包含一个或多个abstract方法,则它是一个______类。 8、【填空题】java不直接支持多继承,但可以通过______实现多继承。类的继承具有______性。 9、【填空题】一个接口可以通过关键字extends来继承______其他接口。 10、【填空题】接口中只能包含________________类型的成员变量和____________类型的成员方法。(填英文单词) 1、【单选题】用abstract修饰的类称为抽象类,它们 a、只能用以派生新类,不能用以创建对象 b、只能用以创建对象,不能用以派生新类 c、既可用以创建对象,也可用以派生新类 d、既不能用以创建对象,也不可用来派生新类 2、【单选题】类中的某个方法是用final修饰的,则该方法 a、是虚拟的,没有方法体 b、是最终的,不能被子类继承 c、不能被子类同名方法覆盖 d、不能被子类其他方法调用 3、【单选题】类中的某个类是用abstract修饰的,则该类 a、必定含有抽象方法 b、是最终的,不能被子类继承 c、可以没有抽象方法 d、是抽象的,可以用以创建对象 4、【单选题】在使用interface声明一个接口时,只可以使用( )修饰符修饰该接口。 a、private b、protected c、private protected d、public 5、【多选题】下面有关私有变量和私有方法的声明,哪些叙述是对的? a、用关键字private修饰的成员变量和方法,称为私有变量和私有方法。 b、用关键字protected修饰的成员变量和方法,称为私有变量和私有方法。 c、用关键字public修饰的成员变量和方法,称为私有变量和私有方法。 d、私有变量不能通过对象直接访问,只有在本类中创建的自己对象,才能访问自己的私有变量。 6、【多选题】下面关于继承的叙述哪些是正确的? a、在java中只允许单一继承。 b、在java中一个类只能实现一个接口。 c、在java中一个类不能同时继承一个类和实现一个接口。 d、java的单一继承使代码更可靠。 7、【填空题】this代表______的引用,super表示的是当前对象的直接父类对象。 8、【填空题】没有子类的类称为______,不能被子类重载的方法称为______,不能改变值的量称为常量,又称为______。 9、【判断题】抽象方法是一种只有说明而无具体实现的方法。 10、【判断题】实现接口的类不能是抽象类。 11、【判断题】java 语言不允许同时继承一个类并实现一个接口。9.6单元测试 1、【单选题】对于已经被定义过可能抛出异常的语句,在编程时? a、必须使用try/catch语句处理异常,或用throw将其抛出。 b、如果程序错误,必须使用 try/catch语句处理异常。 c、可以置之不理。 d、只能使用try/catch语句处理。 2、【单选题】下面程序段的执行结果是什么? public class foo{ public static void main(string[] args){ try{ return;} finally{system.out.println("finally"); } } } a、编译能通过,但运行时会出现一个例外。 b、程序正常运行,并输出 "finally"。 c、程序正常运行,但不输出任何结果。 d、因为没有catch语句块,所以不能通过编译。 3、【单选题】哪个关键字可以抛出异常? a、transient b、throw c、finally d、catch 4、【多选题】下面是一些异常类的层次关系: java.lang.exception java.lang.runtimeexception java.lang.indexoutofboundsexception java.lang.arrayindexoutofboundsexception java.lang.stringindexoutofboundsexception 假设有一个方法x,能够抛出两个异常,array index和string index异常,假定方法x中没有try-catch语句处理这些异常,下面哪个答案是正确的? a、方法x 应该声明抛弃arrayindexoutofboundsexception和stringindexoutofbounds- exception。 b、如果调用x的方法捕获indexoutofboundsexception,则arrayindexoutofbounds- exception和stringindexoutofboundsexception都可以被捕获。 c、如果方法x声明抛弃indexoutofboundsexception,则调用x的方法必须用try-catch语句捕获。 d、方法x不能声明抛弃异常。 5、【多选题】下面的方法是一个不完整的方法,其中的方法unsafe()会抛出一个ioexception,那么在方法的①处应加入哪条语句,才能使这个不完整的方法成为一个完整的方法?( ) ① ____________________________ ② { if(unsafe()) {//do something…} ③ else if(safe()) {//do the other…} ④ } a、public ioexception methodname() b、public void methodname() throw ioexception c、public void methodname() d、public void methodname() throws ioexception e、public void methodname() throws exception 6、【填空题】jdk中定义了大量的异常类,这些类都是__________类(填一个英文单词)的子类或者间接子类。 7、【填空题】当一个方法在运行过程中产生一个异常,则这个方法会_________,但是整个程序不一定终止运行。 8、【填空题】_______类所定义的异常是无法捕获的。 9、【填空题】捕获异常______语句后面通常跟有一个或多个catch()方法用来处理_______块内生成的异常事件。 1、【单选题】请问所有的异常类皆继承哪一个类? a、java.lang.throwable b、java.lang.exception c、java.lang.error d、java.io.exception 2、【多选题】如果下列的方法能够正常运行,在控制台上将显示什么? public void example( ){ try{ unsafe(); system.out.println("test1"); } catch(safeexception e) {system.out.println("test 2");} finally{system.out.println("test 3");} system.out.println("test 4"); } a、test 1 b、test 2 c、test 3 d、test 4 3、【填空题】异常处理是由try、____和finally块三个关键所组成的程序块。 4、【填空题】捕获异常______语句后面通常跟有一个或多个catch()方法用来处理_______块内生成的异常事件。 5、【判断题】捕获异常try语句后面通常跟有一个或多个catch()方法用来处理try块内生成的异常事件。 6、【判断题】使用try-catch-finally语句只能捕获一个异常。 7、【判断题】try-catch语句不可以嵌套使用。 8、【判断题】error类所定义的异常是无法捕获的。 9、【判断题】ioexception异常是非运行时异常,必须在程序中抛弃或捕获。 10、【判断题】用户自定义异常类是通过继承throwable类来创建的。 11、【判断题】当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。10.7单元测试 1、【单选题】以下选项中,哪个流中使用了缓冲区技术? a、、buffereoutputstream b、fileinputstream c、dataoutputstream d、filereader 2、【单选题】以下选项中,哪个是fileoutputstream的父类? a、file b、fileoutput c、outputstream d、inputstream 3、【单选题】以下选项中,哪个文件操作类可以实现一次读入多个文件? a、filereader b、bufferedreader c、fileinputstream d、sequenceinputstream 4、【多选题】下面选项中,哪些是标准输入输出流?(多选) a、system. in b、system. out c、inputstream d、outputstream 5、【多选题】下面哪些是常用的字符码表?(多选) a、ascii b、utf-8 c、iso8859-1 d、gb2312 6、【多选题】以下哪些属于inputstream类的方法?(多选) a、int read(byte[]) b、void flush() c、void close() d、available() 7、【填空题】在java中,___类用来把两个或更多的inputstream输入流对象合并为单个inputstream输入流对象。 8、【填空题】java中提供了一个类____,它不但具有读写文件的功能,并且可以随机地从文件的任何位置开始执行读写数据的操作。 9、【填空题】在java中,能实现线程间通信的流是____。 10、【填空题】inputstreamreader类是用于将____转换为____。 11、【填空题】system.out是____类的对象,称为标准输出流,调用system类的____方法可以实现标准输出流的重定向。 12、【填空题】bufferedwriter的____方法可以写入一个换行符。 13、【填空题】java中一个字符占用两个字节,所有字符采用的都是____码表。 1、【单选题】filteroutputstream是bufferedoutputstream、dataoutputstream及printstream的父类,以下哪个类可能是filteroutputstream构造函数的参数类型? a、outputstream b、file c、inputstream d、bufferedoutputstream 2、【单选题】下面哪一个import命令可以为我们提供编写输入输出程序的类 a、import java.sql.*; b、import java.util.*; c、import java.io.*; d、import java.net.*; 3、【单选题】实现字符流的写操作类是 a、filereader b、writer c、fileinputstream d、fileoutputstream 4、【单选题】如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象 a、fileinputstream b、fileoutputstream c、dataoutputstream d、filewriter 5、【单选题】要从“file.dat”文件中读出第10个字节到变量c中,下列哪个方法适合? a、fileinputstream in=new fileinputstream("file.dat"); int c=in.read(); b、randomaccessfile in=new randomaccessfile("file.dat"); in.skip(9); int c=in.readbyte(); c、fileinputstream in=new fileinputstream("file.dat"); in.skip(9); int c=in.read(); d、fileinputstream in=new fileinputstream("file.dat"); in.skip(10); int c=in.read(); 6、【单选题】下列流中哪个不属于字符流? a、inputstreamreader b、bufferedreader c、filterreader d、fileinputstream 7、【单选题】字符流与字节流的区别在于 a、前者带有缓冲,后者没有 b、前者是块读写,后者是字节读写 c、二者没有区别,可以互换使用 d、每次读写的字节数不同 8、【单选题】构造bufferedinputstream的合适参数是哪些? a、bufferedoutputstream b、fileinputstream c、fileouterstream d、file 9、【分录题】下面的程序使用bufferedwriter类在d:\hello.txt文件中写入10万个数并输出所用的时间,请将程序填写完整。 import java.io.*; public class ex4 { public static void main(string[] args) throws ioexception{ long t = system.currenttimemillis(); bufferedwriter fw =new bufferedwriter( (1) );//注意字符串中的转义符\\ for (int i=1;i<=100000;i ){ (2) ( i " \n"); } fw.close(); t=system.currenttimemillis()-t; system.out.println("time elapsed: " t "ms"); } }11.8单元测试 1、【单选题】thread类位于下列哪个包中? a、java.io b、java.lang c、java.util d、java.awt 2、【单选题】线程调用sleep()方法后,该线程将进入以下哪种状态? a、就绪状态 b、运行状态 c、阻塞状态 d、死亡状态 3、【单选题】在以下哪种情况下,线程进入就绪状态? a、线程调用了sleep()方法时 b、线程调用了join()方法 c、线程调用了yield()方法时 d、线程调用了notify()方法 4、【多选题】关于线程的创建过程,下面四种说法正确的有哪些?(多选) a、定义thread类的子类,重写thread类的run()方法,创建该子类的实例对象,调用对象的start()方法。 b、定义thread类的子类,重写thread类的run()方法,创建该子类的实例对象,调用对象的run()方法。 c、定义一个实现runnable 接口的类并实现run()方法,创建该类实例对象,将其作为参数传递给thread类的构造方法来创建thread对象,调用thread对象的start()方法。 d、定义一个实现runnable 接口的类并实现run()方法,创建该类对象,然后调用run()方法。 5、【多选题】对于通过实现runnable接口创建线程,下面说法正确的有?(多选) a、适合多个相同程序代码的线程去处理同一个资源的情况。 b、把线程同程序代码、数据有效的分离,很好的体现了面向对象设计思想 c、可以避免由于java的单继承带来的局限性。 d、编写简单,可以不通过thread类直接创建线程。 6、【多选题】对于死锁的描述,下面四种说法正确有哪些?(多选) a、当两个线程互相等待对方释放同步锁时会发生死锁 b、java虚拟机没有检测和处理死锁的措施 c、一旦出现死锁,程序会发生异常 d、处于死锁状态的线程处于阻塞状态,无法继续运行 7、【多选题】对于wait()方法,下面说法正确的是?(多选) a、wait()方法的调用者是同步锁对象 b、wait()方法使线程进入等待状态 c、调用同一锁对象的notify()或notifyall()方法可以唤醒调用wait()方法等待的线程 d、调用wait()方法的线程会释放同步锁对象 8、【填空题】一个应用程序中有多条并发执行的线索,每条线索都被称作一个______,它们会交替执行,彼此间可以进行______。 9、【填空题】在实现多线程的程序时有两种方式,一是通过继______承类,二是通过实现______接口。 10、【填空题】在java语言中,同步方法需要用到关键字______,对于同步方法而言无需指定同步锁,它的同步锁是方法所在的______,也就是______(关键字)。 11、【填空题】在多任务系统中,每个独立执行的程序称之为______,也就是“正在运行的程序”。 12、【填空题】线程的优先级用1~10之间的整数来表示,其中______代表优先级最高,______代表优先级最低。 13、【填空题】在thread类中,提供了一个start()方法,该方法用于______,当新线程启动后,系统会自动调用______方法。 14、【填空题】要将某个线程设置为后台线程,需要调用该线程的______方法,该方法必须在______方法之前调用。 1、【单选题】以下哪个关键字可以用来对对象加互斥锁? a、transient b、synchronized c、serialize d、static 2、【单选题】下列关于java多线程并发控制机制的叙述中,错误的是 a、java中没有提供检测与避免死锁的专门机制,但应用程序可以采用某些策略防止死锁的发生 b、共享数据的访问权限都必须定义为private c、java中对共享数据操作的并发控制是采用加锁技术 d、线程之间的交互,提倡采用suspend()/resume()方法 3、【单选题】哪个关键字可以对对象加互斥锁? a、transient b、serialize c、synchronized d、static 4、【单选题】运行下列程序,会产生什么结果? 1) public class exercises3_1 extends thread implements runable { 2) public void run() { 3) system.out.println("this is run()"); 4) } 5) public static void main(string args[]) { 6) thread t = new thread(new exercises3_1()); 7) t.start(); 8) } 9) } a、第一行会产生编译错误 b、第六行会产生编译错误 c、第六行会产生运行错误 d、程序会运行和启动 5、【多选题】下面哪些方法可用于创建一个可运行的多线程类? a、public class t implements runnable { public void run(){ …} } b、public class t extends thread { public void run(){ …} } c、public class t implements thread { public void run(){…} } d、public class t implements thread { public int run(){….} } e、public class t implements runnable { protected void run(){…} } 6、【多选题】下面哪些方法可以在任何时候被任何线程调用? a、sleep() b、yield() c、synchronized(this) d、notify() e、wait() f、notifyall() 7、【多选题】下列哪些情况可以终止当前线程的运行? a、当创建一个新线程时 b、当该线程调用sleep()方法时 c、抛出一个异常时 d、当一个优先级高的线程进入就绪状态时 8、【分录题】下面的程序定义了一个线程printthread,该线程打印输出1~1000之间所有3的倍数,每输出一个数休眠1500毫秒,在main方法中创建了该线程的一个实例,并启动该线程。请将下面的程序填写完整。 class printthread extends (1) { public printthread(string str) { (2) ; // 调用父类的构造方法 } public void run() { for(int i=1;i<=1000;i ) { if(i % 3 ==0) system.out.println(this.getname() ": " i); try { (3) ; // 休眠1500毫秒 } catch (exception e) { system.out.println(e.tostring()); } } } } public class exam4{ public static void main(string[] args){ printthread mythread = new printthread("printthread"); (4) ; //启动线程 } } 9、【分录题】下面的程序定义了一个线程timethread,该线程每隔1秒钟输出显示一次当前系统时间,在main方法中使用timethread类创建3个新线程,并启动这些线程,请将下面的程序填写完整。 import java.util.*; class timethread implements (1) { public void run() { while (true) { date currenttime = new date(); try { (2) ; // 休眠1秒钟 } catch (exception e) {system.out.println(e.tostring());} system.out.println(thread.currentthread().getname() ": " currenttime); } } } public class ex2 { public static void main(string[] args){ string[] names={"first","second","third"}; timethread mythread = new timethread(); for(int i=0;i<3;i ){ thread threadobj= new thread(mythread,names[i]); (3) ; //启动线程 } } } 2023-09-22 19:50 2023-09-22 19:40 2023-09-22 19:04 2023-09-22 18:13