본문 바로가기
퀴즈

자바스크립트 쪽지 시험(5)

by dongjin6539 2023. 3. 26.
728x90
반응형

자바스크립트 쪽지 시험(5)

 

길라잡이

  • 수업시간에 배운 자바스크립트를 간단하게 테스트합니다. 제대로 배웠는지 간단하게 테스해보세요!

 

1. 다음 결괏값 중 -1이 나오는 갯수를 구하시오.

{
    const str = "javascript refercence";

    str.indexOf("javascript");     
    str.indexOf("javascripts");     
    str.indexOf("j");              
    str.indexOf("J");               
    str.indexOf("a");              
    str.indexOf("ja");             
    str.indexOf("jv");              
    str.indexOf("refercence");      
    str.indexOf("r");              
    str.indexOf("re");              
    str.indexOf("javascript", 0);  
    str.indexOf("javascript", 1);   
    str.indexOf("refercence", 0);   
    str.indexOf("refercence", 11);  
    str.indexOf("refercence", 12);  
    str.indexOf("r", 7);            
    str.indexOf("r", 12); 
}
답 확인하기

5개

 

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

{
    function func(){
        console.log("함수1가 실행되었습니다.");
    }
    function callback(str){
        console.log("함수2가 실행되었습니다.");
        str();
    }
    callback(func);
}
답 확인하기

함수2가 실행되었습니다.
함수1가 실행되었습니다.

 

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

{
    function func(){
        let a = [];

        for(i=1; i<=5; i++){
            a += [i];
        }
        console.log(a);
    }
    func();
}
답 확인하기

[1, 2, 3, 4, 5]

 

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

{
    function func(num, name, word){
        this.num = num;
        this.name = name;
        this.word = word;
    }
    
    func.prototype = {
        result1 : function(){
            console.log(this.num + ". " + this.name + "가 "+ this.word + "되었습니다.");
        },
        result2 : function(){
            console.log(this.num + ". " + this.name + "가 "+ this.word + "되었습니다.");
        },
        result3 : function(){
            console.log(this.num + ". " + this.name + "가 "+ this.word + "되었습니다.");
        }
    }
    
    const info1 = new func("1", "함수", "실행");
    const info2 = new func("2", "자바스크립트", "실행");
    const info3 = new func("3", "제이쿼리", "실행");
    
    info1.result1();
    info2.result2();
    info3.result3();
}
답 확인하기

1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

 

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

{
    function func(num, name, word){
        this.num = num;
        this.name = name;
        this.word = word;
    }

    func.prototype.result = function(){
        console.log(this.num + ". " + this.name + "가 "+ this.word + "되었습니다.");
    }

    const info1 = new func("1", "함수", "실행");
    const info2 = new func("2", "자바스크립트", "실행");
    const info3 = new func("3", "제이쿼리", "실행");

    info1.result();
    info2.result();
    info3.result();
}
답 확인하기

1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

 

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

{
    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

 

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

{
    let num = 0;

    do {
        console.log("실행되었습니다.");
        num++;
    } while (num <= 3);
}
답 확인하기

실행되었습니다.
실행되었습니다.
실행되었습니다.
실행되었습니다.

 

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

{
    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

 

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

{
    let a, b = 10;

    for(let i=0; i<5; i++){
        a = i;
        b -= a;
    }
    console.log(a, b);
}
답 확인하기

4, 0

 

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

{
    function func(){
        let i = 20, j = 20, k = 30;
        i /= j;
        j -= i;
        k %= j;

        console.log(i);
        console.log(j);
        console.log(k);
    }
    func();
}
답 확인하기

1, 19, 11

 

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

{
    let k = 1;
    let temp;
    for(let i=0; i<=3; i++){
        temp = k;
        k++;
        console.log(temp + "번");
    }
}
답 확인하기

1번, 2번, 3번, 4번

 

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

{
    let num1 = 3;
    let num2 = 7;
    if(++num1 > 5 || num2++ < 1){
        console.log(num1);
    }
    console.log(num2);
}
답 확인하기

8

 

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

 

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

 

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

 

오답노트

총 20문제 중 틀린 문제는 7문제 65점입니다...

커트라인 90점...ㅠㅠ

틀린 문제는 1번, 6번, 9번, 12번, 17번, 18번, 19번 

 

1. 다음 결괏값 중 -1이 나오는 갯수를 구하시오.

{
    const str = "javascript refercence";

    str.indexOf("javascript");     
    str.indexOf("javascripts");     
    str.indexOf("j");              
    str.indexOf("J");               
    str.indexOf("a");              
    str.indexOf("ja");             
    str.indexOf("jv");              
    str.indexOf("refercence");      
    str.indexOf("r");              
    str.indexOf("re");              
    str.indexOf("javascript", 0);  
    str.indexOf("javascript", 1);   
    str.indexOf("refercence", 0);   
    str.indexOf("refercence", 11);  
    str.indexOf("refercence", 12);  
    str.indexOf("r", 7);            
    str.indexOf("r", 12); 
}
  • 문제 풀이

1) indexOf( )는 문자열을 검색하여, 주어진 값과 일치하는 첫 번째 위치값(index)을 반환하고, 주어진 값과 일치하는 것이 없으면 -1을 반환합니다.

2) 주어진 값과 일치하는 것이 아닌 것만 찾으면 됩니다.

3) 각 값을 구해보면 순서대로 0, -1, 0, -1, 1, 0, -1, 11, 11, 11, 0, -1, 11, 11, -1, 11, 15입니다.

 

5개

 

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

{
    function func(index){
        console.log("함수가 실행되었습니다." + index);
    }
    function callback(num){
        for(let i=0; i<=5; i++){
            num(i);
        }
    }
    callback(func);
}
  • 문제 풀이

1) callback 함수이므로 callback 함수가 실행되고 위의 함수가 실행됩니다.

2) 그러므로 callback 함수의 값은 0이 실행되고 값을 위의 함수 index로 가져와서 "함수가 실행되었습니다. + index"가 실행됩니다.

3) callback 함수의 조건문이 0부터 5이하이므로 총 6번이 실행됩니다.

 

함수가 실행되었습니다.0

함수가 실행되었습니다.1

함수가 실행되었습니다.2

함수가 실행되었습니다.3

함수가 실행되었습니다.4

함수가 실행되었습니다.5

 

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

{
    let a, b = 10;

    for(let i=0; i<5; i++){
        a = i;
        b -= a;
    }
    console.log(a, b);
}
  • 문제 풀이

1) 변수 a가 저장되고, 변수 b의 값이 10으로 저장되어있습니다.

2) for문으로 i의 조건문이 있고 계산식이 a = i, b -= a(b = b - a)로 있습니다.

3) 조건문이 true일 때까지 실행되므로 순서대로 계산하면 a = 0, 10 -= 0, a = 1, 10 -= 1, a = 2, 9 -=2, a = 3, 7 -= 3, a = 4, 4 -= 4까지 실행됩니다.

4) 여기서 b의 데이터가 계속 바뀌는 이유는 실행된 연산자가 계속 누적으로 적용되어서 그렇습니다. 

 

4, 0

 

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

{
    let num1 = 3;
    let num2 = 7;
    if(++num1 > 5 || num2++ < 1){
        console.log(num1);
    }
    console.log(num2);
}
  • 문제 풀이

1) 변수 a가 저장되고, 변수 b의 값이 10으로 저장되어있습니다.

2) for문으로 i의 조건문이 있고 계산식이 a = i, b -= a(b = b - a)로 있습니다.

3) 조건문이 true일 때까지 실행되므로 순서대로 계산하면 a = 0, 10 -= 0, a = 1, 10 -= 1, a = 2, 9 -=2, a = 3, 7 -= 3, a = 4, 4 -= 4까지 실행됩니다.

4) 여기서 b의 데이터가 계속 바뀌는 이유는 실행된 연산자가 계속 누적으로 적용되어서 그렇습니다. 

 

4, 0

 

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

{
    let a, b, result;
    a = 7, b = 4
    result = a | b;

    console.log(result);
}
  • 문제 풀이

1) 각 저장된 데이터를 2진수로 바꾸고 계산을 해주면 됩니다.

2) 변수 a의 7을 2진수로 바꾸면 0111, 변수 b의 4를 2진수로 바꾸면 0100입니다.

3) |의 연산자는 OR연산자로 자리에 1이 하나라도 있으면 1로 계산됩니다.

4) 따라서 비교해보면 0111이여서 다시 10진수로 변경하면 7이됩니다.

 

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));
}
  • 문제 풀이

1) 각 변수의 데이터를 확인해보고 a, b, c는 매개 변수로 각각 데이터를 가져옵니다.

2) 첫번째 if문에서 a > b 가 true이면 max 값은 a의 값으로 저장되고 false면 max 값은 b의 값으로 저장됩니다. 따라서 false이므로 max의 값은 b의 값인 93으로 저장됩니다.

3) 두번째 if문에서 c > max 가 true이면 max 값은 c의 값으로 변경됩니다. 따라서 true이므로 max의 값은 c의 값인 107로 저장됩니다.

4) 세번째 if문에서 total-max <= max 가 true이면 NO, false이면 원래 데이터 값인 YES로 반환됩니다. 변수 total은 a+b+c이므로 253이고 max는 107이므로 total-max는 146입니다. 그러므로 조건이 false여서 answer는 원래 데이터 값인 YES로 반환됩니다.

 

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));
}
  • 문제 풀이

1) a, b, c의 데이터 값은 매개 변수로 데이터를 저장합니다.

2) 변수 answer 데이터 값을 반환해보겠습니다.

3) 첫번째 if문에서 a < b 의 값이 true이면 answer의 값은 a의 값으로 저장되고, false이면 answer의 값은 b의 값으로 저장됩니다. 따라서 false이므로 answer의 값은 b의 값인 12로 저장됩니다.

4) 두번째 if문에서 c <= answer의 값이 true이면 answer의 값은 c의 값으로 저장됩니다. 따라서 true이므로 answer의 값은 c의 값인 11로 저장됩니다.

 

11

 

참고

https://webstoryboy.tistory.com/1863

728x90
반응형