原生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('不合格')
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM