数据类型和运算符作业

一、    填空题

  1. Java语言规定标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是      数字         。
  2. Java中整型变量有byte、short、int和long四种,不同类型的整数变量在内存中分配的字节数不同,数值范围也不同。对于int型变量,内存分配   4   个字节。
  3. 在Java中浮点型变量有float和double两种,对于float型变量,内存分配4个字节,尾数可精确到7位有效数字,对于double型变量,内存分配   8    个字节。
  4. char c=’a’;System.out.println(c+1);运行结果为:    98     。
  5. _&&__是短路与运算符,如果左侧表达式的计算结果是false,右侧表达式将不再进行计算。
  6. 下面的语句是声明一个变量并赋值:boolean b1=5!=8; b1的值是___true_____。 
  7. 使用位运算符来实现运算效率最高,所以最有效率的方法算出2乘以8等于多少的语句是         System.out.print(2<<3);             。
  8. 基本数据类型的类型转换中,要将double类型的常量3.14159赋给为整数类型变量n的语句是_____System.out.print((int)n);__________。
  9. 八进制整数012表示十进制的___10___,十六进制数0x3C表示十进制的__60___。
  10. 一个十进制整数转换成八进制数后是1234,则它转为十六进制数后是  0x29C     。

二、    选择题

1.

Java中,以下错误的变量名是( D  )。(选择一项)





A

constant


B.

flag


C.

a_b


D.

final


2.

以下选项中属于合法的Java标识符的是(  CD 。(选择项)





A.

public


B.

3num


C.

name


D.

_age


3.

Java中,byte数据类型的取值范围是(  A  )。(选择一项)





A

-128 ~ 127


B.

-228 ~128


C.

-255 ~ 256


D.

-255 ~ 255

4.

下面的代码段中,执行之后ij的值是( C  )。(选择一项)


int i=1;   int j;

j=i++;





A

1,1


B.

1,2


C.

2,1


D.

2,2

5.

下面Java代码的执行结果是(  A  )。(选择一项)


public class Test {

        public static void main(String args[]) {

                 System.out.println(100 % 3);

                 System.out.println(100%3.0);

        }

}





A

1  1.0


B.

1   1


C.

1.0  1.0


D.

33   33.3

6.

下面的赋值语句中错误的是( A  )。(选择一项)





A

float f = 11.1;   


B.

double d = 5.3E12;


C.

double d = 3.14159;


D.

double d = 3.14D;

7.

Java中,下面( AB)语句能正确通过编译。(选择两项)





A

System.out.println(1+1);     


B.

char i =2+'2';

System.out.println(i);


C.

String s="on"+'one';


D.

int b=255.0;

8.

以下Java运算符中优先级别最低的两个选项是(  AB  )。(选择二项)





A

赋值运算符=    4


B.

条件运算符 ?:  3


C.

逻辑运算符|  2


D.

算术运算符+  1

10.

关于以下Java程序中错误行的说明正确的是(  B  )。(选择一项)


public class Test2 {

        public static void main(String[] args) {

                 short s1=1;   //1

                 s1=s1+1;     //2

                 s1+=1;       //3

                 System.out.println(s1);

        }

}





A

1行错误


B.

2行错误


C.

3行错误


D.

1行,2行,3行都错误

三、    判断题

  1. Java中变量名不区分大小写,number和NuMbEr代表同一个变量。(  F  )
  2. 在编译Java源程序时,计算机根本不会去识别各个变量名的具体含义,因此命名规范对编写Java程序而言不是必要的,而且有可能会降低编写Java源程序的效率。(  F  )
  3. Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。( T  )char
  4. char类型变量可以存储一个Unicode字符,在内存中占2个字节,该字符可以是一个汉字。(  T  )
  5. 运算符||和&&既是逻辑运算符,也是位运算符。根据两侧操作数的类型判断是逻辑运算符还是位运算符。(  F  )
  6. ^ 是异或位运算符,运算规则是如果两个操作数相同,结果是0,否则结果是1。( T )
  7. 赋值运算符优先级别低于条件运算符,条件运算符优先级别低于算术运算符。( T  )
  8. 赋值和条件运算符是运算级别最低的两种运算符,都具有自右向左的结合性。(  T  )
  9. 整型常量的默认类型是int类型,浮点常量的默认类型是float类型。(  F  )
  10. 00101010 & 00010111语句的执行结果为00111111(  F  )

四、     简答题

1、Java是一种强类型语言,说明Java的数据类型分类。

       Byte,short,int,long,float,double,char,boolean

       Byte,short,char-->int-->ong-->float-->double

       整数类型(byte、short、int、LONG、),浮点型(float、double),字符型(char),

       布尔型(boolean)。

2、i++和++i的异同之处

       不同之处:++i 先自增,后赋值。i++ 相反。

       相同之处:都要发生自增。

3、运算符||和|的异同之处

      不同之处:||在运算中,如果它左侧的表达式为“true”时,就不再计算右边的表达式了,直接返        回到“true”。|在运算中,是在等两侧的表达式都计算出结果以后,在判断最终结果的。

      相同之处:逻辑意义相同。

4、Java中基本数据类型转换的规则

      类型转换包括(int short byte long float double char),不包括布尔类型。转换方向:byte,short,char-----int-----long-----float-----double。在算数运算中,先扫描整个表达式,发现宽度最大的类型,所有的数据都转换成该类型,在运算。在赋值转换中,左>右,自动转换。左=右,不转换。左<右,强制转换。

五、    编码题

 1、  输入自己的名字,年龄和性别,分别用不同的变量接收,并将输入的信息做输出。

import java.util.Scanner;
public class Test1 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("please input your name here:");
        String name = sc.next();
        System.out.println("please input your age here:");
        int age = sc.nextInt();
        System.out.println("please input your gender here:");
        String gender = sc.next();
        System.out.println("The computer recorded that :");
        System.out.println("Your nanme is:" + name);
        System.out.println("Your age is:" + age);
        System.out.println("Your gender is:" + gender);
    }
}

2、输入圆形半径,求圆形的周长和圆形的面积,并将结果输出。

import java.util.Scanner;
public class Test2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入圆的半径:");
        double r = sc.nextDouble();
        double c = 3.14 * 2 * r;
        double s = 3.14 * r * r;
        System.out.println("该圆的半径为:" + r);
        System.out.println("该圆的周长为:" + c);
        System.out.println("该圆的面积为:" + s);
    }
}

3、某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。结果如图所示。

import java.util.Scanner;
public class Test4 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个四位数:");
        int number = sc.nextInt();
        int ge = number % 10;
        int shi = number / 10 % 10;
        int bai = number / 10 / 10 % 10;
        int qian = number / 10 / 10 / 10 % 10;
        ge = (ge + 5) % 10;
        shi = (shi + 5) % 10;
        bai = (bai + 5) % 10;
        qian = (qian + 5) % 10;
        number = ge * 1000 + shi * 100 + bai * 10 + qian;
        System.out.println("加密后的数字是:" + number);
    }
}

六、    可选题

1、网上查询资料,了解如下内容

1)    ASCII、ISO8859-1、GB2312、GBK、GB18030、BIG5、UNICODE、ANSI等字符集的特点

2)    常用进制(二进制、八进制、十六进制、十进制)的特点及其转换

3)    源码、反码、补码含义、作用及其转换

2、利用”异或”运算的性质,对几个字符进行加密并输出密文,然后再解密。加密算法是:密钥是字符’8’,明文的每个字符和密钥进行异或运算,得到密文。密钥和密文的每个字符再次进行异或运算,重新得到明文。结果如图所示。

JAVA位运算符例题 java运算符例题及答案_Java

00000000 00000000 00000000 1000

public class Test3
{
    public static void main(String[] args) {
        //定义4个字符代表4个汉字
        char h1 = '十';
        char h2 = '点';
        char h3 = '进';
        char h4 = '攻';
        System.out.println("加密前原文:" + h1 + h2 + h3 + h4);

        char hanzi1 = (char) (h1 ^ '8');
        char hanzi2 = (char) (h2 ^ '8');
        char hanzi3 = (char) (h3 ^ '8');
        char hanzi4 = (char) (h4 ^ '8');
        System.out.println("密文:" + hanzi1 + hanzi2 + hanzi3 + hanzi4);

        hanzi1 = (char) (hanzi1 ^ '8');
        hanzi2 = (char) (hanzi2 ^ '8');
        hanzi3 = (char) (hanzi3 ^ '8');
        hanzi4 = (char) (hanzi4 ^ '8');
        System.out.println("解密后原文:" + hanzi1 + hanzi2 + hanzi3 + hanzi4);


    }
}