首页 > 代码库 > 第一阶段测试题大题整理(冒泡排序,去重,万年历)以及改错--2017-03-26

第一阶段测试题大题整理(冒泡排序,去重,万年历)以及改错--2017-03-26

1、冒泡排序法: 五星级重点

<script>
var arr=Array();
for(var i=0;i<=5;i++){
var j=prompt("请输入第"+i+"个数");
j=parseInt(j);
arr.push(j);
}
for(var x=0;x<arr.length;x++){
for(var y=x+1;y<arr.length;y++){
if(arr[x]<arr[y]){
var temp=arr[x];             ------核心
arr[x]=arr[y];
arr[y]=temp;
}
}

//document.write(arr[x]);  --------有这一步就不需要下面的遍历输出(简洁)
}
for (var k in arr){
document.write(arr[k]);
}
</script>

2、去重:也重要,原理

<script>
var attr=[1,1,2,3,4,4,4,5,6,6,6,6];
var arr=Array();
for(var x=0;x<attr.length;x++){       //当为x<=attr.length,结果输出123456undefined,原因看下面
var status=0;
for(var y=x+1;y<attr.length;y++){    //当为y<=attr.length,结果输出123456undefined
if(attr[x]==attr[y]){
status=1;
continue;
}
}
if(status==0){
arr.push(attr[x]);
}
}
for(var z in arr){
document.write(arr[z]);
}
</script>

原因:在输出123456的同时还多输出了undefined---undefined的意思是占着位但缺少值。所以x的不需要进行最后一次循环,可以x<=attr.length-1;也可以将=去掉。

考试扣分原因:

去重不是和邻近数字相比;第一个数字要和剩下的每个数字比一遍;第二个数字也是要和剩下的每一个相比!!!!!

3、万年历

参考2017-03-23写的动态时钟

注意点:

(1) d.getMonth()+1;     ------------月份要加1;考试的时候你忘了!!!!

 (2)d.getHours();              -------------这三个是复数形式。。。

        d.getMinutes();

       d.getSeconds();

(3)setInterval("show()",1000);     -----------设置时间间隔,因为要动态显示

4、改错

(1)subdtring(a,b)------a是指起始位置;b是指结束位置;以索引值计算,也就是从0开始数!!!!!  

(2)"var x=0; while();x+=2;"那么要是使while循坏体执行10次,括号里应填_x<=18_或x<=19或_x<19或x<20__

   我填的是x<=9;  做错原因审题不仔细,以为x+=1!!!!!!

 

第一阶段测试题大题整理(冒泡排序,去重,万年历)以及改错--2017-03-26