数据类型和运算符作业
一、 填空题
- Java语言规定标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是 数字 。
- Java中整型变量有byte、short、int和long四种,不同类型的整数变量在内存中分配的字节数不同,数值范围也不同。对于int型变量,内存分配 4 个字节。
- 在Java中浮点型变量有float和double两种,对于float型变量,内存分配4个字节,尾数可精确到7位有效数字,对于double型变量,内存分配 8 个字节。
- char c=’a’;System.out.println(c+1);运行结果为: 98 。
- _&&__是短路与运算符,如果左侧表达式的计算结果是false,右侧表达式将不再进行计算。
- 下面的语句是声明一个变量并赋值:boolean b1=5!=8; b1的值是___true_____。
- 使用位运算符来实现运算效率最高,所以最有效率的方法算出2乘以8等于多少的语句是 System.out.print(2<<3); 。
- 基本数据类型的类型转换中,要将double类型的常量3.14159赋给为整数类型变量n的语句是_____System.out.print((int)n);__________。
- 八进制整数012表示十进制的___10___,十六进制数0x3C表示十进制的__60___。
- 一个十进制整数转换成八进制数后是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. | 下面的代码段中,执行之后i和j的值是( 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行都错误 |
三、 判断题
- Java中变量名不区分大小写,number和NuMbEr代表同一个变量。( F )
- 在编译Java源程序时,计算机根本不会去识别各个变量名的具体含义,因此命名规范对编写Java程序而言不是必要的,而且有可能会降低编写Java源程序的效率。( F )
- Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。( T )char
- char类型变量可以存储一个Unicode字符,在内存中占2个字节,该字符可以是一个汉字。( T )
- 运算符||和&&既是逻辑运算符,也是位运算符。根据两侧操作数的类型判断是逻辑运算符还是位运算符。( F )
- ^ 是异或位运算符,运算规则是如果两个操作数相同,结果是0,否则结果是1。( T )
- 赋值运算符优先级别低于条件运算符,条件运算符优先级别低于算术运算符。( T )
- 赋值和条件运算符是运算级别最低的两种运算符,都具有自右向左的结合性。( T )
- 整型常量的默认类型是int类型,浮点常量的默认类型是float类型。( F )
- 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’,明文的每个字符和密钥进行异或运算,得到密文。密钥和密文的每个字符再次进行异或运算,重新得到明文。结果如图所示。
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);
}
}