java第三章上机练习题
Java第三章--习题

3-10
编写一个字符界面的Java Application
程序,接受用户输入的10个整数,比较并 输出其中的最大值和最小值。
for循环实现
3-11
编写一个字符界面的Java Application 程序,接受用户输入的字符,以“#”结束 输入,比较并输出按字典序最小的字符
char c=(char)System.in.read(); System.in.skip(2);
do……while循环接收输入并比较,记录最小值
3-16
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
10个整数如何存放?
value = Integer.parseInt(s);
if……else……语句进行比较
第三章习题讲解
3-14
编写一个Java程序,接受用户输入的一 个1-12之间的整数,利用switch语句输出 对应月份的天数。
如果输入的数据不满足这个条件,则要 求用户重新输入。
3-14
switch语句控制用户输入后进入不同分支实现不同输出
BufferedReader br= new BufferedReader(new
编写一个字符界面的Java程序,接受用户 输入的2个整数为上下限,然后输出其间 的所有素数。
BufferedReader对 象 for
JAVA第三章课后习题答案

第一题:public class disanzhangxiti1{public static void main (String args[]){char x='你',y='e',z='吃';if(x>'A'){y='爱';z='情';}elsey='我';z='她';System.out.println(" "+x+y+z);}}第二题:public class disanzhangxiti2{public static void main (String args[]){char c='\0';for(int i=1;i<=4;i++){switch(i){case 1: c='b';System.out.print(c);case 2: c='e';System.out.print(c);break;case 3: c='p';System.out.print(c);default: System.out.print("!");}}}}第三题:public class disanzhangxiti3{public static void main (String args[]){int sum=0,a=1;int i=1;while(i<=10){sum=sum+a;i=i+1;a=a*i;}System.out.println("sum="+sum);}}第四题:public class disanzhangxiti4{public static void main(String agrs[]){int i,j,count=0;for(j=2;j<=100;j++){for(i=2;i<=j/2;i++){if(j%i==0)break;}if(i>j/2){count++;System.out.println(""+j+"");}}System.out.println("count="+count);}}第五题:public class disanzhangxiti5{public static void main(String agrs[]){double sum=0,a=1,i=1;do{i++;sum=sum+a;a=a*(1.0/i);}while(i<=3);System.out.println("sum="+sum);}}public class disanzhangxiti5_for{public static void main(String agrs[]){double sum=0,a=1,i=1;for(i=1;i<=2;i++){sum=sum+a;a=a*(1.0/i);}System.out.println("sum="+sum);}}第六题:public class disanzhangxiti6{public static void main(String agrs[]){int a,i,sum;for(a=2;a<=1000;a++){for(sum=0,i=1;i<=a/2;i++)if(a%i==0)sum+=i;if(sum==a)System.out.println(a);}}}第七题:public class disanzhangxiti7{public static void main(String args[]){long sum=0,a=8,item=a,n=10,i=1;for(i=1;i<=n;i++){sum=sum+item;item=item*10+a;}System.out.println(sum);}}public class disanzhangxiti7_while{public static void main(String args[]){long sum=0,a=8,item=a,n=10,i=1;while(i<=10){i++;sum=sum+item;item=item*10+a;}System.out.println(sum);}}第八题:public class disanzhangxiti8{public static void main(String agrs[]){int sum=0,i,n=1;for(i=1;i<=n;i++){sum=sum+i;if(sum<8888)n++;if(sum>=8888)break;}System.out.println("sum="+sum);System.out.println("i="+i);}}。
java面向对象第三章课后习题

java⾯向对象第三章课后习题 1、输⼊⼀批整数,输出其中的最⼤值与最⼩值,输⼊为0时结束循环。
代码如下:package com.bd22;import java.util.Scanner;public class Integer {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int min =0;int max =0;do {System.out.println("");System.out.println("请输⼊⼀个整数(输⼊0结束):");int a = sc.nextInt();if(a==0) {break;}min=min<a?min:a;max=max>a?max:a;}while(true);System.out.println("最⼩值为:"+min);System.out.println("最⼤值为:"+max);}}运⾏结果: 2、⽤键盘输⼊⼀位整数,当输⼊1~7时,显⽰对应的英⽂星期名称的缩写,输⼊其他数字时提⽰⽤户重新输⼊,输⼊0时结束程序。
程序代码:package com.bd22;import java.util.Scanner;public class Week {public static void main(String[] args) {Scanner input = new Scanner(System.in);while(true){System.out.print("请输⼊数字1-7(输⼊0时结束):");int num = input.nextInt();//如果输⼊0则程序结束退出if(num==0) {System.out.println("程序结束!");break;}//按照输⼊的数不同选择输出的星期switch(num) {case 1:System.out.println("今天是 MON");break;case 2:System.out.println("今天是 TUE");break;case 3:System.out.println("今天是 WED");break;case 4:System.out.println("今天是 THU");break;case 5:System.out.println("今天是 FRI");break;case 6:System.out.println("今天是 SAT");break;case 7:System.out.println("今天是 SUN");break;default:System.out.println("请重新输⼊");break;}}}}运⾏结果: 3、假如机票原价为5000元,4-10⽉份为旺季,旺季头等舱打9折,经济舱打6折,其他⽉份为淡季,淡季头等舱打5折,经济舱打4折。
JAVA练习题(第3章)..

11、应用程序的main方法中有以下语句,则输出的 结果是 ( )。 int b[][]={{1, 1, 1}, {2,2}, {3}}; int sum=0; for(int i=0; i<b.length; i++) { for(int j=0; j<b[i].length; j++) { sum+=b[i][j]; } 【答案】:A } System.out.println("sum="+sum); A、10 B、6 C、 9 D、 13
10、程序Test.java编译运行后输出的结果是( )。 public class Test { String s1="java"; public static void main(String args[]) { int z=2; Test t=new Test(); System.out.println(t.s1+z); } 【答案】:A } A、 java2 B 、2 C、没有输出结果 D、java
【答案】:B 6、定义一个类,必须使用的关键字是( ) A、public B、class C、interface D、static 7、应用程序的main方法中有以下语句,则输出的 结果是 ( )。 String s1=new String("abc"); 【答案】:A String s2=new String("abc"); boolean b1=s1.equals(s2); boolean b2=(s1==s2); System.out.print(b1+" "+b2);
3、以下关于继承的叙述正确的是( )。 A、在Java中类只允许单一继承 B、在Java中一个类只能实现一个接口 C、在Java中一个类不能同时继承一个类和实现一 个接口 【答案】:A D、在Java中接口只允许单一继承
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 Chapter3习题

1. 一个类可以生成多个对象,并且这些对象都具有相同的属性。
A. 错误B. 正确2. 对于构造函数,下列叙述正确的是()。
A. 构造函数是类的一种特殊函数,它的方法名必须与类名相同。
B. 构造函数的返回类型只能是void型。
C. 构造函数的主要作用是完成对类的对象的初始化工作。
D. 一般在创建新对象时,系统会自动调用构造函数3. 有的类定义时可以不定义构造函数,所以构造函数不是必需的。
A. 错误B. 正确4. 即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参的,函数体为空。
A. 错误B. 正确5. 同一个类中定义多个参数列表不同的同名方法,叫做方法的重载。
A. 错误B. 正确6. 为了区分重载多态中同名的不同方法,要求( )。
A. 形式参数个数或者类型不同B. 返回值类型不同C. 调用时用类名或对象名做前缀D. 形式参数名称不同7.Which two overload the ConstOver constructor? (Choose Two)A.ConstOver ( ) { }B.protected int ConstOver ( ) { }C.private ConstOver (int z, int y, byte x) { }D.public Object ConstOver (int x, int y, int z) { }E.public void ConstOver (byte x, byte y, byte z) { }8.Given:1.public class MethodOver {2. public void setVar (int a, int b, float c) {3. }4.}Which two overload the setVar method? (Choose Two)A.private void setVar (int a, float c, int b) { }B.protected void setVar (int a, int b, float c) { }C.public int setVar (int a, float c, int b) {return a;}D.public int setVar (int a, int b, float c) {return a;}E.protected float setVar (int a, int b, float c) {return c;}9. 编译并运行下面的程序,运行结果为( ). public class T1 {public static void main (String[] args){T1 a=new T1();a.method(8);a.method(1.2f);}void method(float i) {System.out.println("float: "+i);}void method(long i) {System.out.println("long: "+i);}}A. 程序有编译错误,因为两个method()方法必须定义为静态(static)的。
Java上机题及答案3.

import java.awt.Graphics;
import java.util.Date;
public class Example1_3 extends Applet {//继承Applet超类
public Date d;
public void init()//Applet的初始化方法
关键代码如下所示:
int student[] = {95,85,75,65,55};//声明并初始化一个数组,用存放5个学生成绩
for(int i=0;i<5;i++)//通过循环分别判判断每个学生成绩
{
switch(student[i]/10)//使用switch语句,并将成绩整除10后的值作为比较因子
System.out.println("Short data d="+d);//输出短整型变量d的值
System.out.println("Char data c="+c);//输出字符型变量c的值
System.out.println("long data e="+e);//输出长整型变量e的值
System.out.println("float data f="+f);//输出单精度型变量f的值
{
int a = 1;//声明并初始化整型变量a
byte b = 127;//声明并初始化字节型变量b
short d = 200;//声明并初始化短整型变量d
char c = 'C';//声明并初始字符型变量c
long e = 9000000;//声明并初始化长整型变量e
数据结构java语言描述第三章上机练习题 (1)

3-16public interface back{public void append(Object obj) throws Exception;public Object delete() throw Exception;public Object getFront() throw Exception;public boolean notEmpty();}public class Forback implements back {static final int defauleSize = 10;int front;int rear;int count;int maxSize;Object[] data;int tag=0;public Forback() {initiate(defauleSize);}public Forback(int sz) {initiate(sz);}private void initiate(int sz) {maxSize = sz;front = rear = 0;count = 0;data = new Object[sz];}public void append(Object obj) throws Exception { if (count > 0 && front == rear) {throw new Exception("出错了");}data[rear]=obj;rear=(rear+1)%maxSize;count++;tag=1;}public Object delete() throws Exception {if(count==0){throw new Exception("队列已空");}Object temp=data[front];front=(front+1)%maxSize;count--;tag=0;return temp;}public Object getFront() throws Exception {if(count==0){throw new UnsupportedOperationException("队列已空");}return data[front];}public boolean notEmpty() {return count!=0;}}public class Text_for_16 {public static void main(String[]args){int n=10;SeQueue m=new SeQueue(n);int temp=11;try{for(int i=1;i<=n;i++){m.append(i);}System.out.println();System.out.println( "取值: "+m.getFront());System.out.println("删除: "+m.delete());System.out.println("所得结果为"+temp);m.append(temp);System.out.print(m.getFront()+" ");if(m.rear==m.front&&m.tag==0){System.out.println("");}else{System.out.println("所得结果为");}m.delete();System.out.println("所得的结果为:");for(int i=0;i<n;i++){System.out.print(m.delete()+" ");}}catch(Exception e){System.out.print(e.getMessage());}}}3-17public interface back {public void append(Object obj)throws Exception;public Object delete()throws Exception;public Object getFront()throws Exception;public boolean notEmpty();}public class tpback implements back{static final int defauleSize = 10;int front;int rear;int count;int maxSize;Object[] data;int tag=0;public tpbak() {initiate(defauleSize);}public tpback(int sz) {initiate(sz);}private void initiate(int sz) {front = rear = 0;count = 0;data = new Object[sz];}public void append(Object obj) throws Exception {if (count > 0 && front == (rear+1)%maxSize) {throw new Exception("队列已空");}data[rear]=obj;front=(rear+1)%maxSize;count++;}public Object delete() throws Exception {if(count==0){throw new Exception("队列空");}Object temp=data[front];front=(front+1)%maxSize;count--;return temp;}public Object getFront() throws Exception {if(count==0){throw new UnsupportedOperationException("已满");}return data[front];}public boolean notEmpty() {return count!=0;}}public class Test_for_17 {public static void main(String[]args){int n=10;SeQueue m=new SeQueue(n);try{for(int i=1;i<=n;i++){m.append(i);}System.out.println();System.out.println("删除: "+m.delete());System.out.println( "取值: "+m.getFront());System.out.println("结果为"+temp);m.append(temp);System.out.print(m.getFront()+" ");if(m.rear==m.front&&m.tag==0){System.out.println("结果为");}else{System.out.println("结果为);}m.delete();System.out.println("结果为:");for(int i=0;i<n;i++){System.out.print(m.delete()+" ");}}catch(Exception e){System.out.print(e.getMessage());}}}3-18public interface dps {public void push(Object obj)throws Exception;public Object pop()throws Exception;public Object getTop()throws Exception;public boolean notEmpty();}public class Lindps implements dps{Node head;int size;public void Lindps(){head=null;size=0;}public void push(Object obj) throws Exception { head=new Node(obj,head);size++;}public Object pop() throws Exception {if(size==0){throw new Exception("鍫嗘爤宸茬┖");}Object obj=head.element;head=head.next;size--;return obj;}public Object getTop() throws Exception {return head.element;}public boolean notEmpty() {return head!=null;}}public class Dot {Object element;Dot next;Dot(Node nexttval){next=nexttval;}Dot(Object obj,Node nexttval){element=obj;next=nexttval;}public Dot getNext(){return next;}public void setNext(Dot nexttval){next=nexttval;}public Object getElement(){return element;}public void setElement(Object obj){element=obj;}public String toString(){return element.toString();}}public class postback {public static void postExp(String ch) throws Exception {tpback s = new tpback();Object x1, x2;s.push('#');for (int i = 0; i <ch.length(); i++) {x2 = ch.charAt(i);x1 = s.getTop();if (x2.equals('+') || x2.equals('-') || x2.equals('*') || x2.equals('/')||x2.equals('#')) {if (x1.equals('#')) {s.push(x2);} else if ((x2.equals('*') || x2.equals('/')) && (x1.equals('+') || x1.equals('-'))) {s.push(x2);} else if ((x2.equals('*') || x2.equals('/')) && (x1.equals('*') || x1.equals('/'))) {System.out.print(s.pop());s.push(x2);} else if (x2.equals('+') || x2.equals('-')) {System.out.print(s.pop());if(s.getTop().equals('+')||s.getTop().equals('-')){System.out.print(s.pop());}s.push(x2);}if(x2.equals('#')){System.out.print(s.pop());if(s.getTop().equals('+')||s.getTop().equals('-')){System.out.print(s.pop());}}}else {System.out.print(x2);}}}}public class Test_for_18 {public static void main(String[] args) {postback PE = new postback();System.out.println("值为");Scanner sca = new Scanner(System.in);String s;s = sca.next();System.out.println("所得结果为");try {PE.postback(s);} catch (Exception e) {System.out.print(e.getMessage());}}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题1. 数据类型转换应用【案例简介】下例说明了整型、浮点型、字符串型之间的相互转换。
【案例目的】掌握Java中两个不兼容类型能够的数据格式之间的转换。
【技术要点】高精度到低精度的数据转换时候需要进行强制转换,低精度向高精度进行转换的时候的会自动进行,字符串到其他类型的转换需要用到特定的方法。
【代码分析】public class Conversation{public static void main(String [] args){String str = "123";int j;byte b;int i=257;double d = 323.142;System.out.println("\nConversion of int to byte.");//i强制转换成byte型System.out.println("i and b "+ i + " "+b);System.out.println("\nConversion of double to int.");//d强制转换成int型System.out.println("d and i "+ d + " "+i);//d强制转换成byte型System.out.println("d and b "+ d + " "+b);j=Integer.parseInt(str); //str转换成int型System.out.println("j="+j);}}【相关知识】数据类型转换(1)简单数据类型中各类型数据间的优先关系和相互转换不同类型数据间的优先关系如下低----------------------------------------------->高byte->short->char-> int -> long -> float -> double自动类型转换规则整型,实型,字符型数据可以混合运算。
运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级。
(2)强制类型转换高级数据要转换成低级数据,需用到强制类型转换,如:int i;byte b=(byte)i; //把int型变量i强制转换为byte型(3)其他转换数字变为字符串用如下方法转换相应类型的数字:Double.toString(double);Float.toString(float);Long.toString(float);Integer.toString(float);Short.toString(float);Byte.toString(Byte);也可以使用字符串类的valueOf方法:String.valueOf(各种类型的数值变量);还可以用空字符串连接数字,将数字转换为字符串。
如:""+25。
数字类型转换为各种常用进制的字符串类toBinaryString(long or int):转换为二进制形式的字符串类。
toOctalString(long or int):转换为八进制形式的字符串类。
toSexString(long or int):转换为十六进制形式的字符串类。
字符串转换为数字Byte.parseByte(string):转换为字节型的数值。
Short.parseShort(string):转换为短整型的数值。
Integer.parseInt(string):转换为整型的数值。
Long.parseLong(string):转换为长整型的数值。
Float.parseFloat(string):转换为单精度型的数值。
Double.parseDouble(string):转换为双精度型的数值。
2.4 数组和字符串习题2. 求平均成绩【案例简介】数组A中存放有10个学生某门课程的成绩、输出这10个学生的平均成绩。
【案例目的】掌握Java一维数组的使用方法,包括数组的动态初始化、静态初始化等。
【技术要点】数组的静态初始化方法及访问方法。
【代码分析】public class Score{public static void main(String[] args){int a[] ={ 90,87,67,81,89,96,76,71,91,57},i,sum=0;double ave;//求平均成绩aveSystem.out.println("Average="+ave);}}【相关知识】1.数组的概念数组是Java语言中的一种复合数据类型,它是由类型相同的元素组成的有顺序的数据集合。
在一个数组中每个元素的数据类型都是相同的,数组元素可以是基本类型、对象类型,也可以是数组类型。
数组要经过定义、分配内存及赋值后才能使用。
2.数组的定义type arrayName[ ];type [ ]arrayName;type arrayName[ ][ ];type [ ][ ]arrayName;类型(type)可以为Java中任意的数据类型,包括简单类型和复合类型。
例如:int intArray[ ];Date dateArray[];int b[][];3.数组的初始化(1)静态初始化例如:int intArray[]={1,2,3,4};String stringArray[]={"abc", "How", "you"};int intArray[ ][ ]={{1,2},{2,3},{3,4,5}};注意:Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。
(2)动态初始化简单类型的数组例如:int intArray[];intArray = new int[5];int a[][] = new int[2][3];int b[][] = new int[2][ ];b[0] = new int[3];b[1] = new int[5];4.数组元素的引用一维数组元素的引用方式为:arrayName[index]index为数组下标,它可以为整型常数或表达式,下标从0开始。
每个数组都有一个属性length指明它的长度,例如:intArray.length指明数组intArray的长度。
二维数组中元素的引用方式为:arrayName[index1][index2]例如:num[1][0];的一个。
习题3. 多维数组矩阵转置【案例简介】将3*4的多维数组转置为4*3的多维数组。
【案例目的】掌握多维数组以及交错数组的使用方法。
【技术要点】数组的静态初始化方法及访问方法。
【代码分析】public class Matrix{public static void main(String[] args){int a[][]={{1,2,3,4},{2,3,4,5},{3,4,5,6}};int b[][]= new int[4][3];int i,j;System.out.println("转换前");//利用两重循环进行显示数组//利用两重循环进行转置System.out.println("转换后");//利用两重循环进行显示数组}}2.5流程控制习题4. 打印出九九乘法表【案例目的】掌握Java循环流程的控制。
习题5. 求一元二次方程的根。
【案例目的】掌握Java分支流程的控制。
【技术要点】根据参数的不同,分别进行有根、无根、重根的判别。
方程求根提示:Math.sqrt(a) 求a的平方根【代码分析】public class roots{public static void main(String [] args){int a,b,c;float x1,x2;int check;a=1;b=2;c=1;System.out.println("方程式为:"+a+"x^2+"+b+"x+"+c+"=0");System.out.println("方程解为:");//如果有重根//如果有不同两个根//否则无根}}【相关知识】1. 控制语句Java程序通过控制语句来执行程序流,完成一定的任务。
程序流是由若干个语句组成的,语句可以是单一的一条语句,如c=a+b,也可以是用大括号{}括起来的一个复合语句。
Java中的控制语句有以下几类:◇分支语句:if-else,switch◇循环语句:while,do-while,for◇与程序转移有关的跳转语句:break,continue,return2. 分支语句分支语句提供了一种控制机制,使得程序的执行可以跳过某些语句不执行,而转去执行特定的语句。
(1)条件语句if-elseif(boolean-expression)statement1;[else statement2;](2)多分支语句switchswitch (expression){case value1 : statement1;break;case value2 : statement2;break;…………case valueN : statemendN;break;[default : defaultStatement; ]}◇expression的返回值类型必须是这几种类型之一:int,byte,char,short。
◇case子句中的值valueN必须是常量,各case子句中的值应是不同的。
◇default子句是可选的。
◇break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行(在一些特殊情况下,多个不同的case值要执行一组相同的操作,这时可以不用break)。
2-6 习题习题6:猜数字游戏编写一个Java应用程序,实现以下功能:程序随机分配一个1~100之间的整数,用户在输入自己的猜测,程序返回提示信息,分别是“猜大了”、“猜小了”、“猜对了”。
用户可以根据提示信息再次输入猜测,直到提示信息是“猜对了”提示:// 新建一个随机数产生器,然后生成一个0到10之间的整数,代码如下:import java.util.Random;Random random = new Random();int number = random.nextInt(10);//获取控制台整数输入,代码如下:import java.util.Scanner;Scanner sc = new Scanner(System.in);int guess_number=sc.nextInt();完整代码:。