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 οnclick="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 οnclick="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 οnclick="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  οnclick="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  οnclick="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]

 

 

 

 

 

 

 

 

 

  

 

转载于:https://www.cnblogs.com/yuyuanwen/p/10864623.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值