2018-5-14
1.1.1 # 解答 # a.7
b.200.0000002
c.True
代码 # var a = (0 + 15) / 2; var b = 2.0e-6 * 100000000.1; var c = true && false || true && true; // Console.WriteLine 向控制台窗口输出一行 Console.WriteLine($"a.{a}"); Console.WriteLine($"b.{b}"); Console.WriteLine($"c.{c}");
2018-5-14
1.1.2 # 解答 # Name Type Value a System.Double 1.618 b System.Double 10 c System.Boolean True d System.String 33 代码 # // var 变量名 = 初始值 根据初始值自动判断变量类型 var a = (1 + 2.236) / 2; var b = 1 + 2 + 3 + 4.0; var c = 4.1 >= 4; var d = 1 + 2 + "3"; // Console.WriteLine 向控制台输出一行 // 变量名.GetType() 返回变量类型 Console.WriteLine("\tName\tType \tValue"); Console.WriteLine($"\ta\t{a.GetType()}\t{a}"); Console.WriteLine($"\tb\t{b.GetType()}\t{b}"); Console.
...
2018-5-14
1.1.3 # 解答 # 简单的 if 判断即可。
代码 # /* * 输入 * * 用空格隔开的三个整数,例如 * 3 3 3 * * 输出 * * equal 或 not equal */ var input = Console.ReadLine(); var a = int.Parse(input.Split(' ')[0]); var b = int.Parse(input.Split(' ')[1]); var c = int.Parse(input.Split(' ')[2]); if (a == b && b == c) { Console.WriteLine("equal"); } else { Console.WriteLine("not equal"); }
2018-5-14
1.1.4 # 解答 # a. if 后跟 then 的语法不能在 C# 中使用。
b. if 后的判断语句需要在括号内。
c. 正确,只有一条语句时大括号可以省略。
d. c = 0 后缺少分号。
代码 # var a = 1; var b = 2; var c = 0; // if (a > b) then c = 0; // if 后不能跟 then // if a > b { c = 0; } // if后必须跟括号 if (a > b) c = 0; // 正确 // if (a > b) c = 0 else b = 0; // c = 0后缺少分号
2018-5-14
1.1.5 # 解答 # 比较简单,直接判断即可。
代码 # // 修改这两个值进行测试 var x = 0.05; var y = 0.01; if (x > 0 && x < 1 && y > 0 && y < 1) { Console.WriteLine("true"); } else { Console.WriteLine("false"); }
2018-5-14
1.1.6 # 解答 # 输出斐波那契数列。
将书中的代码直接实现即可。
代码 # //输出斐波那契数列 var f = 0; var g = 1; for (var i = 0; i <= 15; i++) { Console.WriteLine(f); f = f + g; g = f - g; }
2018-5-14
1.1.7 # 解答 # 同上题,直接实现即可。
a
3.00009
double计算存在误差,并不精确。
b
499500
1000 + 999 + 998……
c
10000
1000 * 10,外层循环的结束条件为 $2^i >1000$
代码 # static void A() { Console.WriteLine("a"); var t = 9.0; while (Math.Abs(t - 9.0 / t) > .001) { t = (9.0 / t + t) / 2.0; } Console.WriteLine($"{t:N5}"); // :N5代表保留5位小数,同理可使用N1、N2…… } static void B() { Console.WriteLine("\nb"); var sum = 0; for (var i = 1; i < 1000; i++) { for (var j = 0; j < i; j++) { sum++; } } Console.
...
2018-5-14
1.1.8 # 解答 # b
197
e
代码 # Console.WriteLine('b'); Console.WriteLine('b' + 'c'); // char 被隐式转为为 int 类型,取 ascii 码 Console.WriteLine((char)('a' + 4)); // 强制转换后,ascii 码被转换为相应的字符
2018-5-14
1.1.9 # 解答 # 有两种方法,要么直接调用库函数,要么用书中给出的代码转换。
代码 # var n = 4; // 1.直接转换 Convert.ToString(int, int) 第一个为要转换的数,第二个为要转换的进制 Console.WriteLine($"{Convert.ToString(n, 2)}"); // 2.转换为二进制数 var s = ""; for (var i = n; i > 0; i /= 2) { s = (i % 2) + s; } Console.WriteLine(s);
2018-5-14
1.1.10 # 解答 # 变量使用前需要先赋值。
代码 # int[] a; for (var i = 0; i < 10; i++) { // a[i] = i * i; // 不允许使用未赋值的局部变量 } a = new int[10]; for (var i = 0; i < 10; i++) { a[i] = i * i; // 初始化后可用 }