javaSE習題 第三章 運算符、表達式和語句


問答:

1.下列System.out.printf的結果是什么?

        int a=100,x,y;
        x=++a;
        y=a--;
        System.out.printf("%d,%d,%d",x,y,a);        
     101,101,100

2.下列哪句語句有錯誤?

        int x=0;
        x=5.0/2;//不能把double型賦給整型
        float y=12.5F;
        y=5.0/2;//不能把double型賦給float型

3.下列哪句語句有錯誤?

        byte x=32;
        char c='a';
        int n=c-x;
        c=c-x;//c-x轉成int型

 

4.下列表述正確的是(A)

A.表達式“12+56>34”的值是true

B.表達式“12+56||34”是非法表達式

C.表達式“x+y=12”是非法表達式

D.表達式“12+56>34”的值是13

5.對於一個整數m,m<<1的結果一定是2*m嗎?

不一定,萬一超出范圍引起越界

6.對於2個int類型的變量

  int m=120,n=240;

那么,m^m和m^n^n結果分別是多少?

  0,240(^表示異或)

7.下列System.out.printf的結果是什么?

        int x=10,y=10,z=10;
        if(x>9) {
            y=100;
            z=200;
        }
        else {
            y=-100;
        }
        z=-200;
        System.out.printf("%d,%d,%d", x,y,z);    
      
    10,100,-200

8.下列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;
            }
        }
    abbcdd

9.下列System.out.printf執行的輸出結果是?

     char[] a= {'a','b','c','d','e'};
        for(int i=0;i<a.length/2;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]);
    edcba

10.下列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]);
     -6,1,2,3,4

11.下列程序輸出結果是什么?

public class E {
    public static void main(String[] args) {
        int x=1,y=6;
        while(y-->0) {
            x--;
        }
        System.out.print("x="+x+",y="+y);
    }
}
x=-5,y=-1

作業題:

1.有如下一個函數:

編寫一個java程序,從鍵盤輸入一個x值,程序輸出一個y值。

public static void main(String[] args) {
        int y;
        Scanner sc=new Scanner(System.in);
        int x=sc.nextInt();
        if (x<0) {
            y=x*2-1;
        }
        else if(x==0) {
            y=-1;
        }
        else {
            y=3*x-1;
        }
    }

2.編寫一個java程序,使用while循環語句計算1-1000之間能被3和7同時整除的整數之和。

public static void main(String[] args) {
        int sum=0;
        for(int i=1;i<10000;i++) {
            if(i%3==0&&i%7==0) {
                sum+=i;
            }
        }
        System.out.println(sum);
    }

3.編寫一個java程序,使用for循環計算8+88+888+8888+88888+……的前10項之和。

public static void main(String[] args) {
        long sum=0,temp=0;
        for(int i=0;i<10;i++) {
            temp+=8*Math.pow(10,i);
            sum+=temp;
        }
        System.out.println(sum);
    }

4.編寫一個java程序,計算1-1/3+1/5-1/7+1/9-1/11……前10000項之和。

public static void main(String[] args) {
        double sum=0,temp;
        for(double i=0;i<10000;i++) {
            temp=Math.pow(-1, i)*1.0/(2.0*i+1.0);
            sum+=temp;
        }
        System.out.println(sum);
    }

5.編寫一個java程序,計算1+2!+3!+4!……從第100項到第200項之和。

 

public static void main(String[] args) {
        long sum=0;
        for(int i=100;i<=200;i++) {
            sum+=factoria(i);
        }
    }
    public static long factoria(int i) {
        if(i==1) return i;
        else return factoria(i-1)*i;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM