WebGIS面试题(第三期)(某公司)上机笔试题
以下题目为南京某公司上机笔试题,题目仅为部分题目,全部题目在公众号{GISer世界},答案仅供参考,需要电子版在公众号{GISer世界}内回复“面试题3”获取PDF版本!!!
一、选择题
1、在java中,ByteMAXVALUE的二进制表示形式是
-
A 11111111
-
B 1000000
-
C 以上都不对
-
D 01111111
在Java中,
Byte.MAX_VALUE
表示一个byte
数据类型的最大值,其值为 127。其二进制表示形式是01111111
,因此正确答案是:D. 01111111
2、GeOJSON格式,支持的Geomnetry类型不包括以下哪种
-
A LineString
-
B Polygon
-
C Polyline
-
D Point
GeoJSON 格式支持的 Geometry 类型包括:
A. LineString
B. Polygon
D. PointGeoJSON 不支持 “Polyline” 这个类型,因此正确答案是:
C. Polyline
3、以下代码片段的空白处,应该分别填入什么内容可使得代码片段通过编泽?
public vold process()Exception {
Exception0);
}
-
A throws throws new
-
B throws throw new
-
C throw throws new
-
D throw throw new
在给定的代码片段中,你需要填入异常处理代码以使其通过编译。正确的选项是 B:
public void process() throws Exception { throw new Exception(); }
这样,
process
方法声明了它可能抛出一个Exception
异常,并在方法体中使用throw
语句抛出了一个新的Exception
异常。
4、使用SQL语句进行分组检索时,为了去掉不满足条件的分组,应该集么处理?
-
A 在GROUPBY后面使用HAVING子句
-
B 先使用WHERE子句,再使用HAVING子包
-
C 先使用HAVING字句,再使用WHERE子句
-
D 使用WHERE子句
为了去掉不满足条件的分组,你应该在 SQL 查询中使用 HAVING 子句。正确答案是:
A. 在 GROUP BY 后面使用 HAVING 子句
HAVING 子句用于筛选已经分组的数据,而 WHERE 子句用于筛选未分组的数据。因此,如果你想在分组后筛选分组,应该使用 HAVING 子句。
5、WMS服务提供的接口中,用于获取地瘤服务图层民张教据地是?
-
A GetFeatureInfo
-
B GetCapabilities
-
C GetLegendGraphic
-
D GetMap
WMS(Web Map Service)服务提供了多个接口来满足不同的地图服务需求。用于获取地图图层的元数据信息的接口是 “GetCapabilities”,而用于获取地图图层上的特定位置信息的接口是 “GetFeatureInfo”。
所以,答案是:
A. GetFeatureInfo
6、以下的代码片段,违反了SOLID设计原则中的哪一条原则
package java sql;
public class Date extends java.util Date (@Override
public Instant tolnstant() {
throw new java.lang.UnsupportedOperationException();
}
}
-
A 开放闭合原则
-
B 里氏替换原则
-
C 接口隔离原则
-
D 单一职责原则
给定的代码片段违反了里氏替换原则(Liskov Substitution Principle)。
里氏替换原则要求子类必须能够替换其基类而不改变程序的正确性。在这里,你的代码片段尝试继承
java.util.Date
类并覆盖了toInstant
方法,但在方法体内抛出了java.lang.UnsupportedOperationException
异常。这违反了里氏替换原则,因为它改变了基类的预期行为,而不是正确地实现了基类的方法。所以,答案是:
B. 里氏替换原则
7、下列哪个选项是es6中用于声明变量的关键字?
-
A let
-
B const
-
C 以上都对
-
D var
在 ECMAScript 6(ES6)中,用于声明变量的关键字有:
A. let
B. const所以正确答案是:
C. 以上都对
ES6 引入了
let
和const
关键字,用于声明变量,相较于之前的var
关键字,它们提供了更好的变量作用域控制和不可变性选项。
8、"A cass should have only one reason to change”。这话常用于SOUD设计原则中的那条原则?
-
A 开放闭合原则
-
B 依赖倒置原则
-
C 接口隔离原则
-
D 单一职责原则
“A class should have only one reason to change” 这句话通常用于单一职责原则(Single Responsibility Principle)中。因此,正确答案是:
D. 单一职责原则
单一职责原则要求一个类应该只有一个引起它变化的原因,即它应该具有单一的责任。
9、下列哪个方法可以将多个数组合并为一个数组?
- A splice
- B reverse
- C shift
- D concat
10、以下哪项,不是es6提供的新功能?
-
A 类
-
B 函数表达式
-
C 箭头函数
-
D 模块
方法可以将多个数组合并为一个数组是:
D. concat
concat
方法用于连接两个或多个数组,并返回一个新数组,其中包含了所有连接的数组元素。这允许你将多个数组合并成一个大数组。
11、关于es6的Class,以下说法错误的是?
-
A 在Class中,通过类的名称来访问静态成员
-
B 在子类的构造方法中,可以在任意位置调用父类的构造函
-
C es6的class支持创建访问器属性
-
D 可在类中使用static关键字,定义静态成员
ES6(ECMAScript 2015)引入了许多新功能,但其中的一个选项不是新功能。这个选项是:
B. 函数表达式
函数表达式不是 ES6 新引入的功能,它在之前的 JavaScript 版本中就已经存在。ES6 引入了类(A)、箭头函数(C)和模块(D)等新功能,但函数表达式是 JavaScript 的基本功能,不属于 ES6 特定的新增内容。
12、数据库事务ACID特性,其中A表示?
-
A 隔离性
-
B 一致性
-
C 持久性
-
D 原子性
以下说法是错误的:
B. 在子类的构造方法中,可以在任意位置调用父类的构造函数
在 ES6 的类中,如果子类的构造函数中希望调用父类的构造函数,应该在构造函数的开头使用
super()
调用父类的构造函数。在构造函数的其他位置调用super()
会导致错误。
二、简答题:
17、有以下几张表学生表Student(sid varchar(10)sname varchar(10)),课程表Course(cid varchar(10),cname varchar(10),成绩表SC(sid varchar(10)cid varchar(10)scoredecimal(18,1))。其中,sid为学号.sname为学生姓名、cid为课程号cname为课程名、score为考试成绩。请编写SQL语句,查询至少有两个学生考试成绩的课程的课程号和该课程的最高成绩。
答:
你可以使用 SQL 查询来找到至少有两个学生考试成绩的课程的课程号和该课程的最高成绩。以下是 SQL 查询的示例:
SELECT c.cid AS 课程号, MAX(sc.score) AS 最高成绩
FROM Course c
JOIN SC sc ON c.cid = sc.cid
GROUP BY c.cid
HAVING COUNT(sc.sid) >= 2;
这个查询会联接课程表(Course)和成绩表(SC),然后按课程号(cid)分组。通过 HAVING 子句,筛选出至少有两个学生考试成绩的课程,并计算每个课程的最高成绩。
18、Web Mercator投影以赤道为标准结线以本初子午线为中央经线,两者交汇处为坐标原点。其覆盖的经度范围为[-180.1801,已知赤道半径为6378137米,计算Web Mercator投影x坐标的覆盖范围。
Web Mercator 投影将地球表面的经度和纬度坐标映射到平面坐标系,通常使用经度范围从 -180 度到 180 度。在 Web Mercator 投影中,横坐标 (X) 的取值范围通常被规定为从 -20037508.34 米到 20037508.34 米。这个范围是由赤道半径和π(圆周率)以及一些调整因子计算得出的。
答:
Web Mercator 投影的 X 坐标范围是由以下公式计算得出:
X_min = -R * π
X_max = R * π
其中,R 为赤道半径,即 6378137 米。
计算 X 坐标范围:
X_min = -6378137 * π ≈ -20037508.34 米
X_max = 6378137 * π ≈ 20037508.34 米
所以 Web Mercator 投影的 X 坐标范围为大约 -20037508.34 米到 20037508.34 米。
此处只展示了部分面试题,剩余面试题请移步公众号【GISer世界】 欢迎您关注我的原创公众号【GISer世界】,不定期分享资源以及GIS面试题,本期分享到这里就结束了。