JAVASCRIPT

자바스크립트 테스트 ( 7 ) 정보처리기사, SQL, 정보처리기능사 오답노트

김도현2 2023. 4. 21. 17:04
반응형

자바스크립트 테스트 ( 7 ) 오답노트

정보처리기사, SQL, 정보처리기능사 오답노트입니다.

 

 

 

 

 

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

{
    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


 

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

{
    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


 

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

{
    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


 

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

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

    console.log(sum)
}

정답: 25


 

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

{
    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)
}

정답: [5, 3, 56, 65, 78]


 

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

{
    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


 

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

{
    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]


 

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

{
    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


 

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

{
    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 );
}

정답: falls, 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


 

 

 

 

 

오답노트

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

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

    console.log(sum)
}

if(i % 2 == 0){ continue }  i가 짝수일 경우 continue 키워드를 사용하여 다음 반복으로 건너뜁니다.

sum에는 1, 3, 5, 7, 9 가 더해지므로 25가 됩니다.

 

답: 25

 

 

 

 

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

{
    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));
}

 

for(let i=0; i<arr.length; i++) { sum += arr[i]; }

sum 변수에 arr 배열의 요소를 모두 더합니다.

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

arr 배열의 요소 중 짝수인 경우 sum 변수에서 해당 요소를 뺍니다.

 

그러므로 뺄거 빼고 더할거 더하면 답은 10입니다.

 

 

 

 

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

{
    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)
}

 

 

원소의 인덱스를 3으로 나눈 나머지가 1인 경우,

조건에 해당하는 원소의 값을 sum에서 뺍니다.

sum 변수의 값을 출력합니다.

 

100에서 2, 5, 8의 값 (3으로 나눈 나머지가 1인 위치의 값)을 각각 뺀 답은 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]);
        }
    }
}

temp 배열의 2, 3, 4 인덱스에 arr 배열의 3, 4, 5 값이 할당됩니다.

 

console.log 함수에서는 temp[1], temp[2], temp[3] 인덱스에 해당하는 값을 각각 출력하므로, 

답은 2, 4, 6이 됩니다.

 

 

 

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

{
    let num = 0;
    let i = 1;

    while(i<=50){
        if(i%7 == 0){
            num += i;
        }
        i++;
    }
    console.log(num)
}

 

while 반복문을 통해 i 변수가 50 이하인 동안 다음 조건을 검사합니다.

 

i 변수를 7로 나눈 나머지가 0인 경우조건에 해당하는 경우, num 변수에 i 값을 더합니다.

i 변수를 1 증가시킵니다.

 

while 반복문이 종료된 후, num 변수의 값을 출력합니다.

 

따라서, 위 코드의 실행 결과는 7의 배수인 7, 14, 21, 28, 35, 42, 49를 모두 더한 값인 176가 됩니다.

 

 

 

 

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();
}

func 함수는 재귀적으로 호출되며, num 값이 1 이하가 될 때까지 호출됩니다. 각 호출에서는 현재 num 값과 num에서 2를 뺀 값을 매개변수로 넘겨 func 함수를 재귀적으로 호출하며, 반환값을 계속 더해가는 방식으로 동작합니다.

 

따라서, 위 코드의 실행 결과는 func(5) 함수가 5 + 3 + 1 = 9를 반환하므로, 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)
}

num = a + b  을
i<6까지 반복해보면 13+8 이 나옵니다. 

 

답은 21

 

 

 

 

 

 

 

SQL

 

01. SQL문의 빈칸을 완성하시오.

[학생] 테이블에서 전화번호가 NULL 값이 아닌 학생명을 모두 검색하기 위한 SQL문의 작성하시오.

SELECT 학생명 FROM 학생 WHERE 전화번호 _____;

답: is NOT NULL

 

 

02. SQL문의 빈칸을 완성하시오.

사용자 "HWANG"에게 테이블을 생성할 수 있는 권한을 부여하기 위한 SQL문을 작성하시오.

_____ CREATE TABLE _____ HWANG

답: GRANT TO

 

 

03. SQL문의 빈칸을 완성하시오.

[성적] 테이블에서 점수가 90점 이상 95점 이하인 '컴퓨터공학과' 학생의 정보를 검색한 SQL문을 작성하시오.

SELECT * FROM 성적 WHERE (점수 _____ 90 _____ 95) AND 학과 = '컴퓨터공학과';

답: BETWEEN, AND

 

 

09. SQL문의 빈칸을 완성하시오.

[Exam] 테이블의 모든 레코드를 지우기 위한 명령어 SQL문을 작성하시오.

_____ from Exam

답: DELETE

 

 

 

02. 다음이 설명하는 용어를 작성하시오.

릴레이션에서 하나의 속성이 취할 수 있는 동일한 타입의 원자값들의 집합을 의미하는 것을 무엇이라 하는지 쓰시오.

 

답: 도메인