java Chapter3练习
java程序设计基础(第3版)实验指导答案 第三章
实验10import java.util.*;public class shiyan10{public static void main(String[] args){int a=0,b=0,c=0,max=0;Scanner reader=new Scanner(System.in);System.out.println("从键盘输入第一个整数");a=reader.nextInt();System.out.println("从键盘输入第二个整数");b=reader.nextInt();System.out.println("从键盘输入第三个整数");c=reader.nextInt();if(a>b)max=a;elsemax=b;if(c>max)max=c;System.out.println("最大的数是"+max);}}//在程序中输入三个整数,比较它们的大小,输出最大的数实验11public class shiyan11{public static void main(String[] args){int s=0;for(int i=0;i<100;i++){s=s+i;i++;}System.out.println("1+3+5+···+99="+s);}}//用for循环语句求1+3+5+···+99的值实验12import java.util.*;public class shiyan12{public static void main(String[] args){int a=0,i=1,s=0;Scanner reader=new Scanner(System.in);while(a<50||a>100){System.out.println("从键盘输入一个50~100的整数");a=reader.nextInt();}System.out.println("你输入的数是"+a);while(i<=a){s=s+i;i++;}System.out.println("1+2+3+···+"+a+"="+s);}}//编写从键盘输入一个范围在50~100的整数,如果不正确,则继续输入;然后求1到输入整数的累加实验13public class shiyan13{public static void main(String[]args){int i=100,s=0;do{s=s+i;i--;}while(i>0);System.out.println("100+99+98+···+2+1="+s);}}//用do-while语句求100+99+···+2+1的值实验14import java.util.*;public class shiyan14{public static void main(String[] args)int a=-1;Scanner reader=new Scanner(System.in);System.out.println("从键盘输入0~6的整数");a=reader.nextInt();while(a<0||a>6){System.out.println("输入错误");System.out.println("从键盘输入0~6的整数");a=reader.nextInt();}switch(a){case 0:System.out.println("今天是星期日");break;case 1:System.out.println("今天是星期一");break;case 2:System.out.println("今天是星期二");break;case 3:System.out.println("今天是星期三");break;case 4:System.out.println("今天是星期四");break;case 5:System.out.println("今天是星期五");break;case 6:System.out.println("今天是星期六");break;default:System.out.println("输入错误");break;}}}//让用户通过输入一个0~6的整数,显示今天是xingqijipublic class shiyan15{public static void main(String[] args){for(int i=1;i<10;i++){if(i==6)break;System.out.println(""+i);}System.out.println("\n显示完毕");for(int i=1;i<10;i++){if(i%2==0)continue;System.out.println(""+i);}System.out.println("\n显示完毕");}}//先显示1~5各个整数,然后再显示1~10的各个奇数。
JAVA第3章例题
import javax.swing.*;
public class Example3_5
{
static double distance(double x , double y)
{
double d=Math.sqrt(x*x+y*y);
{
public static void main(String args[])
{
Box box = new Box();
double v;
v = box.volume();
System.out.println("长方体体积为: " + v);
b1.prnt(3, 5); // prnt()是实例对象b1父类A的方法,b1继承了该方法
}
}
【例3-11】子类重写了父类的方法,则在运行时,系统调用子类的方法。
/* 子类重写了父类的方法 */
import java.io.*;
class A
int max(int x, int y)
{
if(x > y) return x;
else return y;
}
【例3-3】方法调用示例,计算1 + 2 + 3 + …… + 100的和。
import javax.swing.*;
public class Example3_3
System.exit(0);
}
static float area(int x, int h)
{
float s;
s = (x * h) / 2;
明解JAVA第三章答案
明解JAVA第三章答案练习3-1package candle1220;import java.util.Scanner;public class Nightwatch {public static void main(String[] args){Scanner stdIn=new Scanner(System.in);System.out.print("整数值");int n=stdIn.nextInt();if(n>0)System.out.println("其绝对值是"+(n));elseSystem.out.println("其绝对值是"+(-n));}}练习3-2package candle1220;import java.util.Scanner;public class Nightwatch {public static void main(String[] args){Scanner stdIn=new Scanner(System.in);System.out.print("整数A:");int a=stdIn.nextInt();System.out.print("整数B:");int b=stdIn.nextInt();if(a%b==0)System.out.println(b+"是"+a+"的约数");elseSystem.out.println(b+"不是"+a+"的约数");}}练习3-3同样可以运⾏练习3-4import java.util.Scanner;public class New{public static void main(String[] args){Scanner input=new Scanner (System.in);System.out.print("a:");int a=input.nextInt();System.out.print("b:");int b=input.nextInt();if(a>b)System.out.print("a更⼤");elseif(a==b)System.out.print("⼀样⼤");elseSystem.out.print("b更⼤");}}练习3-5import java.util.Scanner;public class New{public static void main(String[] args){Scanner input=new Scanner (System.in);System.out.print("请输⼊⼀个正整数:");int a=input.nextInt();if(a<=0)System.out.print("请输⼊正整数");else if(a%5==0)System.out.print("该值可以被5整除");elseSystem.out.print("该值不可以被5整除"); }}练习3-6import java.util.Scanner;public class New{public static void main(String[] args){Scanner input=new Scanner (System.in);System.out.print("请输⼊⼀个正整数:");int a=input.nextInt();if(a<=0)System.out.print("请输⼊正整数");else if(a%10==0)System.out.print("该值是10的倍数");elseSystem.out.print("该值不是10的倍数"); }}练习3-7import java.util.Scanner;public class New{public static void main(String[] args){Scanner input=new Scanner (System.in);System.out.print("请输⼊⼀个正整数:");int a=input.nextInt();if(a<=0)System.out.print("请输⼊正整数");else if(a%3==0)System.out.print("该值可以被3整除");else if(a%3==1)System.out.print("该值除以3余1");elseSystem.out.print("该值除以3余2");}}练习3-8import java.util.Scanner;public class New{public static void main(String[] args){Scanner input=new Scanner (System.in);System.out.print("请输⼊分数:");int a=input.nextInt();if(a>=0&&a<60){System.out.println("不及格");}else if(a>=60&&a<70){System.out.println("及格");}else if(a>=70&&a<80){System.out.println("良");}else if(a>=80&&a<=100){System.out.println("优");}else{System.out.println("请输⼊合理的分数");} }}练习3-9import java.util.Scanner;public class New{public static void main(String[] args){Scanner input=new Scanner (System.in); System.out.print("a=:");int a=input.nextInt();System.out.print("b=:");int b=input.nextInt();System.out.print(a>b?a:b);}}练习3-10import java.util.Scanner;public class New{public static void main(String[] args){Scanner input =new Scanner (System.in); System.out.print("a=");int a=input.nextInt();System.out.print("b=");int b=input.nextInt();if(a>=b)System.out.print(a-b);elseSystem.out.print(b-a);}}练习3-11import java.util.Scanner;public class New{public static void main(String[] args){Scanner input =new Scanner (System.in); System.out.print("a=");int a=input.nextInt();System.out.print("b=");int b=input.nextInt();int c=a-b;if(c>10||c<-10)System.out.print("它们的差值⼤于等于11");elseSystem.out.print("它们的差值⼩于等于10"); }}练习3-12import java.util.Scanner;public class New{public static void main(String[] args){Scanner input=new Scanner(System.in); System.out.print("a=");int a =input.nextInt();System.out.print("b=");int b =input.nextInt();System.out.print("c=");int c =input.nextInt();int min1=a<b?a:b;int min=min1<c?min1:c;System.out.print(min);}}练习3-13import java.util.Scanner;public class New{public static void main(String[] args){Scanner input=new Scanner (System.in); System.out.print("a=");int a =input.nextInt();System.out.print("b=");int b =input.nextInt();System.out.print("c=");int c =input.nextInt();int mid1=a<b?b:a;int mid=mid1<c?mid1:c;System.out.print(mid);}}练习3-14// 计算两个整数值中较⼩的值和较⼤的值import java.util.Scanner;class New {public static void main(String[] args) {Scanner stdIn = new Scanner(System.in); System.out.print("整数a:");int a = stdIn.nextInt();System.out.print("整数b:");int b = stdIn.nextInt();if(a==b){System.out.print("两个整数相等");}else{int min, max; // 较⼩的值/较⼤的值if (a < b) { // 如果a⼩于bmin = a;max = b;}else{ // 否则min = b;max = a;}System.out.println("较⼩的值是" + min + "。
《软件职业技术学院“十一五”规划教材:Java编程基础》课后习题第三章答案
《软件职业技术学院“十一五”规划教材:Java编程基础》课后习题第三章答案课后习题我全部都调试了一遍,现将调试后的答案分享给大家~Student.javapublic class Student {//定义Student的成员变量:包括学号、班号、姓名、性别和年龄属性int sId; //学号int classId; //班号String name; //姓名String sex; //性别int age; //年龄//构造方法,在创建对象的时候调用Student(int sId,int classId,String name,String sex,int age){this.sId=sId;this.classId=classId; = name;this.sex=sex;this.age=age;}//定义获得学号的方法public int getSId(){return sId;}//定义设置学号的方法public void setsId(int sId) {this.sId = sId;}//定义获得班号的方法public int getClassId(){return classId;}//定义设置班号的方法public void setClassId(int classId) {this.classId = classId;}//定义获取姓名的方法public String getName() {return name;}//定义设置姓名的方法public void setName(String name) { = name;}//定义获得性别的方法public String getSex() {return sex;}//定义设置性别public void setSex(String sex) {this.sex = sex;}//定义获得年龄的方法public int getAge() {return age;}//定义获得学年龄的方法public void setAge(int age) {this.age = age;}/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub//创建对象张一Student s = new Student(027,1201,"张一","男",19);//创建对象王二Student s1 = new Student(29,1201,"王二","男",18);//打印输出张一的年龄//System.out.println(s.age+" ==== "+s.getAge());//打印输出王二的年龄//System.out.println(s1.age+" ==== "+s1.getAge());}}Rectangle.java//创建一个Rectangle类public class Rectangle {//定义成员变量:包括length和width属性int length=1; //定义length属性,默认值为1int witdh=1; //定义width属性,默认值为1//定义获取length属性的方法public int getLength() {return length;}//定义设置length属性的方法public void setLength(int length) {this.length = length;}//定义获取width属性的方法public int getWitdh() {return witdh;}//定义设置width属性的方法public void setWitdh(int witdh) {this.witdh = witdh;}/*//定义构造方法,设置属性的默认值Rectangle(int length,int width){length =1;width =1;}*///定义计算矩形周长的方法perimeterpublic int perimeter(int length,int width){//定义一个表示周长的int型变量perimeterint perimeter;perimeter = (length+width)*2;return perimeter;}//定义计算矩形面积的方法areapublic int area(int length,int width){//定义一个表示面积的int型变量areaint area;area = length*width;return area;}/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub//创建一个Rectangle类的对象Rectangle r = new Rectangle();//调用计算矩形周长的perimeter方法(先获取对象r默认的属性值r.getLength(), r.getWitdh())int p = r.perimeter(r.getLength(), r.getWitdh());//调用计算矩形面积的area方法(先获取对象r默认的属性值r.getLength(), r.getWitdh())int area = r.area(r.getLength(), r.getWitdh());//打印输出System.out.println("该矩形的周长为:"+p+"\n 面积为:"+area);}}。
JAVA练习题含答案-answertopratice3
JAVA练习题含答案-answertopratice3Chapter 3Flow of ControlMultiple Choice1)An if selection statement executes if and only if:(a)the Boolean condition evaluates to false.(b)the Boolean condition evaluates to true.(c)the Boolean condition is short-circuited.(d)none of the above.Answer:B (see page 97)2) A compound statement is enclosed between:(a)[ ](b){ }(c)( )(d)< >Answer:B (see page 98)3) A multi-way if-else statement(a)allows you to choose one course of action.(b)always executes the else statement.(c)allows you to choose among alternative courses of action.(d)executes all Boolean conditions that evaluate to true.Answer:C (see page 100)4)The controlling expression for a switch statement includes all of the following types except:(a)char(b)int(c)byte(d)doubleAnswer:D (see page 104)Copyright ? 2006 Pearson Education Addison-Wesley. All rights reserved. 125)To compare two strings lexicographically the String method ____________ should be used.(a)equals(b)equalsIgnoreCase(c)compareTo(d)==Answer:C (see page 112)6)When using a compound Boolean expression joined by an && (AND) in an if statement:(a)Both expressions must evaluate to true for the statement to execute.(b)The first expression must evaluate to true and the second expression must evaluate to false forthe statement to execute.(c)The first expression must evaluate to false and the second expression must evaluate to true forthe statement to execute.(d)Both expressions must evaluate to false for the statement to execute.Answer:A (see page 116)7)The OR operator in Java is represented by:(a)!(b)&&(c)| |(d)None of the aboveAnswer:C (see page 116)8)The negation operator in Java is represented by:(a)!(b)&&(c)| |(d)None of the aboveAnswer:A (see page 116)9)The ____________ operator has the highest precedence.(a)*(b)dot(c)+=(d)decrementAnswer:B (see page 123)10)The looping mechanism that always executes at least once is the _____________ statement.(a)if…else(b)do…while(c)while(d)forAnswer:B (see page 132).Chapter 3 Flow of Control 311) A mixture of programming language and human language is known as:(a)Algorithms(b)Recipes(c)Directions(d)PseudocodeAnswer:D (see page 134)12)When the number of repetitions are known in advance, you should use a ___________ statement.(a)while(b)do…while(c)for(d)None of the aboveAnswer:C (see page 141)13)To terminate a program, use the Java statement:(a)System.quit(0);(b)System.end(0);(c)System.abort(0);(d)System.exit(0);Answer:D (see page 148)True/False1)An if-else statement chooses between two alternative statements based on the value of a Booleanexpression.Answer:True (see page 96)2)You may omit the else part of an if-else statement if no alternative action is required.Answer:True (see page 97)3)In a switch statement, the choice of which branch to execute is determined by an expression given inparentheses after the keyword switch.Answer:True (see page 104)4)In a switch statement, the default case is always executed.Answer:False (see page 104)5)Not including the break statements within a switch statement results in a syntax error.Answer:False (see page 104)6)The equality operator (==) may be used to test if two string objects contain the same value.Answer:False (see page 111)47)Boolean expressions are used to control branch and loop statements.Answer:True (see page 116)8)The for statement, do…while statement and while statement are examples of branching mechanisms.Answer:False (see page 130)9)An algorithm is a step-by-step method of solution.Answer:True (see page 134)10)The three expressions at the start of a for statement are separated by two commas.Answer:False (see page 137)Short Answer/Essay1)What output will be produced by the following code?public class SelectionStatements{public static void main(String[] args){int number = 24;if(number % 2 == 0)System.out.print("The condition evaluated to true!");elseSystem.out.print("The condition evaluated to false!");}}Answer:The condition evaluated to true!.Chapter 3 Flow of Control 52)What would be the output of the code in #1 if number was originally initialized to 25?Answer:The condition evaluated to false!3)Write a multi-way if-else statement that evaluates a persons weight on the following criteria: Aweight less than 115 pounds, output: Eat 5 banana splits! A weight between 116 pounds and 130 pounds, output: Eat a banana split! A weight between 131 pounds and 200 pounds, output: Perfect!A weight greater than 200 pounds, output: Plenty of banana splits have been consumed!Answer:if(weight <= 115)System.out.println("Eat 5 banana splits!");else if(weight <= 130)System.out.println("Eat a banana split!");else if(weight <=200)System.out.println("Perfect!");elseSystem.out.println("Plenty of banana splits have been consumed!");4)Write an if-else statement to compute the amount of shipping due on an online sale. If the cost ofthe purchase is less than $20, the shipping cost is $5.99. If the cost of the purchase over $20 and at most $65, the shipping cost is $10.99. If the cost of the purchase is over $65, the shipping cost is $15.99.Answer:if(costOfPurchase < 20)shippingCost = 5.99;else if((costOfPurchase > 20)&&(costOfPurchase <= 65))shippingCost = 10.99;elseshippingCost = 15.99;5)Evaluate the Boolean equation: !( ( 6 < 5) && (4 < 3))Answer:True66)Write Java code that uses a do…while loop that prints even numbers from 2 through 10.Answer:int evenNumber = 2;do{System.out.println(evenNumber);evenNumber += 2;}while(evenNumber <= 10);7)Write Java code that uses a while loop to print even numbers from 2 through 10.Answer:int evenNumber = 2;while(evenNumber <= 10){System.out.println(evenNumber);evenNumber += 2;}Answer:8)Write Java code that uses a for statement to sum the numbers from 1 through 50. Display the totalsum to the console.Answer:.Chapter 3 Flow of Control 7 int sum = 0;for(int i=1; i <= 50; i++){sum += i;}System.out.println("The total is: " + sum);9)What is the output of the following code segment?public static void main(String[] args){int x = 5;System.out.println("The value of x is:" + x);while(x > 0){x++;}System.out.println("The value of x is:" + x);}Answer:.10)Discuss the differences between the break and the continue statements when used in loopingmechanisms.Answer:When the break statement is encountered within a looping mechanism, the loopimmediately terminates. When the continue statement is encountered within a looping mechanism, the current iteration is terminated, and execution continues with the next iteration of the loop.8Programming projects:1. Write a complete Java program that prompts the user fora series of numbers to determine the smallestvalue entered. Before the program terminates, display the smallest value.Answer:import java.util.Scanner;public class FindMin{public static void main(String[] args){Scanner keyboard = new Scanner(System.in);int smallest = 9999999;String userInput;boolean quit = false;System.out.println("This program finds the smallest number"+ " in a series of numbers");System.out.println("When you want to exit, type Q");.Chapter 3 Flow of Control 9 while(quit != true){System.out.print("Enter a number: ");userInput = keyboard.next();if(userInput.equals("Q") || userInput.equals("q")){quit = true;}else{int userNumber = Integer.parseInt(userInput);if(userNumber < smallest)smallest = userNumber;}}System.out.println("The smallest number is " + smallest);System.exit(0);}10}2. Write a complete Java program that uses a for loop to compute the sum of the even numbers and thesum of the odd numbers between 1 and 25.public class sumEvenOdd{public static void main(String[] args){int evenSum = 0;int oddSum = 0;//loop through the numbersfor(int i=1; i <= 25; i++){if(i % 2 == 0){//even numberevenSum += i;}else{oddSum += i;.Chapter 3 Flow of Control 11 }}//Output the resultsSystem.out.println("Even sum = " + evenSum);System.out.println("Odd sum = " + oddSum);}}/*** Question2.java** This program simulates 10,000 games of craps.* It counts the number of wins and losses and outputs the probability* of winning.** Created: Sat Mar 05, 2005** @author Kenrick Mock* @version 1*/public class Question2{private static final int NUM_GAMES = 10000;/*** This is the main method. It loops 10,000 times, each simulate* a game of craps. Math.random() is used to get a random number,* and we simulate rolling two dice (Math.random() * 6 + 1 simulates* a single die).*/public static void main(String[] args){// Variable declarationsint numWins = 0;12int numLosses = 0;int i;int roll;int point;// Play 10,000 gamesfor (i=0; i<="" p="">{// Simulate rolling the two dice, with values from 1-6roll = (int) (Math.random() * 6) + (int) (Math.random() * 6) + 2;// Check for initial win or lossif ((roll == 7) || (roll == 11)){numWins++;}else if ((roll==2) || (roll==3) || (roll==12)){numLosses++;}else{// Continue rolling until we get the point or 7point = roll;do{roll = (int) (Math.random() * 6) + (int) (Math.random() * 6) +2;if (roll==7){numLosses++;}else if (roll==point){numWins++;}} while ((point != roll) && (roll != 7));}}// Output probability of winningSystem.out.println("In the simulation, we won " + numWins +" times and lost " + numLosses + " times, " +" for a probability of " +(double) (numWins) / (numWins+numLosses));}} // Question2.Chapter 3 Flow of Control 13 /*** Question6.java** Created: Sun Nov 09 16:14:44 2003* Modified: Sat Mar 05 2005, Kenrick Mock** @author Adrienne Decker* @version 2*/import java.util.Scanner;public class Question6{public static void main(String[] args){Scanner keyboard = new Scanner(System.in);while ( true ){System.out.println("Enter the initial size of the green crud" + " in pounds.\nIf you don't want to " +"calculate any more enter -1.");int initialSize = keyboard.nextInt();if ( initialSize == -1){break;} // end of if ()System.out.println("Enter the number of days: ");int numDays = keyboard.nextInt();int numOfRepCycles = numDays / 5;int prevPrevGen = 0;int prevGen = initialSize;int finalAnswer = initialSize;for ( int i = 0; i < numOfRepCycles; i++ ){finalAnswer = prevPrevGen + prevGen;14prevPrevGen = prevGen;prevGen = finalAnswer;} // end of for ()System.out.println("The final amount of green crud will be: "+ finalAnswer + " pounds.\n");} // end of while ()}} // Question6/*** Question7.java** Created: Sun Nov 09 16:14:44 2003* Modified: Sat Mar 05 2005, Kenrick Mock** @author Adrienne Decker* @version 2*/import java.util.Scanner;public class Question7{public static void main(String[] args){Scanner keyboard = new Scanner(System.in);String line;do{System.out.println("Enter the value of X for this calculation."); double x = keyboard.nextDouble();double sum = 1.0;double temp = 1.0;for ( int n = 1; n <= 10; n++){System.out.print("For n equal to: " + n.Chapter 3 Flow of Control 15+ ", the result of calculating e^x is: ");for ( int inner = 1; inner <= n; inner++){temp = 1.0;for ( double z = inner; z > 0; z--){temp = temp * (x/z);} // end of for ()sum += temp;} // end of for ()System.out.println(sum);sum = 1.0;} // end of for ()System.out.print("For n equal to 50, the result of " + "calculating e^x is: ");for ( int n = 1; n <= 50; n++){temp = 1.0;for ( double z = n; z > 0; z--){temp = temp * (x/z);} // end of for ()sum += temp;} // end of for ()System.out.println(sum);sum = 1;System.out.print("For n equal to 100, the result of " + "calculating e^x is: ");for ( int n = 1; n <= 100; n++){temp = 1.0;for ( double z = n; z > 0; z--){temp = temp * (x/z);} // end of for ()sum += temp;} // end of for ()System.out.println(sum);System.out.println("\nEnter Q to quit or Y to go again.");16keyboard.nextLine(); // Clear bufferline = keyboard.nextLine();} while (line.charAt(0)!='q' && line.charAt(0)!='Q'); // end of while () }} // Question7.。
JAVA第三章练习
1.用穷举法求出3位数中百、十、个位数的立方和就是该数的数。
public class Test{ public static void main(String[] args){int a,b,c,x=100;while(x<1000){a=x%10;b=(x%100-a)/10;c=(x-x%100)/100;if(a*a*a+b*b*b+c*c*c==x)System.out.println(x);x+=1;}}}2.编程实现打印以下图案:************************************public class Test{ public static void main(String[] args){int i,j,k; // i控制行数, k控制*的个数,j控制空格数for(i=1;i<=6;i++){for(j=1;j<=i-1;j++)System.out.print(" "); //打印空格for(k=1;k<=13-i*2;k++)System.out.print("*"); //打印*号System.out.println(); //换行}}}3. 统计1至1万共有多少个数是素数。
public class Test{ public static void main(String[] args){ int i,j,count=0;label:for(i=1;i<=10000;i++) //查找1到10000以内的素数{ for(j=2;j<i;j++) //检验是否不满足素数条件if (i%j==0) //不满足continue label; //跳过后面不必要的检验count++; //计数}System.out.println("个数:"+count);}}4.读程序,写结果。
JAVA期末复习题及答案——第三章
JAVA期末复习题及答案——第三章一、填空题1.阅读下列程序段int i=3,j;outer:while(i>0){j=3;inner:while(j>0){if(j<2) break outer;System.out.println(j+”and”+i);j--;}i--;}被输出到屏幕第一行的结果是 3 and 3 。
2.阅读下列代码段int x=3;while(x<9)x+=2;x++;while语句成功执行的次数是 3次。
3.已知a=3,b=9,则表达式a>b?a,b的值为 9 。
4.关系运算符的运算结果一定是布尔数据类型。
5. do-while 表示的循环体会至少执行一次。
6.已知x=12,y=6,z=false,则下列表达式的值分别为(表达式之间没有执行的先后顺序):100= =x+y falsex=y+10 16z||y>x false!(y*3<=x*4) false7.跳转语句continue用于循环体时表示退出本次循环,跳转语句break用于循环体时表示退出整个循环。
二、选择题1.阅读下列程序if(x= =0) {System.out.println(“冠军”);else if(x>-3) {System.out.println(“亚军”);else {System.out.println(“季军”);若要求打印字符串“季军“,则变量x的取值范围是:DA、x=0&x<=-3B、x=0C、x>-3D、x<=-32.阅读下面程序import javax.swing.JOptionPane;public class BreakLabelTest{public static void main(String args[]){String output=””;stop:{for(int row=1;row<=10;row++){for(int column=1;column<=5;column++){if(row= =5)break stop;output+=”* “;}output+=”\n”;}output+=”\nLoops terminated normally”;}JOptionPane.showMessageDialog{null,output,”用一个标志测试break语句”,RMATION_MESSAGE);System.exit(0);}}程序运行结果是:CA、窗口中有5行* * * * *B、窗口中有5行* * * *C、窗口中有4行* * * * *D、窗口中有6行* * * * *3.下列语句中,属于多分支语句的是:BA、if语句B、switch语句C、do while语句D、for语句4.阅读下列代码public class Test2005{public static void main(String args[]){String s=”Test”;switch(s){case “Java”: System.out.print(“Java”); break;case “Language”: System.out.print(“Language”); break;case “Test”: System.out.print(“Test”); break;}}}其运行结果是:DA、JavaB、LanguageC、TestD、编译出错5.下列代码中if(x>0) {System.out.println(“first”);}else if(x>-3){System.out.println(“second”);}else {System.out.println(“third”);}要求打印字符串为“second”时,x的取值范围是:AA、x<=0并且x>-3B、x>0C、x >-3D、x<=36.下列哪个说法是正确的?BA. if语句和else语句必须成对出现B. if语句可以没有else语句对应C. switch后的表达式可以是long型D. 每个switch结构中必须有default结构7.以下语句中有语法错误的是:BA. for(; ;);B. for(int i=0, i<10, i++){}C. if(a<0) ++a;D.do{a=false;} while(a=true);8.while循环和do_while循环的区别是:DA、没有区别,这两种结构在任何情况下效果都是一样的B、while循环的执行效率比do_while循环的执行效率高C、while先循环后判断,所以循环体至少执行一次D、do_while先循环后判断,所以循环体至少执行一次9.关于for循环和while循环,下面哪个说法是正确的?BA、while循环能实现的操作,for循环都能实现B、while循环的判断条件一般是程序的结果,for循环的判断条件一般是非程序的结果C、两种循环在任何时候都可以互换,所以会使用一种就可以D、两种循环结构中都必须有循环体,循环体不能为空10.下面说法正确的是:CA、程序执行到break语句时一定会结束所有的循环B、程序执行到continue语句时会结束当前循环C、break语句和continue语句都可以和标签协同使用D、break语句和continue语句的作用相同三、判断题1.switch语句中switch后面的表达式可以是整型,字符型,还可以是复合数据类型。
解析JAVA程序设计第三章课后答案
第3章习题解答1.如何定义方法?在面向对象程序设计中方法有什么作用?答:方法的定义包括方法名、方法形参、方法的返回值类型和方法体四部分,方法只能在类中定义。
方法是对象的动态特征的描述,对象通过方法操作属性,进而改变对象的状态,完成程序所预期的功能。
2.定义一个Dog类,有名字、颜色、年龄等属性,定义构造方法用来初始化类的这些属性,定义方法输出Dog的信息。
编写应用程序使用Dog。
答:public class Dog{private String name;private String color;private String age;Dog(String n,String c,String a){name = n; color = c; age = a;}public String toString() {return name + "," + color + "," + age;}public static void main(String args[]) {Dog dog = new Dog("小白", "白色", "2岁");System.out.println(dog.toString());}}3.什么是访问控制修饰符?修饰符有哪些种类?它们各有何作用?答:访问控制修饰符是对类、属性和方法的访问权限的一种限制,不同的修饰符决定了不同的访问权限。
访问控制修饰符有3个:private、protected、public,另外还有一种默认访问权限。
各个修饰符的作用如下表所示:B:包中的类C:所有子类D:本类A:所有类:所有类4.阅读程序,写出程序的输出结果class A{private int privateVar;A(int _privateVar){privateVar=_privateVar;}boolean isEqualTo(A anotherA){if(this.privateVar == anotherA.privateVar)return true;elsereturn false;}}public class B{public static void main(String args[]){A a = new A(1);A b = new A(2);System.out.println(a.isEqualTo(b));}}程序的输出结果为:false5.阅读程序,写出程序的输出结果public class Test {public static void main(String[] args) {int x;int a[] = { 0, 0, 0, 0, 0, 0 };calculate(a, a[5]);System.out.println("the value of a[0] is " + a[0]);System.out.println("the value is a[5] is " + a[5]);}static int calculate(int x[], int y) {for (int i = 1; i < x.length; i++)if (y < x.length)x[i] = x[i - 1] + 1;return x[0];}}程序的输出结果为:the value of a[0] is 0the value is a[5] is 56.阅读程序,写出程序的输出结果public class Test {public static void main(String[] args) {String str1 = new String("Java");String str2 = new String("Java");System.out.println(str1 == str2);}}程序的输出结果为:false7.阅读下列程序,程序中已经指明错误位置,请说出错误原因。
java基础教程第3版习题解答.doc
不可以。
4.匿名类一定是内部类吗?
一定是。
5.请说出下列程序的输出结果。
大家好,祝工作顺利!
6.请说出下列程序的输出结果。
D是接口变景
7.请说出下列程序的输出结果。
你好fine。
2.4和3。
3.false和true。
4.负数°
5.是true。
6.3和-1。
7.会发生NumberFormatExcept ion异常。
8.苹果
9
10.public class E {
public stat ic void main (String args [ ]) { String sl,s2, tl=,,ABCDabcdv;
sl=t1. toUpperCase0;
char cStart=s. charAt (0);
char cEnd = s・ charAt (s・ 1 ength ()-1);
System・ out・ print In (cStart); System. out・ println(cEnd);
)
}
12.import java .util.*;
b=24;
c=Math. as in (0. 56);
System・ out. print In (c);
c=Ma th. cos (3. 14);
System. oul. print In (c);
c=Ma th. exp (1);
System. oul. print In (c);
c=Math. log(8);
{ public static void main (String args []) { double sum=0, a=l;
JAVA实用教程(第三版)课后习题及答案
{
void g()
{
A a=new A(); a.weight=23f; a.f(3,4);
}}
答:a.weight=23f;错
1.编写一个类,该类创建的对象可以计算等差数列的和。解:classDengCha{
int start,d; DengCha(){
Case 4: System.out.printf(“%c”,’d’); Break;
}
}
输出:a,b, b,c,d,d
9.下列System.out.printf语句输出的结果是什么?
Char a[]={‘a’,’b’,’c’,’d’,’e’}; For(i=0; i<=a.length/2; i++)
答:不,只加载本程序用到的类到内存中,因为java程序是动态加载, 字节码类文件。
16.有哪几种访问权限修饰符?说出一种的作用。答:访问权限修饰符有public,private,protected.
Private作用是只允许本类的对象访问。
17.怎样反编译一个类?
答:使用SDK提供的反编译器javap.exe文件可以实现将字节码文件反编译为源码文件。可查看源码中public方法和public成员变量的名字。如加入参数-private则可列出其全部的成员方法和成员变量。
9.请阐述为什么类方法不能调用实例方法?
答:对于类方法在该类加到内存时就分配了相应的入口地址,所以即使该类未创建对象,也可以通过类名调用类方法。而这时在类对象创建之前,实例方法还没有入口地址。还不知道一个方法从何处开始执
行,当然不能调用。
10.请阐述,为什么类方法中不能操作实例成员变量?
Java第三章习题
第3章一、选择题1.下列()不属于Java语言流程控制结构?(A)分支语句(B)跳转语句(C)循环语句(D)赋值语句2.假设a是int类型的变量,并初始化为1,则下列()是合法的条件语句?(A)if(a){} (B)if(a<<=3){} (C)if(a=2){} (D)if(true){} 3.下列说法中,不正确的一个是(C )。
(A)switch语句的功能可以由if…else if语句来实现(B)若用于比较的数据类型为double型,则不可以用switch语句来实现(C)if …else if语句的执行效率总是比switch语句高(D)case子句中可以有多个语句,并且不需要大括号{}括起来4.设a、b为long型变量,x、y为float型变量,ch为char类型变量且它们均已被赋值,则下列语句中正确的是()。
(A)switch(x+y) {} (B)switch(ch+1) {}(C)switch ch {} (D)switch(a+b); {}5.下列循环体执行的次数是()。
int y=2, x=4;while(--x != x/y){ }(A)1 (B)2 (C)3 (D)46.下列循环体执行的次数是()。
int x=10, y=30;do{ y-=x;x++; }while(x++<y--);(A)1 (B)2 (C)3 (D)47.已知如下代码:switch(m){case 0: System.out.println("Condition 0");case 1: System.out.println("Condition 1");case 2: System.out.println("Condition 2");case 3: System.out.println("Condition 3");break;default:System.out.println("Other Condition");}当m的值为()时,输出“Condition 3”(A)2 (B)0、1 (C)0、1、2 (D)0、1、2、3二、填空题1.跳转语句包括、、和2.switch语句先计算switch后面的的值,再和各语句后的值做比较。
java基础教程第3版习题解答
Java基础教程第3版习题解答第一章习题1. James Gosling2.需3个步骤:1)用文本编辑器编写源文件2)使用javac编译源文件,得到字节码文件3)应用程序使用解释器运行。
3. path d:\jdk\binclasspath =d:\jdk\jre\lib\rt.jar;.;4.B5. java 和class6.D。
第二章习题1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。
false不是标识符。
2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。
不是关键字。
class implements interface enum extends abstract。
3.float常量必须用F或f为后缀。
double常量用D或d为后缀,但允许省略后缀。
4.一维数组名.length。
二维数组名.length。
5. C6.ADF7. B8 【代码2】【代码3】【代码4】9.B。
10.属于操作题,解答略。
11.3,112.public class E {public static void main(String args[]) {System.out.println((int)'你');System.out.println((int)'我');System.out.println((int)'他');}}13.public class E {public static void main (String args[ ]) {char cStart='α',cEnd='ω';for(char c=cStart;c<=cEnd;c++)System.out.print(" "+c);}}第三章习题1. 1102.beep!!3.public class E {public static void main (String args[ ]) {for(char c='а'; c<='я';c++) {System.out.print(" "+c);}}}4.public class Xiti3_4{ public static void main(String args[]){ double sum=0,a=1;int i=1;while(i<=20){ sum=sum+a;i++;a=a*i;}System.out.println("sum="+sum);}}5.public class Xiti5{ public static void main(String args[]){ int i,j;for(j=2;j<=100;j++){ for(i=2;i<=j/2;i++){ if(j%i==0)break;}if(i>j/2){ System.out.print(" "+j);}}}}6.class Xiti6{ public static void main(String args[]){ double sum=0,a=1,i=1;do { sum=sum+a;i++;a=(1.0/i)*a;}while(i<=20);System.out.println("使用do-while循环计算的sum="+sum);for(sum=0,i=1,a=1;i<=20;i++){ a=a*(1.0/i);sum=sum+a;}System.out.println("使用for循环计算的sum="+sum);}}7.class Xiti7{ public static void main(String args[]){ int sum=0,i,j;for(i=1;i<=1000;i++){ for(j=1,sum=0;j<i;j++){ if(i%j==0)sum=sum+j;}if(sum==i)System.out.println("完数:"+i);}}}8.import java.util.*;public class E {public static void main (String args[ ]) {int m,n;Scanner scaner= new Scanner(System.in);System.out.println("输入正数m回车确认");m = scaner.nextInt();System.out.println("输入正数n回车确认");n = scaner.nextInt();int p=m;int q= n;int r = m%n;while(r!=0) {m = n;n =r;r =m%n;}System.out.println(p+"和"+q+"的最大公约数"+n);System.out.println(p+"和"+q+"的最小公倍数"+(p*q)/n);}}9.public class E{ public static void main(String args[]){ int n=1;long sum=0;while(true){ sum=sum+n;n++;if(sum>=8888)break;}System.out.println("满足条件的最大整数:"+(n-1));}}第四章习题1.用该类创建对象时。
java习题及答案第3章 习题参考答案
第3章习题解答1. Java语言的注释有哪几种?分别给出一个例子。
答:Java语言的注释有3种,分别是单行注释、多行注释和文档注释。
单行注释的例子如下:public static Point origin = new Point(0, 0); //类初始化时,创建一个原点实例多行注释的例子如下:/* 类初始化时,创建一个原点实例 */public static Point origin = new Point(0, 0);文档注释的例子如下:/**** @类名:Point* @类简介:坐标点类,可以初始化其坐标x和y。
* @编程人:林福平* @编程日期:2012-8-9* @修改日期:2012-8-10**/2. Java语言中分隔符有哪几种?空白符有哪些?答:Java语言中的分隔符有空白符、注释和普通分隔符三种。
Java语言中的空白符(White Space)包括空格(SP,space)、制表符(‘\t’,Tab键)、走纸换页(‘\f’)、回车(‘\r’)和换行(‘\n’)。
3. 简述标识符的用途。
下列字符串中,哪些是标识符?PIx2 -length a+b _bytes $long MIN_VALUE答:Java语言中的标识符用于对类、方法、变量、类型、数组和文件等进行命名。
上述字符串中,以下这些是Java语言的标识符:PIx2 _bytes $long MIN_VALUE4. 下列字符串中,哪些是关键字?true for int null $float _double答:上述字符串中,以下这些是Java语言的关键字:true for int null5. Java语言的基本数据类型分为那几大类?答:Java语言的基本数据类型分为数值类型(包括整数类型和浮点类型)、字符类型(char)和布尔类型(Boolean)。
整数类型有byte、 short、 int和long。
浮点类型有float和double。
[教学]java程序设计项目教程第3章答案
一、选择题参考答案:1.B2.A3.D4.C5.A6.A7.B8.B9.A 10.A 11.A 12.D二、填空题参考答案:1.覆盖2.参数3.方法体4.public static final5.抽象6.extends7.Student String 8.class static三、简答题1.子类能够继承父类的哪些成员变量和方法?①子类可以继承父类的属性,包括实例成员变量和类成员变量。
②子类可以继承父类除构造方法以外的成员方法,包括实例成员方法和类成员方法。
2.this和super关键字的作用是什么?0使用this关键字可实现调用本类的构造方法及调用被方法隐藏的成员变量。
0super关键字可调用父类的构造方法及调用父类的同名成员。
03.什么是方法的重载?什么是方法的覆盖?0方法重载是指同一个类中多个方法享有相同的名字,但是这些方法的参数必须不同,参数不同是,指或者是参数的个数不同,或者是参数类型不同,或者是不同类型参数的排列顺序不同。
0类继承的过程中,子类方法跟父类方法名字相同,并且传递的参数完全一样,称子类覆盖了父类的方法。
04.什么是多态?使用多态有什么优点?0多态的表现形式主要有方法的重载和方法的覆盖。
0使用多态可根据同名方法的参数不同实现不能的功能或同一类对象根据赋予的引用对象的不同来实现不同的行为。
05.什么是包?定义包的作用是什么?0包是java提供的一种命名空间机制,实现了对类的存放和引用位置的管理,包对应一个文件夹。
0java的类库就是用包来实现了类的分类和存放,每个包中都有多组相关的类和接口。
6.什么是接口?接口中的变量和方法各有什么要求?接口是特殊的抽象类,可以想象为一个“纯”抽象类,就是一组具有特定意义的静态常量和抽象方法的集合。
属性定义时必须赋初值,是常量。
属性性前修饰符时默认该属性由final、static修饰。
接口中的方法必须是抽象方法。
7.类BB是AA类的子类。
类AA和类BB中都定义了变量x和method()方法,这种情况称为子类隐藏了父类的同名变量x并覆盖了父类的method()方法.8.输出结果为:AABB若将main()方法中的语句改为:BB b=new BB(10); 程序输出的结果是什么?AAAAAABBBB四、编程1.编写一个类,描述学生的学号、姓名、成绩。
Java程序设计基础与实战-习题答案(人邮) 第3章作业参考答案
第3章作业参考答案
1.填空题(1)类
(2)属性new
(3)thisstatic
2.选择题
简答题
(1)回答要点
面向对象的方法主要是把事物给对象化,包括其属性和行为。
面向对象编程更贴近实际生活的思想。
总体来说面向对象的底层还是面向过程,面向过程抽象成类,然后封装,方便使用就是面向对象(万物皆对象)。
(2)回答要点
•格式区别
构造方法和类名相同,并且没有返回类型,也没有返回值。
普通成员方法可以任意起名,必须有返回类型,可以没有返回值。
•作用区别
构造方法用于创立对象,并进行初始化值。
普通成员方法是用于完成特定功能的。
•调用区别
构造方法是在创立对象时被调用的,一个对象建立,只调用一次相应构造函数。
普通成员方法是由创立好的对象调用,可以调用屡次。
(3)回答要点
Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间,回收之前会自动调用finalize方法,用于清理资源。
(4)回答要点
对象是类的实例,类是对象的模板
4.编程题
(1)源代码:参考本章资料文件夹下“作业1”。
(2)源代码:参考本章资料文件夹下“作业2”。
JAVA第三章课后习题解答
System.out.println(s); return s; } }
public class TestStudent { public static void main(String args[]) { student stu = new student("0401398", "杨小明", "男",20); stu.printInfo();
【13】什么是接口?为什么要定义接口?接口和类有什么异同? [解答]:接口是用来调节各类之间的相互关系的一种结构,接口是抽象类的一种,只包含常 量和方法的定义,而没有变量和具体方法的实现,且其方法都是抽象方法。 接口定义的格式如下:
[public] interface 接口名 [extends 父接口名列表]{ … //接口体 } extends 子句有类声明的 extends 子句基本相同,不同的是一个接口可有多个父接口,用 逗号隔开,而一个类只能有一个父类。Java 中的类只能实现单重继承,这虽然可以简化编程, 但毕竟没有完全实现面向对象的功能。定义接口的主要作用,就是帮助 Java 实现类间多重 继承的结构。而且接口还有以下好处:
4
● 接口可以被多个类所实现,这些类可以不相关,从而具有相同的行为。 ● 通过接口可以了解对象的行为,而无需了解对象所对应的类的结构。
JAVA第三章习题答案 (2)
o=cno; ame=cname; this.credit=credit; this.period=period; } public void setCno(String cno){ o=cno; } public String getCno(){ return cno; } public void setCname(String cname){ ame=cname; } public String getCname(){ return cname; } public void setCredit(double credit){ this.credit=credit; } public double getCredit(){ return credit; } public void setPeriod(int period){ this.period=period; } public int getPeriod(){ return period; } public String toString(){ return cno+"\t"+cname+"\t"+credit+"\t"+period; } } 9.设计并实现一个 Box 类。要求:定义 3 个实例变量分别表示 Box 的长、宽和高,并定义 必要的方法。创建一个对象,求给定尺寸的立方体的表面积和体积。 //Box.java public class Box { private double length; private double width; private double height;
10.学生类的创建和使用。 (1)创建一个 Student 类,包括的私有数据成员有学号、姓名、性别、年龄等。 (2)声明一个构造方法,以初始化对象的所有数据成员。 (3)声明分别获得各数据成员(学号、姓名、性别、年龄等)的各个 public 方法。 (4)声明分别修改各数据成员(学号、姓名、性别、年龄等)的各个 public 方法。 (5 ) 声明一个 public 型的 toString( )方法, 把该类中的所有数据成员信息组合成一个字符串。 (6 ) 在类中声明统计班级总人数的私有数据成员 count, 以及获得班级总人数的 public 方法。 (7)将 Student 类放在子包 student 中。 (8 ) 在子包 student 外, 创建测试类 StudentTest。 在测试类中, 使用 Student 类创建多个对象, 测试 Student 类的每个 public 方法。 //Student.java package student; public class Student { private String sno; private String sname; private char ssex; private int sage; private static int count=0; public Student(String no,String name,char sex,int age){ sno=no; sname=name; ssex=sex; sage=age; count++; } public void setSno(String no){ sno=no; } public String getSno(){ return sno; } public void setSname(String name){ sname=name; } public String getSname(){ return sname; } public void setSsex(char sex){ ssex=sex; } public char getSsex(){ return ssex;
Java语言程序设计基础篇前三章课后习题
第 1 章For personal use only in study and research; not for commercialuse第2章第3章第4章聿计算机、程序和Java 概述薈1.1 (显示三条消息)编写程序,显示Welcome to Java Welcome to Computer Scienee 和Programmi ng is fun。
蚄程序:public class DisplayThereeMessages {public static void main(String[] args){ Syste(n*out.println("Welcome to Java")j System・ prtntlrr("討亡lcom 亡to Computer Science M); Systerr.out.println("Programmi ng is fun**);}}膂腿显示:Idelcome to lavaWelcome to Computer Science 羈F is g*莅1.2 (显示五条消息)编写程序,显示Welcome to Java五次羀程序:袅public class DisplayFivefiestages {public static void main(String[j args ){System.DU t*prijitIn('\'Jelco (ne to System ・ println ("N 已]XEIT 亡 toSystem to System ■口st ・printlri("N^EQOffi^ to System ・out.printin(,r Jelc (Mne to蒇显示:Welcome to tWelcome to Jews I Welccrre to f羁1.3 (显示图案)编写一个程序,显示下面的图案:JA V V A □AA V V AA 3 3 AAAAA VV AAAAA JJ A A V A A蚈祎程序:public class DisplayPattern {public static void main(String[日「沪){Sys 七已硏.out* p 「irrtln (" 3 A VV A"}; System.out.printIn (1 A A VVA WSystem, put . print In (h,] 1AAAAA V V AAAAA 1-); System.out-printIn(H J JA AVA A n )}Java !p );Java !"); Java t 11); 3ava !")i Java !");薆1.4 (打印表格)编写程序,显示以下表格:a111283 9 27® 16 6 华袀膈程序:public class PrintTable {public static void main(String[] args}{System・out.printin("a a A2Systen.out* printin(T1r); System^out* printin(n24旷);System. out. println (hh3927M); System.out.println("41664'1);肂显示:A A AAAAAA A A1 1 12 4 83 9 27袁一一一芇1.5 (计算表达式)编写程序,显示(膄程序:public class 匚omputeTheExpression { public static void main(String[]円『呂s){System.out.println((9.5*4.5-2.5*3)/(45.5-3.5)); }袂羃显示:0.8392B57142S57143虿袈1.6 (数列求和)编写程序,显示1+2+3+4+5+6+7+8+9 的结果薃程序:public class TheSummatianOfSequences { public static void iriain(String[] args){ System.out* printLn(1+2+3+4+5+6+7+S+9);螀螈显示:莃1.7 (近似求n)可以使用以下公式计算n:袁n=4x (1-1/3+1/5-1/7+1/9-1/11 + 1/13+..J膀编写程序,显示4x(1-1/3+1/5-1/7+1/9-1/11 + 1/13..J 的结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 3 章面向对象程序设计一、判断题1.()下面程序输出数字0。
2.()Java语言为所有的Java程序自动导入包“ng”,因此Java程序可以直接用“ng”中的类和接口。
位于类继承关系层次结构树的根部的类Object就是在包“ng”中的一个类。
3.()有时候为了避免引起混淆,构造方法的方法名可以不与所属类名同名。
4.()构造方法一般不允许有任何返回值,因此需要在返回类型处标注为void。
5.()任何类都必须显示地定义该类的构造方法,以便对类的成员进行各种初始化操作。
6.()运行下面程序将在控制台窗口中输出a。
7.()下面的程序将输出“Creating Rock 2”。
8.()Java语言对内存的释放是采用垃圾自动回收机制。
Java虚拟机自动判断并收集“垃圾”,但一般不会立即释放它们的存储空间。
9.()Java系统提供了方法“System.gc()”来强制立即回收“垃圾”,即当调用该方法时,系统会立即回收“垃圾”。
10.()程序可以借助于finalize方法来精确记录在程序执行过程中内存资源的释放情况。
11.()如果在定义一个类的时候没有用到关键字extends,则这个类没有直接父类。
12.()Java语言规定:任何一类的构造方法必须调用其父类的构造方法(包括隐式调用),并且调用父类构造方法的语句必须是子类构造方法的第一条语句。
13.()在同一类中,不允许存在具有相同方法名和相同参数类型列表的方法,即使该方法的返回类型不相同。
14.()如果一个类不是内部类,则它的访问属性不能是private或者protected。
15.()抽象方法不能含有方法体,并且必须在抽象类中。
16.()抽象类是不能实例化的。
抽象类的实例化,应当通过其不具有抽象属性的子类来创建。
17.()下面的程序输出整数3。
18.()设在一个java包.tsinghua.kit中含源程序文件J_Data.java,其内容如下:在另一个包中含有源程序Exer3_1_18.java,其内容如下:假设类路径设置及源程序文件所在的路径都是正确的,则上面的程序可以正常进行编译与运行,最终可以输出3。
二、填空题1.面向对象的计算机语言一般应有3个基本特征,分别是_________________、___________________和___________________。
2.在下面的源代码中,类Exer3_2_2的域是__________,构造方法是_____________,当该类的实例对象在被释放之前可能被系统自动调用的方法是___________。
3.在下面程序编译后,按“Java Exer3_2_3 1 2 3”方式运行的结果是:__________。
4.运行下面程序会输出______________。
5.运行下面程序,将会输出__________________。
6.语句“J_Example a =new J_Example()”定义了变量a,想释放变量a所指向的实例对象的内存空间,请写出相应的一条或多条语句:___________________。
7.在源程序的下划线处填上相应的语句,完成该程序,并判断该程序的最终输出结果是__________________。
8.下面程序的输出结果是________________。
9.下面程序的输出是________________。
10.下面程序的输出结果是__________________________。
11.下面程序的输出结果是________________。
三、选择题1.关于下面代码,结论正确的是()。
(A)类J_Subclasss的构造方法具有public属性;(B)类J_Subclasss的构造方法不含参数;(C)类J_Subclasss的构造方法包括调用this();(D)类J_Subclasss的构造方法包括调用super();2.在下列的类定义中,可以通过“new J_Class()”生成J_Class实例的是()。
(A)(B)(C)(D)3.关于下面程序,结论正确的是()。
(A)程序可以通过编译并正常运行,结果输出“21”(B)程序可以通过编译并正常运行,结果输出“221”(C)程序无法通过编译(D)程序可以通过编译,但无法正常运行4.关于下面的程序,结论正确的是()。
(A)程序可以通过编译并正常运行,结果输出“5”(B)程序可以通过编译并正常运行,结果输出“23”(C)程序无法通过编译(D)程序可以通过编译,但无法正常运行5.关于下面的程序,结论正确的是()。
(A)程序可以通过编译并正常运行,结果输出“123”(B)程序可以通过编译并正常运行,结果输出“13”(C)程序可以通过编译并正常运行,结果输出“213”(D)程序无法通过编译6.关于下面程序代码,结论正确的是()。
(A)程序无法通过编译,因为Exer3_3_6没有定义无参数的构造方法(B)程序无法通过编译,因为J_SubClass没有定义构造方法(C)程序无法通过编译,因为没有实现J_SubClass(int i)构造方法(D)程序可以通过编译7.下面程序的输出是________________。
(A)3null (B)3constructor(C)2constructor (4)2null8.下面程序的输出是________________。
(A)3null (B)3constructor(C)2constructor (D)2null9.关于java的垃圾回收机制,下面结论正确的是()。
(A)程序可以任意指定释放内存的时间(B)正确的程序写法是不能依赖于垃圾回收的时间或顺序(C)程序可以明确地标识某个局部变量的引用不再被使用(D)程序可以显式地立即释放对象所占有的内存10.在下面程序代码中,为使实例引用a能访问(调用)到类J_Base的成员方法mb_method(),划线处应填入()。
(A)a.mb_method();(B)a.super.mb_method();(C)a.super.super.mb_method();(D)以上都不对11.关于下面的程序代码,结论正确的是()。
(A)运行上面的程序,结果输出“data =3”(B)上面程序含有编译错误(C)在运行上面程序时,第11行的语句会抛出一个异常(D)在运行上面程序时,第12行的语句会抛出一个异常12.关于下面程序代码(在同一个文件中),结论正确的是()。
(A)无法通过编译,因为语句有错误(B)可以通过编译,但在运行时将报错(C)可以通过编译,也可以正常运行(D)无法通过编译,因为在同一个文件中类的个数太多13.关于下面的程序代码,结论正确的是()。
(A)无法通过编译,因为语句中有错误(B)可以通过编译,但在运行时将出错(C)可以通过编译,也可以正常运行(D)无法通过编译,因为同一个文件中类的个数太多14.为使下面程序输出“Sub”,应在下划线处填入的语句是()。
(A)System.out.println(app.mb_getString());(B)System.out.println((J_Base)app.mb_getString());(C)System.out.println((J_SubClass)app.mb_getString());(D)System.out.println(((J_SubClass)app).mb_getString());15.为使程序输出“Sub”,应在下划线位置填的语句是()。
(A)System.out.println(app.mb_getString());(B)System.out.println((J_Base)app.mb_getString());(C)System.out.println((J_SubClass)app.mb_getString());(D)System.out.println(((J_SubClass)app).mb_getString());16.为使程序输出“Sub”,应在下划线填入的语句是()。
(A)System.out.println(app.mb_getString());(B)System.out.println((J_Base)app.mb_getString());(C)System.out.println((J_SubClass)app.mb_getString());(D)System.out.println(((J_SubClass)app).mb_getString());(E)以上选项都不正确17.下面程序的输出结果是__________________。
(A)22 (B)55 (C)25 (D)5218.如果将其语法定义填入下列代码第9行,会使以下代码编译错误的是()。
(A)public float getNum() {return 4.0f;}(B)public void getNum() {}(C)public void getNum(double d) {}(D)public double getNum(float d) {return 4.0d;}19.已知字母'a'和字母'b'所对应的数值分别是97和98,关于下面程序代码,结论正确的是()。
(A)程序可以通过编译并正常运行,结果输出“Name: a; Age:98”(B)程序可以通过编译并正常运行,结果输出“Name: b; Age:97”(C)程序可以通过编译并正常运行,结果输出“Name: b; Age:98”(D)程序可以通过编译并正常运行,结果输出“Name: a; Age:97”20.关于下面程序代码,结论正确的是()。
(B)程序可以通过编译并正常运行,结果输出“Index=0; Age=98”(C)程序可以通过编译并正常运行,结果输出“Index=0; Age=0”(D)程序可以通过编译并正常运行,结果输出“Index=98; Age=98”(E)程序无法通过编译21.关于下面程序代码,结论正确的是()。
(A)程序可以通过编译并正常运行,结果输出“Index=98; Age=0”(B)程序可以通过编译并正常运行,结果输出“Index=0; Age=98”(C)程序可以通过编译并正常运行,结果输出“Index=0; Age=0”(D)程序可以通过编译并正常运行,结果输出“Index=98; Age=98”(E)程序无法通过编译22.关于下面程序代码,结论正确的是()。
(A)程序可以通过编译并正常运行,结果输出“Index=98; Age=0”(B)程序可以通过编译并正常运行,结果输出“Index=0; Age=98”(C)程序可以通过编译并正常运行,结果输出“Index=0; Age=0”(E)程序无法通过编译23.已知“123456789123456789”在类型long的表示范围之内,但不在类int 的表示范围之内,关于下面代码结论正确的是()。