2018/10/13 Day002
阿新 • • 發佈:2018-11-06
JavaScript程式設計題
下面兩個函式的返回值是一樣的嗎?為什麼?
function foo1() {
return {
bar: "hello"
};
}
function foo2() {
return
{
bar: "hello"
};
}
在程式語言中,基本都是使用分號(;)將語句分隔開,這可以增加程式碼的可讀性和整潔性。而在 JS 中,如若語句各佔獨立一行,通常可以省略語句間的分號(;),JS 解析器會根據能否正常編譯來決定是否自動填充分號:
var test = 1 + 2;
console.log(test); //3
在上述情況中,為了正確解析程式碼,就不會自動填充分號了,但是對於 return 、break、continue 等語句,如果後面緊跟換行,解析器一定會自動在後面填充分號(;),所以上面的第二個函式就變成了這樣:
function foo2() {
return;
{
bar: "hello"
};
}
所以第二個函式是返回 undefined。
MySQL程式設計題
用一條 SQL 語句,查詢出每門課都大於 80 分的學生姓名。
表名 student_score
name | course | score |
---|---|---|
張三 | 語文 | 81 |
張三 | 數學 | 75 |
李四 | 語文 | 76 |
李四 | 數學 | 90 |
王五 | 語文 | 81 |
王五 | 數學 | 100 |
王五 | 英語 | 90 |
select distinct name from student_score where name not in (select distinct name from student_score where score <= 80);
或者
select name from student_score group by name having min(score)>80;
JAVA程式設計題
一球從 100 米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在第 10 次落地時,共經過多少米?第 10 次反彈多高?
package test;
public class Test2 {
/**
*
* @param h 距離
* @param n 次數
* @return 第n次反彈的高度
*/
public static double sumBallHeight(double h, int n) {
if (n == 1)
return h / 2;
else
return sumBallHeight(h / 2, n - 1);
}
public static void main(String[] args) {
System.out.println(sumBallHeight(100, 10));
}
}
package test;
public class Tl2 {
public static void sumBallHeight(int initHeight, int times) {
// 落地時經過多少米
double sum = 0;
// 反彈高度
double height = 0;
for (int i = 1; i <= times; i++) {
if (i == 1) {
height = initHeight/2;
sum += initHeight;
} else {
sum = sum + height * 2;
height = height/2;
}
}
System.out.println("第" + times + "次落地時,共經過" + sum + "米");
System.out.println("第" + times + "次反彈" + height + "米");
}
public static void main(String[] args) {
sumBallHeight(100, 3);
}
}