【VIP专享】Java程序设计填空和改错题(参考答案)
- 格式:pdf
- 大小:196.61 KB
- 文档页数:6
Java语言程序设计测试题改错题部分判断下面的程序片断是否正确。
若有错,指出错在哪里并改正;若正确,打“√”。
1、(max为整型变量)if (max1)g.drawString(“不等于1”, 20,20);2、for(float i=0.0;i>-10.0; i -=1.0)System.out.println(i);3、void test(int x){System.out.println(x);return x;}4、abstract final class OurClasses { }5、final MAX_NUMBER;MAX_NUMBER++;6、class MyClass{ int var=100;static int getVar(){return var;}}7、public class MyClass{int data;void MyClass(int d){ data=d;}}8、public class MyMain{public static void main (String args[ ]){ System.out.println(MyClass1.data);}}class MyClass1{int data=10;}9、class IamAbstract{final int f;double d;abstract void method();}10、class parent{private int mine;}class child extends parent{int getMine(){ return mine; }}11、class parent{private int mine;int getMine( ){return mine;}}class child extends parent{int mine;int getMine( ){ return super.getMine; }}12、class Parent{ int field; }class Child extends Parent{ int field; }class UseChild{ static int getField(Child c){ return (c.field); }}public class MainClass{public static void main(String args[ ]){ Parentp=new Parent();System.out.println(UseChild.getField(p));}}13、class AmIRight{int field1=10;abstract void method1( );}14、class AmIWrong{int data1,data2;AmIWrong(){ data1=-1; }AmIWrong(int d){ data2=d;this();}}15、interface MyInterface{void method1();}abstract class Parent implements MyInterface{ }class Child extends Parent{ }16、interface MyInterface{void method1();}abstract class Parent implements MyInterface{}class Child extends Parent{void method1(){System.out.println(“I am implemented now!”);}}17、public static void main(String args[ ]){try{char ch=(char)System.in.read();. . .//其他语句}catch(Exception e){return;}catch(IOExceptione){System.out.println(e.toString());}}18、public class AmIWrong implements Runnable{Thread mt=Thread(this);mt.start();void run(){System.out.println(“I am alive now”);}}19、class MyClass1{final void method1(){ }void method1(int i){ }}20、说明以下程序是否有误,错在哪里,应如何改正。
java程序设计第1-4章练习题参考答案(1)一、选择题1.下面供选字符序列中,不属于...Java语言关键字的是( A ) A.goto B.null C.false D.native2.以下是关于Java语言关键字的叙述,其中正确的是( C )A.关键字可以用来描述类的成员类型,但是不能描述普通变量B.关键字由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字组成C.关键字不可以用作变量、方法、类或标号的标识符D.break和main都是Java语言的关键字3.下述字符组合不能作为Java程序标识符的是(D)A.Aa12 B.XC.y D.5x4.在下述字符串中,不属于...Java语言关键字的是( C )A.float B.newC.java D.return5.下列字符组合不能作为Java整型常量的是( A )A.078B.0x3ACBC.5000D.0x3ABC6.设有如下程序:public class Test {public static void main(String[] args) {String foo=args[1];String bar=args[2];String baz=args[3];System.out.println("baz= "+baz);}}下述哪一行命令可以使得执行该程序的输出为baz= 2 ( C )A) java Test 2222 B) java Test 1 2 3 4C) java Test 4 2 4 2 D) java Test 4 3 2 17.在Java语言中,int类型数据的长度是( C )A.1个字节B.2个字节C.4个字节D.8个字节8. 用Java虚拟机执行类名为Hello的应用程序的正确命令是( D )。
A) java Hello.class B) Hello.class C) java Hello.java D) java Hello9.执行以下代码,输出结果是( B )int x=5,y=7,u=9,v=6;System.out.println(x>y ? x+2:u>v ? u-3:v+2);A.8B.6C.7D.true10.下列修饰符中与访问控制无关的是(C)。
1. ( 1.0分)Java中预定义的数据类型中都有对应的常量,对于整型直接数,他的形式又有多种,以1-9开头的正负整数为十进制,以0开头的正负整数为八进制数,以0x或者0X开头的正负整数为数。
你的答案:十六进制 (得分1.0 分);参考答案:十六进制2. ( 2.0分) 一个类如果实现一个接口,那么它需要实现接口中的全部,否则该类就必须定义为。
你的答案:方法‖抽象类 (得分2.0 分);参考答案:方法‖抽象(或abstract)3. ( 3.0分) 下列程序实现从控制台输入并读取输出字符串.请将程序补充完整import java.io.*;public class CharInput {public static void main(String args[]) throws java.io.IOException{String s;InputStreamReader ir;BufferedReader in;ir=new____________(System.in);in=new____________(ir);while((s=in._________)!=null) {System.out.println(“R ead;”+s);}}}你的答案:InputStreamReader‖BufferedReader‖read line() (得分3.0 分);参考答案:InputStreamReader‖BufferedReader‖readLine( )4. ( 1.0分)线程类型中的yield()方法只能让相同优先级或者更高优先级、处于状态的线程获得运行机会。
你的答案:就绪 (得分1.0 分);参考答案:就绪5. ( 1.0分) 在非静态成员方法中,可以使用关键字访问类的其他非静态成员。
你的答案: this (得分1.0 分);参考答案:this6. ( 1.0分) Java定义的变量要求赋初值,如果没有显式赋值,整型变量获得的值是0,实型变量的值是,布尔类型数据的量是false,复合数据变量的值是分null。
目录一、判断题- 1 -二、选择题- 3 -三、填空题- 16 -四、写出下列程序完成的功能- 24 -五、写出下面程序的运行结果- 28 -六、使用Java语言编写程序- 31 -七、简答题- 32 -Java程序设计习题集一、判断题1.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。
( F )2.有的类定义时可以不定义构造函数,所以构造函数不是必需的。
( F ) 3.类及其属性、方法可以同时有一个以上的修饰符来修饰。
( T ) 4.Java的屏幕坐标是以像素为单位,容器的左下角被定为坐标的起点。
( F )(应该是左上角)5.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。
( F) 6.Final类中的属性和方法都必须被final修饰符修饰。
( F )(静态的必须被静态的修饰符修饰)7.最终类不能派生子类,最终方法不能被覆盖。
(T )8.子类要调用父类的方法,必须使用super关键字。
( T )9.一个Java类可以有多个父类。
( F )10.如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p 是正确的。
( F )11.一个类如果实现了*个接口,则它必须重载该接口中的所有方法。
( T )12.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。
( T )13.接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。
( T )14.用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子串。
( F )15.一个容器中可以混合使用多种布局策略。
( T )16.一个线程对象的具体操作是由run()方法的容确定的,但是Thread类的run()方法是空的,其中没有容;所以用户程序要么派生一个Thread的子类并在子类里重新定义run()方法,要么使一个类实现Runnable接口并书写其中run()方法的方法体。
java程序改错12道及答案/*-------------------------------------------------------【程序改错】---------------------------------------------------------题目1:求1!+2!+3!+ (10)-------------------------------------------------------*/public class Prog1{ public static void main(String args[]){/*****************FOUND*****************/int i=-1;/*****************FOUND*****************/int sum=0,fact=1;/*****************FOUND*****************/while(i<10);{fact=fact*i;sum=sum+fact;i++;/*****************FOUND*****************/end whileSystem.out.println("和值是 "+sum);}}1)int i=1;2)double sum=0,fact=1;或long sum=0,fact=1;或floatsum=0,fact=1;3)while(i<=10)或while(i<11)4)}/*-------------------------------------------------------【程序改错】---------------------------------------------------------题目2:计算 1/1+1/2+1/3+...+1/100 的值-------------------------------------------------------*/public class Prog1{public static void main( String args[ ]){/***********FOUND***********/int sum=0.0;/***********FOUND***********/for(int i=1; i<100; i++)/***********FOUND***********/sum+=1/i;/***********FOUND***********/System.out.println( "sum=",sum );}}1)double sum=0.0;或 float sum=0.0;2)for(int i=1;i<=100;i++) 或 for(int i=1;i<101;i++)3)sum+=1/(double)i; 或 sum+=1.0/i; 或 sum+=1.0/(double)i; 或 sum+=1/(float)i;4)System.out.println("sum="+sum);/*------------------------------------------------------- 【程序改错】---------------------------------------------------------题目3:求自然数1至100之间各奇数和并输出-------------------------------------------------------*/public class Prog1{public static void main(String args[]){/***********FOUND***********/int i,j;s=0;/***********FOUND***********/i=0;while(i<100){/***********FOUND***********/if(i%2==0)s=s+i;i=i+2;}/***********FOUND***********/System.out.println("和值是:"+i);}}1)int i,j,s;或int i,s;2)i=1;3)if(i%2!=0)或if(i%2==1)4)System.out.println("和值是:"+s);/*------------------------------------------------------- 【程序改错】---------------------------------------------------------题目4:计算1到100的整数和值-------------------------------------------------------*/public class Prog1{/***********FOUND***********/public static void main (args[]){/***********FOUND***********/int n=100,sum=1;while(n>0){sum+=n;/***********FOUND***********/n++;}/***********FOUND***********/System.println("Sum is "+sum);}}1)public static void main(String args[])2)int n=100,sum=0;3)n--;或n-=1;或n=n-1;4)System.out.println("Sum is"+sum);/*------------------------------------------------------- 【程序改错】---------------------------------------------------------题目5:求1到100的偶数之和,奇数之积-------------------------------------------------------*/public class Prog1{ public static void main(String args[]){/***********FOUND***********/int i,j,sum=1;/***********FOUND***********/int product=1;for(i=1;i<=100;i++){/***********FOUND***********/if (i%2!=0)sum+=i;else/***********FOUND***********/product=i;}System.out.println("偶数之和是 : "+sum); System.out.println("奇数之积是 : "+product);}}1)int i,j,sum=0;2)double product=1;或float product=1;3)if(i%2==0)或if(i%2!=1)4)product*=i;或product=product*i;或product=i*product;/*-------------------------------------------------------【程序改错】---------------------------------------------------------题目6:计算并输出500以内最大的10个能被3或7整除的自然数之和-------------------------------------------------------*/public class Prog1{public static void main(String args[]){int k,s=0,mc=0;/***********FOUND***********/for (k=500;k>0;k++){/***********FOUND***********/if (k%3 == 0 && k%7==0){/***********FOUND***********/s=k;mc++;}/***********FOUND***********/if (mc=10)break;}System.out.println("Sum is "+s);}}1)for(k=500;k>0;k--) 或 for(k=500;k>=1;k--)2)if(k%3==0||k%7==0)3)s=s+k;或s=k+s;或 s+=k;4)if(mc==10)/*------------------------------------------------------- 【程序改错】---------------------------------------------------------题目7:打印输出如下图形:* * * * * * * * ** * * * * * ** * * * ** * **-------------------------------------------------------*/public class Prog1{/***********FOUND***********/public static void main(args[]){ int i,j;for (i=1;i<=5;i++)/***********FOUND***********/for(j=1;j<=i;j++)System.out.print(" ");/***********FOUND***********/for (j=1;j<=11-2*i;j--)System.out.print("* ");/***********FOUND***********/System.out.print();}}}1)public static void main(String args[])2)for(j=1;j<i;j++)3)for(j=1;j<=11-2*i;j++)4)System.out.println();/*------------------------------------------------------- 【程序改错】---------------------------------------------------------题目8</i;j++):在屏幕上输出如下图形** * ** * * * ** * * * * * ** * * * ** * **-------------------------------------------------------*/public class Prog1{public static void main(String args[]){ int i,j;for (i=1;i<4;i++){/***********FOUND***********/for(j=1;j<=i;j++)System.out.print(" ");/***********FOUND***********/for (j=1;j<=i-1;j++)System.out.print("* ");/***********FOUND***********/System.out.print();}for (i=1;i<=3;i++){/***********FOUND***********/for(j=1;j<i;j++)System.out.print(" ");for (j=1;j<=7-2*i;j++)System.out.print("* ");System.out.println();}}}1)for(j=1;j<=4-i;j++)2)for(j=1;j<=2*i-1;j++)3)System.out.println();4)for(j=1;j<=i;j++)/*-------------------------------------------------------【程序改错】---------------------------------------------------------题目9:水仙花是指其各位、十位和百位的立方和等于这个三位数本身的数,求出所有的水仙花数-------------------------------------------------------*/public class Prog1{/***********FOUND***********/public static void (String args[]){ int n,i,j,k;/***********FOUND***********/for(n=100,n<1000,n++){/***********FOUND***********/i=n/10;j=n/10%10;k=n/100;/***********FOUND***********/if (n=i*i*i+j*j*j+k*k*k)System.out.print(n+" ");}System.out.println();}}1)public static void main(String args[])2)for(n=100;n<1000;n++) 或for(n=100;n<=999;n++)3)i=n%10;4)if(n==i*i*i+j*j*j+k*k*k)/*------------------------------------------------------- 【程序改错】---------------------------------------------------------题目10:求下列分数序列的前10项之和2/1,3/2,5/3,8/5,13/8,21/13......-------------------------------------------------------*/import java.io.*;public class Prog1{public static void main(String args[]){int a,b,t,i;/***********FOUND***********/int sum;a=2;b=1;sum=0;for(i=1;i<=10;i++){/***********FOUND***********/sum=sum+a/b;t=a;/***********FOUND***********/a=a-b;/***********FOUND***********/b=a;}System.out.println("和值是:"+sum);}}1)double sum;或 float sum;2)sum=sum+(double)a/b;或sum=sum+a/(double)b;或sum=sum+(float)a/b;或sum...3)a=a+b;或a=b+a;或a+=n;4)b=t;/*-------------------------------------------------------【程序改错】---------------------------------------------------------题目11</i;j++):求100到200之间的素数,并以5个一行的形式显示在屏幕上-------------------------------------------------------*/public class Prog1{/***************FOUND***************/public static void main(args[]);{ int n=0,j;for(int i=101;i<200;i+=2){/***************FOUND***************/for( j=2;j<=i-1;j--)/***************FOUND***************/if( i%j!=0 )break;if (j>i-1){ System.out.print(" "+i);n++;if( n==5 ){/***************FOUND***************/System.out.print();n=0;}}}System.out.println();}}1)public static void main(String args[])2)for(j=2;j<=i-1;j++)3)if(i%j==0)4)System.out.println();/*------------------------------------------------------- 【程序改错】--------------------------------------------------------- 题目12:输出如下数字塔:11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 1-------------------------------------------------------*/public class Prog1{public static void main(String args[]){ int i,j;for (i=1;i<=5;i++){/***********FOUND***********/for(j=1;j<=i;j++)System.out.print(" ");for (j=1;j<i;j++)/***********FOUND***********/System.out.print(i+" ");/***********FOUND***********/for (j=i;j>1;j--)System.out.print(j+" ");/***********FOUND***********/System.out.print();}}}1)for(j=i;j<=5-i;j++)2)System.out.print(j+" ");3)for(j=i;j>=1;j--)或for(j=i;j>0;j--)4)System.out.println();</i;j++)。
“Java程序设计基础”课程习题一、填空1.Java程序分两类___Applet___和application,Java Application 类型的程序,程序从___main方法___开始执行。
2.定义一个Java类时,通过关键字__extends____指明该类的父类。
一个类可以有___1___个父类。
3.用public修饰的类称为_公有类或公用类__。
用public修饰的类成员称为公有成员。
被说明为public的内容可以被__所有其他类___ 使用。
如果public类文件与使用它的类文件不在同一目录中,需要通过__import____语句引入。
4.用___private___ 修饰的类成员称为私有成员。
私有成员只能在__本类__ 中使用。
5.如果子类定义的成员变量与父类的成员变量同名,称为___方法覆盖___ ,要表明使用子类的成员变量,可以在成员变量前加上关键字__super___ 。
6.____Object__ 类是Java类库中所有类的父类。
7.Java字符使用__16位的字符集,该字符集成为__Unicode____ 。
8.当子类中定义的方法与父类方法同名时,称子类方法___覆盖___ 父类方法,子类默认使用自己的方法。
使用父类的同名方法,必须用关键字__super__ 说明。
9.Java源程序文件名的后缀是___.java___,Java字节码文件名的后缀是_.class_____。
10.Java类名的第一个字母通常要求___大写___。
11.Java程序由____类__组成,每个程序有一个主类,Java程序文件名应与____主__类的名称相同。
12.Java__Application_类型的程序需要main()方法,程序从__main____开始执行。
13.布尔型数据类型的关键字是_boolean__ ,占用位数是___1位___ ,有__true__ 和_false_两种值。
《java程序设计》1.填空题(1)Java程序编译成(class )文件(2)Java程序在(JVM )上执行(3)Java程序的执行方式是(半编译和半解释型)执行的(4)在Java程序中,创建对象的操作是(new )(5)在Java语言中,指明一个类从父类派生的关键字是(extends )(6)线程是进程中的一个执行(单元)(7)在Java语言中,指代父类的关键字是(super )(8)表明一个变量是数组的符号是([] )(9)在Java程序中,用关键字(import )引入其它文件中的类(10)在Java程序中定义包的关键字为(package )2.简答题(1)简述Java语言的特点。
答:Java语言的特点有以下几点:1.简单性。
2.面向对象。
3.平台无关性。
4.可移植性。
5.解释性。
6.离性能。
7.动态性。
8.可靠性和安全性。
9.多线程。
10.分布式处理。
(2)简述面向对象程序设计的三大基本特点。
(3)答:封装性:封装性是指将对象相关的信息和行为状态捆绑成一个单元,即将对象封装为一个具体的类。
封装隐藏了对象的具体实现,当要操纵对象时,只需调用其中的方法,而不用管方法的具体实现。
继承性:一个类继承另一个类,继承者可以获得被继承类的所有方法和属性,并且可以根据实际的需要添加新的方法或者对被继承类中的方法进行覆写,被继承者称为父类或者超类,继承者称为子类或导出类,继承提高了程序代码的可重用性,Java中一个子类只能继承一个父类,Object类是所有类的最终父类。
多态性:多态性是指不同的对象对同一事物而做出的相同行为,一个类A可以指向其自身类和其导出类,一个接口可以指向其接口实现类,在方法参数中,使用多态可以提高参数的灵活性。
(4)解释Java程序跨平台的原理。
答:ava源码--->JVM虚拟机编译---->.class文件--->各个平台的Java虚拟机加载执行.class文件Java程序实际是在Java虚拟机(JRE是软件实现)中运行,Java虚拟机类似一个模拟执行环境,在不同的操作系统上拥有不同的Java虚拟机实现,但是这些Java虚拟机遵循统一的规范来解释class文件,并将class文件中的指令转换为本地操作系统对应的指令,这样就实现了相同的class文件,可以通过Java虚拟机转换为对应操作系统上的对应指令,实现class 文件,也就是Java程序的跨平台性。
1. ( 分)Java中预定义的数据类型中都有对应的常量,对于整型直接数,他的形式又有多种,以1-9开头的正负整数为十进制,以0开头的正负整数为八进制数,以0x或者0X开头的正负整数为数。
你的答案:十六进制(得分分);参考答案:十六进制2. ( 分) 一个类如果实现一个接口,那么它需要实现接口中的全部,否则该类就必须定义为。
你的答案:方法‖抽象类(得分分);参考答案:方法‖抽象(或abstract)3. ( 分) 下列程序实现从控制台输入并读取输出字符串.请将程序补充完整import .*; public class CharInput {public static void main(String args[]) throwsString s;InputStreamReader ir;BufferedReader in;ir=new____________;in=new____________(ir);while((s=!=null) {}}}你的答案:InputStreamReader‖BufferedRead er‖readline()(得分分);参考答案:InputStrea mReader‖BufferedReader‖re adLine()4. ( 分)线程类型中的yield()方法只能让相同优先级或者更高优先级、处于状态的线程获得运行机会。
你的答案:就绪(得分分);参考答案:就绪5. ( 分) 在非静态成员方法中,可以使用关键字访问类的其他非静态成员。
你的答案:this (得分分);参考答案:this6. ( 分) Java定义的变量要求赋初值,如果没有显式赋值,整型变量获得的值是0,实型变量的值是,布尔类型数据的量是false,复合数据变量的值是分null。
你的答案:(得分分);参考答案:7. ( 分) 程序int x = 16; int y= x<100x*100:x*10; 变量y值是。
java语言程序设计试题及答案一、选择题(每题2分,共20分)1. Java语言是______。
A. 编译型语言B. 解释型语言C. 编译解释型语言D. 机器语言答案:C2. 下列哪个是Java语言的基本数据类型?A. StringB. IntegerC. booleanD. Object答案:C3. Java程序的执行入口是以下哪个方法?A. main()B. start()C. run()D. execute()答案:A4. 下列哪个是Java的访问控制修饰符?A. publicC. finalD. abstract答案:A5. Java中,哪个关键字用于定义接口?A. classB. interfaceC. packageD. enum答案:B6. Java中的异常处理是通过哪两个关键字实现的?A. try-catchB. if-elseC. for-whileD. switch-case答案:A7. 下列哪个是Java集合框架中的接口?A. ArrayListB. ListB. MapD. Set答案:B8. Java中,哪个关键字用于实现多态?B. implementsC. newD. override答案:A9. 下列哪个是Java的垃圾回收机制?A. JVMB. GC(Garbage Collection)C. JIT(Just-In-Time)D. JIT Compiler答案:B10. Java语言支持的编程范式包括哪些?A. 过程式编程B. 面向对象编程C. 函数式编程D. 所有以上答案:D二、填空题(每空3分,共15分)1. Java语言是______和______的结合体。
答案:编译型;解释型2. Java的三大特性是______、______和______。
答案:封装;继承;多态3. 在Java中,______关键字用于定义类。
答案:class4. Java的______类是所有Java类的父类。
1. ( 分)Java中预定义的数据类型中都有对应的常量,对于整型直接数,他的形式又有多种,以1-9开头的正负整数为十进制,以0开头的正负整数为八进制数,以0x或者0X开头的正负整数为数。
你的答案:十六进制(得分分);参考答案:十六进制2. ( 分) 一个类如果实现一个接口,那么它需要实现接口中的全部,否则该类就必须定义为。
你的答案:方法‖抽象类(得分分);参考答案:方法‖抽象(或abstract)3. ( 分) 下列程序实现从控制台输入并读取输出字符串.请将程序补充完整import .*;public class CharInput {public static void main(String args[]) throwsString s;InputStreamReader ir;BufferedReader in;ir=new____________;in=new____________(ir);while((s=!=null) {}}}你的答案:InputStreamReader‖BufferedRead er‖readline()(得分分);参考答案:InputStrea mReader‖BufferedReader‖re adLine()4. ( 分)线程类型中的yield()方法只能让相同优先级或者更高优先级、处于状态的线程获得运行机会。
你的答案:就绪(得分分);参考答案:就绪5. ( 分) 在非静态成员方法中,可以使用关键字访问类的其他非静态成员。
你的答案:this (得分分);参考答案:this6. ( 分) Java定义的变量要求赋初值,如果没有显式赋值,整型变量获得的值是0,实型变量的值是,布尔类型数据的量是false,复合数据变量的值是分null。
你的答案:(得分分);参考答案:7. ( 分) 程序int x = 16; int y= x<100x*100:x*10; 变量y值是。