当前位置:文档之家› java练习题

java练习题

第3章1.下列哪些语句有错误?int x = 0;x = 5.0/2;float y = 12.5F;y = 5.0/2;2下列哪些语句有错误?byte x = 32;char c = ‘a’;int n = c-x;c = c-x;3 对于一个整数m,m<<1的结果一定是2m吗? 4下列for语句的执行结果是什么?for(int i=1; i<=4; i++){switch(i){case 1:System.out.printf(“%c”, ‘a’);case 2:System.out.printf(“%c”, ‘b’);break;case 3:System.out.printf(“%c”, ‘c’);case 4:System.out.printf(“%c”, ‘d’);break;}}5下列System.out.printf语句的输出结果是什么?char a[] = {‘a’,’b’,’c’,’d’,’e’};for(int i=0; i<a.length; i++){char c = a[i];a[i] = a[a.length-(i+1)];a[a.length-(i+1)] = c;}System.out.printf(“%c%c%c%c%c”, a[0],a[1],a[2],a[3],a[4]);6下列System.out.printf语句的输出结果是什么?int a[] = {3,4,1,2,-6};for(int i=0; i<a.length; i++){for(int j=i+1;j<a.length; j++){if(a[j]<a[i]){int n = a[j];a[j] = a[i];a[i] = n;}}}System.out.printf(“%d,%d,%d,%d,%d”, a[0],a[1],a[2],a[3],a[4]);7编写一个java应用程序,使用while循环语句计算1~1000之间能被3和7同时整除的整数之和。

int sum = 0;for(int i=1; i<1000; i++){if((i%3==0) || (i%7==0){sum += i;}}System.out.println(“sum=” + sum);8编写一个java应用程序,使用for循环计算8+88+888+。

的前10项之和。

int sum = 0;int value = 8;int nPart = 0;for(int i=0; i<10; i++){int nPart = 10 * nPart + value;sum += nPart;}System.out.println(“sum=”+ sum);9编写一个java应用程序,计算1-1/3+1/5+。

前10000项之和。

float sum = 0.0f;int flag = -1;for(int i=0; i<10000; i++){int fenmu = 2*I+1;flag *=-1;float part = 1.0f/fenmu;part = part * flag;sum += part;}System.out.println(“sum=”+sum);10编写一个java应用程序,计算1+2!+3!+4!+……从第100项到第200项之和.int value = 1;int sum = 0;for(int i=1; i<10; i++){value *= i;sum += value;}System.out.println(“sum = ”,+sum);第4章4.1选择题4.2问答题1实例方法可以操作类变量吗?类方法可以操作实例变量吗?2当类的字节码加载到内存时,类变量就一定分配了内存空间吗?3为什么类方法不可以调用实例方法?4为什么类方法中不能`操作实例成员变量?4.3程序题1编写一个类,该类创建的对象可以计算等差数列的和。

class EqualSum{float fValue;float fIncrease;int nItems;EqualSum(float fValue, float fIncrease,int nItems){this.fValue = fValue;this.fIncrease = fIncrease;this.nItems = nItems;}float getSum(){float sum = fValue+(nItems-1)*fIncrease;return sum;}}2编写一个类,该类封装了一元二次方程共有的属性和功能,即该类有刻画方程系数的3个成员变量以及计算实根的方法。

要求:该类的所有对象共享常数项。

3编写两个类:A和B,类A创建的对象可以计算两个正整数的最大公约数,类B创建的对象可以计算两个数的最小公倍数。

要求:类B的一个成员变量是类A的对象。

class A{int a;int b;A(int a, int b){this.a = a;this.b = b;}int getGongYue(){int nValue = 0;int min = a<b?a:b ;if((a%min==0)&&(b%min==0)){nValue = min;}else{for(int i=min-1; i>=1; i--){if((a%i==0)&&(b%i==0)){nValue = i;}}}return nValue;}}class B{int a;int b;A objA;B(int a, int b){this.a = a;this.b = b;}int getGongBei(){objA = new A(a,b);int n = objA.getGongYue();int nValue = a*b/n;return nValue;}}第5章5.1选择题5.2问答题5.3程序题1已知字符串s = “123”, 把它转换成整形数t = 123, 直接在main函数中完成即可。

public class Test {/***@param args*/public static void main(String[] args) { // TODO Auto-generated method stubString s = "123";Float obj = new Float("123");float t = obj.floatValue();System.out.println(t);}}2设计一个点类,它仅包含两个属性:横坐标和纵坐标。

通过继承点类再设计一个圆类,它除了有一个圆心,还有半径,还应该能计算圆的周长和面积等。

class Point{float x;float y;Point(float x, float y){this.x = x;this.y = y;}}class Circle extends Point{float r;Circle(float x, float y, float r){super(x, y);this.r = r;}float getLength(){float l = (float)Math.PI*r*2.0f;return l;}float getArea(){float area = (float)Math.PI*r*r;return area;}}3先设计一个基本帐户类,再通过继承基本帐户类设计一个储蓄帐户类,储蓄帐户类中增加一个静态成员变量(年利率)。

并增加如下方法:(1)计算月利息------存款金额*年利率/12(2)更改利率(静态方法)------重新设置年利率。

class Account{String strAccountNO;String strName;float fMoney;Account(String strAccountNO,String strName,float fMoney){this.strAccountNO = strAccountNO;this.strName = strName;this.fMoney = fMoney;}boolean save(float fValue){fMoney += fValue;return true;}boolean withdraw(float fValue){boolean bState = false;if(fMoney >= fValue){fMoney -= fValue;bState = true;}return bState;}}class SaveAccount extends Account{static float fYearRate = 0.03f;SaveAccount(String strAccountNO,String strName,float fMoney){super(strAccountNO,strName,fMoney);}float getMonthProfit() //计算月利息{float fValue = fMoney*fYearRate/12.0f;return fValue;}static void setYearRate(float fRate) {fYearRate = fRate;}boolean withdraw(float fValue, int monthNum){float fTotal =fMoney+getMonthProfit()*monthNum;boolean bState = false;if(fTotal >= fValue){fTotal -= fValue;fMoney = fTotal;bState = true;}return bState;} }第7章7.3程序题1编写一个应用程序,输出某年某月的日历页,通过main方法的参数将年份和月份时间传递到程序中i mport java.util.*;class MyCalendar{int year;int month;public MyCalendar(int year, int month){this.year = year;this.month = month;}void showHead(){System.out.println("\t\t"+year+"年"+month+"月");System.out.println("日\t一\t二\t三\t四\t五\t六");}void showCalendar(){Calendar obj = Calendar.getInstance();obj.set(year, month-1, 1);int total = obj.getActualMaximum(Calendar.DAY_OF_MONTH);int shift = obj.get(Calendar.DAY_OF_WEEK);for(int i=0; i<shift-1; i++){System.out.print("\t");}int nCount = shift-1;for(int i=1; i<=total; i++){System.out.print(""+i+"\t");nCount ++;if(nCount%7 == 0){System.out.println();}}System.out.println();}public void show(){showHead();showCalendar();}}public class Test {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubfor(int month=1; month<=12; month++){MyCalendar obj = new MyCalendar(2000, month);obj.show();}}}2编写一个应用程序,计算某年、某月、某日和某年、某月、某日之间的天数间隔,要求年月日通过main方法的参数传递到程序中。

相关主题