-
请将下面的整数转换成为整数(int)和长整数(long)类型补码表示的二进制数。
整数 int long 11 0x0000000B 0x000000000000000B 33 0x00000021 0x0000000000000021 105 0x00000069 0x0000000000000069 7 0x00000007 0x0000000000000007 -9 0xFFFFFFF7 0xFFFFFFFFFFFFFFF7 -5 0xFFFFFFFB 0xFFFFFFFFFFFFFFFB -111 0xFFFFFF91 0xFFFFFFFFFFFFFF91 -28 0xFFFFFFE4 0xFFFFFFFFFFFFFFE4 -65 0xFFFFFFBF 0xFFFFFFFFFFFFFFBF -
计算下面Java表达式的值,并写出表达式结果在Java中的数据类型。
(1)1+4/5+(int)5.2/2.5 = 3, double
(2)1+4/5+(int)(5.2/2.5) = 3, int
(3)1+4/5+5.2/2.5 = 3.08, double
(4)1.0+4/5+5.2/2.5 = 3.08, double
(5)1+4/5.0+5.2/2.5 = 3.88, double
(6)设已经定义了变量:int a=12,请计算表达式:(++a)+(a++) = 26, int
(7)10>>2 = 2, int
(8)10&11|12 = 14, int
(9)5^7 = 2, int
扫描二维码关注公众号,回复: 5379378 查看本文章(10)(-5)|(~5) = -5, int
(11)(true^false)&&true = true, boolean
(12)((!true)|false)||(!false) = true, boolean
Tips: 移位向下取整;~x=-x-1。
-
完成下面的通用程序,要求能够输出给定整数 i 的二进制补码。这里所谓的通用程序指的是:当改变 i 的值时,不用修改除语句"int i = 10;"之外的程序代码也能输出修改后的 i 的二进制补码。
public class J_Example { public static void main(String[] args) { int i = 10; //在这里,请写上尚未完成的程序,使得本程序在执行时能输出i的二进制补码 } //方法 main 结束 } //类 J_Example 结束
public class J_Example { public static void main(String[] args) { int i = 10; for(int j = 31; j >= 0; --j) { System.out.print((i>>j)&1); } } }
-
写出下面Java表达式的值。
(1)设 int a=1,所要计算的表达式为:(true | (++a==1)) & (a == 2) = true
(2)设 int a=1,所要计算的表达式为:(true || (++a == 1)) & (a == 2) = false
(3)设 int a=12,求经过运算"a *= 2+3"之后a的值:a = 60
-
判断下面的表达式是否含有语法错误。如果含有语法错误,请写出错误原因。
(1)01 && (4+6) × 逻辑与不能用于int
(2)4.2 % 2.1 √
(3)‘a’ > ‘A’ √
(4)‘1’ == 1 √
-
用 for 循环语句,并且在调用 Java 方法 System.out.pirnt 和 System.out.println 时只用下面的语句:
System.out.print(" "); // 输出一个空格,并且不换行 System.out.print("*"); // 输出一个字符'*',并且不换行 System.out.println("*"); // 输出一个字符'*',并换行
编写程序输出:
* *** ***** ******* ***** *** *
public class J_Example { public static void main(String[] args) { for(int i = 0; i < 7; ++i) { int t = (i > 3 ? 6 - i : i); for(int j = 0; j < 3-t; ++j) System.out.print(" "); for(int j = 0; j < 2*t; ++j) System.out.print("*"); System.out.println("*"); } } }
-
将上面的程序的 for 循环语句分别改成为 while 循环语句和 do-while 循环语句,但要求程序的输出保持不变。
// while public class J_Example { public static void main(String[] args) { int i = 0; while(i < 7) { int t = (i > 3 ? 6 - i : i); int j = 0; while(j < 3-t) { System.out.print(" "); ++j; } j = 0; while(j < 2*t) { System.out.print("*"); ++j; } System.out.println("*"); ++i; } } }
// do-while public class J_Example { public static void main(String[] args) { int i = 0; do { int t = (i > 3 ? 6 - i : i), j; if(i != 3) { j = 0; do { System.out.print(" "); ++j; } while(j < 3-t); } if(t != 0) { j = 0; do { System.out.print("*"); ++j; } while(j < 2*t); } System.out.println("*"); ++i; } while(i < 7); } }
-
找出在下面各个程序片段中存在的错误。
(1)
int i = 0; while(i < 10); { i++; System.out.println(i + "; "); }
"while(i<10);"中的分号应该去掉。
(2)
for(double x = 0.1; x != 1.0; x += 0.1) System.out.println(x + "; ");
由于浮点数表示的近似性,循环不会终止。
(3)
int i = 0, sum; while(i <= 100) sum += i; i++;
语句块缺少花括号。
-
在调用 Java 方法 System.out.print 和 System.out.println 时只用下面的语句:
System.out.print(" "); // 输出一个空格,并且不换行 System.out.print("*"); // 输出一个字符'*',并且不换行 System.out.print("+"); // 输出一个字符'+',并且不换行 System.out.println("*"); // 输出一个字符'*',并换行
编写程序输出(注:在图形的中心处有一个"+"):
* *** ***** ***+*** ***** *** *
public class J_Example { public static void main(String[] args) { for(int i = 0; i < 7; ++i) { int t = (i > 3 ? 6 - i : i); for(int j = 0; j < 3-t; ++j) System.out.print(" "); for(int j = 0; j < 2*t; ++j) { if(i == 3 && j == 3) System.out.print("+"); else System.out.print("*"); } System.out.println("*"); } } }
-
采用结构化程序设计方法设计并编写程序,在控制台窗口输出 50~100 之间的所有素数。要求严格按照结构化程序设计方法画出程序流程图,并编写相应的Java程序。
public class J_Example { public static void main(String[] args) { for(int i = 50; i <= 100; ++i) { if(isPrime(i)) System.out.println(i); } } public static boolean isPrime(int n) { if(n == 1) return false; for(int i = 2; i*i <= n; ++i) if(n % i == 0) { return false; } return true; } }
-
思考题:如何编程实现计算 。要求只采用本章介绍的知识。提示:结果超出了长整数(long)的表示范围。
import java.math.BigInteger; public class J_Example { public static void main(String[] args) { BigInteger sum = new BigInteger("0"); for(int i = 1; i <= 20; ++i) { BigInteger prod = new BigInteger("1"); BigInteger term = new BigInteger(String.valueOf(i)); for(int j = 0; j < i; ++j) { prod = prod.multiply(term); } sum = sum.add(prod); } System.out.println(sum); } }
《Java程序设计教程》第二章习题
猜你喜欢
转载自blog.csdn.net/ShadowBurn/article/details/86986857
今日推荐
周排行