变量运算符和表达式

一、【必做题】

1.下列哪些变量名是合法的?Ab?1,  @abc , lname, _int $25,  private,  ab*5,  #abc(知识点: Java标识符命名规范)

2.写出以下表达式的值:(知识点:运算符、表达式)

         1 int a = 2,  b = 3,  c;

                     c = a / b * 8;

         2 float a = 3.0F,  b;

                     b = a / 0;

         3 double a = 3.0, k;

                     Int b = 3, c = 2;

                     k = a / c + b / c;

         4 int a = 3,  b = 6, c;

                     c =  (a++) + (++b) + a * 2 + b * 4;

         5 int a = 10, b=3, c;

                     c = ((a % b) == 0) ?  ++a * 2:++b * 2;

         6 int a = 5,b ;

                     b = 5 << 2;

         7 int a = 0, b = 12345, c = 0xffffffff, d, e, f;

                     d = a & b;

                     e = a | b;

f = b & c;    

3.写出以下程序的运行结果:(知识点:数据类型及分类、数据类型的转换)

         public class Test {

                   public static void main (String args[]) {

                            float a = 3.25F, b= -2.5F;

                            int c , d;

                            c = (int) (a * b);

                            d = (byte) 386;

                            System.out.println(“c=c” + c);

                            System.out.println(“d=” +d);

                   }

}

 

4.编写一个程序,求圆的面积,圆的半径由命令行参数输入。(知识点:变量和运算符综合应用、命令行参数配置)

注:将命令行参数赋给半径rdouble型)使用的语句为:

 double r = Double.parseDouble(args[0]);

 

5.华氏温度和摄氏温度互相转换,从华氏度变成摄氏度你只要减去32,乘以5再除以9就行了,将摄氏度转成华氏度,直接乘以9,除以5,再加上32即行。(知识点:变量和运算符综合应用)

 

     

 

6.已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序。(知识点:变量和运算符综合应用)

 

   

 

二、【选做题】

1.  说出以下方法实现什么功能:(知识点:三元运算符用法)

   public static double myFuction(double a, double b, double c) {

                   double  result;

                   result = (a < b) ? a: b;

                   result = (result < c) ? result : c;

                   return result;

}

//输出三个数中最小的数

2.假设a,n为任意整数(0<n<10),编写一个程序,分别求出表达式a <<n, a * 2n次方,

     A >> n以及 a / 2n次方的值,a, n 都是命令行参数。(知识点:移位运算符用法)

注:将命令行参数赋给anint型)使用的语句为:

 Int a = Integer.parseInt(args[0])

 Int n = Integer.parseInt(args[1])

   2n次方的表达式为:

(int) Math.pow(2.0, (double) n) ;

3.输入一个任意的5位整数,将它保留到百位,无需四舍五入(知识点:变量和运算符综合应用)

 

4.输入一个0~1000的整数,求各位数的和,例如345的结果是3+4+5=12注:分解数字既可以先除后模也可以先模后除(知识点:变量和运算符综合应用)

 

5.输入一个任意的大写字母A~Z,转换为小写字母(知识点:变量和运算符综合应用)

 

 答案:

一、【必做题】

1下列哪些变量名是合法的?Ab?1,  @abc , lname, _int,  $25,  private,  ab*5,  #abc

Lname, _int, $25

标识符的命名规则

必须以字母、下划线(_)或美元符号($)开头

余下的字符可以是下划线、美元符号或任何的字母或数字,长度不限。标识符中不能有空格。

不能使用Java中的关键字或者保留字做为标识符

字母大小写敏感

         注意代码规范起名要有一定含义要让别人读懂

2写出以下表达式的值:

         1 int a = 2,  b = 3,  c;

                     c = a / b * 8;

         2 float a = 3.0F,  b;

                     b = a / 0;

         3 double a = 3.0, k;

                     Int b = 3, c = 2;

                     k = a / c + b / c;

         4 int a = 3,  b = 6, c;

                     c =  (a++) + (++b) + a * 2 + b * 4;

         5 int a = 10, b=3, c;

                     c = ((a % b) == 0) ?  ++a * 2:++b * 2;

         6 int a = 5,b ;

                     b = 5 << 2;

         7 int a = 0, b = 12345, c = 0xffffffff, d, e, f;

                     d = a & b;

                     e = a | b;

f = b & c;

         10 (int 取整数部分 2/3=0)

2Infinity(无穷大,float把0.0当成一个无限小的数据,在Java中对于0作为除数的情况,根据操作数的数据类型,做了不同的处理:对于整数的运算,它将会出现异常;对于浮点型数据的运算,它将得到一个无穷大值或者NaN)

3) 2.5 (b/c=1若是两个整数相除,只保留整数部分);

4)46(++变量名:变量在参与其他操作前先将自己加1;变量名++:先用原来的值参与其他操作后,再将自己加1)

5)8(取余 被模数为正数结果都为正,被模数为负数结果都为负)

6)20(101 à 10100a<<b,将a的二进制数据左移b位,右边移空的部分补0

a>>b,将a的二进制数据右移b位,如果最高位是0,则左边移空的部分补0,如果最高位是1,则左边移空的部分补1)

7)0,12345,12345(&只有参加运算的两位都为1,&与运算的结果才为1,否则为0;|或只有参加运算的两位都为0,|运算的结果才为0,否则为1;)

      

3写出以下程序的运行结果:

         public class Test {

                   public static void main (String args[]) {

                            float a = 3.25F, b= -2.5F;

                            int c , d;

                            c = (int) (a * b);

                            d = (byte) 386;

                            System.out.println(“c=c” + c);

                            System.out.println(“d=” +d);

                   }

}

c=c-8

d=-126

(容量大的数据类型转换为容量小的数据类型时,需要使用强制类型转换,在强制类型转换过程中,源类型的值可能大于目标类型,因此可能造成精度降低或溢出,使用时需注意)

4编写一个程序,求圆的面积,圆的半径由命令行参数输入。

注:将命令行参数赋给半径rdouble型)使用的语句为:

 double r = Double.parseDouble(args[0]);

 

        double r = Double.parseDouble(args[0]);

       double size = 0;

       size = 3.1415*r*r;

       System.out.println("size = "+size );

 

命令行参数:run as à run configurations àProgram argument

 

5华氏温度和摄氏温度互相转换,从华氏度变成摄氏度你只要减去32,乘以5再除以9就行了,将摄氏度转成华氏度,直接乘以9,除以5,再加上32即行。

        float c = 45.0f;

        float f = 113.0f;

        float cTof = (f-32) * 5/9;

        float fToc = c*9/5+32;

        System.out.println("摄氏转华氏 = "+cTof );

        System.out.println("华氏转摄氏  = "+fToc );

 

6.已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序。

       int a=9,b=5,c=0;

       c=a;

       a=b;

       b=c;

       System.out.println("a  = "+a );

       System.out.println("b  = "+b );

 

二、【选做题】

1.  说出以下方法实现什么功能:

   public static double myFuction(double a, double b, double c) {

                   double  result;

                   result = (a < b) ? a: b;

                   result = (result < c) ? result : c;

                   return result;

}

选出最小值三元操作符

2假设a,n为任意整数(0<n<10),编写一个程序,分别求出表达式a <<n, a * 2n次方,

     A >> n以及 a / 2n次方的值,a, n 都是命令行参数。

注:将命令行参数赋给anint型)使用的语句为:

 Int a = Integer.parseInt(args[0])

 Int n = Integer.parseInt(args[1])

   2n次方的表达式为:

(int) Math.pow(2.0, (double) n) ;

       int a = Integer.parseInt(args[0]);

       int n = Integer.parseInt(args[1]);

       System.out.println(a);

       System.out.println(n);

       System.out.println(a <<n );

       System.out.println(a*(int) Math.pow(2.0, (double) n) );

       System.out.println(a >>n );

      System.out.println(a/(int) Math.pow(2.0, (double) n) );

命令行参数用空格隔开

3.输入一个任意的5位整数,将它保留到百位,无需四舍五入

Scanner scanner = new Scanner(System.in);

       int i = scanner.nextInt();

       //int i = 12345;

       System.out.println(i/100*100 );

4输入一个01000的整数,求各位数的和,例如345的结果是3+4+512注:分解数字既可以先除后模也可以先模后除

       Scanner scan = new Scanner(System.in);

       int i = scan.nextInt();

       int x1 = i / 1000;

       int x2 = i / 100 % 10;

       int x3 = i / 10 % 10;

       int x4 = i % 10;

       System.out.println(x1 + x2 + x3 + x4);

5.输入一个任意的大写字母A~Z,转换为小写字母,

       char c = 'A';

       System.out.println((char) (c + 32) );//32即小写对应字母

猜你喜欢

转载自blog.csdn.net/jiangjiewudi/article/details/9631903