js练习题
1. 题目:
计算当前日期的是星期几的功能
注:设定1900年1月1日为周一
解析:
已知:一周有七天,1900年1月1日 周一 今天的年份 月份 日期 总天数%7 余数 0周日 1周一 2周二 3周三 4周四 5周五 6周六 总天数%7 余数 0周日 1周一 2周二 3周三 4周四 5周五 6周六
代码:
<body>
<button onclick=”calDate()”>日期计算器</button>
<script>
function calDate(){
//接收输入的年 月 日
var year= Number(prompt(“请输入年份:”));
var month= Number(prompt(“请输入月份:”));
var days = Number(prompt(“请输入日期:”));
var i=1;//循环变量
var totals=0;//
var isRun=(year%4==0 && year%100 !=100) || year%400 ==0;
while(i<month){ //5 1< 5? 执行 输入的日期是这一年的多少天 —– 当前年份的总天数
//累加天数
switch(i){ //1
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
totals+=31;
break;
case 2:
//根据年份判断二月的天数
if(isRun){
totals+=29;
}else{
totals+=28;
}
break;
case 4:
case 6:
case 9:
case 11:
totals+=30;
break;
}
i++;
}
totals+=days;
console.log(“今天是”+year+”年的第”+totals+”天”);
//累计计算,从1900到year-1年 共多少天
for(var y=1900;y<year;y++){ //1902 3 2
//y表示从1900年开始的每一年
if(isRun){
totals += 366;
}else{
totals += 365;
}
}
console.log(“从1900.1.1到现在一共”+totals+”天”);
//计算 是星期几?
var week=totals%7;
var msg= “星期”;
switch (week) {
case 0:
msg +=”日”;
break;
case 1:
msg +=”一”;
break;
case 2:
msg +=”二”;
break;
case 3:
msg +=”三”;
break;
case 4:
msg +=”四”;
break;
case 5:
msg +=”五”;
break;
case 6:
msg +=”六”;
break;
}
console.log(year+”年”+month+”月”+days+”日,是”+msg);
}
</script>
</body>
2.判断101-200之间有多少个素数,并输出所有素数。
代码:
<button onclick=”fun1()”>求素数</button>
<body>
<script type=”text/javascript”>
// function num(){
// var num=Number(prompt(“请输入一个数”))
// var coutent=prompt(“请输入几个数相加”)
// var n=0,sum=0;
// for(var i=1;i<=coutent;i++){
// n=n*10+num;
// sum=sum+n;
//
// }
// console.log(sum);
// }
function fun1(){
for(var i=101; i<=200;i++){
var flag=false;
for(var j=2;j<101;j++){
if(i%j==0){
flag=false;
break;
}else{
flag=true;
}
}
if(flag){
console .log(“素数”+i)
}
// if(flag){
// console .log(“素数”+i)
// }
}
</script>
</body>
3.求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
代码:
<body>
<script type=”text/javascript”>
function num(){
var num=Number(prompt(“请输入一个数”))
var coutent=prompt(“请输入几个数相加”)
var n=0,sum=0;
for(var i=1;i<=coutent;i++){
n=n*10+num;
sum=sum+n;
}
console.log(sum);
}
4.定义一个函数,打印九九乘法口诀表
代码:
<body>
<button onclick=”num()”>开炮</button>
<script type=”text/javascript”>
function num(){
for(var i=1;i<=9;i++){
for(var j=1;j<=i;j++){
var sum=i*j;
document.write(i+”*”+j+”=”+sum+”\t”);
}
document.write(“<br>”)
}
}
</script>
</body>
5.打印出所有的”水仙花数”,所谓”水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个”水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 */
/*for( var shui=100;shui<1000;shui++){//s输出水仙花这个数,在进行区间判断 shui=Number(shui);将其数据类型定义为整数 var gei =shui%10;//通过取余来得到其个位数的数字 var s=parseInt((shui/10)%10);//用类型的办法来得到其十位数的的数 var b=parseInt(shui/100);//得到百位数的数 if(shui==(gei*gei*gei)+(s*s*s)+(b*b*b)){;//根据条件来判断是否为水仙花数 console.log(shui); } }
6.定义函数,去掉数组中重复的元素
1 function num1(){//定义一个函数 2 var j=[1,2,3,4,5,6,2,1,4,7,911,2,1];//输出数组的每个元素 3 for(var i=0,result=[];i<=j.length-1;i++){//循环遍历数组j每个元素;并创建一个空数组result 4 for (var z=0;z<result.length;z++){//循环遍历数组result的每个元素; 5 if(j[i]==result[z]){//如果数组z和数组j中有相等的元素;则退出当前循环 6 break;// 7 } 8 } 9 if(z==result.length){//如果没有相同的元素,则将这个元素存储在result数组中 10 result[result.length]=j[i];// 11 } 12 13 } 14 console.log(result);//最后输出的数组中没有重复的元素 15 }
7.猜数游戏(在1-10中随机选出一个数,如果输入的数大了就输出“猜大了”;如果输出的数小了就输出猜小了“”)—–循环嵌套语句
1 function guess(){//定义函数 2 var num=parseInt(Math.random()*10);//随机生成1——10的整数 3 console.log(num); 4 while(true){//直接将条件设置为真 5 var guessnum=prompt("请输入你要猜的数"); 6 if(guessnum=="exit"){//当猜到exit时,直接退出该循环 7 console.log("欢迎下次再来"); 8 break; 9 }if(guessnum>num){//当循环为真;输出“猜大了” 10 console.log("猜大了") 11 }else if(guessnum<num){//当循环为真;输出“猜小了” 12 console.log("猜小了") 13 }else{ 14 console.log("恭喜你,猜对了"); 15 break; 16 } 17 } 18 }
7.用户输入年份,月份,日期,计算输入的这一天是这一年的第几天———循环语句
1 function time(){//输入年 ,月,日 2 var year=Number(prompt("请输入年份")); 3 var month=Number(prompt("请输入月份")); 4 var day=Number(prompt("请输入日期")); 5 var i=1;//循环变量 6 var total=0;//设置累加的天数 7 var isrun=(year%4==0 && year%100!=0) || year%400==0 //判断这一年是否为闰年 8 while(i<month){//执行,输入的日期是这一年的多少天----当前年份的总天数 9 //累加天数 10 switch(i){//运用switch(){}语句来确定每月所对应的天数 11 case 1://case的下落 12 case 3: 13 case 5: 14 case 7: 15 case 8: 16 case 10: 17 total+=31; 18 break; 19 case 2: 20 //判断2月份的天数 21 if(isrun){ 22 total+=29 23 } 24 total+=28; 25 break; 26 case 4: 27 case 6: 28 case 9: 29 case 11: 30 total+=30; 31 break; 32 } 33 i++; 34 } 35 total=total+day;//输出该月是该年的第几天 36 37 console.log(total)
8.打印出1-100之间的数—–循环语句
1 function fun(){ 2 //控制台打印1-100之间所有的数字 3 for(var i=1(声明变量i);i<=100(根据区间来将变量进行判断);i++(变量的更新;防止进入死循环)){ 4 console.log(i); 5 } 6 console.log(i);// 7 }
8.查找信息
1 <body> 2 <button onclick="num()" >查找信息</button> 3 <script type="text/javascript"> 4 function num() { 5 6 var arr=[10,8,60,70,80,5,12,65,68,90]; 7 prompt("输入要查找的数:\n"); 8 for(var i=0;i<arr.length;i++){ 9 if(arr[i]==prompt){ 10 console .log("找到信息") 11 }else{ 12 console .log("找不到信息") 13 } 14 } 15 } 16 </script> 17 </body>
9.输入一个四位数,分别取个个位数,并且互换值
1 <button onclick="num()">第七题</button> 2 <body> 3 <script type="text/javascript"> 4 function num(){ 5 var num=Number(prompt("请输入一个四位数"))//5678 6 var arr=new Array(4) 7 arr[0]=num/1000; 8 arr[1]=num/100%10; 9 arr[2]=num/10%10; 10 arr[3]=num%10;//8 11 for(var i=1;i<arr.length;i++){ 12 arr[i]=arr[i]+5; 13 arr[i]=arr[i]%10; 14 } 15 arr[0]=arr[3]^arr[0]; 16 arr[3]=arr[3]^arr[0]; 17 arr[0]=arr[3]^arr[0]; 18 19 arr[1]=arr[1]^arr[2]; 20 arr[2]=arr[2]^arr[1]; 21 arr[1]=arr[1]^arr[2]; 22 23 console .log(arr) 24 } 25 </script> 26 </body>
10. 定义一个函数,打印九九乘法口诀表——>循环语句
1 1*1=1 2 1*2=2 2*2=4 3 1*3=3 2*3=6 3*3=9 4 1*4=4 2*4=8 3*4=12 4*4=16 5 ... 6 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 7 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 8 9 var num="" 10 function cheng(){ 11 for(line=1;line<10;line++){//控制行的语句(外层循环) 12 13 for(var i=1;i<=line;i++){//控制每一行的循环 14 var result=line*i; 15 num+=i+"*"+line+"="+i*line; 16 document.write(i+"*"+line+"="+i*line+"\t")//将line的每一行空格 17 } 18 document.write("<br />")//将line的每一行进行换行处理 19 } 20 }
11.求s=a+aa+aaa+aaaa+aa…a的值,其中a(数字)是一个数字。例如2+22+222+2222+22222(此时共有5(叠数)个数相加),几个数相加有键盘控制。
1 //判断 2 var num=prompt("请输入一个数");//用户输出数字 3 var d=prompt("请输入他的叠数");//用户输出该数字的叠数 4 var n=0,sum=0;//声明n为加数;sum为累加的和 5 for(var i=0;i<=d;i++){//判断条件;如果声明一个变量,他的范围不超过这个叠数 6 sum+=n*10+num;//累加 7 } 8 console.log(sum);//输出
12.判断101-200之间有多少个素数,并输出所有素数(大于1的自然数,且他的因子只有两个(他本身和1))。
1 var sushu; 2 for(var sushu=101;sushu<199;sushu++){ 3 4 var sushu;//声明变量,定义为素数 5 6 var count = 0;//count定义为该数因子的个数 7 for( var j = 1(声明一个数j) ; j<= sushu(将j作为一个小于素数自然数) ; j++(更新) ){ 8 if( sushu%j == 0 ){//判断在这个数是否有因子 9 //因子 10 count++; //有一个因子,因子数就加一 11 } 12 } 13 //循环结束后 如果 count == 2 一定是素数;因为素数只有一个因子 14 if( count == 2 ){ 15 console.log(sushu) 16 } 17 } 18 19 console.log(sushu);
13.1~100奇数和
1 var sum=0; 2 for(var i=1,sun=0;i<=100;i+=2){循环输出1-100的奇数;并声明累加sum的初始值 3 sum+=i;累加 4 } 5 document.write(sum+"<br />");
14.1~100偶数和
1 var sum=0; 2 for(var i=2,sun=0;i<=100;i+=2){循环输出所有偶数;并声明累加sum的初始值 3 sum+=i; 4 } 5 document.write(sum);
15.
1 var sum=0; 2 for(var i=2,sun=0;i<=100;i+=2){循环输出所有偶数;并声明累加sum的初始值 3 sum+=i; 4 } 5 document.write(sum);
16.输入一个数字,然后判断是否为正整数,如果不是,提示重新输入;如果是,将该数字左右反转,然后输出(列如:12345,翻转之后为54321)
1 var sum=1; 2 3 for(var i=1;i<=2;){循环遍历 4 5 var num =prompt("请输入一个数字"); 6 7 if(Number(num)>0&&parseint(num)==parsefloat(num)){判断是否只一个整数 8 9 break; 10 11 } 12 13 } 14 15 /*num=12345 16 17 5 num%10; 18 19 4 num/10%10; 20 21 3 num/100%10; 22 23 ........ 24 25 */ 26 27 doucument.write(“您输入的数字为:“+num+”<br />”); 28 29 for(var j=0;;j++){ 30 31 sum*=10; 32 33 var fz=parseInt(num%sum/(sum/10)); 34 35 document.write(fz); 36 37 if(num-sum<=0){ 38 39 break; 40 41 } 42 43 }
17.求100以内数字之和
1 var sum = 0; 2 3 4 for(var i=0;i<100;i++) 5 { 6 sum +=i; 7 } 8 alert(sum);
18.在页面中接收一个用户输入的数字,并判断该数是否是质数。
1 <script type="text/javascript"> 2 var num = prompt("请输入一个大于1的整数:"); 3 if(num <= 1 || isNaN(num)){ 4 alert(\'该值不合法!\'); 5 }else{ 6 var flag = true; 7 for(var i=2; i<num; i++){ 8 if(num % i ==0){ 9 flag = false; 10 } 11 } 12 if(flag){ 13 alert(num + "是质数!"); 14 }else{ 15 alert(num + "不是质数!"); 16 } 17 } 18 </script>
19.取100以内与7相关的数
1 var s = ""; 2 3 4 for(var i=0;i<100;i++) 5 { 6 if(i%7==0 || i%10==7 ||parseInt(i/10)==7) 7 { 8 s = s+i+"|"; 9 } 10 } 11 alert(s);
20.数组从大到小排序
1 var arr = [1,5,56,6,1,1,21,45,4] 2 var max; 3 for(var i = 0; i < arr.length; i++){ 4 for(var j = i; j < arr.length; j++){ 5 if(arr[i] < arr[j]){ 6 max= arr[j]; 7 arr[j] = arr[i]; 8 arr[i] = max; 9 } 10 } 11 } 12 console.log(arr) // [56, 45, 21, 6, 5, 4, 1, 1, 1]