zoukankan      html  css  js  c++  java
  • 原生js逻辑测试题及答案

    01、屏幕打印2000到3000之间的所有的数。

    <script type="text/javascript">
        for (var i = 2000; i < 3001; i++){
            document.write(i+"<br />") 
        }
    </script>

    02、求450到550之间所有奇数的和。

    <script type="text/javascript">
        var num = 0;
        for (var i = 451; i < 550; i+=2) {
            num += i
        }
        document.write("450到550之间所有奇数的和为:" + num)
    </script>

    03、找出200以内,既能整除3又能整除5的所有数。

    <script type="text/javascript">
        for (var i = 0; i < 201; i++) {
            if(i % 3 == 0 && i % 5 == 0){
                document.write(i+"<br />") 
            }
        }
    </script>

    04、如果输入一个数,则弹出对话框“您输入的是偶数”,否则弹出“您输入的是奇数”

    <script type="text/javascript">
        var oBtn = document.getElementById("btn")
        oBtn.onclick = function(){
            var oInputVal = parseInt(document.getElementById("num").value)
            if(oInputVal % 2 == 0){
                alert("您输入的是偶数")
            }else{
                alert("您输入的是奇数")
            }
        }
    </script>

    05、页面弹出输入框,只有当用户输入Alice和Bob这两个名字时,才会向用户问好“你好”。

    <script type="text/javascript">
        var name = prompt("请输入你的姓名")
        if(name == "Alice" || name == "Bob"){
            alert("你好")
        }
    </script>

    06、先后弹出三个输入框,第一个提示:输入一个数字,第二个提示:输入一个+-*/中的任意运算符,第三个提示:输入一个数字,最后弹出他们的运算结果。

    <script type="text/javascript">
        var one = parseInt(prompt("请输入一个数字"));
        var two = prompt("请输入一个运算符");
        var three = parseInt(prompt("请输入一个数字"));
        var num;
        if(two == "+"){
            num = one + three
        }else if(two == "-"){
            num = one - three
        }else if(two == "*"){
            num = one * three
        }else if(two == "/"){
            num = one / three
        }
        alert(num) 
    </script>

    07、屏幕打印1到1000所有能整除11并且不能整除17的数的和。

    <script type="text/javascript">
        var num = 0;
        for(var i = 0 ; i < 1001 ; i++){
            if(i % 11 == 0 && i % 17 != 0){
                num += i
            }
        }
        document.write(num)
    </script>

    08、写程序屏幕打印出x,y的值(正整数):x+y=10,3x+4y=36。

    <script type="text/javascript">
        for (var x = 1; x <= 10; x++) {
            for (var y = 1; y <= 10; y++) {
                if (x + y === 10 && 3 * x + 4 * y === 36) {
                    document.write("x的值为" + x + '<br>' + "y的值为" + y)
                }
            }
        }
    </script>

    09、如何利用JS生成一个table?行和列由用户自己输入决定。

    <body>
        <p>请输入行与列</p>
        <input type="text" id="row" />行<br />
        <input type="text" id="column" />列<br />
        <input type="button" value="创建" id="btn">
        <div class="box" id="box"></div>
        <script type="text/javascript">
            var oBtn = document.getElementById("btn");
            var oBox = document.getElementById("box");
            oBtn.onclick = function(){
                var oRow = parseInt(document.getElementById("row").value);
                var oColumn = parseInt(document.getElementById("column").value);
                var oTable = document.createElement('table');
                oTable.setAttribute('border',"1");
                for (var i = 1; i <= oRow; i++) {
                    oTr = document.createElement('tr');
                    for(var a = 1 ; a <= oColumn ; a++){
                        oTd = document.createElement('td');
                        var oText = document.createTextNode(i+"行"+a+"列")
                        oTd.appendChild(oText)
                        oTr.appendChild(oTd)
                    }
                    oTable.appendChild(oTr)
                }
                oBox.appendChild(oTable)
            }
        </script>
    </body>

    10、求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222。

    <script type="text/javascript">
        var a = prompt('输入一个数字');
        var b = prompt('输入操作次数');
        var sum = 0;
        var str = '';
        for(var i = 0; i < b; i++){
            str += a;
            sum += Number(str);
        }
        console.log(sum);
    </script>

    11、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和

    var a = 2;
    var b = 1;
    var c = 0;
    var num = a+b;
    for (var i = 0; i < 20; i++) {
        c = b
        b = a
        a = a+c
        num += a+b
        console.log(a+"/"+b)
        console.log(num)
    }

    12、一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。

    <script type="text/javascript">
        for (var i = 1; i <= 1000; i++){
            var sum=0;
            for (var j = 1; j < i; j++){
                if(i%j==0){
                    sum+=j;
                }
            }
            if(i==sum){
                console.log(sum)
            }
        }
    </script>

    13、写程序屏幕打印出a,b,c的值(100以内的正整数):809*a=800*b+9*c+1。

    for(var a = 1; a < 100; a++){
        for(var b = 1; b < 100; b++){
            for(var c = 1; c < 100; c++){
                if(809 * a === 800 * b + 9 * c + 1)
                console.log(a,b,c);
            }
        }
    }

    14、用户输入任意数字,判断是否是闰年,并打印出接下来的20个闰年。

    var count = prompt()
    for(var a = count; a <= Number(count) + 80; a++){
        if(a % 4 === 0 && a !== 100 || a % 400 === 0){
            console.log(a);
        }
    }

    15、将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5

    var num = Number(prompt());
    var str = '';
    var sum = num;
    for(var a = 2; a <= num; a++){
        if(num % a === 0 && num !== a){
            str += a + '*';
            num /= a;
            a--;
        }else if(num === a){
            str += a;
            break;
        }
    }
    document.write(sum + '=' + str)

    16、编写函数寻找水仙花数(三位数各位数字的立方和恰巧是该数本身)。

    for(var b = 100; b < 1000; b++){
        var sum = parseInt(b / 100) ;
        var sub = parseInt(b / 10 % 10);
        var sup = parseInt(b % 10);
        if(sum * sum * sum + sub * sub * sub + sup * sup * sup == b){
            console.log(sum,sub,sup);
        }
    }

    17、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

    var sum = 0;
    for(var i = 1; i <= 4; i++){
        for(var j = 1; j <= 4; j++){
            for(var k = 1; k <= 4; k++){
                if(i !== j && i !== k && j !== k){
                    console.log(i,j,k);
                    sum++;
                }
            }
        }
    }
    console.log(sum);            

    18、用户输入任意数字,打印所有该数字内的素数。(只能整除1和自己的数)。

    var sub = 0;
    var sum = Number(prompt());
    for(var i = 1; i <= sum; i++){
        for(var a = 2; a <=i; a++){
            if(i % a === 0){
                if(i==a){
                    console.log(i);
                }
                break;                                                                        
            }else if(i== a){
                console.log(i);
            }
                                    
        }
    }

    19、用户输入任意数字,打印出这个数以内的所有闰年。

    var year = prompt()*1;
    for (var i=year;i>0;i--){
        year -= 4;
        if (year%4 == 0 && year%100 !== 0){
            document.write(year + "<br/>");
        }
    }

    20、打印9x9乘法表。(正三角和倒三角两种,该题算两道题)

    //倒三角
    for
    (var i=1;i<10;i++){ for(var j=i;j<10;j++){ document.write(i+"*"+j+"="+j*i+"&nbsp;&nbsp;&nbsp;"); } document.write("<br><br>"); }
    //正三角
    for
    (var i=10;i>=1;i--){ for(var j=i;j<10;j++){ document.write(i+"*"+j+"="+j*i+"&nbsp;&nbsp;&nbsp;"); } document.write("<br><br>"); }

    22、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

    var h = 100;
    var sum = 0;
    for(var a = 0; a < 10; a++){
        sum += h + h / 2;
        h /= 2;
        console.log(sum);
    }
    console.log(h);

    23、一个6位数,判断它是不是回文数。即123321是回文数,个位与十万位相同,十位与万位相同,百位与千位相同。

    var sum = Number(prompt());
    var a = parseInt(sum / 100000);
    var b = parseInt(sum / 10000 % 10);
    var c = parseInt(sum / 1000 % 10);
    var d = parseInt(sum / 100 % 10);
    var e = parseInt(sum / 10 % 10);
    var f = parseInt(sum % 10);
    if(a === f && b === e && c === d){
        alert('是回文数');
    }else{
        alert('不是回文数');
    }

    24、计算从1*1+2*1+2*2+3*1+…+3*3+…+9*1+9*2+…+9*9的值

    var c=0;
    for(var i=0;i<=9;i++){
            for(var j=0;j<=9;j++){
                c+=i*j
                console.log(c)
            }
    }

    25、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了 一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

    var sum = 1;
    for(var i = 1; i < 10; i++){
        sum = (sum + 1) * 2
    }
    alert(sum);

    26、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

    for(var a = 0; a < 1000; a++){
        for(var b = 1; b < 1000; b++){
            for(var c = 1; c < 1000; c++){
                if(a + 100 === b * b && a + 1000 + 168 === c * c){
                    console.log(a,b,c);
                }
            }
        }
    } 

    27、给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

    var sum = prompt("请输入一个不多于5位的正整数");
    console.log(sum.length);
    var gg = parseInt(sum %10);
    var ss = parseInt(sum / 10 %10);
    var bb = parseInt(sum / 100 %10);
    var qq = parseInt(sum / 1000 %10);
    var ww = parseInt(sum / 10000 %10);
    if (sum.length === 5 ){
        console.log(gg,ss,bb,qq,ww);
    }else if(sum.length === 4){
        console.log(gg,ss,bb,qq);
    }else if(sum.length === 3){
        console.log(gg,ss,bb);
    }else if(sum.length === 2){
        console.log(gg,ss);
    }else if(sum.length === 1){
        console.log(gg);
    }

    28、企业发放的奖金根据利润提成。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数。

    var lirun = Number(prompt());
    var sum = 0;
    if(lirun <= 10){
        sum= lirun * 0.1;
    }else if(10 < lirun < 20){
        sum = 1+ (lirun - 10) * 0.075
    }else if(20 < lirun < 40){
        sum = 1 + 0.75 + (lirun - 20) * 0.05 
    }else if(40 < lirun < 60){
        sum = 1 + 0.75 + 1 + (lirun - 40) * 0.03
    }else if(60 < lirun < 100){
        sum = 1 + 000.75+1+0.6+(lirun-60)*0.015
    }else if(100<lirun){
        sum=1+0.075+1+0.6+0.6+(lirun-100)*0.01
    }
    alert(sum)

    29、有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问 第三十个月的兔子总数为多少?

    var num1 = 1;
    var num2 = 0;
    var sum = 0;
    
    for (i = 1; i <= 30; i++) {
        if (i % 2 != 0) {
            sum = num1 + num2;
            num1 = sum;
        } else {
            sum = num1 + num2;
            num2 = sum;
        }
    }
    alert("30个月之后,兔子的数量为:" + sum);

    30、给这个数组按从小到大顺序排列[3,57,879,345,45,3415,66,890,415,62,25,68,9]。

    var arr = [3,57,879,345,45,3415,66,890,415,62,25,68,9];
    function sortArr(a,b){
        return a-b
    }
    arr.sort(sortArr)
    console.log(arr)

    31、打印以下图形
    1 1 1 1 1 1
    1 1 1 1 1
    1 1 1 1
    1 1 1
    1 1
    1

    for(var j = 6; j >= 0; j--){
        for(var i = 1; i <= j; i++){
            document.write(1+'&nbsp')
        }
        document.write('<br>')
    }

    32、
    1
    1 1
    1 1 1
    1 1 1 1
    1 1 1 1 1
    1 1 1 1 1 1

    for(var i = 0; i < 6; i++){
        for(var j = 0; j <= i; j++){
            document.write(1 + '&nbsp');
        }
        document.write('<br>')
    }

    33、
    1
    1 1
    1 1 1
    1 1 1 1
    1 1 1 1 1
    1 1 1 1 1 1
    1 1 1 1 1 1 1

    for(var i = 0; i < 6; i++){
        for(var j = 0; j < 6 - i; j++){
            document.write('&nbsp');
        }
        for(var a = 0; a <= i; a++){
            document.write('1');
        }
        document.write('<br>')
    }

    34、
    1 1 1 1 1 1
    1 1 1 1 1
    1 1 1 1
    1 1 1
    1 1
    1

     for(var i = 0; i < 6; i++){
        for(var j = 0; j <= i; j++){
            document.write('&nbsp');
        }
        for(var a = 0; a < 6 - i; a++){
            document.write('1');
        }
        document.write('<br>')
    }

    35、
    1 1 1 1 1 1
    1 1 1 1 1
    1 1 1 1
    1 1 1
    1 1
    1

    for(var i = 0; i < 6; i++){
        for(var a = 0; a < i * 2; a++){
            document.write('&nbsp');
        }
        for(var j = 0; j < 6 - i; j++){
            document.write('1');
        }
        document.write('<br>')
    }

    36、
    1
    1 1
    1 1 1
    1 1 1 1
    1 1 1 1 1

    <body style="text-align:center;">
        <script type="text/javascript">
            for(var i=0;i<5;i++){
                for(var j=0;j<i;j++){
                    document.write("#")
                }
                document.write("<br>")
            }
        </script>
    </body>

    37、
    !-!-!-!
     !-!-!
      !-!
       !
      !-!
     !-!-!
    !-!-!-!

    for(var i = 0; i < 7; i++){
        for(var j = 0; j < (i < 4 ? i : 6 - i); j++){
            document.write('&nbsp');
        }
        for(var b = 0; b < (i < 4 ? 3 - i : - 3 + i); b++){
            document.write('!-');
        }
        document.write('!<br>');
    }

    38、

            *

           * *

          * * *

         * * * * 

        * * * * *

       * * * * * *

        * * * * * 

         * * * * 

          * * * 

           * *

            *

     for(var i = 0; i < 11; i++){
        for(var j = 0; j < (i < 6 ? 5 - i : i - 5); j++){
            document.write('&nbsp;');
        }
        for(var a = 0; a < (i < 6 ? 1 + i : 11 - i); a++){
            document.write('*');
        }
        document.write('<br>');
    }

    39、请输入1-7中的任意数字,判断是星期几。(例如:输入5,弹出“星期五”)

    var a = prompt();
    switch (a) {
        case" 1":
            alert('星期一');
            break;
        case" 2":
            alert('星期二');
            break;
        case" 3":
            alert('星期三');
            break;
        case" 4":
            alert('星期四');
            break;
        case" 5":
            alert('星期五');
            break;
        case" 6":
            alert('星期六');
            break;
        case" 7":
            alert('星期日');
            break;
        default:
    }
    a === '1' ? alert('星期一') :
    a === '2' ? alert('星期二') :
    a === '3' ? alert('星期三') :
    a === '4' ? alert('星期四') :
    a === '5' ? alert('星期五') :
    a === '6' ? alert('星期六') :
    a === '7' ? alert('星期日') : '';

    40、一共40道题,答对36道及以上,就是优秀,24道及以上,不到36道的就是合格,其余的为不及格(用三目运算的形式做,答对的题用a表示).

    var a = prompt('答对的题数');
    if (a>36 && a<=40){
    document.write('优秀')
    }else if (a>24 && a<=36){
    document.write('合格')
    }else if (a < 24){
    document.write('不合格')
    }
  • 相关阅读:
    JS 利用数组拼接html字符串
    IE浏览器下读取客户端上传的文件大小
    PrintWriter out = response.getWriter() 输出中文乱码问题
    非常有用的Java程序片段
    sql之left join、right join、inner join的区别
    JAVA 数组常用技巧
    java 图片文件格式转换(多页tif转jpg 、jpg转tif)
    SQL Server 字段状态判断语句
    sql server 2008中id如何设为自增
    java基于xml配置的通用excel单表数据导入组件(五、Action处理类)
  • 原文地址:https://www.cnblogs.com/zml1023/p/12068958.html
Copyright © 2011-2022 走看看