6.试题编号:J1-6《智能统计系统》关键算法
任务一:实现统计今天是该月的有多少天关键算法并绘制流程 图(30 分) 从键盘上输入一个年份值和一个月份值,输出该月的天数。(说 明:一年有 12 个月,大月的天数是 31,小月的天数是 30。2 月的 天数比较特殊,遇到闰年是 29 天,否则为 28 天。例如,输入 2011、 3,则输出 31 天。) 注意:使用分支结构语句实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<!--
任务一:实现统计今天是该月的有多少天关键算法并绘制流程图(30 分)
从键盘上输入一个年份值和一个月份值,输出该月的天数。
(说 明:一年有 12 个月,大月的天数是 31,小月的天数是 30。2
月的 天数比较特殊,遇到闰年是 29 天,否则为 28 天。例如,输入 2011、 3,则输出 31 天。)
注意:使用分支结构语句实现。
-->
<script>
var y = 2012;
var mm = 2;
isMonthAndDay(y, mm);
function isMonthAndDay(year, month) {
var m = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
if(year % 4 == 0) {
alert(year + "年" + month + "月有" + m[month - 1] + " 天");
} else {
m[1] = 28;
alert(year + "年" + month + "月有" + m[month - 1] + " 天");
}
}
</script>
</body>
</html>
任务二:实现统计纸片对折关键算法并绘制流程图(30 分) 假设一张足够大的纸,纸张的厚度为 0.5 毫米。请问对折多少 次以后,可以达到珠穆朗玛峰的高度(最新数据:8844.43 米)。请编 写程序输出对折次数。 注意:使用循环结构语句实现,直接输出结果不计分。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务二:实现统计纸片对折关键算法并绘制流程图(30 分)
假设一张足够大的纸,纸张的厚度为 0.5 毫米。请问对折多少 次以后,
可以达到珠穆朗玛峰的高度(最新数据:8844.43 米)。请编 写程序输出对折次数。
注意:使用循环结构语句实现,直接输出结果不计分。
-->
<script>
var m = 0.5;
var length = 8844.43 * 1000;
var x = 0;
while(m < length) {
m *= 2;
alert("第" + (x+1) + "对折,高度为" + m);
x++;
}
alert(x);
</script>
</body>
</html>
任务三:实现统计同构数关键算法并绘制流程图(30 分) 编写程序输出 2~99 之间的同构数。同构数是指这个数为该数平 方的尾数,例如 5 的平方为 25,6 的平方为 36,25 的平方为 625, 则 5、6、25 都为同构数。 注意:调用带有一个输入参数的函数(或方法)实现,此函数(或 方法)用于判断某个整数是否为同构数,输入参数为一个整型参数, 返回值为布尔型(是否为同构数)。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
注意:使用循环结构语句实现,直接输出结果不计分。
任务三:实现统计同构数关键算法并绘制流程图(30 分)
编写程序输出 2~99 之间的同构数。同构数是指这个数为该数平 方的尾数,
例如 5 的平方为 25,6 的平方为 36,25 的平方为 625, 则 5、6、25 都为同构数。
注意:调用带有一个输入参数的函数(或方法)实现,
此函数(或 方法)用于判断某个整数是否为同构数,
输入参数为一个整型参数, 返回值为布尔型(是否为同构数)。
-->
<script>
//执行效率破n位长度的数
var num = prompt("请输入你需要测试的同构数:2~99之间");
isNum(num) ? alert("是同构数") : alert("不是同构数");
function isNum(num) {
var x = 10;
for(var i = 1; i < num.length; i++) {
x *= 10;
}
return Math.pow(num, 2) % x == num;
}
</script>
</body>
</html>
7.试题编号:J1-7《儿童智力游戏》关键算法
任务一:实现堆积木游戏功能关键算法并绘制流程图(30 分)
堆积木是小孩子最爱玩的游戏,但是因为小孩子的好奇心(比 如误食积木等)导致家长们越不愿意让孩子去玩积木,为了解决这 个问题 TX 公司开发了一套 VR 积木游戏,你要做的是将用户堆好 的积木在屏幕中显示出来。 - ******* ***** *** * 注意:使用循环结构语句实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<!--
(1)任务描述
A 公司是专门的儿童网络游戏公司,现在公司正在开发几款智 力游戏,其中需要设计几个算法模型。
任务一:实现堆积木游戏功能关键算法并绘制流程图(30 分)
堆积木是小孩子最爱玩的游戏,但是因为小孩子的好奇心(比
如误食积木等)导致家长们越不愿意让孩子去玩积木,为了解决这
个问题 TX 公司开发了一套 VR 积木游戏,你要做的是将用户堆好 的积木在屏幕中显示出来。
*******
*****
***
*
注意:使用循环结构语句实现。
-->
<script>
var line = parseInt(prompt("请输入积木行数"));
for(var i = line + 1; i > 0; i--) {
for(var j = 2 * i - 3; j > 0; j--) {
document.write("*");
}
document.write("<br />");
}
</script>
</body>
</html>
任务二:实现抓娃娃游戏功能关键算法并绘制流程图(30 分)
请你在娃娃机里放十个娃娃,每个娃娃对应一个数字,该数字
表示娃娃的大小。要求通过计算能输出最大的娃娃对应的数字,你
可以这样做:
① 定义一个大小为 10 的整形数组 a;
② 从键盘输入 10 个整数,放置到数组 a 中;
③ 输出数组 a 中的最大值。
注意:使用数组、循环结构语句实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务二:实现抓娃娃游戏功能关键算法并绘制流程图(30 分)
请你在娃娃机里放十个娃娃,每个娃娃对应一个数字,该数字
表示娃娃的大小。要求通过计算能输出最大的娃娃对应的数字,你可以这样做:
① 定义一个大小为 10 的整形数组 a;
② 从键盘输入 10 个整数,放置到数组 a 中;
③ 输出数组 a 中的最大值。
注意:使用数组、循环结构语句实现。
-->
<script>
var arrNum = [255,13,88,44,999,66,14,33,99,77];
for(var i=0;i,i<arrNum.length;i++){
for(var j=0;j<arrNum.length-1;j++){
//arrNum.length-1与arrNum[j+1]刚好循环比较完整个完整长度的数组
if(arrNum[j+1]>arrNum[j]){
var num = arrNum[j];
arrNum[j] = arrNum[j+1]
arrNum[j+1] =num;
}
}
}
alert(arrNum[0]);
</script>
</body>
</html>
任务三:实现算数游戏功能关键算法并绘制流程图(30 分)
游戏主要是这样的,计算正整数 n 每个数位上的数之积,例如 24,它的每个数位上的数字之积为 2 * 4 = 8,现在要求你为 A 公司 编写一个计算函数(或方法)fun,将结果放到 c中,并显示输出。作 为参考答案。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务三:实现算数游戏功能关键算法并绘制流程图(30 分)
游戏主要是这样的,计算正整数 n 每个数位上的数之积,
例如 24,它的每个数位上的数字之积为 2 * 4 = 8,
现在要求你为 A 公司 编写一个计算函数(或方法)fun,
将结果放到 c中,并显示输出。作 为参考答案。
-->
<script>
var num = prompt("请输入一个最少两位数的正整数");
getShowNum(num);
function getShowNum() {
var arr = [];
for(var i = 0; i < num.length; i++) {
arr[i] = num.substr(i, 1);
}
var strNum = '';//
for(var i = 0; i < arr.length; i++) {
if(i < arr.length - 1)
strNum += arr[i] + "*";
if(i == arr.length - 1)
strNum += arr[i] + "=";
}
var x = 1;//记录乘积,累乘
for(var i = 0; i < strNum.length; i++) {
if(i % 2 == 0) {
x *= parseInt(strNum.substr(i, 1));
}
}
alert(strNum + " " + x);
}
</script>
</body>
</html>
8.试题编号:J1-8《商品销售系统》关键算法
任务一:实现打折功能关键算法并绘制流程图(30 分)
编写程序计算购买图书的总金额:用户输入图书的定价和购买
图书的数量,并分别保存到一个 float 和一个 int 类型的变量中,然
后根据用户输入的定价和购买图书的数量,计算购书的总金额并输
出。其中,图书销售策略为:正常情况下按 9 折出售,购书数量超 过 10本打 8.5 折,超过 100 本打 8 折。
要求:使用分支结构实现上述程序功能。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务一:实现打折功能关键算法并绘制流程图(30 分)
编写程序计算购买图书的总金额:用户输入图书的定价和购买
图书的数量,并分别保存到一个 float 和一个 int 类型的变量中,然
后根据用户输入的定价和购买图书的数量,计算购书的总金额并输
出。其中,图书销售策略为:正常情况下按 9 折出售,
购书数量超 过 10本打 8.5 折,超过 100 本打 8 折。
要求:使用分支结构实现上述程序功能。
-->
<script>
var bookNum = parseInt(prompt("输入书本数量"));
var price = parseFloat(prompt("输入书本价格"));
alert(bookNum+"本书,"+price+"元,总价"+getTotalPrice(bookNum,price)+"元.");
function getTotalPrice(bookNum,price){
var discount = bookNum>100?0.8:bookNum>10?0.85:0.9;
return bookNum*price*discount.toFixed(2);
}
</script>
</body>
</html>
任务二:实现查询功能关键算法并绘制流程图(30 分)
所谓回文数是从左至右与从右至左读起来都是一样的数字,如:
121 是一个回文数。编写程序,求出 100—200 的范围内所有回文数 的和。
要求:使用循环结构语句实现,直接输出结果不计分
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<!--
任务二:实现查询功能关键算法并绘制流程图(30 分)
所谓回文数是从左至右与从右至左读起来都是一样的数字,如:
121 是一个回文数。编写程序,求出 100—200 的范围内所有回文数 的和。
要求:使用循环结构语句实现,直接输出结果不计分。
-->
<script>
var arr = [];
var j=0;
for(var i =100; i <201; i++){
var f = i.toString().substr(0,1);
//这里固定是3数可用2或strArr[i].length-1
var l = i.toString().substr(2,1);
if(f==l){
arr[j] = i;
j++
}
}
var sum = 0;
for(let k=0;k<arr.length;k++){
sum+=arr[k];
}
document.write(arr+" ,它们的和为:"+sum);
</script>
</body>
</html>
任务三:实现图形界面关键算法并绘制流程图(30 分)
分析下列数据的规律,编写程序完成如下所示的输出。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
要求:使用循环结构语句实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务三:实现图形界面关键算法并绘制流程图(30 分)
分析下列数据的规律,编写程序完成如下所示的输出。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
要求:使用循环结构语句实现。
-->
<script>
for(var i = 0; i < 6; i++) {
for(var j = 0; j <= i; j++) {
document.write(fun(i, j) + " ");
}
document.write("<br/>");
}
function fun(i, j) {
if(i == j || j == 0) {
return 1;
}
return fun(i - 1, j - 1) + fun(i - 1, j);
}
/*
var arr = [];
var line = [];
for(var i = 0; i <6; i++){
for(var j = 0; j <= i; j++){
if(j == 0){
line.push(1);
continue;
}
if(j == i){
line.push(1);
continue;
}
line.push(arr[i - 1][j - 1] + arr[i - 1][j])
}
arr.push(line);
line = [];
}
for(i = 0; i < arr.length; i++){
document.write("<br>")
for(j = 0; j < arr[i].length; j++){
document.write(arr[i][j] + " ")
}
}
*/
</script>
</body>
</html>
9.试题编号:J1-9《幼师培训系统》关键算法
任务一:实现整除判断游戏功能关键算法并绘制流程图(30 分)
整除判断游戏能显著提高小朋友的逻辑思维能力,问题要求如
下:
• 能同时被 3、5、7 整除
• 能同时被 3、5 整除
• 能同时被 3、7 整除
• 能同时被 5、7 整除
• 只能被 3、5、7 中的一个整除
• 不能被 3、5、7 任一个整除
输入一个整数,输出满足对应条件的结果。
要求:使用分支结构语句实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<!--
任务一:实现整除判断游戏功能关键算法并绘制流程图(30 分)
整除判断游戏能显著提高小朋友的逻辑思维能力,问题要求如下:
• 能同时被 3、5、7 整除
• 能同时被 3、5 整除
• 能同时被 3、7 整除
• 能同时被 5、7 整除
• 只能被 3、5、7 中的一个整除
• 不能被 3、5、7 任一个整除
输入一个整数,输出满足对应条件的结果。
要求:使用分支结构语句实现。
-->
<script>
var num = parseInt(prompt("输入一个整数"));
isNum(num);
function isNum(num) {
if(num % 3 == 0 && num % 5 == 0 && num % 7 == 0) {
alert(num + "能同时被 3、5、7 整除 ");
}
if(num % 3 == 0 && num % 5 == 0) {
alert(num + "能同时被 3、5 整除 ");
}
if(num % 3 == 0 && num % 7 == 0) {
alert(num + "能同时被 3、7 整除 ");
}
if(num % 5 == 0 && num % 7 == 0) {
alert(num + "能同时被 5、7 整除 ");
}
if(num % 3 == 0 && num % 5 != 0 && num % 7 != 0) {
alert(num + "只能被 3、5、7 中的一个整除 ");
} else if(num % 7 == 0) {
alert(num + "只能被 3、5、7 中的一个整除 ");
} else if(num % 5 == 0) {
alert(num + "只能被 3、5、7 中的一个整除 ");
}
if(num % 3 != 0 && num % 5 != 0 && num % 7 != 0) {
alert(num + "不能同时被 3、5、7 整除 ");
}
}
</script>
</body>
</html>
任务二:实现冒泡游戏功能关键算法并绘制流程图(30 分)
原始数组:a[]={1,9,3,7,4,2,5,0,6,8}
排序后: a[]={0,1,2,3,4,5,6,7,8,9}
输出排序后的数组,每个数字之间空一个空格;
要求:综合使用分支、循环结构语句实现,直接输出结果不计
分。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务二:实现冒泡游戏功能关键算法并绘制流程图(30 分)
原始数组:a[]={1,9,3,7,4,2,5,0,6,8}
排序后: a[]={0,1,2,3,4,5,6,7,8,9}
输出排序后的数组,每个数字之间空一个空格;
要求:综合使用分支、循环结构语句实现,直接输出结果不计分。
-->
<script>
var arr = [1,9,3,7,4,2,5,0,6,8];
for(var i=0;i<arr.length;i++){
for(var j =0;j<arr.length-1;j++){
if(arr[j+1]<arr[j]){
var temp = arr[j];
arr[j] = arr[j+1]
arr[j+1] = temp;
}
}
}
alert(arr);
</script>
</body>
</html>
任务三:实现数一数游戏关键算法并绘制流程图(30 分)
分别输入两个字符串 s1 和 s2 ,请问 s1 中包含多少个 s2,如果 没有则输出 0。
要求:使用循环。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务三:实现数一数游戏关键算法并绘制流程图(30 分)
分别输入两个字符串 s1 和 s2 ,
请问 s1 中包含多少个 s2,如果 没有则输出 0。
要求:使用循环。
-->
<script>
var str1 = prompt("输入一串字符串");
var str2 = prompt("输入一个字符");
var n = 0;
for(var i=0;i<str1.length;i++){
if(str2==str1.substr(i,str2.length)){
n++;
}
}
alert(str1+"中包含了"+n+"个"+str2);
</script>
</body>
</html>
10.试题编号:J1-10《字符处理系统》关键算法
任务一:实现求平均值功能关键算法并绘制流程图(30 分)
有一个长度为 n(n=100)的数列,该数列定义为从 2 开始的递增 有序偶数({2,4,6,…,200}),现在要求你按照顺序每 m 个数求出一 个平均值,如果最后不足 m 个,则以实际数量求平均值。编程输出 该平均值序列。
要求: m 为大于等于 3 的整数。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<!--
任务一:实现求平均值功能关键算法并绘制流程图(30 分)
有一个长度为 n(n=100)的数列,该数列定义为从 2 开始的递增
有序偶数({2,4,6,...,200}),
现在要求你按照顺序每 m 个数求出一 个平均值,
如果最后不足 m 个,则以实际数量求平均值。编程输出 该平均值序列。
要求: m 为大于等于 3 的整数。
-->
<script>
var arr = new Array(100);
var num = 2;
for(var i = 0; i < 100; i++) {
arr[i] = num;
num += 2;
}
var m = prompt("输入大于等于 3 的整数");
if(m >= 3) {
var sum = 0;
var k = 0;
var ar = [];
for(var i = 0; i < arr.length; i++) {
if(k == m) {
ar.push((sum / m));
k = 0;
sum = 0;
}
sum += arr[i];
k++;
}
alert(ar);
alert(ar.length)
}
else {
alert("超出计算范围");
}
</script>
</body>
</html>
任务二:实现最小值排头功能关键算法并绘制流程图(30 分)
输入 20 个不同的整数,找出其中最小的数,将它与第 1 个输入 的数交换位置之后输出这些数。
要求:用数组解决任务,在输入整数时各整数之间用空隔分隔
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务二:实现最小值排头功能关键算法并绘制流程图(30 分)
输入 20 个不同的整数,找出其中最小的数,
将它与第 1 个输入 的数交换位置之后输出这些数。
要求:用数组解决任务,在输入整数时各整数之间用空隔分隔。
-->
<script>
var arr = [49, 10, 11, 23, 99, 9, 7, 36, 40, 50, 14, 87, 90, 3, 1, 66, 4, 5, 19, 82];
var s = reNum(arr);
var arr2 = [49, 10, 11, 23, 99, 9, 7, 36, 40, 50, 14, 87, 90, 3, 1, 66, 4, 5, 19, 82];
for(var i = 0; i < arr2.length; i++) {
if(s == arr2[i]) {
var len = arr2[0];
arr2[0] = s;
arr2[i] = len;
break;
}
}
alert(arr2);
function reNum(arr) {
for(var i = 0; i < arr.length; i++) {
for(var j = 0; j < arr.length - 1; j++) {
if(arr[j + 1] < arr[j]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr[0];
}
</script>
</body>
</html>
任务三:实现统计字符数量功能关键算法并绘制流程图(30 分)
对于给定的一个字符串,统计其中数字字符出现的次数。
要求:字符串只能由数字和字符组成。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务三:实现统计字符数量功能关键算法并绘制流程图(30 分)
对于给定的一个字符串,统计其中数字字符出现的次数。
要求:字符串只能由数字和字符组成。
-->
<script>
var strNum = prompt("输入一串字符串只能由数字和字符组成");
var x = 0;//数字个数
var y = 0;//字符个数
for(var i=0;i<strNum.length;i++){
if(strNum.substr(i,1).match(/[0-9]/ig)){
x++;
}else if(strNum.substr(i,1).match(/[a-z]|[A-Z]/ig)){
y++
}
}
alert("在字符串:"+strNum+" 中出现数字:"+x+" 次,出现字符:"+y+" 次");
</script>
</body>
</html>
11.试题编号:J1-11《动物园管理系统》关键算法
任务一:实现饲养功能关键算法并绘制流程图(30 分)
动物园饲养的食肉动物分大型动物和小型动物两类,规定老虎、
狮子一类的大动物每次喂肉每头三斤,狐狸、山猫一类小动物每三
头喂一斤。该动物园共有这两类动物 100 头,每次需喂肉 100 斤, 编程输出大、小动物的数量。
要求:用循环语句实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<!--
任务一:实现饲养功能关键算法并绘制流程图(30 分)
动物园饲养的食肉动物分大型动物和小型动物两类,规定老虎、
狮子一类的大动物每次喂肉每头三斤,狐狸、山猫一类小动物每三
头喂一斤。该动物园共有这两类动物 100 头,
每次需喂肉 100 斤, 编程输出大、小动物的数量。
要求:用循环语句实现。
-->
<script>
var big = 0;
while((big * 3 + (100 - big) / 3) != 100) {
big++;
}
alert("大动物的数量为:" + big + ",小动物的数量为:" + (100 - big));
/*var x = 0;//记录小动物
var d = 0;//大动物
while(true){
if(x+d==100){
break;
}
x += 3;
d += 1;
}
var dBeef = d*3;
var xBeef = 100-dBeef;
alert("小动物:"+x+" 吃肉:"+xBeef+" 大动物:"+d+" 吃肉:"+dBeef);
*/
</script>
</body>
</html>
任务二:实现趣味动物问题关键算法并绘制流程图(30 分)
动物园里新来了两只骆驼,那么你能计算出它们年龄的最小公
倍数么?从键盘输入两个整数,输出两个整数的最小公倍数。
要求: 用循环语句实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务二:实现趣味动物问题关键算法并绘制流程图(30 分)
动物园里新来了两只骆驼,那么你能计算出它们年龄的最小公
倍数么?从键盘输入两个整数,输出两个整数的最小公倍数。
要求: 用循环语句实现。
-->
<script>
var x = parseInt(prompt("输入一个整数为第一只骆驼的年龄"));
var y = parseInt(prompt("输入一个整数为第二只骆驼的年龄"));
var z = y;//z最小公倍数
while(z % x !=z % y) {
z++;
}
alert(z);
</script>
</body>
</html>
任务三:实现人工湖关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务三:实现人工湖关键算法并绘制流程图(30 分)
现在,动物园想在新建一个三角形的人工湖,一是为了养鱼美
观,二是可以循环水资源。
从键盘输入三条边 A、B、C 的边长,请 编程判断能否组成一个三角形。
要求:A,B,C <1000,如果三条边长 A、B、C 能组成三角形的 话,输出 YES,否则 NO。
-->
<script>
var flag = true;
while(true){
var a, b, c;
a = parseInt(prompt("请输入三角形边长a的长度"));
b = parseInt(prompt("请输入三角形边长b的长度"));
c = parseInt(prompt("请输入三角形边长c的长度"));
if(a+b>c && a+c>b && b+c>a){
alert("yes");
}
else{
alert("no");
}
flag = confirm("是否继续?");
}
</script>
</body>
</html>
12.试题编号:J1-12《手机号码查询系统》关键算法
任务一:实现手机号计数功能关键算法并绘制流程图(30 分)
从键盘接收一行字符串,字符串中只包含数字和空格,统计其
中所有的手机号码数量。
比如输入:18711389426 18711389427 输出的结果为:2。
注意:使用分支及循环结构完成。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<!--
任务一:实现手机号计数功能关键算法并绘制流程图(30 分)
从键盘接收一行字符串,字符串中只包含数字和空格,
统计其中所有的手机号码数量。
比如输入:18711389426 18711389427 输出的结果为:2。
注意:使用分支及循环结构完成。
-->
<script>
var num = prompt("请输入一行字符串,字符串中只包含数字和空格");
var phoneNum = num.replace(/\s/g,"");
var phoneArr = [];
var j = 0;
var n = "";
for(var i=0;i<phoneNum.length;i++){
n += phoneNum.substr(i,1);
if(n.length==11){
phoneArr[j] = n;
n = "";
j++;
}
}
var c = 0;
for(var k=0;k<phoneArr.length;k++){
var x = phoneArr[k].match(/^[1][3-9][0-9]{9}/ig);
if(x!=null){
c++;
}
alert(x+" "+c);
}
</script>
</body>
</html>
任务二:实现连号判断功能关键算法并绘制流程图(30 分)
从键盘接收一个十一位的数字,判断其是否为尾号 5 连的手机 号。规则:第 1 位是 1,第二位可以是数字 358 其中之一,后面 4 位任意数字,最后 5 位为任意相同的数字。例如:18601088888、 13912366666 则满足。
注意:不满足的输出“false”,满足要求的输出“true”。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务二:实现连号判断功能关键算法并绘制流程图(30 分)
从键盘接收一个十一位的数字,判断其是否为尾号 5 连的手机 号。
规则:第 1 位是 1,第二位可以是数字 358
中之一,后面 4 位任意数字,最后 5 位为任意相同的数字。
例如:18601088888、 13912366666 则满足。
注意:不满足的输出“false”,满足要求的输出“true”。
-->
<script>
var num = prompt("输入一个十一位的手机号码");
var getJudge = num.match(/^[1]([3]|[5]|[8])[0-9]{4}([0]{5}|[1]{5}|[2]{5}|[3]{5}|[4]{5}|[5]{5}|[6]{5}|[7]{5}|[8]{5}|[9]{5})/ig);
var getTrue = getJudge==null?false:true;
alert(getJudge+getTrue);
</script>
</body>
</html>
任务三:实现统计非数字功能关键算法并绘制流程图(30 分)
对于给定的一个字符串,统计其中非数字字符出现的次数。
例如:输入:Ab(&%123) 输出:6
注意:使用循环和判断语句实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务三:实现统计非数字功能关键算法并绘制流程图(30 分)
对于给定的一个字符串,统计其中非数字字符出现的次数。
例如:输入:Ab(&%123) 输出:6
注意:使用循环和判断语句实现。
-->
<script>
var str = prompt("请输入一串字符")
var getStr = str.match(/\D/ig);
var getStrLength = getStr.toString().replace(",","").length-1;
alert(getStrLength);
</script>
</body>
</html>
13.试题编号:J1-13《图形打印系统》关键算法
任务一:实现打印功能 1 关键算法并绘制流程图(30 分)
从键盘接收一个整数 n,请打印一个由“*”号组成的长度和宽 度均为 n 的空心矩形。
例如输入:4 你要在屏幕打印如下图形:
注意:使用嵌套循环语句实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<!--
任务一:实现打印功能 1 关键算法并绘制流程图(30 分)
从键盘接收一个整数 n,
请打印一个由“*”号组成的长度和宽 度均为 n 的空心矩形。
例如输入:4 你要在屏幕打印如下图形:
****
* *
* *
****
注意:使用嵌套循环语句实现。
-->
<script>
var line = parseInt(prompt("输入一个整数"));
for(var i=0;i<line;i++){
for(var j=0;j<line;j++){
if(i>0 || i<line-1 || j>0 || j<line-1)
{
document.write("  ");
}if(i==0 || i==line-1 || j==0 || j==line-1)
document.write("*");
}
document.write("<br />");
}
</script>
</body>
</html>
任务二:实现打印功能 2 关键算法并绘制流程图(30 分)
注意输出指定空心正方形。输入第一个数字为边长,第二个字
符为组成图形边的字符。
例如:输入
4 a
输出
aaaa
a a
a a
aaaa
注意:使用嵌套循环实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务二:实现打印功能 2 关键算法并绘制流程图(30 分)
注意输出指定空心正方形。输入第一个数字为边长,第二个字
符为组成图形边的字符。
例如:输入
4 a
输出
aaaa
a a
a a
aaaa
注意:使用嵌套循环实现。
-->
<script>
var line = parseInt(prompt("输入一个整数"));
var str = prompt("输入一个字符");
for(var i=0;i<line;i++){
for(var j=0;j<line;j++){
if(i>0 || i<line-1 || j>0 || j<line-1)
{
document.write("  ");
}if(i==0 || i==line-1 || j==0 || j==line-1)
document.write(str);
}
document.write("<br />");
}
</script>
</body>
</html>
任务三:实现打印功能 3 关键算法并绘制流程图(30 分)
从键盘接受一个正整数,列出该数字的中文表示格式,例如:
键盘输入 123,打印出一二三;键盘输入 3103,打印出三一零三。 注意:使用判断语句完成。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务三:实现打印功能 3 关键算法并绘制流程图(30 分)
从键盘接受一个正整数,列出该数字的中文表示格式,例如:
键盘输入 123,打印出一二三;键盘输入 3103,
打印出三一零三。 注意:使用判断语句完成
-->
<script>
var num = prompt("请输入正整数");
var s = getCharacter(num);
alert(num + s);
function getCharacter(num) {
var str = "";
var t = "";
for(var i = 0; i < num.length; i++) {
str = num.substr(i, 1);
t += str == "0" ? "零" : str == 1 ? "一" : str == 2 ? "二" : str == 3 ? "三" : str == 4 ? "四" : str == 5 ? "五" : str == 6 ? "六" : str == 7 ? "七" : str == 8 ? "八" : "九";
}
return t;
}
</script>
</body>
</html>
14.试题编号:J1-14《市场分析系统》关键算法
任务一:实现销售分析功能关键算法并绘制流程图(30 分)
A 商店准备在今年夏天开始出售西瓜,西瓜的售价如下,20 斤 以上的每斤 0.85 元;重于 15 斤轻于等于 20 斤的,每斤 0.90 元;重 于 10 斤轻于等于 15 斤的,每斤 0.95 元;重于 5 斤轻于等于 10 斤 的,每斤 1.00 元;轻于或等于 5 斤的,每斤 1.05 元。现在为了知道 商店是否会盈利要求 A 公司帮忙设计一个输入西瓜的重量和顾客所 付钱数,输出应付货款和应找钱数的程序。
注意:使用分支结构语句实现,结果保留两位小数。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务一:实现销售分析功能关键算法并绘制流程图(30 分)
A 商店准备在今年夏天开始出售西瓜,西瓜的售价如下,
20 斤 以上的每斤 0.85 元;重于 15 斤轻于等于 20 斤的,
每斤 0.90 元;重 于 10 斤轻于等于 15 斤的,每斤 0.95 元;
重于 5 斤轻于等于 10 斤 的,每斤 1.00 元;轻于或等于 5 斤的,
每斤 1.05 元。现在为了知道 商店是否会盈利要求 A 公司帮忙
设计一个输入西瓜的重量和顾客所 付钱数,输出应付货款和应找钱数的程序。
注意:使用分支结构语句实现,结果保留两位小数。
-->
<script>
var weight = parseFloat(prompt("输入西瓜重量"));
var money = parseFloat(prompt("输入付钱数"));
var price = getPrice(weight,money);
var pay = money - price;
alert("付款: "+pay+" 元,找回:"+price+" 元.");
function getPrice(weight,money){
var discount = weight>20?0.85:weight>15?0.9:weight>10?0.95:weight>5?1.0:1.05;
if(money<discount*weight) alert("金额不足");
else
return (money-discount*weight).toFixed(2);
}
</script>
</body>
</html>
任务二:实现销售量分析功能关键算法并绘制流程图并绘制流 程图(30 分)
KJ 学院为全校同学设计一套校服,A 公司有意招标为 A学校设 计服装,职员小 C在 A校排队时偷偷的看了一眼发现 A 学校学生, 5 人一行余 2 人,7 人一行余 3 人,3 人一行余 1 人,编写一个程序 求该校的学生人数。 注意:使用分支、循环结构语句实现,直接输出结果不计分。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务二:实现销售量分析功能关键算法并绘制流程图并绘制流程图(30 分)
KJ 学院为全校同学设计一套校服,A 公司有意招标为 A学校设 计服装,
职员小 C在 A校排队时偷偷的看了一眼发现 A 学校学生,
5 人一行余 2 人,7 人一行余 3 人,3 人一行余 1 人,编写一个程序 求该校的学生人数。
注意:使用分支、循环结构语句实现,直接输出结果不计分。
-->
<script>
var i = 1;
while(true){
if(i%5==2 && i%3==1 && i%7==3){
alert(i);
break;
}
i++;
}
</script>
</body>
</html>
任务三:实现市场调查数据的恢复功能关键算法并绘制流程图
(30 分)
职员小 A 今天犯了一个致命的错误,他一不小心丢失了 X 项目 的市场调查结果只记得一个公式 xyz+yzz=532,其中 x、y、z 均为一 位数,现在请你帮忙编写一个程序求出 x、y、z分别代表什么数。
注意:用带有一个输入参数的函数(或方法)实现,返回值类型为 布尔类型。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务三:实现市场调查数据的恢复功能关键算法并绘制流程图(30 分)
职员小 A 今天犯了一个致命的错误, 他
不小心丢失了 X 项目 的市场调查结果只记得一个公式 xyz+yzz=532,
其中 x、y、z 均为一 位数,现在请你帮忙编写一个程序求出 x、y、z分别代表什么数。
注意:用带有一个输入参数的函数(或方法)实现,返回值类型为 布尔类型。
-->
<script>
// xyz + yzz = 532; 由x为百位上的数得: x*100+10*y+z + y*100+10*z+z = 532;
var x, y, z, t;
for(x = 1; x < 10; x++) {
for(y = 1; y < 10; y++) {
for(z = 0; z < 10; z++) {
t = 100 * x + 10 * y + z + y * 100 + z * 10 + z;
if(t == 532) {
alert(x + " " + y + " " + z);
}
}
}
}
</script>
</body>
</html>
15.试题编号:J1-15《节庆活动管理系统》关键算法
任务一:实现元宵灯谜问题关键算法并绘制流程图(30 分)
小明带两个妹妹参加元宵灯会。别人问她们多大了,她们调皮
地说:“我们俩的年龄之积是年龄之和的 6 倍”。小明又补充说: “她们可不是双胞胎,年龄差肯定也不超过 8 岁啊。”请你编程求 出小明的较小的妹妹的年龄。
注意:使用循环实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务一:实现元宵灯谜问题关键算法并绘制流程图(30 分)
小明带两个妹妹参加元宵灯会。别人问她们多大了,她们调皮
地说:“我们俩的年龄之积是年龄之和的 6 倍”。
小明又补充说: “她们可不是双胞胎,年龄差肯定也不超过 8 岁啊。”
请你编程求 出小明的较小的妹妹的年龄。
注意:使用循环实现。
-->
<script>
var x,y;
for(x=1;x<200;x++){
for(y=1;y<x;y++){
if(x*y==(x+y)*6 && x-y<=8 && x>y){
alert(x+",,,"+y);
}
}
}
</script>
</body>
</html>
任务二:实现获奖序列关键算法并绘制流程图(30 分)
中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传 统文化中的太极衍生原理。它的前几项是:0、2、4、8、12、18、 24、32、40、50 …。其规律是:对偶数项,是序号平方再除 2,奇 数项,是序号平方减 1 再除 2。投资人决定,节庆活动抽奖活动的 中奖序列按照“大衍数列”的前 100 项。请你打印出“大衍数列” 的前 100 项。
注意:输出占一行,两个数之间用空格隔开,最后一个数字后
面没有多余的符号。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务二:实现获奖序列关键算法并绘制流程图(30 分)
中国古代文献中,曾记载过“大衍数列”,
主要用于解释中国传 统文化中的太极衍生原理。
它的前几项是:0、2、4、8、12、18、 24、32、40、50 ...。
其规律是:对偶数项,是序号平方再除 2,奇 数项,
是序号平方减 1 再除 2。投资人决定,
节庆活动抽奖活动的 中奖序列按照“大衍数列”的前 100 项。
请你打印出“大衍数列” 的前 100 项。
注意:输出占一行,两个数之间用空格隔开,最后一个数字后面没有多余的符号。
-->
<script>
for(var i=1;i<=100;i++){
if(i%2==0){
document.write(i*i/2+"  ")
}else{
document.write((i*i-1)/2+"  ");
}
}
</script>
</body>
</html>
任务三:实现门票核对关键算法并绘制流程图(30 分)
门票的序列号必定是系统里总序列的子序列,请你核对门票的
真实性。从键盘接收两个字符串 a和 b,请你判断字符串 a是否包含 字符串 b,是的话输出“Yes”,否则输出“No”。有多组测试用例, 每个测试用例占一行,两个字符串之间用空格隔开。
例如:输入
JavaStudy Java
Student School
则输出
Yes
No
注意:使用循环完成。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务三:实现门票核对关键算法并绘制流程图(30 分)
门票的序列号必定是系统里总序列的子序列,请你核对门票的
真实性。从键盘接收两个字符串 a和 b,
请你判断字符串 a是否包含 字符串 b,是的话输出“Yes”,
否则输出“No”。有多组测试用例, 每个测试用例占一行,两个字符串之间用空格隔开。
例如:输入
JavaStudy Java
Student School
则输出
Yes
No
注意:使用循环完成。
-->
<script>
var inputStr = prompt("输入字符串");
var matchStr = prompt("输入进行匹配的字符串");
alert(matchString(inputStr, matchStr));
function matchString(n, m) {
return n.indexOf(m) >= 0 ? true : false;
}
</script>
</body>
</html>
16.试题编号:J1-16 《中学生数学辅助学习系统》关键算法
任务一:实现汽车与摩托问题的关键算法并绘制流程图(30 分)
在一个停车场内,汽车、摩托车共停了 48 辆,其中每辆汽车有 4 个轮子,每辆摩托车有 3 个轮子,这些车共有 172 个轮子,编程 输出停车场内有汽 车和摩托车的数量。
注意:用循环语句实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<!--
任务一:实现汽车与摩托问题的关键算法并绘制流程图(30 分)
在一个停车场内,汽车、摩托车共停了 48 辆,
其中每辆汽车有 4 个轮子,每辆摩托车有 3 个轮子,
这些车共有 172 个轮子,编程 输出停车场内有汽 车和摩托车的数量。
注意:用循环语句实现。
-->
<script>
var x,y;
for(x=0;x<48;x++){
for(y=0;y<48;y++){
if(x+y==48 && 4*x+3*y==172){
alert(alert(y));
}
}
}
</script>
</body>
</html>
任务二:实现鸡兔同笼问题的关键算法并绘制流程图(30 分)
已知鸡和兔的总数量为 n,总腿数为 m。输入 n 和 m,依次输出鸡 和兔的数目,如果无解,则输出“No answer”(不要引号)。注意: 用循环语句实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务二:实现鸡兔同笼问题的关键算法并绘制流程图(30 分)
已知鸡和兔的总数量为 n,总腿数为 m。
输入 n 和 m,依次输出鸡 和兔的数目,
如果无解,则输出“No answer”(不要引号)。
注意: 用循环语句实现。
-->
<script>
var n = parseInt(prompt("输入头数"));
var m = parseInt(prompt("输入脚数"));
getNum(n, m);
function getNum(n, m) {
var flag = false;
var x = y = 0;
for(var i = 0; i <= n; i++) {
if(i * 2 + (n - i) * 4 == m) {
flag = true;
x = i;
y = n - x;
}
}
return flag == true ? document.write("鸡:" + x + ",兔:" + y) : document.write("No answer");
}
</script>
</body>
</html>
任务三:实现合格电视机问题的关键算法并绘制流程图(30 分)
某电视机厂每天生产电视 500 台,在质量评比中,每生产一台 合格电视机记 5 分,每生产一台不合格电视机扣 18 分。如果四天得 了 9931 分,编程计算这四天生产的合格电视机的台数,并输出。
注意:用循环语句实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务三:实现合格电视机问题的关键算法并绘制流程图(30 分)
某电视机厂每天生产电视 500 台,在质量评比中,
每生产一台 合格电视机记 5 分,每生产一台不合格电视机扣 18 分。
如果四天得 了 9931 分,编程计算这四天生产的合格电视机的台数,并输出。
注意:用循环语句实现。
-->
<script>
for(var i =1; i < 2001; i++) {
if(5*i-(2000-i)*18==9931){
alert(i);
}
}
</script>
</body>
</html>
17.试题编号:J1-17《几何图形公式记忆系统》关键算法
任务一:实现图形计算功能 1 关键算法并绘制流程图(30 分)
输入一个正方体的变长(a)计算盒子体积。
注意:结果保留两位小数。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<!--
任务一:实现图形计算功能 1 关键算法并绘制流程图(30 分)
输入一个正方体的变长(a)计算盒子体积。
注意:结果保留两位小数。
-->
<script>
var a = parseInt(prompt("输入正方体的边长"))
var squareArea = (a*a*a).toFixed(2);
alert("盒子体积:"+squareArea);
</script>
</body>
</html>
任务二:实现图形计算功能 2 关键算法并绘制流程图(30 分)
输入三个数,分别是圆柱体底圆的高 h,半径 r,请你编程求出 该圆柱的表面积。
注意:PI = 3.14,输出结果保留两位小数。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务二:实现图形计算功能 2 关键算法并绘制流程图(30 分)
输入三个数,分别是圆柱体底圆的高 h,半径 r,请你编程求出 该圆柱的表面积。
注意:PI = 3.14,输出结果保留两位小数。
-->
<script>
var h = parseFloat(prompt("输入圆柱体底圆的高 h"));
var r = parseFloat(prompt("输入圆柱体底圆的半径 r"));
var p = 3.14;
var s = (2*p*r*r+h*2*p*r).toFixed(2);
alert("圆柱的表面积: "+s)
</script>
</body>
</html>
任务三:实现图形计算功能 3 关键算法并绘制流程图(30 分)
输入三个数,分别是三角形的三条边 a,b,c,请你编程求出该 三角形边长。
注意:题目的输入数据合法。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务三:实现图形计算功能 3 关键算法并绘制流程图(30 分)
输入三个数,分别是三角形的三条边 a,b,c,请你编程求出该 三角形边长。
注意:题目的输入数据合法。
-->
<script>
var abc = prompt("分别输入三角形的a,b,c;用空格隔开");
var a,b,c;
var arr = abc.split(" ");
a = arr[0];
b = arr[1];
c = arr[2];
var isTriangle = a+b>c?true:a+c>b?true:b+c>a?true:false;
if(isTriangle){
alert("三角形边长: a: "+a+",b: "+b+",c: "+c);
}
</script>
</body>
</html>
18.试题编号:J1-18《在线考试系统》关键算法
任务一:实现细胞繁衍关键算法并绘制流程图(30 分)
有一种细胞,从诞生第二天开始就能每天分裂出一个新的细胞, 新的细胞在第二天又开始繁衍。假设在第一天,有一个这样的细胞, 请问,在第 N 天晚上,细胞的数量是多少?输入一个整数 N(0 < N < 20),请编程求解第 N 天该细胞的数量。例如输入 5,输出答案 为 32。 注意:使用循环或者递归完成。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<!--
任务一:实现细胞繁衍关键算法并绘制流程图(30 分)
有一种细胞,从诞生第二天开始就能每天分裂出一个新的细胞,
新的细胞在第二天又开始繁衍。假设在第一天,有一个这样的细胞,
请问,在第 N 天晚上,细胞的数量是多少?
输入一个整数 N(0 < N < 20),
请编程求解第 N 天该细胞的数量。例如输入 5,输出答案 为 32。
注意:使用循环或者递归完成。
-->
<script>
var n = parseInt(prompt("输入一个整数 "));
var get =1;
for(var i=0;i<n;i++){
get *= 2;
}
alert(get);
</script>
</body>
</html>
任务二:实现超级楼梯关键算法并绘制流程图(30 分)
有一楼梯共 M 级,刚开始时你在第一级,若每次只能跨上一级 或二级,要走上第 M 级,共有多少种走法?输入一个整数 M (1<=M<=40),表示楼梯的级数。例如:
上到第二层就有 2 种
第三层就 3 种
第四层就有 5 种
第五层就有 8 种
第六 就有 13 种
……
注意:使用递归或循环实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务二:实现超级楼梯关键算法并绘制流程图(30 分)
有一楼梯共 M 级,刚开始时你在第一级,
若每次只能跨上一级 或二级,要走上第 M 级,
共有多少种走法?输入一个整数 M (1<=M<=40),表示楼梯的级数。例如:
上到第二层就有 2 种 第三层就 3 种 第四层就有 5 种
第五层就有 8 种 第六 就有 13 种 ……
注意:使用递归或循环实现。
-->
<script>
var m = parseInt(prompt("输入一个整数"));
if(m >= 1 && m <= 40) {
var f1 = 1;
var f2 = 2;
var sum = 0;
for(var i = 1; i < m; i++) {
if(i>1){
sum = f1+f2;
f1 = f2;
f2 = sum;
}else{
sum = 2;
}
}
alert(sum);
}else{
alert("输入有错")
}
</script>
</body>
</html>
任务三:实现手机短号计算关键算法并绘制流程图(30 分)
大家都知道,手机号是一个 11 位长的数字串,同时作为学生,
还可以申请加入校园网,如果加入成功,你将另外拥有一个短号。
假设所有的短号都是 6+手机号的后 5 位,比如号码为 13512345678 的手机,对应的短号就是 645678。现在,如果给你一个 11 位长的
手机号码,你能找出对应的短号吗?要求:输入一个手机号输出对
应的手机短号。
注意:使用递归实现或循环实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务三:实现手机短号计算关键算法并绘制流程图(30 分)
大家都知道,手机号是一个 11 位长的数字串,同时作为学生,
还可以申请加入校园网,如果加入成功,
你将另外拥有一个短号。假设所有的短号都是 6+手机号的后 5 位,
比如号码为 13512345678 的手机,对应的短号就是 645678。
现在,如果给你一个 11 位长的
手机号码,你能找出对应的短号吗?要求:输入一个手机号输出对应的手机短号。
注意:使用递归实现或循环实现。
-->
<script>
var num = prompt("输入一个11位手机号");
var shortNum =6+num.substr(6,5);
alert(shortNum);
</script>
</body>
</html>
19.试题编号:J1-19《OJ 系统》题库关键算法
任务一:实现问题一关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<!--
任务一:实现问题一关键算法并绘制流程图(30 分)
编写一个程序,该程序读取一个字符串,然后输出读取的空格数目。
注意:输入字符串的长度不超过 30 个字符(含空格)。
-->
<script>
var str = prompt("输入你的字符串");
var isNull = 0;
for(var i=0;i<str.length;i++){
if(" "== str.substr(i,1)){
isNull++;
}
}
alert(isNull);
</script>
</body>
</html>
任务二:实现问题二关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务二:实现问题二关键算法并绘制流程图(30 分)
中国古代的《算经》记载了这样一个问题:公鸡 5 文钱 1 只,
母鸡 3 文钱 1 只,小鸡 1文钱 3 只,如果用 100 文钱买 100 只鸡,
那么公鸡、母鸡和小鸡各应该买多少只呢?现在请你编程求出所有的解,
每个解输出 3 个整数,打印在一行,用空格隔开,分别代表 买的公鸡、母鸡、小鸡的数量。
注意:100 文钱要正好用完。请输出所有的解,每个解占一行。
-->
<script>
var x,y,z;
for(var i = 0; i < 20; i++) {
for(var j = 0; j < 33; j++) {
for(var k = 0; k < 300; k++) {
if(i * 5 + j * 3 + k / 3 == 100 && i + j + k == 100) {
x = i;
y = j;
z = (100 - i - j);
alert(x+","+y+","+z);
}
}
}
}
</script>
</body>
</html>
任务三:实现问题三关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务三:实现问题三关键算法并绘制流程图(30 分)
有一天爱因斯坦给他的朋友出了一个题目,有一个楼,其两层
之间有一个很长的阶梯。如果一个人每步上 2 阶,最后剩 1 阶;
如 果一个人每步上 3 阶,最后剩 2 阶;如果一个人每步上 5 阶,
最后 剩 4 阶;如果一个人每步上 6 阶,最后剩 5 阶;
如果一个人每步上 7 阶,最后刚好一阶也不剩。问这个阶梯至少有多少阶呢?
注意:请编程求出最小的一个答案并输出。
-->
<script>
var i = 0;
while(true){
if(i%2==1 && i%3==2 && i%5==4 && i%6==5 && i%7==0){
alert(i);
break;
}
i++;
}
</script>
</body>
</html>
20.试题编号:J1-20《统计问题处理系统》关键算法
任务一:实现统计问题 1 关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<!--
任务一:实现统计问题 1 关键算法并绘制流程图(30 分)
输出数组第 k 大的数。
说明:首先输入一个整数 n,代表数组的长度,
随后输入 n 个 数,代表数组的元素,最后输入一个整数 k,
你需要输出这 n 个数 中第 k 大的数(0<k<=n)。
例如输入:
5
5 3 1 2 4
3
输出这 5 个数中第 3 大的数:
3
注意:使用数组完成。
-->
<script>
var a = parseInt(prompt("输入一个整数代表数组的长度"));
var b = prompt("输入任意个整数代表数组的元素,用英文逗号分隔");
var k = parseInt(prompt("输入一个整数代表数组中第几大的元素"));
var arr = b.split(",")
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr.length-1;j++){
if(arr[j]<arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
alert(arr[k-1]);
</script>
</body>
</html>
任务二:实现统计问题 2 关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务二:实现统计问题 2 关键算法并绘制流程图(30 分)
统计给定的 n 个数中,负数、零和正数的个数。
对于每组输入 数据,输出一行 a,b 和 c,
分别表示给定的数据中负数、零和正数的 个数。
首先输入一个数 n,代表有需要统计的有 n个数,然后输入 n 个数。
例如输入:
5
1 2 3 0 -4
输出:
1 1 3
注意:使用数组和判断语句完成。
-->
<script>
var n = parseInt(prompt("输入数字的数量"));
var num = prompt("输入负数、零和正数,用空格分隔");
var arr = new Array(n);
arr = num.split(" ");
var x, y, z;
x = y = z = 0;
for(var i = 0; i < arr.length; i++) {
var t = parseInt(arr[i]);
t > 0 ? x++ : t == 0 ? y++ : z++;
}
alert("正数: " + x + ",零: " + y + ",负数: " + z);
</script>
</body>
</html>
任务三:实现统计问题 3 关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务三:实现统计问题 3 关键算法并绘制流程图(30 分)
幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的
“筛法”生成。 首先从 1 开始写出自然数 1,2,3,4,5,6,....。
1 就是第 一个幸运数。我们从 2 这个数开始。把所有序号能被 2 整除的项删
除,变为:1 _ 3 _ 5 _ 7 _ 9 ....把它们缩紧,
重新记序,为:1 3 5 7 9 .... 。这时,3 为第 2 个幸运数,
然后把所有能被 3 整除的序号位 置的数删去。注意,是序号位置,
不是那个数本身能否被 3 整除!! 删除的应该是 5,11, 17, ...。
此时 7 为第 3 个幸运数,然后再删去序 号位置能被 7 整除的(19,39,...) ,
最后剩下的序列类似:1, 3, 7, 9, 13, 15, 21, 25……。
注意:请你根据幸运数的生成规则,编写程序打印 100 以内的 幸运数。
输出占一行,每个数字后面输出一个空格。
-->
<script>
var arr = [];
var lucky = 1;
init();
while(arr.length > lucky) {
remove();
}
function init() {
for(let i = 1; i < 101; i += 2) {
arr.push(i);
}
}
function remove() {
for(let i = arr.length; i > 1; i--) {
if(i % arr[lucky] == 0) {
arr.splice(i - 1, 1);
}
}
lucky++;
}
alert(arr);
</script>
</body>
</html>
21.试题编号:J1-21《密码破解系统》关键算法
任务一:实现枚举问题 1 关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务一:实现枚举问题 1 关键算法并绘制流程图(30 分)
我们都知道:1+2+3+ ... + 49 = 1225。
现在要求你把其中两个不 相邻的加号变成乘号,使得结果为 2015。
例如: 1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015 就是符 合要求的答案。
请你寻找所有可能的答案,并把前面的两个数字输出,如上面
的就是输出(10 27)。
注意:使用循环或者递归实现。
-->
<script>
var n = 0;
for(var a = 0; a < 50; a++) { //穷举到50
for(var b = a; b < 50; b++) {
n = 1225 - a * 2 - b * 2 - 2; //减掉四个没有加上去的数,减2是a*2和b*2多出来的2
if(n + a * (a + 1) + b * (b + 1) == 2015) //筛选变成乘法之后的数
alert(a + " " + b);
}
}
</script>
</body>
</html>
任务二:实现枚举问题 2 关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<!--
任务二:实现枚举问题 2 关键算法并绘制流程图(30 分)
美国数学家维纳(N.Wiener)智力早熟,11 岁就上了大学。
他曾 在 1935~1936 年应邀来中国清华大学讲学。
一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人
询问他的年龄,他回答说:“我年龄的立方是个 4 位数。
我年龄的 4 次方是个 6 位数。这 10 个数字正好包含了从 0 到 9 这 10 个数字,
每个都恰好出现 1 次。”请你编程计算,他当时到底有多年轻。
注意:使用循环实现,输出他的年龄在一行。
-->
<script>
var x, y,t;
x = y = 0;
var i = 10;
var arr = [];
t = getAgeNum();
alert(t);
function getAgeNum() {
while(i < 25) {
x = i * i * i;
y = i * i * i * i;
if(y.toString().length == 6 && x.toString().length == 4) {
var z = y.toString() + x;
for(let j = 0; j < z.length; j++) {
arr[j] = Number(z.substr(j, 1));
}
for(let m = 0; m < arr.length; m++) {
for(let n = 0; n < z.length - 1; n++) {
if(arr[n] > arr[n + 1]) {
var temp = arr[n];
arr[n] = arr[n + 1];
arr[n + 1] = temp;
}
}
}
//可以用更简单的方法用数组方法sort();
// z = (y.toString() + x).split("").sort();
//循环拼接等于‘0123456789’;
var num = '0123456789';
var str = '';
for(let l = 0; l < arr.length; l++) {
str += arr[l];
}
if(num == str) {
var info = "年龄: " + i + " ,年龄的3次方: " + x + " ,年龄的四次方: " + y;
return info;
}
}
i++;
}
}
</script>
</body>
</html>
任务三:实现枚举问题 3 关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
任务三:实现枚举问题 3 关键算法并绘制流程图(30 分)
小米打算把图标设计成下面这样,但是他不知道几层最合适,
于是想写个程序,打印出不同层的图标,请你帮帮他。
—
———
—————
———————
注意:输入 n,打印 n 层高度的图标,如图是 4 层。
-->
<script>
var line = Number(prompt("请输入层数"));
for(let i =1;i<=line;i++){
for(let j=line;j>=2*i-i;j--){
document.write("   ")
}
for(let k = 0;k<=2*i-2;k++){
document.write("—")
}
document.write("<br/>")
}
</script>
</body>
</html>
22.试题编号:J1-22《警务系统》关键算法
任务一:实现出警顺序关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务一:实现出警顺序关键算法并绘制流程图(30 分)
有一个整型偶数 n(2<=n <=10000)代表警员总数,你要做的是:
先把 1 到 n 中的所有奇数从小到大输出,再把所有的偶数从小到大 输出,该顺序即为出警顺序。
注意:奇数和偶数的输出各占一行,每个数字后面跟随一个空 格。
-->
<script>
var x = '';
var y = '';
var n = Number(prompt("输入一个数n(2<=n <=10000)"));
for (let i = 1; i <= n; i++) {
if (i % 2 == 0) {
x += i + " ";
} else {
y += i + " ";
}
}
alert(x);
alert(y);
</script>
</body>
</html>
任务二:实现点名计数关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务二:实现点名计数关键算法并绘制流程图(30 分)
相传韩信才智过人,从不直接清点自己军队的人数,只要让士
兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只
看一眼队伍的排尾就知道总人数了。输入 3 个非负整数 a,b,c ,
表示 每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报 告无解)。已知总人数不小于 10,不超过 100 。
例如:输入 1 2 3 输出 52。
注意:使用循环完成。
-->
<script>
var a = Number(prompt("输入非负数a"));
var b = Number(prompt("输入非负数b"));
var c = Number(prompt("输入非负数c"));
for (var i = 10; i <= 100; i++) {
if (i%3==a && i%5==b && i%7==c && a<3 && b<5 && c<7) {
alert(i);
}
}
</script>
</body>
</html>
任务三:实现编号求部门关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务三:实现编号求部门关键算法并绘制流程图(30 分)
现在给你一个整数 N(2<N<1000),代表警员的编号,
现在要 求你写出一个程序,求出从 1~N 个数中的所有素数的和,该和为警 员对应部门的编号。
例如输入:3 输出 1~3 的素数{2,3}的和:5
注意:使用循环结构完成,你需要定义一个 isPrime 方法用于判 断一个数是否是素数。
-->
<script>
var n = Number(prompt("输入整数n(2<N<1000)"));
var sum = 0;
for (var i = 2; i <= n; i++) {
if (isPrime(i)) {
sum += i;
}
}
document.write(sum + " ");
function isPrime(num) {
for (let j = 2; j < num; j++) {
if (num % j == 0) return false;
}
return true;
}
</script>
</body>
</html>
23.试题编号:J1-23《“生活繁琐”计算系统》关键算法
任务一:实现评分计算功能关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务一:实现评分计算功能关键算法并绘制流程图(30 分)
编写一个应用程序,计算并输出一维数组
()中的最大值、最小值和平均值。
-->
<script>
var min = 0;
var max = 0;
var avg = 0;
var arr = [9.8,12,45,67,23,1.98,2.55,45];
for(let i=0;i<arr.length;i++){
avg +=arr[i];
for(let j=0;j<arr.length-1;j++){
if(arr[j]>arr[j+1]){
var temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
min=arr[0];
max = arr[arr.length-1];
avg = avg/arr.length;
alert("最小值: "+min+" 最大值: "+max+" 平均值: "+avg);
</script>
</body>
</html>
任务二:实现规律数字计算关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务二:实现规律数字计算关键算法并绘制流程图(30 分)
计算算式 1+21+22+23+…+2n 的值。
注意:n 由键盘输入,且 2 ≤ n ≤10。
-->
<script>
var strNum = 3;
var num = prompt("输入一个数整数,且 2 ≤ n ≤10");
for (let n = 2; n <= num; n++) {
strNum += Math.pow(2, n);
}
alert(strNum)
</script>
</body>
</html>
任务三:实现个人交税计算功能关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务三:实现个人交税计算功能关键算法并绘制流程图(30 分)
某国的个人所得税草案规定,个税的起征点为 3000 元,分成 7 级,
税率情况见下表,从键盘上输入月工资,计算应交纳的个人所得税。
注意:超出部分按所在税的级数计算,如:一个人的月收入为 6000,
应交个人所得税为:1500*0.05 +((6000-3000)-1500)*0.1=225
请在键盘上输入一个人的月收入,编程实现计算该公民所要交的税。
例如:输入“6000”,则输出“你要交的税为:225”。
-->
<script>
var money = Number(prompt("输入工资"));
alert(get(money));
function get(money) {
money = money - 3000;
var t = 0;
if (money <= 0) {
return '工资太低';
} else {
var m = 1500 * 0.05;
if (money <= 1500) {
t = money * 0.05;
} else if (money > 1500 && money <= 4500) {
t = m + (money - 1500) * 0.1;
} else if (money > 4500 && money <= 9000) {
t = m + (money - 4500) * 0.2 + 3000 * 0.1;
} else if (money > 9000 && money <= 35000) {
t = m + (money - 9000) * 0.25 + 4500 * 0.2 + 3000 * 0.1;
} else if (money > 35000 && money <= 55000) {
t = m + (money - 35000) * 0.30 + 26000 * 0.25 + 4500 * 0.2 + 3000 * 0.1;
} else if (money > 55000 && money <= 80000) {
t = m + (money - 55000) * 0.35 + 20000 * 0.30 + 26000 * 0.25 + 4500 * 0.2 + 3000 * 0.1;
} else {
t = m + (money - 80000) * 0.45 + 25000 * 0.35 + 20000 * 0.30 + 26000 * 0.25 + 4500 * 0.2 + 3000 * 0.1;
}
}
return t;
}
</script>
</body>
</html>
24.试题编号:J1-24《软件协会纳新题库系统》关键算法
任务一:实现最大出现次数统计的关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务一:实现最大出现次数统计的关键算法并绘制流程图(30 分)
编写一个程序,对用户输入的任意一组字符如{3,1,4,7,2, 1,1,2,2},
输出其中出现次数最多的字符,并显示其出现次数。
如果有多个字符 出现次数均为最大且相等,则输出最先出现的那个 字符和它出现的次数。
例如,上面输入的字符集合中,“1”和“2” 都出现了 3 次,
均为最大出现次数,因为“1”先出现,则输出字符 “1”和它出现的次数 3次。
注意:使用分支、循环结构语句实现。
-->
<script>
var arr = prompt("输入任意一组字符,英文逗号分隔").split(",");
var y = [];
for (let j = 0; j < arr.length; j++) {
var x = 0;
for (let i = 0; i < arr.length; i++) {
if (arr[j] == arr[i]) {
x++;
y[j] = arr[j] + "." + x;
}
}
}
let d = Array.from(new Set(y));
let max = (min = 0);
for (let j = 0; j < d.length; j++) {
if (j == 0) {
max = Number(d[j].split(".")[1]);
min = d[j].split(".")[0];
}
if (Number(d[j].split(".")[1]) > max) {
max = d[j].split(".")[1];
min = d[j].split(".")[0];
}
}
document.write(
arr + "<br/><br/> " + d + "<br/><br/> " + min + "出现的次数:" + max
);
</script>
</body>
</html>
任务二:实现求平方根关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务二:实现求平方根关键算法并绘制流程图(30 分)
求 n 以内(不包括 n)同时能被 3 和 7
整除的所有自然数之和 的平方根 s,然后将结果 s 输出。
例如若 n 为 1000 时,则 s=153.909064。
注意:使用循环语句结构实现。 ②n 由键盘输入,且 100 ≤ n ≤10000。
-->
<script>
var n = Number(prompt("输入整数n且 100 ≤ n ≤10000"));
var x = 0;
for(let i=100;i<=n;i++){
if(i%3==0 && i%7==0){
x+=i;
}
}
x = Math.sqrt(x);
alert(x);
</script>
</body>
</html>
任务三:实现求两数之间关系的关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务三:实现求两数之间关系的关键算法并绘制流程图(30 分)
输入整数 a,输出结果 s,其中 s 与 a 的关系是:
s=a+aa+aaa+aaaa+aa...a,最后为 a个 a。例如 a=2 时,s=2+22=24。
注意:①使用循环结构语句实现。②a由键盘输入,且 2 ≤ a ≤9。
-->
<script>
var a = Number(prompt("输入一个整数a且 2 ≤ a ≤9"));
var x = 1;
var s = 0;
for (let i = 1; i <= a; i++) {
s += a * Number(x);
x += '1';
}
alert(s);
</script>
</body>
</html>
25.试题编号:J1-25《网上训练平台》关键算法
任务一:实现小球反弹问题关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务一:实现小球反弹问题关键算法并绘制流程图(30 分)
一个球从 100 米高度自由落下,每次落地后反弹回原高度的一 半,
再落下,再反弹。求它在第十次落地时,共经过多少米?第十次 反弹多高?
注意:使用循环结构语句实现。
-->
<script>
var h = 100;
var sum = 0;
let i;
for (i = 1; i <= 10; i++) {
sum += h;
if (i > 2) { //升高下落
sum += h * 2;
}
h = h / 2;
}
alert('总高度' + sum + '第' + (i - 1) + '次' + '的高度' + h)
</script>
</body>
</html>
任务二:实现停电停多久问题关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务二:实现停电停多久问题关键算法并绘制流程图(30 分)
Lee 的老家住在工业区,日耗电量非常大。今年 7 月,传来了 不幸的消息,
政府要在 7、8 月对该区进行拉闸限电。政府决定从 7 月 1 日起停电,
然后隔一天到 7 月 3 日再停电,再隔两天到 7 月 6 日停电,依次下去,
每次都比上一次长一天。Lee 想知道自己到家 后到底要经历多少天倒霉的停电。
请编写程序帮他算一算。
注意:从键盘输入放假日期、开学日期,日期限定在 7、8 月份,
且开学日期大于放假日期,然后在屏幕上输出停电天数。
-->
<script>
2020 / 7 / 7
var start = prompt('输入放假日期').split("/");
var end = prompt('输入开学日期').split("/");
var day = 0; //假期总天数
if (start[1] == 7 && end[1] == 7) {
day = Number(end[2]);
} else if (start[1] == 7 && end[1] == 8) {
day = 31 + Number(end[2]);
} else {
day = 31 + Number(end[2]);
start[2] = Number(start[2]) + 31;
}
var m = 1; //增加天数条件
var n = 0; //记录停电天数
var getDay = [];
while (true) {
n = m + n;
if (n >= 62) break;
getDay.push(n);
m++;
}
var num = 0;
for (let i = 0; i < getDay.length; i++) {
if (getDay[i] <= day && getDay[i] >= Number(start[2])) {
num++;
}
}
alert(getDay + '停电天数' + num);
</script>
</body>
</html>
任务三:实现筛选奇数问题关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务三:实现筛选奇数问题关键算法并绘制流程图(30 分)
编写程序实现:从键盘输入正整数 s,从低位开始取出 s 中的奇 数位上的数,
依次构成一个新数 t,高位仍放在高位,低位仍放在低 位,最后在屏幕上输出 t。
例如,当 s 中的数为 7654321 时,t 中的 数为 7531。
注意:使用循环结构语句实现。
-->
<script>
var s = prompt('输入正整数').split("");
var get = '';
for (let i = 0; i < s.length; i++) {
if (i % 2 == 0) {
get += s[i];
}
}
alert(get)
// var s = prompt("输入正整数 s").split("");
// var t = [];
// for (let i = 0; i < s.length; i++) {
// if (i % 2 == 0) {
// t.push(s[i]);
// }
// }
// alert(t)
</script>
</body>
</html>
26.试题编号:J1-26《成绩分析系统》关键算法
任务一:实现成绩等级划分功能关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务一:实现成绩等级划分功能关键算法并绘制流程图(30 分)
输入一个百分制的成绩 t,将其转换成对应的等级然后输出,具 体转换规则如下:
90~100 为 A
80~89 为 B
70~79 为 C
60~69 为 D
0~59 为 E
要求:如果输入数据不在 0~100 范围内,请输出一行:“Score is error!”。
-->
<script>
var t = Number(prompt("输入成绩0~100 范围内"));
if (t > 100 || t < 0) {
alert("Score is error!");
}
var get = t >= 90 ? 'A' : (t >= 80 && t < 90) ? 'B' : (t >= 70 && t < 80) ? 'C' : (t >= 60 && t < 70) ? 'D' : 'E';
alert("成绩:" + t + "为" + get);
</script>
</body>
</html>
任务二:实现数列求和功能关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务二:实现数列求和功能关键算法并绘制流程图(30 分)
数列的定义如下:数列的第一项为 n,
以后各项为前一项的平 方根,
输出数列的前 m 项的和。
要求:数列的各项均为正数。
-->
<script>
var n = Number(prompt("输入数列第一项的值为正整数"));
var m = Number(prompt("输入需要得到前多少项的和"));
var arr = [];
var sum = 0;
for (let i = 1; i <= m; i++) {
if (i <= 1) {
arr.push(n);
} else {
arr.push(Math.sqrt(Number(arr[i - 2])));
}
}
alert(arr)
</script>
</body>
</html>
任务三:求前 n 项之和功能关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务三:求前 n 项之和功能关键算法并绘制流程图(30 分)
多项式的描述如下:1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ...,
现在要求 出该多项式的前 n 项的和。
要求:结果保留两位小数。
-->
<script>
var n = Number(prompt("输入n,可得数列前n项的和"));
var x = 1; //第一项的第一个值
var y = ''; //结果的左边
var z = 0; //结果
for (let i = 1; i <= n; i++) {
if (i > 1 && i % 2 == 0) {
y += '-' + 1 + '/' + x;
z = z - 1 / x;
} else if (i > 1 && i % 2 != 0) {
y += '+' + 1 + '/' + x;
z = z + 1 / x;
} else {
y += x;
z = x;
}
x++;
}
alert(y + "=" + z);
</script>
</body>
</html>
27.试题编号:J1-27《酒水销售系统》关键算法
任务一:实现酒水销售 1 关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务一:实现酒水销售 1 关键算法并绘制流程图(30 分)
啤酒每罐 2.3 元,饮料每罐 1.9 元。小明买了若干啤酒和饮料,
一共花了 82.3 元。我们还知道他买的啤酒比饮料的数量少,
请你编 程计算他买了几罐啤酒。
注意:使用循环实现。
-->
<script>
var x, y, z;
for (x = 0; x <= 35; x++) {
for (y = 0; y <= 43; y++) {
if (x * 2.3 + y * 1.9 == 82.3 && x < y) {
z = y - x;
alert("他买的啤酒" + x + "比饮料" + y + "的数量少" + z);
}
}
}
</script>
</body>
</html>
任务二:实现酒水销售 2 关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务二:实现酒水销售 2 关键算法并绘制流程图(30 分)
本月酒水的销售为 2!+4!+5!的值。n!表示 n 的阶乘,
例如 3!=3 ×2×1=6,5!=5×4×3×2×1=120。求这个值。
注意:分别利用递归和非递归方法实现求 n!。
-->
<script>
var n = Number(prompt("输入需要阶乘的整数"));
var x = 0;
for (let i = n; i > 1; i--) {
x = n *= i - 1;
}
alert(x)
</script>
</body>
</html>
任务三:实现酒水销售 3 关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务三:实现酒水销售 3 关键算法并绘制流程图(30 分)
酒水产商临时打算,为系统增加新功能,根据特定算法生产特
定的字符 logo。把 abcd...s 共 19 个字母组成的序列重复拼接 106 次,
得到长度为 2014 的串。接下来删除第 1 个字母(即开头的字母 a),
以及第 3 个,第 5 个等所有奇数位置的字母。得到的新串再进行删
除奇数位置字母的动作。如此下去,最后只剩下一个字母,请编程求解该字母。
注意:使用循环或者递归实现,只需打印最后剩下的那个字母。
-->
<script>
var logo = "abcdefghijklmnopqrs";
var len = '';
for (let i = 1; i < 107; i++) {
len += logo;
}
len = len.split("");
var x = len.length - 1;
while (len.length != 1) {
if (x % 2 == 0) {
len.splice(x, 1);
}
if (x == 0) {
x = len.length;
}
x--;
}
document.write(len)
</script>
</body>
</html>
28.试题编号:J1-28《中学生数学辅助学习系统》关键算法
任务一:实现汽车与摩托问题的关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务一:实现汽车与摩托问题的关键算法并绘制流程图(30 分)
在一个停车场内,汽车、摩托车共停了 48 辆,其中每辆汽车有 4 个轮子,
每辆摩托车有 3 个轮子,这些车共有 172 个轮子,
编程 输出停车场内有汽车和摩托车的数量。
注意:用循环语句实现。
-->
<script>
for (let i = 1; i <= 48; i++) {
for (let j = 1; j < i; j++) {
if (4 * i + 3 * j == 172 && (j + i) == 48) {
alert("汽车: " + i + " 辆,摩托车: " + j + " 辆");
}
}
}
</script>
</body>
</html>
任务二:实现运送暖瓶问题的关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务二:实现运送暖瓶问题的关键算法并绘制流程图(30 分)
某运输队为超市运送暖瓶 500 箱,每箱装有 6 个暖瓶。
已知每 10 个暖瓶的运费为 5 元,损坏一个不但不给运费还要赔 10 元,
运 后结算时,运输队 共得 1332 元的运费。编程输出损坏暖瓶的个数。
注意:用循环语句实现。
-->
<script>
for (let i = 3000; i > 0; i--) {
if ((0.5 + 10) * i == 168) {
alert("损坏的暖瓶数量为:" + i);
}
}
</script>
</body>
</html>
任务三:实现合格电视机问题的关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务三:实现合格电视机问题的关键算法并绘制流程图(30 分)
某电视机厂每天生产电视 500 台,在质量评比中,
每生产一台 合格电视机记 5 分,每生产一台不合格电视机扣 18 分。
如果四天得 了 9931 分,编程计算这四天生产的合格电视机的台数,并输出。
注意:用循环语句实现。
-->
<script>
for (let i = 2000; i > 0; i--) {
if (i * (18 + 5) == (2000 * 5 - 9931)) {
alert("合格数量:" + (2000 - i));
}
}
</script>
</body>
</html>
29.试题编号:J1-29《歌手大赛系统》关键算法
任务一:实现计算平均分功能关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务一:实现计算平均分功能关键算法并绘制流程图(30 分)
小明今天参加了“校园歌手大赛”,评委的打分规则是去掉一
个最低分和一个最高分后算出剩下分数的平均分,你能帮助小明快
速的算出平均分吗? (评委数量必须大于 2)
输入说明:首先输入一个整数 n,代表评委人数,然后输入 n 个数。
请按照题目的计算规则计算出平均分然后输出。
例如输入:
6
100 90 90 80 85 95
按照题目注意计算平均分并输出:
90.0
注意:使用循环和数组实现。
-->
<script>
var n = prompt("输入一个整数 n,代表评委人数");
if (n > 2) {
var arr = prompt("输入 " + n + " 个数代表" + n + "个评委打的分数,用逗号分隔").split(",");
var avg = 0;
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length - 1; j++) {
if (Number(arr[j]) > Number(arr[j + 1])) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
arr[0] = arr[arr.length - 1] = 0;
for (let k = 0; k < arr.length; k++) {
avg += Number(arr[k]);
}
alert("平均分为:" + (avg / (arr.length - 2)));
}
</script>
</body>
</html>
任务二:实现查数功能关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务二:实现查数功能关键算法并绘制流程图(30 分)
求 n(2<=n<=10)个整数中倒数第二小的数。
每一个整数都独 立看成一个数,比如,有三个数分别是 1,1,3,
那么,第二小的 数就是 1。(每个数 均小于 100)
说明:首先输入一个整数 n,然后输入 n 个数。请输出第 2 小 的数。
例如输入:
5
-5 -10 10 50 80
程序输出第 2 小的数:-5
注意:使用循环实现。
-->
<script>
var n = prompt("输入一个整数 n(2<=n<=10)");
var arr = prompt("后输入 " + n + "个数,以逗号分隔").split(",");
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length - 1; j++) {
if (Number(arr[j]) > Number(arr[j + 1])) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
alert("程序输出第 2 小的数:" + arr[1])
</script>
</body>
</html>
任务三:实现分数排序功能关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务三:实现分数排序功能关键算法并绘制流程图(30 分)
小明的老师今天教了冒泡排序,但是小明在网上找到一种更加
方便的排序,但是小明不会使用,你能帮帮他吗?
定义一个 n 输入 n(0<n<1000)然后输入 n 正整数,输出从小到大输入结果
注意:按照题目描述完成程序,使用 sort 方法实现。
-->
<script>
var n = prompt("输入 n(0<n<1000)");
var arr = prompt("输入 n 正整数,逗号分隔").split(",");
for (let i = 0; i < arr.length; i++) {
arr[i] = Number(arr[i]);
}
//升序
arr.sort((a, b) => {
return a - b;
})
//降序
// arr.sort((a, b) => {
// return b - a;
// })
alert(arr);
</script>
</body>
</html>
30.试题编号:J1-30《英语辅导系统》关键算法
任务一:实现趣味英语试题 1 关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务一:实现趣味英语试题 1 关键算法并绘制流程图(30 分)
已知字符串数组 A,包含初始数据:a1,a2,a3,a4,a5;
字符串数 组 B,包含初始数据:b1,b2,b3,b4,b5。
编写程序将数组 A、B 的每 一对应数据项相连接,
然后存入字符串数组 C,并输出数组 C。输 出结果为:a1b1,a2b2,a3b3,a4b4,a5b5。
例如:数组 A 的值为{“Hello ” , “Hello ” , “Hello ” , “Hello ” , “Hello ” },
数组 B 的值为{“Jack” , “Tom” , “Lee” , “John” , “Alisa” },
则输出结果为{“Hello Jack” , “Hello Tom” , “Hello Lee” , “Hello John” , “Hello Alisa” }。
注意:定义 2 个字符串数组 A、B,用于存储读取数据。定义数 组 C,用于输出结果。
①使用循环将数组 A、B 的对应项相连接,结果存入数组 C。
②使用循环将数组 C 中的值输出。
-->
<script>
var a = prompt("输入数组a的内容元素用逗号分隔").split(",");
var b = prompt("输入数组b的内容元素用逗号分隔").split(",");
var c = new Array(a.length);
for (let i = 0; i < a.length; i++) {
c[i] = a[i] + b[i];
}
alert(c)
</script>
</body>
</html>
任务二:实现趣味英语试题 2 关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务二:实现趣味英语试题 2 关键算法并绘制流程图(30 分)
判断一个字符串是否是对称字符串,
例如:“abc”不是对称字 符串,“aba”、“abba”、“aaa”、“mnanm”是对称字符串。
是 的话输出“Yes”,否则输出“No”。
注意:使用循环和判断语句实现。
-->
<script>
var str = prompt("判断输入字符串是否是对称字符串");
var before = '';
var after = '';
if (str.length % 2 == 0) {
before = str.substr(0, str.length / 2); //str.length / 2 字符串长度为双数时取其长度一半的字符串(length==0到str.length / 2 位置的字符串)
after = str.substr(str.length / 2, str.length - 1);
} else {
before = str.substr(0, (str.length - 1) / 2); //(str.length - 1) / 2 字符串长度为单数时取其长度减一,一半的字符串(前半部分)
after = str.substr((str.length + 1) / 2, str.length - 1); //(str.length + 1) / 2 字符串长度为单数时取其长度加一,一半的字符串(后半部分)
}
var getAfter = '';
for (let i = after.length - 1; i >= 0; i--) {
getAfter += after.substr(i, 1);
}
if (before == getAfter) {
alert("yes")
} else {
alert("no")
}
</script>
</body>
</html>
任务三:实现趣味英语试题 3 关键算法并绘制流程图(30 分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
任务三:实现趣味英语试题 3 关键算法并绘制流程图(30 分)
编写一个程序实现统计一串字符串中的英文小写字母个数!例
如:输入“axZvnNgOuyi”,得到的值应该是 8;
注意:使用分支语句实现,且有输入输出,直接输出不计分
-->
<script>
var str = prompt("输入字符串");
var time = 0;
for (let i = 0; i < str.length; i++) {
if (str.substr(i, 1).match(/[a-z]/)) {
time++;
}
}
alert(time);
</script>
</body>
</html>