[每日]每日练习

来源:互联网 发布:2016淘宝销售数据统计 编辑:程序博客网 时间:2024/04/28 08:48

(2017-10-30)MySQL 编程题

表名 User

Name Tel Content Date 张三 13333663366 大专毕业 2006-10-11 张四 13612312331 本科毕业 2006-10-15 小明 13905333221 中专毕业 2006-10-15

1、有一新记录(小王 13254748547 高中毕业2007-05-06),请用SQL语句新增至表中。
2、请用 SQL 语句,把张三的时间更新为当前系统时间。
3、请写出删除姓名为张四的全部记录。

答:
– 1、有一新记录(小王 13254748547 高中毕业2007-05-06),请用SQL语句新增至表中。
INSERT INTO 2017_10_30(name,tel,content,date) VALUES (‘小王’,13254748541,’高中毕业’,’2007-05-06’)

– 2、请用 SQL 语句,把张三的时间更新为当前系统时间。
UPDATE 2017_10_30 SET date=NOW()

– 3、请写出删除姓名为张四的全部记录。
DELETE FROM 2017_10_30 WHERE name=’张四’

Java 编程题

有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
答:

package com;public class Hello {    public static void main(String[] args){    int i=0;    for(int a=1;a<=4;a++){        for(int b=1;b<=4;b++){            for(int c=1;c<=4;c++){            if(a!=b && b!=c && a!=c){                i++;                System.out.println(a*100+b*10+c);                   }               }        }    }    System.out.println("一共可以有"+i+"种组合");}}

(2017-10-31)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 nameFROM 2017_10_31WHERE name not in(SELECT name FROM 2017_10_31 WHERE score<=80)

(选择分数小于等于80的人名,然后取反,意思就是80分及以下的人全部被出名,剩下的就是全都在80分以上的人)

Java 编程题

一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第 10 次落地时,共经过多少米?第 10 次反弹多高?
答:

        double a=100;        double b=0;        double c=0;        double d=0;        for(int i=1;i<=10;i++){            b=a/2+a;            a=a/2;            c=b+c;            if(i<11 && i>9){                System.out.println("第十次落地反弹"+a/2+"米");            d=a/2;            }        }        System.out.println("总共经过:"+(c-d)+"米");

JavaScript 编程题(2017-11-1)

查找sdddrtkjsfkkkasjdddj字符串中,出现次数最多的字符和次数。

MySQL 编程题

表名 team
ID Name
1 a
2 b
3 b
4 a
5 c
6 c
要求:执行一个删除语句,当 Name 列上有相同时,只保留 ID 这列上值小的
例如:删除后的结果应如下:
ID Name
1 a
2 b
5 c
请写出 SQL 语句。

DELETE FROM 2017_11_1WHERE id not in (SELECT MIN(id)FROM 2017_11_1GROUP BY name )
//报错:You can't specify target table '2017_11_1' for update in FROM clause

Java 编程题

判断 101-200 之间有多少个素数,并输出所有素数。
答:

    int a=0;        for(int i=101;i<=200;i++){            for(int b=2;b<i;b++){                               if (i%b==0){    //只要i能整除i之前的任何一个非1的数,则此i为非质数,跳出当前循环                                 break;                }                       if(b==(i-1)){  //表示:b已经b++循环到i的前面一位数了(b<i),也就是说此时b在i之前没有可以被除的整数,证明此i是质数                    a++;                    System.out.println("素数为:"+i);                }                       }        }        System.out.println("共有:"+a+"个素数");

JavaScript 编程题(2047-11-2)
页面上输入一个年份(需验证),判断是否是闰年(能被 4 整除,却不能被 100 整除的年份;能被 400 整除的是闰年),并且在页面上显示相应提示信息。

<!doctype html><html>    <head>        <title>闰年</title>        <meta charset="utf-8">    </head>    <body>        <form>            请输入年份:<input id="year" type="text" />            <span id="check"></span>        </form>        <script>            var input = document.getElementById("year");            var tip = document.getElementById("check");            //输入框失去焦点触发事件            input.onblur = function() {                var year = input.value.trim();                //年份由4位数字组成                if(/^\d{4}$/.test(year)) {                    //能被4整除却不能被100整除的年份;能被400整除的是闰年                    if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {                        tip.innerHTML = "闰年";                    } else {                        tip.innerHTML = "非闰年";                    }                } else {                    tip.innerHTML = "年份格式不正确请重新输入";                }            }        </script>    </body></html>

MySQL 编程题
如何通过命令提示符登入 MySQL?如何列出所有数据库?如何切换到某个数据库并在上面工作?如何列出某个数据库内所有表?如何获取表内所有 Field 对象的名称和类型?

1.  mysql -u -p  2.  show databases;  3.  use dbname; 4.  show tables;  5.  describe table_name ;  

Java 编程题
一个数如果恰好等于它的因子之和,这个数就称为「完数」。例如 6=1+2+3.编程找出 1000 以内的所有完数。
package test;

/** * 完数判断 * @author CUI */public class Tl5 {    /**     * 判断是否是完数     * @param a 需判断的数字     * @return boolean     */    public static boolean test(int a) {        int cup = 0;        // 循环遍历,找到所有因子,并计算因子之和        for (int i = 1; i < a; i++) {            if (a % i == 0)                cup = cup + i;        }        return (cup == a);    }    public static void main(String[] args) {        String str = "";        for (int i = 1; i < 1000; i++) {            if (test(i)) {                str += i + ",";            }        }        System.out.print(str.substring(0, str.length() - 1));    }}

JavaScript 编程题(2017-11-3)
解释一下下面代码的输出。
console.log(0.1 + 0.2); //0.30000000000000004
console.log(0.1 + 0.2 == 0.3); //false
答:
JavaScript 中的 number 类型就是浮点型,JavaScript 中的浮点数采用IEEE-754 格式的规定,这是一种二进制表示法,可以精确地表示分数,比如 1/2,1/8,1/1024,每个浮点数占 64 位。但是,二进制浮点数表示法并不能精确的表示类似 0.1 这样 的简单的数字,会有舍入误差。
由于采用二进制,JavaScript 也不能有限表示 1/10、1/2 等这样的分数。在二进制中,1/10(0.1)被表示为 0.00110011001100110011…… 注意 0011 是无限重复的,这是舍入误差造成的,所以对于 0.1 + 0.2 这样的运算,操作数会先被转成二进制,然后再计算:
0.1 => 0.0001 1001 1001 1001…(无限循环)
0.2 => 0.0011 0011 0011 0011…(无限循环)
双精度浮点数的小数部分最多支持 52 位,所以两者相加之后得到这么一串 0.0100110011001100110011001100110011001100… 因浮点数小数位的限制而截断的二进制数字,这时候,再把它转换为十进制,就成了 0.30000000000000004。

MySQL 编程题
表名 student_score

name    course  score张三  语文  81张三  数学  75李四  语文  76李四  数学  90王五  语文  81王五  数学  100王五  英语  90

查询出「张」姓学生中平均成绩大于 75 分的学生信息。

答:

SELECT *FROM `2017-11-3`WHERE name LIKE '张%' GROUP BY name Having AVG(score)>75

Java 编程题
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

答:

package test;/**  * 程序分析:采取逆向思维的方法,从后往前推断 * @author CUI */public class Tl6 {    public static void main(String[] args) {        int num = 1;        for (int i = 1; i <= 9; i++) {            num = (num + 1) * 2;        }        System.out.println("第一天共摘了" + num + "个桃子");    }}

JavaScript 编程题(2017-11-6)

什么是 NaN,它的类型是什么?怎么测试一个值是否等于 NaN?

NaN 是 Not a Number 的缩写,JavaScript 的一种特殊数值,其类型是 Number,可以通过 isNaN(param) 来判断一个值是否是 NaN:

console.log(isNaN(NaN)); //trueconsole.log(isNaN(23)); //falseconsole.log(isNaN('ds')); //trueconsole.log(isNaN('32131sdasd')); //trueconsole.log(NaN === NaN); //falseconsole.log(NaN === undefined); //falseconsole.log(undefined === undefined); //falseconsole.log(typeof NaN); //number

MySQL 问答题
drop,delete 与 truncate 的区别?

相同点 :
truncate,delete 以及 drop 都会删除表内的数据
不同点:
1、truncate、drop 是 DDL 语句,执行后会自动提交。delete是 DML 语句,不会自动提交。
2、delete(不释放空间)和 truncate(释放空间)只删除数据不删除表的结构。drop 会删除表的结构和数据,释放空间。
3、速度:drop 》truncate 》delete
Java 编程题
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13… 求出这个数列的前 20 项之和。

public class Tl10 {    public static void main(String[] args) {        // 定义总和,分母,分子,临时存储分母的变量          double sum = 0,h=2,k=1,temp=0;          for(double i=1;i<=20;i++){              sum += h/k;              temp = h;              h = h+k;              k = temp;          }           System.out.println("这个数列的前 20 项之和:"+sum);      }}

JQuery 问答题(2017-11-7)
jQuery 中有哪些方法可以遍历节点?
答:
children():取得匹配元素的子元素集合;
next() :取得匹配元素后面紧邻的同辈元素;
prev():取得匹配元素前面紧邻的同辈元素;
siblings():取得匹配元素前后的所有同辈元素;
closest(): 取得最近的匹配元素;
find():取得匹配元素中的元素集合,包括直接子元素和后代元素;

MySQL 问答题
什么是数据库三大范式?
答:
1NF:原子性,字段不可分,否则就不是关系数据库;
2NF:一个表只说明一个事物,有主键,非主键字段依赖主键;
3NF:每列都与主键有直接关系,不存在传递依赖,也就是说非主键字段不能相互依赖;

Java 编程题
两个乒乓球队进行比赛,各出三人。甲队为 a,b,c 三人,乙队为 x,y,z 三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a 说他不和 x 比,c 说他不和 x,z 比,请编程序找出三队赛手的名单。
答:

public static void main(String[] args) {        String test="";        String[] arr1={"a","b","c"};        String[] arr2={"x","y","z"};        for(String i:arr1){            for(String o:arr2){                test=i+o;                if(!test.equals("ax")&&!test.equals("cx")&&!test.equals("cz")){                    System.out.println(test);                }            }        }    }//输出结果:ayazbxbybzcy

Day008
jQuery 编程题
请描述 jQuery 能做什么?

1、方便快捷地获取 DOM 元素;
2、动态修改页面样式;
3、动态改变 DOM 内容;
4、响应用户的交互操作;
5、为页面添加动态效果;
6、统一 ajax 异步刷新;
7、简化 JavaScript 操作;

MySQL 编程题
MySQL 相比于其他数据库有哪些特点?

MySQL 是一个小型关系型数据库管理系统,开发者为瑞典 MySQL AB 公司,现在已经被Sun公司收购,支持 Linux、MAC、Windows 等多种操作系统与其他的大型数据库例如 Oracle、DB2、SQL Server 等相比功能稍弱一些。其特点有:
1、可以处理拥有上千万条记录的大型数据;
2、支持常见的 SQL 语句规范;
3、可移植行高,安装简单小巧;
4、良好的运行效率,有丰富信息的网络支持;
5、调试、管理,优化简单(相对其他大型数据库);

Java 编程题
鸡兔同笼是我国古代著名趣题之一。大约在 1500 年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:「今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?」
这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数,有 35 个头;从下面数,有 94 只脚。求笼中各有几只鸡和兔?编写 Java 程序解决这个问题。
答:
public static void main(String[] args) {

    for(int x=0;x<36;x++){        for(int y=0;y<36;y++){            if((x+y)==35&& (2*x+4*y)==96){                System.out.println(x);//鸡                System.out.println(y);//兔            }        }    }}

Day009
JavaScript 编程题
null 和 undefined 的区别?
答:
undefined 类型只有一个值,即 undefined。当声明的变量还未被初始化时,变量的默认值为 undefined。
null 类型也只有一个值,即 null。null 用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

MySQL 编程题
id sno username course score
1 1 张三 语文 50
2 1 张三 数学 80
3 1 张三 英语 90
4 2 李四 语文 70
5 2 李四 数学 80
6 2 李四 英语 80
7 3 王五 语文 50
8 3 王五 英语 70
9 4 赵六 数学 90
查询出只选修了一门课程的全部学生的学号和姓名。
答:
SELECT *,count(1) total From Day009 GROUP BY sno Having total=1

Java 编程题
打印出所有的「水仙花数」,所谓「水仙花数」是指一个三位数,其各位数字立方和等于该数本身。例如:153 是一个「水仙花数」,因为 153=1的三次方+5 的三次方+3 的三次方。
答:

public static void main(String[] args) {        for(int a=1;a<10;a++){            for(int b=1;b<10;b++){                for(int c=1;c<10;c++){                    int x=a*a*a+b*b*b+c*c*c;                    int y=a*100+b*10+c;                    if(x==y){                        System.out.println(x);                    }                }            }        }    }

第二种方法

public static void main(String[] args) {        for (int num = 100; num < 1000; num++) {            // 个位数            int a = num % 10;            // 十位数            int b = num / 10 % 10;            // 百位数            int c = num / 100 % 10;            if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == num) {                System.out.println(num);            }        }    }

Day010
JavaScript 编程题
输入某年某月某日,判断这一天是这一年的第几天?

MySQL 编程题
在名为商品库的数据库中包含有商品规格表 Content 和商品特性表 Property,它们的定义分别为:
Content(Code varchar(50),Class varchar(20),Price double,Number int)
Property(Code varchar(50),Place varchar(20),Brand varchar(50))
(1)写出下面查询语句的作用;
SELECT Distinct Brand FROM Property;
答:从Property表中查询出所有不同的品牌
(2)从商品规格表中查询出每类商品的最高单价
SELECT Class,max(Price) FROM Content GROUP BY Class;
(3) 从商品规格表中查询出同一类商品多于一种的所有分类名
SELECT Class FROM Content GROUP BY Class HAVING COUNT(Class)>1;

Java 编程题
打印出如下图案(菱形) 。

*






*答:

public static void print(int n) {        // 先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for 循环,第一层控制行,第二层控制列。        // 前四行        for (int i = 1; i <= n; i++) {            for (int j = 1; j <= n - i; j++) {                System.out.print(" ");            }            for (int k = 1; k <= 2*i -1; k++) {                System.out.print("*");            }            System.out.println();        }        // 后三行        for (int i = 1; i < n; i++) {            for (int j = 1; j <= i; j++) {                System.out.print(" ");            }            for (int k = 1; k <= 2*(n-i) - 1; k++) {                System.out.print("*");            }            System.out.println();        }    }    public static void main(String[] args) {        print(4);    }

Day011
JavaScript 编程题
去掉一组整型数组中重复的值。
比如输入:[1,13,24,11,11,14,1,2]
输出:[1,13,24,11,14,2]
需要去掉重复的 11 和 1 这两个元素。

<!DOCTYPE html><html>    <head>        <meta charset="UTF-8">        <title></title>    </head>    <body>        <script>            function unique(arr) {                var ret = [];                var len = arr.length;                for(var i = 0; i < len; i++) {                    for(var j = i + 1; j < len; j++) {                        if(arr[i] === arr[j]) {                            j = ++i;                        }                    }                    ret.push(arr[i]);                }                return ret;            }            var arr = [1, 13, 24, 11, 11, 14, 1, 2];            document.write(unique(arr));        </script>    </body></html>

MySQL 编程题
事务,什么是事务,为何用事务?

事务是由一组必须要同时完成的或者同时取消的操作组成的,事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。
事务是为解决数据安全操作提出的,事务控制实际上就是控制数据的安全访问

Java 编程题
编写一个函数,输入 n 为偶数时,调用函数求 1/2+1/4+…+1/n,当输入 n 为奇数时,调用函数1/1+1/3+…+1/n。
答:

public static double getDou(int n){        double x=0;        if(n%2==0){            for(int i=1;i<=n;i++){                if(i%2==0){                    x=1.0/i+x;                }                }                System.out.println(x);            }        if(n%2!=0){            for(int i=1;i<=n;i++){                if(i%2!=0){                    x=1.0/i+x;                }                }                System.out.println(x);            }        return x;    }    public static void main(String[] args) {        Day011.getDou(15);    }

Day012

<html>    <head>        <meta charset="UTF-8">        <title>年月日下拉框联动</title>    </head>    <body>        <form name="dateInfo">            <select name="yearName" onchange="testYear(this.value)">                <option value="">请选择年</option>            </select>            <select name="monthName" onchange="testMonth(this.value)">                <option value="">请选择月</option>            </select>            <select name="dayName">                <option value="">请选择日</option>            </select>        </form>        <script>            // 定义各个月份天数            var monthTemp = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];            /**             * 页面完成加载完成后执行             */            window.onload = function() {                // 获取当前年份                   var yearValue = new Date().getFullYear();                // 获取当前月份                var monthValue = new Date().getMonth() + 1;                // 以今年为准,前30年,后30年                 for(var i = (yearValue - 30); i <= (yearValue + 30); i++) {                    document.dateInfo.yearName.options.add(new Option(" " + i + " 年", i));                }                // 月份的下拉框                   for(var i = 1; i <= 12; i++) {                    document.dateInfo.monthName.options.add(new Option(" " + i + " 月", i));                }                // 设定年份                document.dateInfo.yearName.value = yearValue;                // 设定月份                document.dateInfo.monthName.value = monthValue;                // 获取当前月份的天数                var dayValue = monthTemp[monthValue - 1];                // 初始化日选项框                initDay(dayValue, monthValue, yearValue);                // 设置当前日                document.dateInfo.dayName.value = new Date().getDate();            }            // 年发生变化时日期发生变化            function testYear(yearValue) {                // 获取当前月份                var monthValue = document.dateInfo.monthName.value;                // 判断月份是否被选中,若未选中,则重置日选项框                if(monthValue == "") {                    optionsClear(document.dateInfo.dayName);                    return;                }                // 根据月份获取天数                var dayValue = monthTemp[monthValue - 1];                // 初始化日选项框                initDay(dayValue, monthValue, yearValue);            }            // 月发生变化时日期联动               function testMonth(monthValue) {                // 获取当前年份                var yearValue = document.dateInfo.yearName.value;                // 判断年份是否被选中,若未选中,则重置日选项框                if(yearValue == "") {                    optionsClear(document.dateInfo.dayName);                    return;                }                // 根据月份获取天数                var dayValue = monthTemp[monthValue - 1];                // 初始化日选项框                initDay(dayValue, monthValue, yearValue);            }            // 初始化日选项框            function initDay(dayValue, monthValue, yearValue) {                // 判断是否是2月份,并且判断是否为闰年                if(monthValue == 2 && isLeapYear(yearValue)) {                    dayValue++;                }                // 获取当前日下拉框                var e = document.dateInfo.dayName;                // 重置下拉框                optionsClear(e);                // 填充日下拉框                for(var i = 1; i <= dayValue; i++) {                    e.options.add(new Option(" " + i + " 日", i));                }            }            // 判断是否闰平年               function isLeapYear(year) {                // 闰年的定义是(可被4整除)且((不可被100整除)或(可被400整除))的年份                return(year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));            }            // 重置下拉框            function optionsClear(e) {                e.options.length = 1;            }        </script>    </body></html>

MySQL 简答题
常见的几种约束有哪些?分别代表什么意思?如何使用?
答:
常用的约束有主键约束,外键约束,唯一约束,默认约束 。
1、主键:PRIMARY KEY(主键字段)保证了实体完整性,一个表只有一个主键,但一个主键可以包含多个字段,主键字段不能为空;
2、唯一:UNIQUE(约束字段)保证了实体完整性,一个表有多个唯一约束,一个唯一约束可有包含多个字段;
3、外键:FOREIGN KEY(外键字段),保证了引用完整性,一个表可以有多个外键;
4、默认值:DEFAULT(默认值的表达式或NULL),保证了域完整性,一个表可以有多个默认值约束,但是一个字段只有一个默认值。

Java 简答题
数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用 Array 而不是 ArrayList?

1、存储内容比较:
Array 数组可以包含基本类型和对象类型,
ArrayList 却只能包含对象类型。
Array 数组在存放的时候一定是同种类型的元素。ArrayList 就不一定了 。
2、空间大小比较:
Array 数组的空间大小是固定的,所以需要事前确定合适的空间大小。
ArrayList 的空间是动态增长的,而且,每次添加新的元素的时候都会检查内部数组的空间是否足够。
3.方法上的比较:
ArrayList 方法上比 Array 更多样化,比如添加全部 addAll()、删除全部 removeAll()、返回迭代器 iterator() 等。
适用场景:
如果想要保存一些在整个程序运行期间都会存在而且不变的数据,我们可以将它们放进一个全局数组里, 但是如果我们单纯只是想要以数组的形式保存数据,而不对数据进行增加等操作,只是方便我们进行查找的话,那么,我们就选择 ArrayList。
如果我们需要对元素进行频繁的移动或删除,或者是处理的是超大量的数据,那么,使用 ArrayList 就真的不是一个好的选择,因为它的效率很低,使用数组进行这样的动作就很麻烦,那么,我们可以考虑选择 LinkedList。

Day013
JavaScript 编程题
谈谈你对Ajax 的理解?(概念、特点、作用)

AJAX 全称为「Asynchronous JavaScript And XML」(异步 JavaScript 和 XML) 是指一种创建交互式网页应用的开发技术、改善用户体验,实现无刷新效果。
优点
a、无刷新更新数据,能在不刷新整个页面的前提下与服务器通信维护数据;
b、异步与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力;
c、提高 Web 程序的性能;
d、基于标准被广泛支持,不需要下载插件;
缺点
a、破坏浏览器「前进」、「后退」按钮的正常功能,可以通过简单的插件弥补;
b、对搜索引擎的支持不足;

MySQL 编程题
表 teacher_course

教师号 星期号 是否有课
1 2 有
1 3 有
2 1 有
3 2 有
1 2 有
写一条 sql 语句让你变为这样的表 :

教师号 星期一 星期二 星期三
1 0 2 1
2 1 0 0
3 0 1 0

答:

select 教师号,  sum(case when 星期号=1 and 是否有课='有' then 1 else 0 end) AS 星期一,  sum(case when 星期号=2 and 是否有课='有' then 1 else 0 end) AS 星期二,  sum(case when 星期号=3 and 是否有课='有' then 1 else 0 end) AS 星期三  from Day013  group by 教师号

Java 编程题
有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问第 10 个月的兔子总数为多少?

package test;public class Day013 {    public static void main(String[] args) {        int n = 10;        System.out.println("第" + n + "个月兔子总数为" + fun(n));    }    // 程序分析: 兔子的规律为数列 1,1,2,3,5,8,13,21,34,55....    public static int fun(int n) {        if (n == 1 || n == 2) {            return 1;        } else {            return fun(n - 1) + fun(n - 2);        }    }}

Day014
JSP 简答题
B/S 与 C/S 的联系与区别。

C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到 Client 端和 Server 端来实现,降低了系统的通讯开销。
B/S(Browser/Server)结构即浏览器和服务器结构。它是随着 Internet 技术的兴起,对 C/S 结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过 WWW 浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

MySQL 简答题
请描述 MySQL 从安装到配置的全部详细过程(确保一台新电脑可以顺利使用 MySQL)。

1、去官网下载 MySQL 配置版;
2、将 MySQL 注册到系统服务中;
3、将 MySQL 的 bin 目录配置到系统环境变量 path 中;
4、通过命令 mysql -uroot -p进入数据库;

Java 编程题
求 0—7 所能组成的不超过 8 位奇数的个数。

package test;

public class Test5 {

    public static void main(String[] args) {        // 一位数的有4个(1,3,5,7),两位数的有4*7=28个(个数1,3,5,7,十位1,2,3,4,5,6,7),以后每多一位数就多乘一个8        // 1位数        int sum = 4;        // 两位数到八位数的总和        for (int i = 0; i <= 6; i++) {            sum = (int) (sum + 4 * 7 * Math.pow(8, i));        }        System.out.println(sum);    }}

Day015
JavaScript 简答题
DOM 操作怎样添加、移除、移动、复制、创建和查找节点?

1、创建新节点
创建一个具体的元素: createElement()
创建一个文本节点:createTextNode()
2、添加、移除、替换、插入
添加:appendChild()
移除:removeChild()
替换:replaceChild()
插入:insertBefore() 在已有的子节点前插入一个新的子节点
3、查找
通过标签名称:getElementsByTagName()
通过元素的Name属性的值:getElementsByName()
通过元素Id:getElementById()

MySQL 简答题

表名 food:

字段名 字段描述 数据类型 外键 非空 唯一 自增
id 编号 INT 是 是 是 是
name 食品公司 VARCHAR(20) 是
company 生产厂商 VARCHAR(30) 是
price 价格(单位:圆) FLOAT
produce_time 生产年份 YEAR
validity_time 保质期(单位:年) INT
address 厂址 VARCAHR(50

1.写出创建表的 SQL 语句;

CREATE TABLE food(    id INT PRIMARY KEY NOT NULL UNIQUE AUTO_INCREMENT,    name VARCHAR(20) NOT NULL,    company VARCHAR(30) NOT NULL,    price FLOAT,    produce_time YEAR,    validity_time INT,    address VARCHAR(50));

2.将下边的记录插入到 food 表中

id name company price produce_time validity_time address
1 AA饼干 AA饼干厂 2.5 2013 3 北京
2 CC牛奶 CC牛奶厂 3.5 2014 2 河北
3 EE果冻 EE果冻厂 1.5 2015 1 北京
4 FF咖啡 FF咖啡厂 20 2002 5 天津
5 GG奶糖 GG奶糖厂 14 2017 3 广东

-- 第一种方法不指定具体的字段INSERT  INTO  food  VALUES(NULL,'AA饼干','AA饼干厂', 2.5 ,'2013', 3 ,'北京');-- 第二种方法是依次指定food表的字段INSERT  INTO  food( name, company, price, produce_time, validity_time, address)  VALUES('CC牛奶','CC牛奶厂', 3.5 ,'2014', 2 ,'河北');-- 第三种方法是同时插入多条记录INSERT  INTO  food  VALUES(NULL,'EE果冻','EE果冻厂', 1.5 ,'2015', 1 ,'北京') ,(NULL,'FF咖啡','FF咖啡厂', 20 ,'2002', 5 ,'天津') ,(NULL,'GG奶糖','GG奶糖', 14 ,'2017', 3 ,'广东');

Day016
JavaScript 简答题
说说你对 json 的理解?

a、JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation);
b、JSON 是轻量级的文本数据交换格式,并不是编程语言;
c、JSON 独立于语言存在;
d、JSON 具有自我描述性,更易理解;
e、JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中传递数据。

MySQL 简答题
数据库里面的索引和约束是什么?

索引是为了提高数据的检索速度,索引是建立在数据表上,根据一个或多个字段建立的约束是为了保持数据的完整性,约束有非空约束,主键约束,外键约束等等。

Java 编程题
有 5 个人坐在一起,问第五个人多少岁?他说比第 4 个人大 2 岁。问第 4 个人岁数,他说比第 3 个人大 2 岁。问第三个人,又说比第 2 人大两岁。问第 2 个人,说比第一个人大两岁。最后问第一个人,他说是 10 岁。请问第五个人多大?

package test;public class Day016 {    public static void main(String[] args) {        int num = 5;        int age = getAge(num);        System.out.println("年龄为:" + age);    }    public static int getAge(int num) {        if (num == 1) {            return 10;        } else {            return getAge(num - 1) + 2;        }    }}//getAge(4)+2//g(3)+2+2//g(2)+2+2+2//g(1)+2+2+2+2//10+2+2+2+2

Day017
JavaScript 简答题
请你说说 split() 与 join() 函数的区别?

前者是切割成数组的形式,后者是将数组转换成字符串。join 函数获取一批字符串,然后用分隔符字符串将它们连接起来,从而返回一个字符串。split 函数获取一个字符串,然后在分隔符处将其断开,从而返回一批字符串。但是,这两个函数之间的主要区别在于 Join 可以使用任何分隔符字符串将多个字符串连接起来,而 split 只能使用一个字符分隔符将字符串断开。
简单地说,如果你用 split,是把一串字符(根据某个分隔符)分成若干个元素存放在一个数组里。而 join 是把数组中的字符串连成一个长串,可以大体上认为是 split 的逆操作。
Java 简答题
Java 有那些基本数据类型,String 是不是基本数据类型,他们有何区别?

基本类型共有八种,它们分别都有相对应的包装类。
基本类型可以分为三类:
字符类型 char;
布尔类型 boolean;
数值类型 byte、short、int、long、float、double。
String 是引用类型(类类型)。
Jsp 简答题
描述 forward 和 redirect 的区别?

转发是服务器行为,重定向是客户端行为。
区别:
1、从地址栏显示来说
forward 是服务器请求资源,服务器直接访问目标地址的 URL,把 URL 的响应内容读取过来,然后把这些内容再发给浏览器,它的地址栏还是原来的地址。
redirect 是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址。所以地址栏显示的是新的 URL。
2、从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据。
redirect:不能共享数据。
3、从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块。
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等。

Day018
JavaScript 简答题
列举 Java 和 JavaScript 之间的区别?

Java 是一门十分完整、成熟的编程语言。相比之下,JavaScript 是一个可以被引入 HTML 页面的编程语言。这两种语言并不完全相互依赖,而是针对不同的意图而设计的。 Java 是一种面向对象编程或结构化编程语言,类似的如 C ++ 或 C,而 JavaScript 是客户端脚本语言,它被称为非结构化编程。

Java 简答题
Java 中实现多态的机制是什么?

父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,这里的方法是指引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。

Day019
JSP 简答题
JSP 中动态 include 与静态 include 的区别?

1. 静态include的结果是把其他jsp引入当前jsp,两者合为一体    动态include的结构是两者独立,直到输出时才合并( 看看jsp生成的java文件就可以知道了)2.正是因为这样,动态include的jsp文件独立性很强,是一个单独的jsp文件,需要使用的对象,页面设置,都必须有自己创建,当然,还好它和include它的页面的request范围是一致的.而静态include纯粹是把代码写在外面的一种共享方法,所有的变量都是可以和include它的主文件共享,两者高度紧密结合,不能有变量同名的冲突.而页面设置也可以借用主文件的.

Java 简答题
什么是数据库连接池?

数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏

Java 简答题
HashMap 和 Hashtable 的区别?

HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。

HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行)。
HashMap是非synchronized,而Hashtable是synchronized,这意味着Hashtable是线程安全的,多个线程可以共享一个Hashtable;而如果没有正确的同步的话,多个线程是不能共享HashMap的。Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的扩展性更好。
另一个区别是HashMap的迭代器(Iterator)是fail-fast迭代器,而Hashtable的enumerator迭代器不是fail-fast的。所以当有其它线程改变了HashMap的结构(增加或者移除元素),将会抛出ConcurrentModificationException,但迭代器本身的remove()方法移除元素则不会抛出ConcurrentModificationException异常。但这并不是一个一定发生的行为,要看JVM。这条同样也是Enumeration和Iterator的区别。
由于Hashtable是线程安全的也是synchronized,所以在单线程环境下它比HashMap要慢。如果你不需要同步,只需要单一线程,那么使用HashMap性能要好过Hashtable。
HashMap不能保证随着时间的推移Map中的元素次序是不变的。

原创粉丝点击