09.13笔试总结

1、以下js 表达式返回false 的是

A 1==true

B “”==false

C false==null

D null==undefined

E NaN==NaN

F typeof NaN==="number"

解析:考察js中的隐式转换,js中==运算会自动进行类型转换。null,undefined,"".

有一个规则:布尔值true 和false 在==运算中会被转化为数值1和0 再进行比较。B中“”空字符串转化为数字为0,所以为true 。

typeof NaN  其中typeof 操作符返回字符串,且为“number”。所以F为true

选C、E

2、关于const说法错误的是

A  用于声明变量,声明后不可修改

B 不会发生变量提升线下

C可以先声明后赋值

D 同一作用域下不可以重复声明同一个变量

解析:const声明的变量只可以在声明时赋值,不可随意修改,否则会导致SyntaxError(语法错误)。

3、CSS3伪类的考察:

CSS3中的伪类如下:

新增伪类 作用
p:first-of-type 选择属于其父元素的首个<p>元素的每个<p>元素。
p:last-of-type 选择属于其父元素的最后<p>元素的每个<p>元素。
p:only-of-type 选择属于其父元素唯一的<p>元素的每个<p>元素。
p:only-child 选择属于其父元素唯一的子元素的每个<p>元素。
p:nth-child(n) 选择属于其父元素的第n个子元素的每个<p>元素。
p:nth-last-child(n) 选择属于其父元素的倒数第n个子元素的每个<p>元素。
p:nth-of-type(n) 选择属于其父元素第n个<p>元素的每个<p>元素。
p:nth-last-of-type(n)  选择属于其父元素倒数第n个<p>元素的每个<p>元素。
p:last-child 选择属于其父元素最后一个子元素的每个<p>元素。
p:empty 选择没有子元素的每个<p>元素(包括文本节点)。
p:target  选择当前活动的<p>元素。
:not(p) 选择非<p>元素的每个元素。
:enabled 控制表单控件的可用状态。
:disabled  控制表单控件的禁用状态。
:checked  单选框或复选框被选中。

4、 var[a,b,c]=[1,2]结果中a,b,c,的值分别是1,2,undefined

5、typeof [] 结果为object而不是array

使用typeof检测数据类型,首先,返回的是一个字符串。其次这个字符串包含了对应的类型,“number”、“string”、“boolean”、“undefined”、“function”、“object”共6类

6、以下代码输出结果为

var a=10;
var ary =new Array();
var tmp=new Date();
function f(){
console.log(ary);
console.log(tmp);
console.log(a);
if(false){
var tmp="hello world";
}
}f();

解析:变量a,用构造函数生成的数组都可以在函数内部访问到。获取时间new Date()时间的一个实例在函数 内部无法访问。

7、以下程序输出结果为

var foo="global";
var test={
foo:"inner",
get:function(){
var self=this;
console.log(this.foo);
console.log(self.foo);
(function(){
console.log(this.foo);
console.log(self.foo);
})();
}
};
test.get();

 解析:前两个是局部变量,分别在函数内部取到foo 的值为inner。第三个是自执行函数,自身没有this指向,所以在window下找的全局变量,指的是global,第四个是因为get中把this存在了self变量里面,所以第四个指的是inner

8、某二叉树的中序遍历结点访问顺序是EDFBAGC,后序遍历的结点访问吮吸是EFDBCGA.则其前序遍历的结点访问顺序是  B

A ADBEFCG

B ABDEFGC

解析:前序遍历的规则是:根结点→左子结点→右子结点

          中序遍历是:左子结点→根结点→右子结点
          后序遍历是:左子结点→右子结点→根结点

后序遍历中最后一个结点是A,所以确定A为根节点,前序遍历第一个肯定是根节点。所以第一个为A。

中序:以A(根结点)为中点,左边是EDFB,右边是GC

对于左子树,EDFB来说,后序遍历的左子树为EFDB,可以确定这个左子树的根节点为B。左子结点为EDF,后序遍历为EFD,所以D为根节点,E为左子结点,F为右子节点。

对于右子树,中序遍历是GC,后序遍历为CG.所以根节点为G,C为G的右子结点。

所以前序遍历为:ABDEFGC

9 下面哪种方法属于不稳定排序?

A 冒泡排序

B 选择排序

C 插入排序

D 归并排序

解析:选择B 

稳定的
冒泡排序(bubble sort) — O(n2)   

鸡尾酒排序 (Cocktail sort, 双向的冒泡排序) — O(n2)   

插入排序 (insertion sort)— O(n2)   

桶排序 (bucket sort)— O(n); 需要 O(k) 额外 记忆体   

计数排序 (counting sort) — O(n+k); 需要 O(n+k) 额外 记忆体   

归并排序 (merge sort)— O(n log n); 需要 O(n) 额外记忆体   

原地归并排序 — O(n2)   

二叉树排序 (Binary tree sort) — O(n log n); 需要 O(n) 额外记忆体   

鸽巢排序 (Pigeonhole sort) — O(n+k); 需要 O(k) 额外记忆体   

基数排序 (radix sort)— O(n·k); 需要 O(n) 额外记忆体   Gnome sort — O(n2)   Library sort — O(n log n) with high probability, 需要 (1+ε)n 额外记忆体
不稳定
选择排序 (selection sort)— O(n2)   

希尔排序 (shell sort)— O(n log n) 如果使用最佳的现在版本   Comb sort — O(n log n)   

堆排序 (heapsort)— O(n log n)   Smoothsort — O(n log n)   

快速排序 (quicksort)— O(n log n) 期望时间, O(n2) 最坏情况; 对於大的、乱数串列一般相信是最快的已知排序   Introsort — O(n log n)   Patience sorting — O(n log n + k) 最外情况时间, 需要 额外的 O(n + k) 空间, 也需要找到最长的递增子序列(longest increasing subsequence)

10 在请求分页系统中,LRU算法是指(A)

A 近期最长时间以来没被访问的页先淘汰

B 最早进入内存的页先淘汰、

C 近期访问次数最少的页先淘汰

D 以后再也不用的页先淘汰

解析:LRU是操作系统页面调度算法中最近最久没有使用调度算法的缩写。也就是在最近最长时间没有被使用的页面将首先被淘汰,调度出内存。

11 、编程题

给定一个长度为n的不下降数组,判断是否存在两个不同元素和为m,输出true 和false

测试用例:输入两个正整数n,m。然后输入n个元素表示长度为n 的数组

input 10 10

0 1 2 3 4 5 6 7 8 9

output true

input 10 19

0 1 2 3 4 5 6 7 8 9  (加起来没有19)

output false

编程如下:

var btn=document.getElementById("btn");
btn.onclick=function(){
 var ary=document.getElementById("ary").value.split(",");
  var m=document.getElementById("m").value;
var result=parseInt(m);
var flag;
  for(var i=0;i<ary.length;i++){
      for(var j=ary.length-1;j>0;j--){
      if(i>=j){
      break;
      }else{
      var sum=parseInt(ary[i])+parseInt(ary[j]);
   console.log(sum);
   if(sum===result){
       alert(true);
       break;}
  else{ alert(false);
      break;}
   }
  }
  }
}

猜你喜欢

转载自blog.csdn.net/runner_123/article/details/82695714