JS基礎篇3--JS基礎練習題


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>


免責聲明!

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



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