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;
    }

 

posted @ 2018-10-08 20:39  SteveYu  阅读(2051)  评论(0编辑  收藏  举报