Javascript/시험 오답

03월 31일 쪽지시험_오답노트

아라라_ 2023. 3. 31. 11:33

“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”

Frederick Philips Brooks
Mythical Man-Month 저자
728x90

 

01. 다음의 결괏값을 작성하시오.

{
        let num = 0;
    
        while(false){
            num++;
            if( num == 3 ){
                continue;
            }
            if( num > 10 ){
                break;
            }
        }
        console.log(num);         
    }
    
답 : 0

우선 변수 num에 0을 저장하고 whiile문을 실행하려고하는데 조건문에 false가 있는데 while문에 false가 있으면 실행하지않아 출력된 답은 0입니다.


02. 다음의 결괏값을 작성하시오.

{
        let a = 6, b = 9, c = 3, result;
        result = ++a + b++ + ++c;
    
        console.log(result);
        console.log(a+b+c);
    }
    
답 : 20 21

03. 결괏값을 작성하시오.

{
        function func(){
            let a = [];
    
            for(i=1; i<=5; i++){
                a += [i];
            }
            console.log(a);
        }
        func();
    }
    
답 : 1,2,3,4,5

04. 결괏값을 작성하시오.

{
        let arr = [3,4,1,4,1,3,4,9,8,3];
            
        for(let i=0; i<10; i++){
            if(i % 3 == 2){
                console.log(arr[i]);
            }
        }
    
        console.log(sum);
    }
    
답 : 1 3 8

05. 결괏값을 작성하시오.

{
        function func(num1, num2){
            if(num1 > num2) return num1
            else return num2
        }
        console.log(func(17, 23) + func(50, 40))
    }
    
답 : 73

06. 결괏값을 작성하시오.

{
        function func(index){
            console.log("함수가 실행되었습니다." + index);
        }
        function callback(num){
            for(let i=0; i<=5; i++){
                num(i);
            }
        }
        callback(func);
    }
    
답 : 
함수가 실행되었습니다.0
함수가 실행되었습니다.1
함수가 실행되었습니다.2
함수가 실행되었습니다.3
함수가 실행되었습니다.4
함수가 실행되었습니다.5

07. 결괏값을 작성하시오.

{
        for(let i=1; i<=5; i++){
            console.log(i);
    
            if(i == 4){
                break;
            }
        }
    }
    
답 : 1 2 3 4

08. 결괏값을 작성하시오.

{
        const arr = [100, 200, 300, 400, 500];
    
        const text1 = arr.join("*");
        arr.push("600");
        const text3 = arr.join("");
        arr.pop();
        const text4 = arr.join(" ");
    
        console.log(text1);
        console.log(text3);
        console.log(text4);
    }
    
답 : 
100*200*300*400*500
100200300400500600
100 200 300 400 500

우선 join()은 배열 사이에 들어가는 무언가를 바꿀 수 있습니다.

push()는 배열 마지막에 값을 추가합니다.

pop()은 배열 마지막 값을 없앱니다.

 

100,200,300,400,500에 사이사이에 join(*)으로 인해 *을 추가하여

상수 text1을 추가하여 나중에 출력합니다.

push()로 600을 추가하여

상수 text3에 저장할 땐 join("")으로 100200300400500600가 되어

출력합니다.

그 다음은 pop()으로 600을 다시 없애서

100200300400500으로 만들고 join(" ")으로 사이에 " "으로 간격을 줍어

100 200 300 400 500으로 만들어 출력합니다.


09. 다음을 결과값을 작성하시오.

{
        let a, b = 10;
    
        for(let i=0; i<5; i++){
            a = i;
            b -= a;
        }
        console.log(a, b)
    }
    
답 : 4 0

a = 10 , b = 10 일 때

i a b
before 10 10
0 0 10
1 1 9
2 2 7
3 3 4
4 4 0

 


10. 다음을 결과값을 작성하시오.

{
        function func(){
            let i = 10, j = 20, k = 30;
            i /= j;
            j -= i;
            k %= j;
    
            console.log(i);
            console.log(j);
            console.log(k);
        }
        func();
    }
    
답 : 0.5 19.5 10.5
before i = 10, j = 20, k = 30 결과
i / j 10 / 20 i = 0.5
j - i 20 - 0.5 j = 19.5
k % j 30 / 19.5 k = 10.5

11. 다음을 결과값을 작성하시오.

{
        let k = 2;
        let temp;
        for(let i=0; i<=3; i++){
            temp = k;
            k++;
            console.log(temp + "번");
        }
    }
    
답 : 2번 3번 4번 5번

12. 다음을 결과값을 작성하시오.

{
        let num = 10;
        num += 2;
        num -= 3;
        num *= 5;
        num /= 5;
        num %= 9;
        
        console.log(num)
    }
    
답 : 0

13. 다음을 결과값을 작성하시오.

{
        let num = [1, 5, 1, 2, 7, 5];
        for(let i=0; i<6; i++){
            if((i+2) % 2 == 0){
                console.log(num[i]);
            }
        }
    }
    
답 : 1 1 7

14. 다음을 결과값을 작성하시오.

{
        let num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
        for(let i=0; i<=9; i++){
            switch(num[i] % 2){
                case 1:
                    console.log(num[i]);
                    break;
                default:
                    console.log("**");
            }
        }
    }
    
답 : **1**3**5**7**9
i 실행된 switch 케이스 결과
0 default **
1 case 1 1
2 default **
3 case 1 3
4 default **
5 case 1 5
6 default **
7 case 1 7
8 default **
9 case 1 9

15. 다음을 결과값을 작성하시오.

{
        let cnt = 0;
        let sum = 0;
        for(let i=0; i<=7; i++){
            if(i%2 == 1){
                cnt++;
                sum += i;
            }
        }
        console.log(cnt + ", "+sum/2);
    }
    
답 : 4 8
i if cnt sum
before ? 0 0
0 X X X
1 O 1 1
2 X X X
3 O 2 4
4 X X X
5 O 3 9
6 X X X
7 O 4 16
console.log() cnt sum/2
result 4 8

 


16. 다음을 결과값을 작성하시오.

{
        let data = [70, 80, 75, 60, 90];
        let best = 1;
        let score = 0;
    
        for(let i=0; i<data.length; i++){
            if(data[i]>=80) {
                best++;
            }
            if(score < data[i]) {
                score = data[i];
            }
        }
    
        console.log(best, score)
    }
    
답 : 3 90

17. 다음을 결과값을 작성하시오.

{
        let a, b, result;
        a = 7, b = 4
        result = a | b;
    
        console.log(result)
    }
    
답 : 7

18. 다음을 결과값을 작성하시오.

{
        function solution(a, b, c){
            let answer = "YES", max;
            let total = a + b + c;
    
            if(a > b) max = a;
            else max = b;
            if(c > max) max = c;
            if(total-max <= max) answer = "NO"; 
            
            return answer;
        }
    
        console.log(solution(53, 93, 107));
    }
    
답 : YES

19. 다음을 결과값을 작성하시오.

{
        function solution(a, b, c){
            let answer;
            if(a < b) answer = a;
            else answer = b;
            if(c <= answer) answer = c; 
            return answer;
        }
        console.log(solution(15, 12, 11));
    }
    
답 : 11

20. 다음을 결과값을 작성하시오.

{
        function solution(day, arr){
            let answer = 0;
            for(let x of arr){
                if(x % 10 == day) answer++;
            }
            return answer;
        }
        
        arr = [25, 23, 11, 47, 53, 17, 33, 40];
        console.log(solution(0, arr));
    }
답 : 1