天天看點

JSP的基本邏輯題day01day02day03day04day05day06day07

day01

1 字元串轉數字的方式有幾種?

3種

1、number

2、parseInt

3、parseFloat

2 數字轉字元串的方式有幾種?

2種

1、tostring

2、用+号連接配接符

3 +有兩個含義,連字元和加法運算。請問什麼情況下是連字元,什麼情況下是加法運算?

當都是數字的時候是加法運算符,當一個是數字一個是字元串就是連接配接符;

4 JS中一共有多少種資料類型?分别是?各寫出它們的一個值。

js中的資料類型一共有6種,分為兩大類:基本類型、引用類型

基本類型包括:字元串、數字、布爾、undefined、null

對于字元串var str = “13522fbwfbe”;

var number = 133;

var bool = False;

var a;

var a = null;

5 邏輯運算符有哪幾個?請對它們做一個總結。

&&與運算,就是都為真才為真,有一個假就為假;

|| 邏輯或 兩側有真就真,都假才假

!隻能夠寫在某一個變量的左側 會對它進行取反操作 最終結果為true或者false

6 JS代碼可以寫在哪裡?推薦位置?

可以寫在head中,也可以寫在body中,也可以在外面引用,一般最好的是放在body中;

7 你喜歡使用VScode嗎?感覺怎麼樣?

很輕便好用

day02

判斷一個整數,屬于哪個範圍:大于0;小于0;等于0

var num = +prompt("請輸入一個數:");
    if (num > 0) {
        document.write("大于0");
    } else if ( num = 0){
        document.write("等于0");
    } else{
        document.write("小于0");
    }
           

判斷一個整數是偶數還是奇數,并輸出判斷結果

var num = +prompt("請輸入一個數:");
    if (num % 2 === 0) {
        document.write(num + "是偶數");
    } else if ( num % 2 === 1){
        document.write(num + "是奇數");
    }
           

開發一款軟體,根據公式(身高-108)*2=體重,可以有10斤左右的浮動。來觀察測試者體重是否合适

var num = +prompt("請輸入你的身高:");
    var wid = (num - 108) * 2;
    var hei = +prompt("請輸入你的體重:");
    if ( hei >= wid - 10 && hei <= wid + 10){
        document.write("正常");
    }else if( hei > wid + 10){
        document.write("偏胖");
    }else if ( hei < wid - 10){
        document.write("有點偏瘦");
    }
           

案例:輸入分數,判定成績等級(if和switch兩種寫法)

var score = +prompt("請輸入你分數:");
    if (score <60){
        document.write("沒有及格");
    }else if (score >=60 && score <80){
        document.write("及格");
    }else if ( score >= 80 && score < 90){
        document.write("良好");
    }else if( score >=90 && score < 100){
        document.write("優秀");
    }
    var score = +prompt("請輸入你分數:");





    switch (parseInt(score / 10)){
        case 6:
            document.write("及格");
            break;
        case 7:
            document.write("及格");
            break;
        case 8:
            document.write("良好");
            break;
        case 9:
            document.write("優秀");
            break;
        case 10:
            document.write("優秀");
            break;
        default:
            document.write("沒有及格");
            break;
    }
           

輸入月份,顯示當月的天數

要求:利用case落空簡化代碼 如果是2月 則預設為28天即可

var month = +prompt(“請輸入你月份:”);

switch (month){
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            document.write("31天");
            break;
        case 4:
        case 6:
        case 9:
        case 11:
            document.write("30天");
            break;
        case 2:
            document.write("28天");
            break;
    }
           

根據輸入的内容判斷是幾月 輸入1 顯示1月 輸入2 顯示2月 輸入3 顯示三月 以此類推

var month = +prompt(“請輸入你月份:”);

switch (month){
        case 1:
            document.write("31天");
            break;
        case 3:
            document.write("31天");
            break;
        case 5:
            document.write("31天");
            break;
        case 7:
            document.write("31天");
            break;
        case 8:
            document.write("31天");
            break;
        case 10:
            document.write("31天");
            break;
        case 12:
            document.write("31天");
            break;
        case 4:
            document.write("30天");
            break;
        case 6:
            document.write("30天");
            break;
        case 9:
            document.write("30天");
            break;
        case 11:
            document.write("30天");
            break;
        case 2:
            document.write("28天");
            break;
    }
           

根據輸入的三個數字,判斷是這一年的第幾天

例如:

javascript

var year = 2019

var month = 8

var day = 20

結論:

232

script>
        var year = +prompt("請輸入你的年份:");
        var month = +prompt("請輸入你月份:");
        var day = +prompt("親輸入天數:");
        if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0){
          switch(month){
            case 1:
                document.write(day);
                break;
            case 2:
                document.write(31 + day);
                break;
            case 3:
                document.write(60 + day);
                break;
            case 4:
                document.write(91 + day);
                break;
            case 5:
                document.write(121 + day);
                break;
            case 6:
                document.write(152 + day);
                break;
            case 7:
                document.write(182 + day);
                break;
            case 8:
                document.write(213 + day);
                break;
            case 9:
                document.write(244 + day);
                break;
            case 10:
                document.write(274 + day);
                break;
            case 11:
                document.write(305 + day);
                break;
            case 12:
                document.write(335 + day);
                break;
           }  
        }else{
            switch(month){
            case 1:
                document.write(day);
                break;
            case 2:
                document.write(31 + day);
                break;
            case 3:
                document.write(29 + day);
                break;
            case 4:
                document.write(90 + day);
                break;
            case 5:
                document.write(120 + day);
                break;
            case 6:
                document.write(151 + day);
                break;
            case 7:
                document.write(181 + day);
                break;
            case 8:
                document.write(212 + day);
                break;
            case 9:
                document.write(243 + day);
                break;
            case 10:
                document.write(273 + day);
                break;
            case 11:
                document.write(304 + day);
                break;
            case 12:
                document.write(334 + day);
                break;
           }  
        }

        
    </script>
           

day03

1 有一個棋盤,有64個方格,在第一個方格裡面放1粒芝麻重量是0.00001kg,第二個裡面放2粒,第三個裡面放4,棋盤上放的所有芝麻的重量

<script>

        var wd = 0;

        for (var i = 1; i <=64; i++){

            wd += Math.pow(2, (i-1))*0.00001;

        }

        console.log("芝麻的重量是:"+wd);

</script>
           

2 求1+2!+3!+…+20!的值

2! 表示 2 的階乘 2 * 1

3! 表示 3 的階乘 3 * 2 * 1

<script>

        var count = 1;

        var sum = 0;

      for (var i = 1; i <= 20; i++){

        for ( var j = 1; j <=i; j++){

            count *= j;

        }

        sum += count;

      }

      console.log("總和是:"+sum);

</script>
           

3 使用函數完成第一題

<script>

        function zhima(){

        var wd = 0;

        for (var i = 1; i <=64; i++){

            wd += Math.pow(2, (i-1))*0.00001;

        }

        console.log("芝麻的重量是:"+wd);

        }

        zhima();

        var zhima = function(){

        var wd = 0;

        for (var i = 1; i <=64; i++){

            wd += Math.pow(2, (i-1))*0.00001;

        }

        console.log("芝麻的重量是:"+wd);

        }

        zhima();

</script>
           

4 寫一個函數 傳遞一個數字 求該數字的階乘

<script>

        function jiecheng(num1){

            var count = 1;

            for (var i = 1; i <= num1; i++){

                count *= i;

            }

            console.log(num1 + "的階乘是" + count);

        }

        jiecheng(3);

</script>
           

5 使用函數 完成第二題

<script>

        function jiecheng1(){

        var count = 1;

        var sum = 0;

        for (var i = 1; i <= 20; i++){

        for ( var j = 1; j <=i; j++){

            count *= j;

        }

        sum += count;

      }

        console.log("總和是:"+sum);

        }

        jiecheng1();

</script>
           

6 從 100 ~ 1000 找到一個三位數字一樣的數字

<script>

        function Threesame(){

            for ( var i = 100; i<=1000; i++){

                if ((parseInt(i / 100) === (i % 10)) && ((parseInt(i / 100) === (parseInt(i / 10) % 10))) && ((i % 10) === (parseInt(i / 10) % 10))){

                    console.log("三位數字一樣的數字:"+i);

                }

            }
        }
        Threesame();

</script>
           

7 定義一個函數,求任意

<script>

        function Threesum(num1, num2, num3){
            var sum = num1 + num2 + num3;
            console.log("3個數字的和:"+sum);
        }
        Threesum(1, 2, 3);

</script>
           

8 選做題: 定義一個函數,求任意個數字的和

<script>

            function sum(){

                var s = 0;

                for(var i = 0; i < arguments.length; i++){

                    s += arguments[i];

                }

                console.log("合是"+s);

            }
           sum(1, 2, 3);

</script>
           

day04

1 編寫一個函數,計算兩個數字的和、差、積、商

要求:使用傳參的形式

<script>
        function calculate(a, b, c){
            switch(c){
                case "+":
                    sum = a + b;
                    return sum;
                    break;
                case "-":
                    poor = a - b;
                    return poor;
                    break;
                case "*":
                    pro = a * b;
                    return pro;
                    break;
                case "/":
                    shang = a / b;
                    return shang;
                    break;
                default:
                    document.write("不好意思,超出範圍了!");
                    }
                }
        var a = +prompt("請輸入一個數字:");
        var c = prompt("請輸入:");
        var b = +prompt("請輸入一個數字:");
        var d = calculate(a, b, c);
        document.write("結果是"+d);
                       
</script>
           

2 編寫一個函數,計算三個數字的大小,按從小到大順序輸出

<script>
        function compare(a, b, c){
            if (a > b && a > c){
                if (b > c){
                    console.log(a, b, c);
                }else{
                    console.log(a, c, b);
                }
            }else if(a < b && a > c){
                    console.log(b, a, c);
            }else if(a >b && a < c){
                    console.log(c, a, b);
            }else if(a < b && a < c){
                    if (b > c){
                        console.log(b, c, a);
                    }else{
                        console.log(c, b, a);
                    }

                }
            }
        var a = +prompt("請輸入一個數字:");
        var b = prompt("請輸入一個數字:");
        var c = +prompt("請輸入一個數字:");
        compare(a, b, c);        
</script>
           

3 編寫任意個數字的求和、差、積、商的函數

<script>
                function cocalculate(){
                    var a = prompt("請輸入求的方式:");
                    switch (a){
                        case "+":
                            var sum = 0;
                            for (var i = 0; i < arguments.length; i++){                            
                                sum += arguments[i];
                                }
                            console.log(sum);
                            break;
                        case "-":
                                var poor = arguments[0];
                            for (var j = 1; j < arguments.length; j++){
                                poor -= arguments[j];
                                }
                            console.log(poor);
                            break;
                        case "*":
                                var pro = arguments[0];
                            for (var k = 1; k < arguments.length; k++){
                                pro *= arguments[k];
                                }
                            console.log(pro);
                            break;
                        case "/":
                                var shang = arguments[0];
                            for (var s = 1; s < arguments.length; s++){
                                shang /= arguments[s];
                                }
                            console.log(shang);
                            break;
                    }
                }
                cocalculate(1,2,3,4);
            </script>
           

4 編寫一個函數求一個數字是否是質數

<script>
                function pn(num){
                    for(var i = 2; i < num; i++){
                        if(num % i == 0){
                            console.log(num+"不是質數");
                            return;
                        }
                    }
                    console.log(num+"是質數");
                }
                var num = +prompt("請輸入一個數:");
                pn(num);
</script>
           

5 編寫一個函數求兩個數字之間有多少個質數

例如:fn(100, 200) ,在控制台輸出 100 - 200 之間的所有質數

<script>
                function pn(num){
                    for(var i = 2; i < num; i++){
                        if(num % i == 0){
                            console.log(num+"不是質數");
                            return 0;
                        }
                    }
                    console.log(num+"是質數");
                    return 1;
                }
                function pns(num,num1){
                    var count = 0;
                    if (num1 > num){
                        for (num; num <= num1; num++){
                           count += pn(num);
                        }
                    }else{
                        for (num1; num1 <= num; num1++){
                           count += pn(num1);
                        } 
                    }
                    console.log(count);
                }
                var num = +prompt("請輸入一個數:");
                var num1 = +prompt("請輸入一個數:");
                pns(num, num1);
                
        </script>
           

6 編寫一個函數,計算任意兩個數字之間所能組成的奇數個數,數字必須是個位數

比如: 計算0-3之間能組成的奇數個是01、03、11、13、21、23、31、33

<script>
               function jishu(a, b){
                   var count = 0;
                    for (var j = a; j <= b;j++ ){
                        for (var i = a; i <= b; i++){
                            var d = Number(j + '' + i);
                            if(d % 2 != 0){
                                console.log(d+"是奇數");
                                count ++;
                            }
                        }
                    }
                    console.log(count);
               }
                
               jishu(0, 3);
</script>
           

7 某個公司采用公用電話傳遞資料資料是四位的整數,在傳遞過程中是加密的

加密規則如下:

每位數字都加上5

然後用除以10的餘數代替該數字

再将第一位和第四位交換

第二位和第三位交換

請編寫一個函數,傳入原文,輸出密文

<script>
               function jiami(num){
                   var qian = parseInt(num / 1000);
                   var bai = (parseInt(num / 100)) % 10;
                   var shi = parseInt((num % 100) / 10);
                   var ge = num % 10;
                   var gqian = (qian + 5) % 10;
                   var gbai = (bai + 5) % 10;
                   var gshi = (shi + 5) % 10;
                   var gge = (ge + 5) % 10;
                   var g1 = gqian;
                   gqian = gge;
                   gge = g1;
                   var g2 = gbai;
                   gbai = gshi;
                   gshi = g2;
                   return gqian*1000 + gbai * 100 + gshi*10 + gge;
               }
               
               var b = +prompt("請輸入一個4位數:");
               var d = jiami(b);
               console.log(d);
</script>
           

day05

  1. 定義一個含有30個整型元素的數組,按順序分别賦予從2開始的偶數;然後按順序每五個數求出一個平均值,放在另一個數組中并輸出。試程式設計。

    var arr = [2, 4, 6, 8, …, 60]

    // 結果是一個新的數組

    // [6, 16, 26, 36, 46, 56]

<script>
        var arr = [];
        var arr2 = [];
        var num = 0;
        for(var i = 0; i < 30; i++){
            arr[i] = 2 *(i + 1);
            if((i+1) % 5 === 0){
                var count = 0;
                for(var j = 0; j < 5;j++){
                    count += arr[i-j];
                }
                arr2[num] = count / 5;
                num++;
            }
        }
        console.log(arr2);
</script>

           
  1. 通過循環按行順序為一個5×5的二維數組a賦1到25的自然數試程式設計。

    [

    [1, 2, 3, 4, 5],

    [6, 7, 8, 9, 10],

    [11, 12, 13, 14, 15],

    [16, 17, 18, 19, 20],

    [21, 22, 23, 24, 25]

    ]

<script>
        var arr = Array(5);
        var arr1 = Array(5);
        var count = 0;
        for(var i = 0; i < 5;i++){
            for(var j = 0; j < 5; j++){
                arr[j]=j+1+count;
            }
            count +=5;
            arr1[i]=[arr[0], arr[1], arr[2], arr[3], arr[4]];
        }
        console.log(arr1);
</script>
           

3 編寫函數map(arr) 把數組中的每一位數字都增加30%,并傳回一個新數組

<script>
        var arr = [1, 2, 3, 4, 5];
        function map(arr){
            for(var i = 0; i < arr.length; i++){
                arr[i] = arr[i]*1.3;
            }
        }
        map(arr);
        console.log(arr);
</script>
           

4 建立一個對象,該對象存儲一個學生的資訊,該對象包含學号、身份證、年齡、性别、所學專業等屬性資訊 并循環輸出在控制台中 當循環結束之後 要求該對象為空對象(不能夠有任何屬性)

<script>
        var student = {
            id:001,
            sfz:55210,
            age:18,
            sex:"男",
            zhuangye:"軟體工程"
        }
        for(var i in student){
            console.log(student[i]);
            delete student[i];
        }
</script>
           

day06

var arr = [1, 2, 3, 4, "1", "nihao", "nihao", "nihao", 5, 6, "nihao", 7, 8, "hello", 9, 10];
// 通過程式設計 将上述數組中的所有字元串移除 其餘的不變
<script>
        var arr = [1, 2, 2, 3, 4, "1", "nihao", "nihao", "nihao", 5, 6, "nihao", 7, 8, "hello", 9, 10];
        for(var i = 0; i < arr.length; i++){
            console.log(typeof arr[i]);
            if(typeof arr[i] == "string"){
                var index = arr.indexOf(arr[i]);
                arr.splice(index, 1);
                i = i - 1;
            }
        }
        console.log(arr);
</script>
           

day07

<script>
        // 給一段文章中的全部指定詞語進行過濾
        // 比如我要過濾 "SM"
        // var str = 'asdasdSMasdaSMsdasdSMsdasdasdSMsadasd';
        // var str1 = str.replace("SM", "**");
        // console.log(str);
        // console.log(str1);
        // 需要結果
        // asdasd**asdasdasd**sdasdasd**
        // 提示:可以利用循環 循環判定格式化完畢之後的字元串中是否還有SM這個字元串

        // 最簡單的辦法
        // str.split("SM").join("**"); 
        // 第一步 得到數組
        // ["asdasd", "asdasdasd", "sdasdasd", "sadasd"] 
        // 第二步 得到字元串
        // "asdasd**asdasdasd**sdasdasd**"sadasd"

        // 第二種方式 replace
        // var str1 = str.replace("SM", "**").replace("SM", "**").replace("SM", "**");

        // 我們應該循環
        // 條件是當 str中沒有了SM指定的字元串之後
        // 是以應該判定字元串中是否還有SM這個指定的字元串
        // 判定一個字元串中是否還有指定的字元串
        // 利用indexOf方法來判定 如果傳回的是-1 說明沒有了 如果不是-1 說明還存在
        // var index = str.indexOf("SM");
        // while (index != -1) {
        //     // 隻要不是-1 就說明還有 就替換
            str = str.replace("SM", "**");
        //     // 因為str這個變量 是字元串 是以replace會傳回一個新的字元串 是以要讓str指向這個新的字元串
        //     // 再使用indexOf去檢測這個新字元串中是否還有SM
        //     index = str.indexOf("SM");
        // }
        console.log(str);
        // 第一次循環之前 str 'asdasdSMasdaSMsdasdSMsdasdasdSMsadasd'
        // 第二次循環之前 str 'asdasd**asdaSMsdasdSMsdasdasdSMsadasd'
        // 第三次循環之前 str 'asdasd**asda**sdasdSMsdasdasdSMsadasd'
        // 第四次循環之前 str 'asdasd**asda**sdasd**sdasdasdSMsadasd'
        // 第四次循環結束 str 'asdasd**asda**sdasd**sdasdasd**sadasd'



        // 2. 反轉函數
        // 請實作一個函數reverse,該函數可以将一個數組内的内容反轉
        // var arr = [1, 2, 3, 4, 5, 6]; 
        // var arr1 = reverse(arr); 
        // arr1 => [6, 5, 4, 3, 2, 1]
        // 定義一個函數 reverse
        // function reverse(arr) {
        //     // 正着循環原數組
        //     // for (var i = 0; i < arr.length; i++) {
        //     //     console.log(arr[i]);
        //     // }

        //     // 定義數組
        //     var arr1 = [];

        //     // 倒着循環數組
        //     for (var i = arr.length - 1; i >= 0; i--) {
        //         console.log(arr[i]);
        //         arr1.push(arr[i]);
        //     }
        //     // 新數組中内容已經是倒着來的
        //     console.log(arr1);
        //     return arr1;
        // }


        // 數組的方法中也有reverse
        // var arr = [1, 2, 3, 4, 5, 6]; 
        // var arr1 = arr.reverse();
        // console.log(arr1);


        // 定義字元串
        // var str = 'abcdefg';

        // // 利用第二題的reverse 
        // var arr = str.split(""); 

        // console.log(arr); // ["a", "b", "c", "d", "e", "f", "g"]

        // var arr1 = reverse(arr); 

        // console.log(arr1);// ["g", "f", "e", "d", "c", "b", "a"]

        // var str1 = arr1.join("");

        // console.log(str1); // gfedcba


        // var str = "abcdacbabcbababcbabcabdadfafewgdhtvjyigyityuytuyukvhngntrd";
        // var str = "abcabcaaabbbbbaeeeee";

        // 統計每一個字元出現的次數
        // 得到一個對象 
        // var obj = {
           
        // };

        // 循環檢視每一個字母出現的次數
        // for (var i = 0; i < str.length; i++) {
            // 判定 目前的字母是否出現過 于是我們要将每一個字元作為屬性名 放在obj這個對象的身上
            // var prop = str[i];
            // console.log(prop); // prop儲存的是 每一個字母 "a" "b" "c" "d"....
            // console.log(obj[prop]); 
            // 在JS中一共有: false 0  "" NaN undefined null 是可以轉化為false的
            // if (obj[prop]) {  // if 語句 中 最終會是布爾值 是以如果傳遞的是非布爾值 會最終向布爾值進行轉化
                // 如果obj[prop]不是false  說明之前出現過 應該把屬性值 +1 
                // obj[prop]++;
            // } else {
                // 如果obj[prop]是false 說明之前這個對象中沒有該屬性 但是又在這次循環中通路到了 說明它出現了是以要以它為屬性名設定一個數字 因為是第一次出現是以設定為1
                // obj[prop] = 1;
            // }
        // }
        // 當循環結束之後 obj的每一個key表示每一個字母 obj的每一個key對應的value 表示該字母出現的次數
        // console.log(obj);


    </script>