首页 > 代码库 > 第一阶段测试题大题整理(冒泡排序,去重,万年历)以及改错--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