js基礎練習題
01-1到100整數累加和
<script>
// for 循環重復執行某些操作 比如說我們做了100次加法運算
// 求 1~100 之間的整數累加和
// 需要循環100次,我們需要一個計數器 i
// 我們需要一個存儲結果的變量 sum ,但是初始值一定是 0
// 核心算法:1 + 2 + 3 + 4 .... ,sum = sum + i;
var sum = 0; // 求和 的變量
for (var i = 1; i <= 100; i++) {
// sum = sum + i;
sum += i;
}
console.log(sum);
</script>
02-判斷閏年
<script>
// 算法:能被4整除且不能整除100的為閏年(如2004年就是閏年,1901年不是閏年)或者能夠被 400 整除的就是閏年
// 彈出prompt 輸入框,讓用戶輸入年份,把這個值取過來保存到變量中
// 使用 if 語句來判斷是否是閏年,如果是閏年,就執行 if 大括號里面的輸出語句,否則就執行 else里面的輸出語句
// 一定要注意里面的且 && 還有或者 || 的寫法,同時注意判斷整除的方法是取余為 0
var year = prompt('請您輸入年份:');
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) {
alert('您輸入的年份是閏年');
} else {
alert('您輸入的年份是平年');
}
</script>
03-100之間所有數的平均值
<script>
var sum = 0;
var average = 0;
for (var i = 1; i <= 100; i++) {
sum = sum + i;
}
average = sum / 100;
console.log(average);
</script>
04-1到100之間所有偶數和奇數的和
<script>
var even = 0;
var odd = 0;
for (var i = 1; i <= 100; i++) {
if (i % 2 == 0) {
even = even + i;
} else {
odd = odd + i;
}
}
console.log('1~100 之間所有的偶數和是' + even);
console.log('1~100 之間所有的奇數和是' + odd);
</script>
05-1到100之間所有能被3整除的數字的和
<script>
var result = 0;
for (var i = 1; i <= 100; i++) {
if (i % 3 == 0) {
// result = result + i;
result += i;
}
}
console.log('1~100之間能夠被3整數的數字的和是:' + result);</script>
06-判斷成績
<script>
// 偽代碼 按照從大到小判斷的思路
// 彈出prompt輸入框,讓用戶輸入分數(score),把這個值取過來保存到變量中
// 使用多分支 if else if 語句來分別判斷輸出不同的值
var score = prompt('請您輸入分數:');
if (score >= 90) {
alert('寶貝,你是我的驕傲');
} else if (score >= 80) {
alert('寶貝,你已經很出色了');
} else if (score >= 70) {
alert('你要繼續加油嘍');
} else if (score >= 60) {
alert('孩子,你很危險');
} else {
alert('熊孩子,我不想和你說話,我只想用鞭子和你說話');
}
</script>
07-數字補0
<script>
// 用戶輸入0~59之間的一個數字
// 如果數字小於10,則在這個數字前面補0,(加0 拼接) 否則 不做操作
// 用一個變量接受這個返回值,輸出
var time = prompt('請您輸入一個 0 ~ 59 之間的一個數字');
// 三元表達式 表達式 ? 表達式1 :表達式2
var result = time < 10 ? '0' + time : time; // 把返回值賦值給一個變量
alert(result);
</script>
08-求學生成績
<script>
// 彈出輸入框輸入總的班級人數(num)
// 依次輸入學生的成績( 保存起來 score), 此時我們需要用到
// for 循環, 彈出的次數跟班級總人數有關系 條件表達式 i <= num
// 進行業務處理: 計算成績。 先求總成績( sum), 之后求平均成績( average)
// 彈出結果
var num = prompt('請輸入班級的總人數:'); // num 總的班級人數
var sum = 0; // 求和的變量
var average = 0; // 求平均值的變量
for (var i = 1; i <= num; i++) {
var score = prompt('請您輸入第' + i + '個學生成績');
// 因為從prompt取過來的數據是 字符串型的需要轉換為數字型
sum = sum + parseFloat(score);
}
average = sum / num;
alert('班級總的成績是' + sum);
alert('班級平均分是:' + average);
</script>
09-打印正三角
<script>
str=''
for(var i=1;i<10;i++){
for(var j=1;j<=i;j++){
str+='*';
}
str+='\n';
}
console.log(str);
</script>
10-打印倒三角形
<script>
// 打印倒三角形案例
//第一種方法:
var str = '';
for (var i = 1; i <= 10; i++) { // 外層循環控制行數
for (var j = i; j <= 10; j++) { // 里層循環打印的個數不一樣 j = i
str = str + '★';
}
str += '\n';
}
console.log(str);
//第二種方法:
var str = '';
for (var i = 1; i <= 10; i++) { // 外層循環控制行數
for (var j = 1; j <= 11-i; j++) { // 里層循環打印的個數不一樣 j從1加到總行數減循環行數,j++
str = str + '★';
}
str += '\n';
}
console.log(str);
//第三種方法:
var str = '';
for (var i = 1; i <= 10; i++) { // 外層循環控制行數
for (var j = 11-i; j >= 1; j--) { // 里層循環打印的個數不一樣 j等於總行數減循環行數,j--
str = str + '★';
}
str += '\n';
}
console.log(str);
//第四種方法:
var str = '';
for (var i = 1; i <= 10; i++) { // 外層循環控制行數
for (var j = 10; j >= i; j--) { // 里層循環打印的個數不一樣 j等於總行數,j大於等於循環行數,j--
str = str + '★';
}
str += '\n';
}
console.log(str);
</script>
11-等腰三角形
<script>
// 要做出等腰三角形,就要找等腰三角形的規律,
// 我們可以把等腰三角形看作是梯形,由兩個三角形組成
//第一種方法:
var str='';
var columns=prompt("輸入幾行:")
for(var i = 0; i<columns; i++)
{
//for循環打印出倒三角
for(var j =0; j<columns-i-1; j++)
{
str+=" ";
}
//for循環
for(var k=0; k<(i*2+1); k++)
{
str+="*";
}
str+="\n";
}
alert(str);
//第二種方法:
var str='';
var columns=prompt("輸入幾行:")
for(var i = 1; i <= (columns+1)/2; i++) {
for(var m = 1; m <= (columns+1)/2-i; m++ )
{
str+=" ";
}
//for循環
for(var j = 1; j <= 2*i-1; j++)
{
str+="*";
}
str+="\n";
}
alert(str);
</script>
12-九九乘法表
<script>
// 九九乘法表
// 一共有9行,但是每行的個數不一樣,因此需要用到雙重 for 循環
// 外層的 for 循環控制行數 i ,循環9次 ,可以打印 9 行
// 內層的 for 循環控制每行公式 j
// 核心算法:每一行 公式的個數正好和行數一致, j <= i;
// 每行打印完畢,都需要重新換一行
var str = '';
for (var i = 1; i <= 9; i++) { // 外層循環控制行數
for (var j = 1; j <= i; j++) { // 里層循環控制每一行的個數 j <= i
str += j + '×' + i + '=' + i * j + '\t';
}
str += '\n';
}
console.log(str);
</script>
js數組練習題
01-求數組中的最大值和最小值
<script>
// 求數組[2,6,1,77,52,25,7]中的最大值
// 聲明一個保存最大元素的變量 max。
// 默認最大值可以取數組中的第一個元素。
// 遍歷這個數組,把里面每個數組元素和 max 相比較。
// 如果這個數組元素大於max 就把這個數組元素存到 max 里面,否則繼續下一輪比較。
// 最后輸出這個 max
var arr = [2, 6, 1, 77, 52, 25, 7, 99];
var max = arr[0];
for (var i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
var arry = [1, 2, 3, 4, 5, 6, 7, 8];
var min = arry[0];
for (var i = 1; i < arry.length; i++) {
if (min> arry[i]) {
min = arry[i];
}
}
console.log('該數組里面的最小值是:' + min);
</script>
02-數組轉換為字符串
<script>
// 將數組 ['red', 'green', 'blue', 'pink'] 轉換為字符串,並且用 | 或其他符號分割
// 需要一個新變量用於存放轉換完的字符串 str。
// 遍歷原來的數組,分別把里面數據取出來,加到字符串里面。
// 同時在后面多加一個分隔符
var arr = ['red', 'green', 'blue', 'pink'];
var str = '';
var str1 = '';
var sep = '*';
for (var i = 0; i < arr.length; i++) {
str += arr[i] + sep;
}
console.log(str);
var arr1 = [7, 6, 9, 7, 8];
for (var i = 0; i < arr1.length; i++) {
str1 += arr1 [i] ;
}
console.log(str1);
</script>
03-數組存放1_10個值
<script>
// 新建一個數組,里面存放10個整數( 1~10)
// 核心原理:使用循環來追加數組。
// 1、聲明一個空數組 arr。
// 2、循環中的計數器 i 可以作為數組元素存入。
// 3、由於數組的索引號是從0開始的, 因此計數器從 0 開始更合適,存入的數組元素要+1。
var arr = [];
for (var i = 0; i < 100; i++) {
// arr = i; 不要直接給數組名賦值 否則以前的元素都沒了
arr[i] = i + 1;
}
console.log(arr);
</script>
04-篩選數組
<script>
// 將數組 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大於等於 10 的元素選出來,放入新數組。
// 1、聲明一個新的數組用於存放新數據newArr。
// 2、遍歷原來的舊數組, 找出大於等於 10 的元素。
// 3、依次追加給新數組 newArr。
// 方法1
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = [];
var j = 0;
for (var i = 0; i < arr.length; i++) {
if (arr[i] >= 10) {
// 新數組索引號應該從0開始 依次遞增
newArr[j] = arr[i];
j++;
}
}
console.log(newArr);
// 方法2
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = [];
// 剛開始 newArr.length 就是 0
for (var i = 0; i < arr.length; i++) {
if (arr[i] >= 10) {
// 新數組索引號應該從0開始 依次遞增
newArr[newArr.length] = arr[i];
}
}
console.log(newArr);
</script>
05-數組去重(刪除指定數組元素)
<script>
// 將數組[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]中的 0 去掉后,形成一個不包含 0 的新數組。
// 1、需要一個新數組用於存放篩選之后的數據。
// 2、遍歷原來的數組, 把不是 0 的數據添加到新數組里面(此時要注意采用數組名 + 索引的格式接收數據)。
// 3、新數組里面的個數, 用 length 不斷累加。
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] != 0) {
newArr[newArr.length] = arr[i];
}
}
console.log(newArr);
</script>
06-翻轉數組
<script>
// 將數組 ['red', 'green', 'blue', 'pink', 'purple'] 的內容反過來存放
// 1、聲明一個新數組 newArr
// 2、把舊數組索引號第4個取過來(arr.length - 1),給新數組索引號第0個元素 (newArr.length)
// 3、我們采取 遞減的方式 i--
var arr = ['red', 'green', 'blue', 'pink', 'purple', 'hotpink'];
var newArr = [];
for (var i = arr.length - 1; i >= 0; i--) {
newArr[newArr.length] = arr[i]
}
console.log(newArr);
</script>
07-冒泡排序
<script>
// 冒泡排序
// var arr = [5, 4, 3, 2, 1];
var arr = [4, 1, 2, 3, 5];
for (var i = 0; i <= arr.length - 1; i++) { // 外層循環管趟數
for (var j = 0; j <= arr.length - i - 1; j++) { // 里面的循環管 每一趟的交換次數
// 內部交換2個變量的值 前一個和后面一個數組元素相比較
if (arr[j] < arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);
</script>
js方法練習題
01-利用函數實現求數組的和,及平均值
<script>
//1.利用函數實現求數組的和,及平均值
//思路:寫一個函數,for循環,讓得到的值自加,返回值的和
var arr = [1, 2, 3, 5, 86, 43];
function sumArr(arr) {
var sum = 0;
for (var i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
var result = sumArr(arr);
alert(result);
var avg = result / arr.length;
alert(avg);
</script>
02-求數組的冒泡排序
<script>
//求數組的冒泡
var arr=[2,143,43,6456,678,43,3,232,298];
//函數冒泡
function sort(arr){
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr.length;j++){
if(arr[j]<arr[j+1]){
var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
var result=sort(arr);
alert(result);
</script>
03-利用函數函數求數組的最大值,和最小值
<script>
//3利用函數函數求數組的最大值,和最小值
var arr=[3234,234,5,6,67,86,8987,4321];
//創建一個函數,循環遍歷,通過if語句判斷
function getMax(arr){
var max=arr[0];
var min=arr[0];
//求最大值
for(var i=0;i<arr.length;i++){
if(arr[i] >max){
max=arr[i];
}
}
alert('最大值為:'+max);
//求最小值
for(var i=0;i<arr.length;i++){
if(arr[i]<min){
min=arr[i];
}
}
alert('最小值為:'+min);
}
getMax(arr);
</script>
04-反轉數組
<script>
//4.反轉數組
//創建一個方法,
function rervse (){
var arr=[];
//創建一個新數組,把傳進去的數字用偽數組保存,
// 然后到序遍歷偽數組將遍歷的結果保存到新數組中去
for(var i=arguments.length;i>=0;i--){
arr[arr.length]=arguments[i];
}
return arr;
}
var newArr=rervse(1,2,3,4,5,6,7,8,9,10);
alert(newArr)
</script>
05-實現判斷閏年然后提示2月有多少天
<script>
// 6實現判斷閏年然后提示2月有多少天
var year = prompt('請輸入一個年份:');
//寫一個函數,判斷閏年
function isRunYear(year) {
if (year % 400 == 0 || year % 4 == 0 && year % 100 !=0){
return year+"年二月有28天";
}
return year+"年二月有29天";
}
var result=isRunYear(year);
alert(result);
</script>
06-實現任意兩數之間的和
<script>
//7實現任意兩數之間的和
//寫一個函數,定義從num1到num2之間的for循環
var num1=prompt('請輸入第一個數:');
var num2=prompt('請輸入第二個數:');
function getSum(num1,num2){
var sum=0;
for(var i=num1;i<=num2;i++){
sum=Number(i)+Number(sum);
}
return sum;
}
var result=getSum(num1,num2);
alert("從"+num1+"到"+num2+"的和為:"+result)
</script>
07-算術器
<script>
//1.算術器
//讓用戶輸入數字和運算符
var suansufu = prompt('請輸入運算符:');
var num1 = prompt('請輸入第一個數字:');
var num2 = prompt('請輸入第二個數字:');
var sum = 0;
//定義一個方法,當用戶輸入運算符和數字就執行相對的操作
function suanshuqi(suansufu, num1, num2) {
var flag = true;
while (flag) {
if (suansufu == '+') {
sum = Number(num1) + Number(num2);
alert(num1 + suansufu + num2 + '=' + sum);
flag = false;
} else if (suansufu == '-') {
sum = num1 - num2;
alert(num1 + suansufu + num2 + '=' + sum);
flag = false;
} else if (suansufu == '*') {
sum = num1 * num2;
alert(num1 + suansufu + num2 + '=' + sum);
flag = false;
} else if (suansufu == '/') {
sum = (num1 / num2).toFixed(2);
alert(num1 + suansufu + num2 + '=' + sum);
flag = false;
} else {
var suansufu = prompt("輸入錯誤,請重新輸入運算符:");
}
}
}
//調用當前方法
suanshuqi(suansufu, num1, num2);
</script>
08-得到兩個數的最大值
09-比較三個數的最大值
<script>
//第三題
//讓用戶輸入三個數:
var num1 = prompt('請輸入第一個數:');
var num2 = prompt('請輸入第二個數:');
var num3 = prompt('請輸入第二個數:');
//創建一個方法,用於比較三個數的最大值
function getMax(num1, num2, num3) {
if (num1 > num2) {
if (num1 > num3) {
return num1;
} else {
return num3;
}
} else if (num1 < num2) {
if (num2 > num3) {
return num2;
} else {
return num3;
}
}
}
var result = getMax(num1, num2, num3);
alert('最大值為:' + result);
</script>
10-判斷素數
<script>
//判斷素數
//輸入一個數:
var sushu = prompt("請輸入一個數:");
//創建一個方法,用於判斷素數
function isSuShu(sushu) {
//等於二時,判斷為素數
if (sushu == 2) {
alert("2為素數");
}
//否則for循環,當取余該數時,余0,這說明該數不是素數
for (var i = 2; i < sush / 2; i++) {
if (sushu % i == 0) {
alert(sushu + "不是素數");
break;
}
}
}
isSuShu(sushu);
</script>