每日練習-20181222
文章目錄
一、JavaScript 程式設計題
B/S 與 C/S 的聯絡與區別。
解答:
聯絡:
(1) 瀏覽器/伺服器(B/S)模型是一種特殊的、具體化的客戶/伺服器(C/S)模型,其特殊之處是B/S模型的客戶端軟體特指瀏覽器,伺服器一般是Web伺服器,使用HTTP協議通訊。其工作過程是C/S模型的具體化、例項化。
(2)二者的本質思想均是基於計算機網路中,不同主機之間軟硬體資源、運算能力和資訊不均等,為實現資源資訊共享,必然形成不對等的通訊地位和互動方式。
(3)兩種結構對應的軟體系統均為分散式網路應用程式系統。
區別:
C/S模型:
優點
(1)結構簡單。
(2)支援分散式、併發環境。有效提高資源的利用率和共享程度。
(3)伺服器集中管理資源,有利於許可權控制和系統安全。
(4)可擴充套件性較好。客戶和伺服器均可單獨地升級。
缺點:
(1)不易部署(客戶端逐一安裝、挑平臺)
(2)維護困難(客戶端需注意更新)
B/S 模型:
優點
(1)分散式、易擴充套件、共享性強
(2)易部署(各平臺自帶通用瀏覽器)
(3)容易維護(伺服器端改變網頁內容可實現所有使用者同步更新)
(4)頁面動態重新整理,響應速度明顯降低。
二、MySQL 簡答題
請描述 MySQL 從安裝到配置的全部詳細過程(確保一臺新電腦可以順利使用 MySQL)。
解答:
第一步:下載
地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-winx64.zip 。
Select Platform:Microsoft Windows。
第二步:安裝
2.1 解壓。
解壓後,mysql-8.0.11資料夾放置在C:\web資料夾中。若無則自建在C盤中建一個web資料夾。
2.2 建立 my.ini 配置檔案。
在C:\web\mysql-8.0.11中,建立my.tex記事本。並編寫內容。
[ mysql]
# 設定mysql客戶端預設字符集
default-character-set=utf8
[mysqld]
# 設定3306埠
port = 3306
# 設定mysql的安裝目錄
basedir=C:\\web\\mysql-8.0.11
# 設定 mysql資料庫的資料的存放目錄,MySQL 8+ 不需要以下配置,系統自己生成即可,否則有可能報錯
# datadir=C:\\web\\sqldata
# 允許最大連線數
max_connections=20
# 服務端使用的字符集預設為8位元編碼的latin1字符集
character-set-server=utf8
# 建立新表時將使用的預設儲存引擎
default-storage-engine=INNODB
儲存後,把my.tex檔名改為my.ini。
第三步:啟動MySQL——使用cmd命令符進行初始化
3.1 切換目錄:cd C:\web\mysql-8.0.11\bin
3.2 初始化資料庫:mysqld --initialize --console。
執行完成後,會輸出 root 使用者的初始預設密碼,如:
2018-04-20T02:35:05.464644Z 5 [Note] [MY-010454] [Server] A temporary password is generated for [email protected]: APWCY5ws&hjQ
-- APWCY5ws&hjQ 就是初始密碼,後續登入需要用到,可以在登陸後修改密碼。
在 5.7 需要初始化 data 目錄:mysqld --initialize-insecure
3.3 安裝命令:mysqld install
3.4 啟動命令:net start mysql
第四步:登入 MySQL
4.1 登入命令:mysql -h 主機名 -u 使用者名稱 -p
登入本機MySQL時命令:mysql -u root -p。
4.2 輸入密碼:Enter
在“password:”後輸入密碼。
三、Java 簡答題
求 0—7 所能組成的不超過 8 位奇數的個數。
解答:
public class Day14{
public static void main(String[] args){
Day14 num = new Day14();
num.getResult1(0,7,8);
}
// 獲取結果1。不超過某位數時的個數。
public void getResult1(int startNum, int endNum, int placesNumber){
int sum = 0;
for(int i = 1; i <= placesNumber; i++){
sum = sum + getResult2(startNum, endNum, i);
}
System.out.println("當起始數字為:" + startNum + ",結束數字為:" + endNum +"時,不超過" + placesNumber + "位奇數的個數為:" + sum);
}
// 獲取結果2。當為某位數時的個數。
public int getResult2(int startNum, int endNum, int placesNumber){
/**
* 分析
* 1. 是一個8位數。
* 2. 首位:不能為0。(endNum - startNum)種情況。a
* 3. 末尾為奇數。xx種情況,根據奇數個數確定。b
* 4. 中間n位情況。(endNum - startNum + 1)種情況。c*c*c*c*c....=c^n。
* 5. 總情況:a*(c^n)*b。
*/
int odd = findOdd(startNum, endNum); //尋找奇數的個數。
if( placesNumber > 1){
int OddNum = odd * getOddNum(startNum, endNum,placesNumber); // 計算總奇數個數。
System.out.println("當起始數字為:" + startNum + ",結束數字為:" + endNum +"時," + placesNumber + "位奇數的個數為:" + OddNum);
return OddNum;
}else{
System.out.println("當起始數字為:" + startNum + ",結束數字為:" + endNum +"時," + placesNumber + "位奇數的個數為:" + odd);
return odd;
}
}
// 尋找奇數的個數。
public int findOdd(int startnNum, int endNum){
int oddNum;
for(int i = startnNum; i <= endNum; i++){
oddNum = (i % 2 != 0) ? (oddNum + 1) : oddNum;
}
return oddNum;
}
// 計算去除末尾後,組合的個數。
public int getOddNum(int startNum, int endNum, int placesNumber){
int a = endNum - startNum + 1; // 每位可以放數字的個數。
int b = placesNumber - 2; // 去除首位和末尾後的位個數。
int s = (int)(Math.pow(a, b)); // 中間組合情況。
if(startNum == 0){
return (a - 1) * s;
}else{
return a * s;
}
}
}