算法-第四版-习题-答案

上传人:suns****4568 文档编号:91616941 上传时间:2019-06-30 格式:DOC 页数:25 大小:146.50KB
返回 下载 相关 举报
算法-第四版-习题-答案_第1页
第1页 / 共25页
算法-第四版-习题-答案_第2页
第2页 / 共25页
算法-第四版-习题-答案_第3页
第3页 / 共25页
算法-第四版-习题-答案_第4页
第4页 / 共25页
算法-第四版-习题-答案_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《算法-第四版-习题-答案》由会员分享,可在线阅读,更多相关《算法-第四版-习题-答案(25页珍藏版)》请在金锄头文库上搜索。

1、1.1.1 给出以下表达式的值:a. ( 0 + 15 ) / 2b. 2.0e-6 * 100000000.1c. true & false | true & true答案:a.7,b.200.0000002 c.ture1.1.2 给出以下表达式的类型和值:a. (1 + 2.236)/2b. 1 + 2 + 3 + 4.0c. 4.1 = 4d. 1 + 2 + 3答案:a.1.618 b. 10.0 c.true d.331.1.3 编写一个程序,从命令行得到三个整数参数。如果它们都相等则打印equal,否则打印not equal。public class TestUqual publ

2、ic static void main(String args)int a,b,c;a=b=c=0;StdOut.println(Please enter three numbers); a =StdIn.readInt(); b=StdIn.readInt(); c=StdIn.readInt();if(equals(a,b,c)=1)StdOut.print(equal);elseStdOut.print(not equal);public static int equals(int a ,int b , int c)if(a=b&b=c)return 1;elsereturn 0;1.1

3、.4下列语句各有什么问题(如果有的话)?a. if (a b) then c = 0;b. if a b c = 0; c. if (a b) c = 0;d. if (a b) c = 0 else b = 0;答案:a. if (a b) c = 0; b. if (a b) c = 0; 1.1.5 编写一段程序,如果double 类型的变量x 和y 都严格位于0 和1 之间则打印true,否则打印false。public class TestUqual public static void main(String args)double x;double y;x=StdIn.readD

4、ouble();y=StdIn.readDouble();StdOut.print(compare(x)& compare(y);public static boolean compare(double x)If(x0&x1)returen ture;else return false;1.1.6 下面这段程序会打印出什么?int f = 0;int g = 1;for (int i = 0; i .001)t = (9.0/t + t) / 2.0;StdOut.printf(%.5fn, t);b. int sum = 0;for (int i = 1; i 1000; i+)for (i

5、nt j = 0; j i; j+)sum+;StdOut.println(sum);c. int sum = 0;for (int i = 1; i 1000; i *= 2)for (int j = 0; j 0; n /= 2)s = (n % 2) + s;1.1.10 下面这段代码有什么问题?int a;for (int i = 0; i 10; i+)ai = i * i;解答:它没有用new 为a 分配内存。这段代码会产生一个variable a might not havebeen initialized 的编译错误。1.1.11 编写一段代码,打印出一个二维布尔数组的内容。其

6、中,使用* 表示真,空格表示假。打印出行号和列号。public class Test public Test() / TODO Auto-generated constructor stubpublic static void main(String args) / TODO Auto-generated method stubboolean a = new boolean1010;a=RandomInitial(a);/随机初始化TestPrint(a);/打印数组public static void TestPrint(boolean a)for(int i=0;ia.length;i+)

7、/打印行号StdOut.print( +i);StdOut.println( );for(int i=0;i10;i+)StdOut.print(i);for(int j=0;j10;j+)if(aij)StdOut.print(*+ );elseStdOut.print( + );StdOut.println( );public static boolean RandomInitial( boolean a)for(int i=0;ia.length;i+)for(int j=0;ja.length;j+)if(StdRandom.bernoulli(0.1)aij=true;elseaij

8、=false;return a;1.1.12 以下代码段会打印出什么结果?int a = new int10;for (int i = 0; i 10; i+)ai = 9 - i;for (int i = 0; i 10; i+)ai = aai;for (int i = 0; i 10; i+)System.out.println(i);答案:0 1 2 3 4 5 6 7 8 9如System.out.println(ai);0 1 2 3 4 4 3 2 1 01.1.13 编写一段代码,打印出一个M 行N 列的二维数组的转置(交换行和列)。public class Migrate p

9、ublic Migrate() / TODO Auto-generated constructor stubpublic static void main(String args) / TODO Auto-generated method stubint m=5;int n=5; int a=new int mn; int b=new int nm; a=RandomInitial(a,n); /初始化二维数组 b=MigrateArrays(a,b); /转置二维数组 MigratePrint(b);/输出转置二维数组 public static void MigratePrint(int

10、a)StdOut.println(输出转置二维数组:); for (int i=0;ia.length;i+) for(int j=0;ja0.length;j+) StdOut.print(aij+ ); StdOut.println(); public static int MigrateArrays(int a,int b) for (int i=0;ia.length;i+) for(int j=0;ja0.length;j+) bji=aij; return b;public static int RandomInitial(int a,int N)StdOut.println(初始化二维数组:); for (int i=0;ia.length;i+) for(int j=0;ja0.length;j+) aij=StdRandom.uniform(N); StdOut.print(aij+ ); StdOut.println(); return a;1.1.14 编写一个静态方法lg(),接受一个整型参数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号