一、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 root@localhost: 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;
}
}
}