原生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+" "); } document.write("<br><br>"); }
//正三角
for(var i=10;i>=1;i--){ for(var j=i;j<10;j++){ document.write(i+"*"+j+"="+j*i+" "); } 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+' ') } 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 + ' '); } 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(' '); } 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(' '); } 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(' '); } 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(' '); } 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(' '); } 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('不合格') }
下一篇: QT获取linux下的当年用户名