【友情链接】➡➡▶【小白学java】D02》》》初学java 基础知识<Java注释&关键字&数据类型>
【友情链接】➡➡▶【小白学java】D03》》》java基础<运算符&表达式>
一、填空题
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等于多少的语句是 2<<3__ 。
(1)、按位与运算
按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。
(2)、按位或运算
按位或运算符“|”是双目运算符。 其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。
(3)、按位异或运算
按位异或运算符“^”是双目运算符。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现。
(4)、求反运算
求反运算符~为单目运算符,具有右结合性。 其功能是对参与运算的数的各二进位按位求反。
(5)、左移运算
左移运算符,是双目运算符。左移n位就是乘以2的n次方。 其功能把,左边的运算数的各二进位全部左移若干位,由,右边的数指定移动的位数,高位丢弃,低位补0。
例: a<<4 指把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。
(6)、右移运算
右移运算符,是双目运算符。右移n位就是除以2的n次方
其功能是把,左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。
8.基本数据类型的类型转换中,要将double类型的常量3.14159赋给为整数类型变量n的语句是______int n=(int)3.14159;_________。
9.八进制整数012表示十进制的___10___,十六进制数0x3C表示十进制的___60_______。
10.一个十进制整数转换成八进制数后是1234,则它转为十六进制数后是______29C____ 。
二进制转八进制
方法为:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。二进制转十六进制
方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。十进制转八进制或者十六进制有两种方法
第一:间接法—把十进制转成二进制,然后再由二进制转成八进制或者十六进制。这里不再做图片用法解释。
第二:直接法—把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。
二、选择题
-
在Java中,以下错误的变量名是( D )。(选择一项)
A constant
B. flag
C. a_b
D. final
解析:finalw为关键字
-
以下选项中属于合法的Java标识符的是(CD )。(选择两项)
A. public
B. 3num
C. name
D. _age
解析:public关键字;标识符不能数字开头
-
在Java中,byte数据类型的取值范围是( A )。(选择一项)
A -128 ~ 127
B. -228 ~128
C. -255 ~ 256
D. -255 ~ 255
解析: java中byte占一个字节, 也就是8bit(位), 其中最高位是符号位, 剩下7位用来表示数值.若符号位为0, 则表示为正数,范围为00000000~01111111(补码形式),也就是十进制的0-127. 若符号位为1, 则表示为负数, 范围为10000000~11111111(补码形式), -128~-1, 11111111转换为原码就是10000001,也就是-1.在补码中,为了避免存在"-0",规定10000000为-128, 所以byte的取值范围是-128~127
-
下面的代码段中,执行之后i和j的值是( C)。(选择一项)
int i=1; int j;
j=i++;A 1,1
B. 1,2
C. 2,1
D. 2,2 -
下面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 -
下面的赋值语句中错误的是( A )。(选择一项)
A float f = 11.1;
B. double d = 5.3E12;
C. double d = 3.14159;
D. double d = 3.14D; -
在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; -
以下Java运算符中优先级别最低的两个选项是( AB )。(选择二项)
A 赋值运算符=
B. 条件运算符 ?=
C. 逻辑运算符|
D. 算术运算符+ -
有以下方法的定义,请选择该方法的返回类型( D )。(选择一项)
method(byte x, double y) {
return (short)x/y*2;
}A byte
B. short
C. int
D. double -
关于以下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 )
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);
引用数据类型:类(class),接口(interface),数组
2.说明 i++ 和 ++i 的异同之处
答:i++,先进行运算再自增;++i先自增再进行运算
3.运算符 || 和 | 的异同之处
答:
||左边的表达式为真时,右边的表达式不用进行计算了;
|需要考虑俩边的表达式。
4.Java中基本数据类型转换的规则
答:
(1)布尔型和其它基本数据类型之间不能相互转换;
(2)byte型可以转换为short、 int、long、float和double;
(3)short可转换为int、long、float和double;
(4)char可转换为int、long、float和double;
(5)int可转换为long、float和double;
(6)long可转换为float和double;
(7)float可转换为double.
五、编码题
某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。结果如图所示。
//输入一个4位整数
Scanner s = new Scanner(System.in);
System.out.print("请输入一个4位正整数:");
int num = s.nextInt();
//获取各个位上的数
int bit4 = (num / 1000); // 取千位的数字
int bit3 = (num / 100) % 10; // 取百位的数字
int bit2 = (num / 10) % 10; // 取十位的数字
int bit1 = num % 10; // 取个位的数字
//每位数字加5
bit4 = (bit4+5)%10;
bit3 = (bit3+5)%10;
bit2 = (bit2+5)%10;
bit1 = (bit1+5)%10;
//交换第一位和第四位
int temp;
temp = bit4;
bit4 = bit1;
bit1 = temp;
//交换第二位和第三位
temp = bit2;
bit2 = bit3;
bit3 = temp;
// 输出加密后数字
//System.out.println("加密后的数字为:"+bit4+bit3+bit2+bit1);
int ennum = bit4*1000+bit3*100+bit2*10+bit1;
System.out.println("加密后的数字为:"+ennum);
六、进阶题
1.了解如下内容
1)ASCII、ISO8859-1、GB2312、GBK、GB18030、BIG5、UNICODE、ANSI等字符集的特点
友情链接:
http://www.blogjava.net/xcp/archive/2009/10/29/coding2.html
2)常用进制(二进制、八进制、十六进制、十进制)的特点及其转换
3)源码、反码、补码含义、作用及其转换
2.利用”异或”运算的性质,对几个字符进行加密并输出密文,然后再解密。加密算法是:密钥是字符’8’,明文的每个字符和密钥进行异或运算,得到密文。密钥和密文的每个字符再次进行异或运算,重新得到明文。结果如图所示。
00000000 00000000 00000000 1000
//原文
char a1 = '十', a2 = '点', a3 = '进', a4 = '攻';
System.out.println("加密前原文:" + a1 + a2 + a3 + a4);
//加密
char secret = '8';
a1 = (char) (a1 ^ secret);
a2 = (char) (a2 ^ secret);
a3 = (char) (a3 ^ secret);
a4 = (char) (a4 ^ secret);
System.out.println("密文:" + a1 + a2 + a3 + a4);
//解密
a1 = (char) (a1 ^ secret);
a2 = (char) (a2 ^ secret);
a3 = (char) (a3 ^ secret);
a4 = (char) (a4 ^ secret);
System.out.println("解密后原文:" + a1 + a2 + a3 + a4);