当前位置:文档之家› java第三章上机练习题

java第三章上机练习题

习题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();完整代码:。

相关主题