본문 바로가기
퀴즈

자바스크립트 테스트(7)

by dongjin6539 2023. 4. 21.
728x90
반응형

자바스크립트(정보처리 기능사 기출문제) 테스트(7)

 

길라잡이

  • 수업시간에 배운 자바스크립트를 간단하게 테스트합니다. 제대로 배웠는지 간단하게 테스해보세요!
  • 정보처리기능사 기출문제를 자바스크립트로 변환한 문제입니다.

 

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

{
    let i = 0;
    let sum = 0;
    
    while(i < 10){
        i = i+1;
        if( i % 3 == 0) sum -= i;
        if( i % 3 == 1) sum += i;
        if( i % 3 == 2) sum *= i 
    }

    console.log(sum);   
}
답 확인하기

129

 

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

{
    let num = [10, 20, 30, 40, 50];
    let i, max, min;
    max = min = num[0];

    for(i=0; i<5; i++){
        if(num[i] > max) max = num[i];
        if(num[i] < min) min = num[i];
    }

    console.log(max, min);      
}
답 확인하기

50, 10

 

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

{
    function func(begin, diff, n){
        cnt = 1;
        ret = begin;
        while(true){
            cnt += 1;
            ret *= diff;
            if(cnt == n) return ret;
        }
    }

    console.log(func(1, 3, 4));      
}
답 확인하기

27

 

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

{
    let i = 0;
    let sum = 0;
    while(i < 10){
        i = i + 1;
        if(i % 2 == 0){
            continue
        }
        sum += i;
    }

    console.log(sum);      
}
답 확인하기

25

 

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

{
    let num = [56, 4, 3, 65, 78];
    let temp;

    for(let i=0; i<1; i++){
        for(let j=0; j<num.length-i-1; j++){
            if(num[j]>num[j+1]){
                temp = num[j];
                num[j] = num[j+1];
                num[j+1] = temp;
            }
        }
    }

    console.log(num);      
}
답 확인하기

[4, 3, 56, 65, 78]

 

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

{
    let num = [56, 4, 3, 65, 78];
    let min = 9999;

    for(let i=0; i<10; i++){
        if(min > num[i]){
            min = num[i];
        }
    }

    console.log(min);      
}
답 확인하기

3

 

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

{
    let num = [3, 4, 5, 7, 8];
    let temp;

    for(let i=0; i<=3; i++){
        for(let j=i+1; j<=4; j++){
            if(num[i] < num[j]){
                temp = num[i];
                num[i] = num[j];
                num[j] = temp;
            }
        }
    }

    console.log(num);     
}
답 확인하기

[8, 7, 5, 4, 3]

 

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

{
    let num = [1,2,3,4,5];
    let sum = 1;
    
    function func(arr){
        for(let i=0; i<arr.length; i++) {
            sum += arr[i];
        }

        for(let i=0; i<arr.length; i++){
            if(arr[i] % 2 == 0) sum -= arr[i];
        }
        return sum;            
    }

    console.log(func(num));     
}
답 확인하기

10

 

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

{
    let num = ["0","1","2","3","4","5","6","7","8","9"];
    let sum = 100;

    for(let i=0; i<num.length; i++){
        num[i] = i+1;
    }
    for(let i=0; i<num.length; i++){
        if(i % 3 == 1){
            sum -= num[i];
        }
    }
    console.log(sum);     
}
답 확인하기

85

 

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

{
    let arr = [1,2,3,4,5];
    let temp = [1,2,4,6,8];
    let idx = 0;
    let flag = true;

    for(let i=0; i<arr.length; i++){
        flag = false;
        if(arr[i] == temp[i]){
            flag = true;
        }
        if(!flag){
            temp[idx++] = arr[i];
            console.log(temp[idx]);
        }
    }     
}
답 확인하기

[2, 4, 6]

 

11. 다음은 최솟값을 출력하는 예제이다. 밑줄에 적합한 표현을 작성하시오.

{
    let num = [30,40,24,80,99];
    let min = 9999;

    for(let i=0; i<5; i++){
        if(min > num[i]){
            min = ________;
        }
    }

    console.log("최소값 : ", min);    
}
답 확인하기

num[i]

 

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

{
    let s1 = "Remember november";
    let s2 = s1.slice(0, 3) + s1.slice(12, 16);
    let s3 = "r AND you";

    console.log(s2 + s3);    
}
답 확인하기

Remember AND you

 

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

{
    let x = 1;

    console.log( !(x>0) );
    console.log( x>0 || x<4 );
    console.log( x<<2 );
    console.log( x&2 );
    console.log( x&3 );    
}
답 확인하기

false, true, 4, 0, 1

 

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

{
    let num = 0;
    let i = 1;

    while(i<=50){
        if(i%7 == 0){
            num += i;
        }
        i++;
    }
    console.log(num);    
}
답 확인하기

196

 

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

{
    let result = 0;
    for(let i=1; i<999; i++){
        if(i%3==0 && i%2 !=0){
            result = i;
        }
    }
    console.log(result);    
}
답 확인하기

993

 

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

{
    function func(num){
        if(num <= 1){
            return 1;
        } else {
            return num + func(num - 2);
        }
    }
    function main(){
        let num = 5;
        console.log(func(num))
    }
    main();   
}
답 확인하기

9

 

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

{
    let a=1, b=1, num;

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

21

 

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

{
    function func(num1, num2){
        let res = 1;
        for(let i=0; i<num2; i++){
            res *= num1;
        }
        return res;
    }
    let res = func(2, 10);

    console.log(res);   
}
답 확인하기

1024

 

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

{
    let a = func(4);

    for(let i=0; i<a.length; i++){
        console.log(a[i]);
    }

    function func(n){
        let num = [];
        for(let i=0; i<n; i++){
            num[i] = i;
        }
        return num;
    }   
}
답 확인하기

0
1
2
3

 

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

{
    let a = 3, b = 4, c = 3, d = 5;

    if( (a == 2 | a == c) & !(c > d) & (1 == b ^ c != d) ){
        a = b + c;
        if( 7 == b ^ c != a ){
            console.log(a);
        } else {
            console.log(b);
        }
    } else {
        console.log(a + b)
    }
}
답 확인하기

7

 

 

오답노트

총 20문제 중 틀린 문제는 3문제 85점입니다.

이번 시험은 통과입니다.

틀린 문제는 3번, 7번, 11번

 

 

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

{
    function func(begin, diff, n){
        cnt = 1;
        ret = begin;
        while(true){
            cnt += 1;
            ret *= diff;
            if(cnt == n) return ret;
        }
    }

    console.log(func(1, 3, 4));      
}
  • 문제 풀이

1) 이 함수는 등차수열의 n번째 항을 계산하는 함수입니다.

2) 인자로는 시작값(begin), 공차(diff), 항의 개수(n)을 받습니다.

3) 변수 cnt를 1로 초기화하고, 변수 ret을 시작값(begin)으로 초기화합니다.

4) while문을 이용하여 무한 루프를 돌며, cnt를 1씩 증가시키고, ret에 diff를 곱합니다.

5) 만약 cnt가 n과 같아지면, ret을 반환하고 함수를 종료합니다.

6) console.log(func(1, 3, 4))를 실행하게 되면 순차적으로 변수 cnt는 1로 초기화되고, 변수 ret은 1로 초기화됩니다. 다음 cnt가 2가 되면서, ret에 diff인 3을 곱합니다. 따라서 ret은 3이 됩니다. 다음 cnt가 3이 되면서, ret에 diff인 3을 곱합니다. 따라서 ret은 9가 됩니다. 다음 cnt가 4가 되면서, ret에 diff인 3을 곱합니다. 따라서 ret은 27이 됩니다. cnt와 n이 같아지므로, ret인 27을 반환합니다.

 

27

 

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

{
    let num = [3, 4, 5, 7, 8];
    let temp;

    for(let i=0; i<=3; i++){
        for(let j=i+1; j<=4; j++){
            if(num[i] < num[j]){
                temp = num[i];
                num[i] = num[j];
                num[j] = temp;
            }
        }
    }

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

1) 변수 num이 배열의 데이터로 저장되어있고, 변수 temp가 있습니다.

2) for문을 이용해서 데이터를 출력해줍니다.

3) 먼저 i=0 일때 j=1이므로 if문에서 num[i]<num[j]의 조건식이 처음에는 num[0]<num[1] 이므로 3<4 true이므로 식은 실행됩니다.

4) temp=num[i]는 temp=3이므로 데이터가 저장되고, num[i]=num[j]이므로 num[i]가 num[j]의 데이터로 변경되고 num[j]=temp이므로 num[i]가 temp의 데이터로 변경됩니다.

5) 선택 정렬(Selection Sort) 알고리즘을 사용하여 배열 num의 원소들을 내림차순으로 정렬하는 코드입니다.

 

[8, 7, 5, 4, 3]

 

11. 다음은 최솟값을 출력하는 예제이다. 밑줄에 적합한 표현을 작성하시오.

{
    let num = [30,40,24,80,99];
    let min = 9999;

    for(let i=0; i<5; i++){
        if(min > num[i]){
            min = ________;
        }
    }

    console.log("최소값 : ", min);    
}
  • 문제 풀이

1) 변수 num이 배열로 값이 저장되어 있고, 변수 min이 9999로 데이터가 저장되어있습니다.

2) 최소값을 구하는 식으로 for 반복문을 사용하여 배열 num을 순회하며, if 문을 사용하여 현재 min 값보다 작은 원소를 찾습니다.

3) 해당 조건식이 참일 때, min 값을 현재 원소 값으로 갱신합니다.

4) 따라서, min 값은 배열 num의 원소 중 최소값이 됩니다.

 

num[i]

 

728x90
반응형