0
点赞
收藏
分享

微信扫一扫

Java基础、MySQL数据库、Web前端

沈芏 2023-11-12 阅读 45

三、简答题(共10题,共30分)


1、请写出CSS的6种选择器,并举例?

l 标签选择器:a、li、div、table等等

l 类选择器:.nav、.items

l id选择器:#logo、#item1

l 通配符选择器:*

l 后代选择器:ul li、div a span等

l 并集选择器:li,div,h1

l 交集选择器:li.item、input.username等

2、将图片展示在网页上的方式有哪些?。

l 通过html的img标签,<img src=’路径’/>

l 通过css的背景图片,background-image:url(‘路径’)

3、在Java中,&和&&有何区别?

l & 左右两边是整型数据,做按位与运算

l & 左右两边为逻辑表达式,&&左右两边只能为逻辑表达式,区别为:当左边表达式的值为false,&运算符会计算右边表达式,&&运算符不会计算右边表达式

4、请简述Servlet的生命周期。

l 当请求发送到Web容器(tomcat服务器)后,Web容器会解析请求 URL,并从中分离出 Servlet 对应的URL。

l 根据分离出的URL,通过web.xml中配置的URL与Servlet的映射关系,找到要执行的Servlet,即找到用于处理该请求的Servlet类。

l 若该Servlet不存在,则调用该Servlet的无参构造器、init()方法,创建该Servlet对象。然后执行service()方法。

l 若该Servlet对象已经被创建,则直接调用service()方法。

l 当 Web 容器被关闭,或该应用被关闭,则调用执行destroy()方法,销毁Servlet实例。

5、什么是子查询,并举例。

select语句中嵌套select语句,即为子查询。

举例:select...select...

select ... from (select...) ...

select ...from tableName where...(select...)... 

6、JavaScript中的数据类型有哪些?

基本类型:字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)

引用数据类型:对象(Object)

7、简述Ajax。

Ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。

Ajax = Asynchronous JavaScript and XML.

Ajax是一种用于快速创建动态网页的技术。

Ajax通过在后台与服务器进行少量数据交换,使网页实现异步更新。这意味着可以在不重载整个页面的情况下,对网页的某些部分进行更新。

8、HashSet集合、TreeSet集合有何特点?

l HashSet集合:

元素不允许重复,存储自定义对象,需要重写hashCode方法和equals方法(保证元素不重复)

l TreeSet集合:

元素不允许重复,存储自定义对象,需要实现Comparable接口,重写compareTo方法(实现比较规则)

9、JavaScript中获取DOM元素的方式有哪些?

l document.getElementById('id选择器')

l document.getElementsByClassName('类选择器')

l document.getElementsByTagName('标签选择器')

l document.getElementsByName('标签name属性')

l document.querySelector('CSS选择器')

l document.querySelectorAll('CSS选择器')

10、请简述MySQL中的左、右连接查询。

左连接的语法格式:

from  表1  left 表2  on  表1和表2之间的连接条件(outer可以省略)

表1左连接表2,意味着查询结果集中须包含表1的全部记录,然后表1按指定的连接条件与表2进行连接,若表2中没有满足连接条件的记录,则结果集中表2相应的字段填入NULL。

右连接的语法格式:

from  表1  right outer join  表2  on  表1和表2之间的连接条件(outer可以省略)

语法格式中表1右连接表2,意味着查询结果集中须包含表2的全部记录,然后表2按指定的连接条件与表1进行连接,若表1中没有满足连接条件的记录,则结果集中表1相应的字段填入NULL。

四、编程题(共15分)

1、13195的所有质因数为5、7、13和29。600851475143最大的质因数是多少?(7分)

public static void main(String[] args) {
   long n = 600851475143L;
   long p = (long) (Math.sqrt(n));
   long result = 0;  // 最终结果
   for (int i = 2; i <= p; i++) { // i:除数
       if (n % i == 0) {
           long y = n / i;  //
           if (isPrime(y)) { // 在商中寻找
               result = y;
               break;
           }
           if (isPrime(i)) { // 在除数中寻找
               result = i;
           }
       }
   }
   System.out.println(result);
}
// 判断素数
public static boolean isPrime(long n) {
   if (n < 2)
       return false;
   else if (n == 2 || n == 3)
       return true;
   else {
       long p = (long) (Math.sqrt(n));
       for (int i = 2; i <= p; i++) {
           if (n % i == 0)
               return false;
       }
       return true;
   }
}

let n = 600851475143;
let p = Math.sqrt(n);
let result = 0;  // 最终结果
for (let i = 2; i <= p; i++) { // i:除数
   if (n % i == 0) {
       let y = n / i;  //
       if (isPrime(y)) { // 在商中寻找
           result = y;
           break;
       }
       if (isPrime(i)) { // 在除数中寻找
           result = i;
       }
   }
}
console.log(result);
// 判断素数
function isPrime(n) {
   if (n < 2)
       return false;
   else if (n == 2 || n == 3)
       return true;
   else {
       let p = Math.sqrt(n);
       for (let i = 2; i <= p; i++) {
           if (n % i == 0)
               return false;
       }
       return true;
   }
}

2、197被称为圆周素数,因为将它逐位旋转所得到的数:197/971和719都是素数。小于100的圆周素数有十三个:2、3、5、7、11、13、17、31、37、71、73、79和97。小于一百万的圆周素数有多少个?(8分)

public static void main(String[] args) {
   int count = 13;
   for (int i = 101; i <1000000 ; i+=2) {
       if(isCirclePrime(i))
           count++;
   }
   System.out.println(count);
}

// 判断圆周素数
public static boolean isCirclePrime(int n) {
   if (!isPrime(n))
       return false;
   else {
       String numStr = String.valueOf(n);
       int len = numStr.length();
       for (int i = 1; i < len; i++) {
           numStr = numStr.substring(1) + numStr.substring(0, 1);
           int num = Integer.parseInt(numStr);
           if (!isPrime(num)) {
               return false;
           }
       }
       return true;
   }
}

let count = 13;
for (let i = 101; i < 1000000; i += 2) {
   if (isCirclePrime(i))
       count++;
}
console.log(count);


// 判断圆周素数
function isCirclePrime(n) {
   if (!isPrime(n))
       return false;
   else {
       let numStr = '' + n;
       let len = numStr.length;
       for (let i = 1; i < len; i++) {
           numStr = numStr.substring(1) + numStr.substring(0, 1);
           let num = parseInt(numStr);
           if (!isPrime(num)) {
               return false;
           }
       }
       return true;
   }
}







五、SQL语句每题5分,共20分

表信息

学生表:studnet

字段:sid(主键,学号)、sname(姓名)、

sbirthday(出生日期)、ssex(性别)

老师表:teacher

字段:tid(主键,教师编号)、tname姓名

课程表:course

字段:cid(主键,课程编号)、cname(课程名称)、tid教师编号

成绩表:score

字段:id(主键)、sid(学号)、cid(课程编号)、score(成绩)

完成下面习题

 查询学过“李四”老师所教的课的同学的学号、姓名。

select sid,sname from student where sid in(

select distinct sid from score where 

cid=(select course.cid from teacher,course where teacher.tid = course.tid and teacher.tname='李四'))

查询课程编号“01”的成绩比课程编号“02”课程低的所有同学的学号、姓名。

select t1.sid as sid from 

    (select distinct * from score where cid='01') t1

left join 

    (select distinct * from score where cid='02') t2

on 

    t1.sid = t2.sid

where 

    t1.score>t2.score

 查询没有学全所有课的同学的学号、姓名。

select s.sid,s.sname from student s where sid not in(

select sid from

(select sid,count(cid) as scount from score group by sid 

having scount=(select count(cid) as tcount from course)) t)

 查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩。

select stu.sid, stu.sname, t.avgSal 

from student stu,score sc,

(select sid,avg(score) as avgsal from score group by sid) t

where

     stu.sid=sc.sid and stu.sid=t.sid and sc.score<60

group by sc.sid

having count(*)>1


举报

相关推荐

0 条评论