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)
}
A : 129
반복문에서 변수 i를 초기값 0으로 설정하고 시작하며, while 조건문에서 i가 10보다 작을 때까지 반복한다.
이 반복문에서 i는 1부터 10까지의 정수 값을 가진다.
if 조건문에서 i % 3은 i를 3으로 나눈 나머지 값을 나타냅니다. 이 값을 기준으로 다음의 작업을 수행한다.
i % 3 == 0 : i가 3의 배수인 경우, sum에서 i를 뺍니다.
i % 3 == 1 : i를 3으로 나눈 나머지가 1인 경우, sum에 i를 더한다.
i % 3 == 2 : i를 3으로 나눈 나머지가 2인 경우, sum에 i를 곱한다.
실행 과정을 살펴보면 이렇다.
i = 1일 때, i % 3 == 1이므로 sum에 1을 더한다. (sum = 1)
i = 2일 때, i % 3 == 2이므로 sum에 2를 곱한다. (sum = 2)
i = 3일 때, i % 3 == 0이므로 sum에서 3을 뺀다. (sum = -1)
i = 4일 때, i % 3 == 1이므로 sum에 4를 더한다. (sum = 3)
i = 5일 때, i % 3 == 2이므로 sum에 5를 곱한다. (sum = 15)
i = 6일 때, i % 3 == 0이므로 sum에서 6을 뺀다. (sum = 9)
i = 7일 때, i % 3 == 1이므로 sum에 7을 더한다. (sum = 16)
i = 8일 때, i % 3 == 2이므로 sum에 8을 곱한다. (sum = 128)
i = 9일 때, i % 3 == 0이므로 sum에서 9를 뺀다. (sum = 119)
i = 10일 때, i % 3 == 1이므로 sum에 10을 더한다. (sum =129)
따라서 결과값은 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);
}
A : 50 10
1. num 배열의 첫번째 요소 num[0]은 10이다. 따라서 변수 max와 min은 모두 10으로 초기화 된다.
2. for 반복문에서 i가 0일 때, num[0]은 10이므로 max와 min은 모두 10으로 유지된다.
3. for 반복문에서 i가 1일 때, num[1]은 20이므로 min은 20으로 대체되지 않고, max는 20으로 대체된다. (if문에서 max는 num[i]값과 현재의 max을 비교해서 큰 값으로 대체되며, min은 현재 저장된 수보다 num[i]의 값이 작을 경우 대체되기 때문)
4. for 반복문에서 i가 2일 때, num[2]는 30이므로 min은 30으로 대체되지 않고, max는 30으로 대체된다.
5. for반복문에서 i가 3일 때, num[3]은 40이므로 min은 40으로 대체되지 않고, max는 40으로 대체된다.
6. for 반복문에서 i가 4일 때, num[4]는 50이므로 min은 50으로 대체되지 않지만 max는 50으로 대체된다.
따라서 실행 결과는 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));
}
A : 27
1. func 함수가 호출된다. 인자로 begin=1, diff=3, n=4가 전달된다.
2. cnt 변수와 ret 변수가 각각 1과 begin 값인 1로 초기화된다.
3. while 루프가 시작된다. while(true)는 항상 참이므로 무한 루프가 실행된다.
4. cnt 변수에 1이 더해지고, ret 변수에 diff 값인 3이 곱해진다. 이제 cnt는 2이고, ret은 3이 된다.
5. if 문에서 cnt와 n이 같은지 비교한다. cnt는 2이고, n은 4이므로 아직 같지 않기 때문에 while 루프가 다시 시작된다.
6. cnt 변수에 1이 더해지고, ret 변수에 diff 값인 3이 곱해집니다. 이제 cnt는 3이고, ret은 9가 된다.
7. if 문에서 cnt와 n이 같은지 비교한다. cnt는 3이고, n은 4이므로 아직 같지 않기 때문에 while 루프가 다시 시작된다.
8. cnt 변수에 1이 더해지고, ret 변수에 diff 값인 3이 곱해진다. 이제 cnt는 4이고, ret은 27이 된다.
9. if 문에서 cnt와 n이 같은지 비교한다. cnt는 4이고, n도 4이므로 같다.
10. return 문에서 ret 값을 반환합니다.
따라서 console.log(func(1, 3, 4))의 실행 결과는 27이 된다.
즉, func(1, 3, 4)는 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)
}
A : 25
1. i 변수와 sum 변수가 각각 0으로 초기화된다.
2. while 루프가 시작된다. i는 1이므로 i % 2 == 0 조건문은 거짓이 된다. 그래서 sum 변수에 i 값인 1이 더해집니다. 따라서 sum은 1이 된다.
3. i 변수에 1이 더해져서 i는 2가 된다.
4. i % 2 == 0 조건문이 참이므로 continue 문이 실행된다. continue 문은 현재 반복을 종료하고, 다음 반복으로 넘어가게 한다. 따라서 sum 변수에는 2가 더해지지 않는다.
5. while 루프가 다시 시작됩니다. 이번에는 i가 3이므로 i % 2 == 0 조건문이 거짓이 된다. 그래서 sum 변수에 i 값인 3이 더해진다. 따라서 sum은 4가 된다.
6. 이후에도 마찬가지로 i가 홀수일 때만 sum에 더해지고, i가 짝수일 때는 continue 문이 실행되어 sum에 더해지지 않는다.
7. i가 10일 때 while 루프가 종료된다. 이때까지 sum에 더해진 값은 1, 3, 5, 7, 9로 총 25이다.
따라서 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)
}
A : [4, 3, 56, 65, 78]
첫 번째 for 루프에서 i의 값은 0으로 설정되어 있으므로, 내부 루프가 한 번 실행된다.
내부 루프는 배열의 길이에서 i와 1을 뺀 만큼 반복하므로, 이 경우에는 num.length - 1 만큼 반복한다.
내부 루프에서는 인접한 두 항목을 비교하고, 만약 첫 번째 항목이 두 번째 항목보다 크다면 값을 교환한다.
그러나 첫 번째 for 루프에서 i를 0으로 설정하였기 때문에, 내부 루프는 단 한 번만 실행된다.
이렇게 되면, 배열의 첫 번째 요소와 두 번째 요소만 비교되고 나머지 요소들은 정렬되지 않은 채 그대로 남게 된다.
따라서 [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)
}
A : 3
먼저, 변수 min을 배열 num의 첫 번째 요소로 초기화한다.
그리고 for 루프를 사용하여 배열 num의 모든 요소를 탐색하면서 min과 현재 요소를 비교한다.
만약 현재 요소가 min보다 작으면 min 값을 현재 요소로 업데이트한다.
for 루프는 배열 num의 2번째 요소부터 마지막 요소까지 탐색한다.
첫 번째 요소는 이미 min에 할당되었기 때문에 탐색할 필요가 없기 때문에 i를 1부터 시작하여 num.length보다 작을 때까지 for 루프를 실행한다.
각 루프에서는 num[i]와 min을 비교하여 num[i]가 더 작으면 min 값을 num[i]로 업데이트한다.
이를 모든 루프에서 반복하면서, min에는 배열 num에서 가장 작은 값인 3이 할당되게 된다.
따라서 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);
}
A : [3, 4, 5, 7, 8]
배열 num은 [3, 4, 5, 7, 8]으로 초기화되어 있다.
따라서 바깥쪽 루프의 첫 번째 반복에서는 i=0일 때 안쪽 루프가 1부터 4까지 반복하게 되고, 배열 num[0]부터 num[4]까지의 요소들끼리 대소관계를 비교한다.
이때 num[0]은 3이고, num[1]은 4이다.
3이 4보다 작기 때문에 if문은 건너뛰고, 다음 요소인 num[2]와 비교한다.
3은 5보다 작기 때문에 if문을 건너뛰고, 3은 7보다도 작기 때문에 다시 if문을 건너뛰고, 3은 8보다도 작기 때문에 다시 if문을 건너뛰게 된다.
그러면 바깥쪽 루프의 두 번째 반복에서는 i=1일 때 안쪽 루프가 2부터 4까지 반복하게 되고, num[1]부터 num[4]까지의 요소들끼리 대소관계를 비교한다.
이때 num[1]은 4이고, num[2]는 5이다.
4가 5보다 작지 않기 때문에 if문에 들어가서 num[1]과 num[2]를 교환한다. 그러면 배열 num은 [3, 5, 4, 7, 8]이 됩니다.
이제 바깥쪽 루프의 세 번째 반복에서는 i=2일 때 안쪽 루프가 3부터 4까지 반복하게 되고, num[2]부터 num[4]까지의 요소들끼리 대소관계를 비교한다.
이때 num[2]는 4이고, num[3]은 7이다.
num[2]와 num[3]의 값을 비교하여 큰 값을 앞으로 이동시킨다.
따라서 num[2]와 num[3]의 위치가 바뀌어 [3, 4, 7, 5, 8]이 된 후, 안쪽 루프의 두 번째 반복에서 j는 4가 되고, num[4]는 8이다.
따라서 num[3]와 num[4]의 값을 비교하여 큰 값을 앞으로 이동시킨다.
따라서 num[3]와 num[4]의 위치가 바뀌어 최종적으로 [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));
}
A : 10
num이라는 배열과 sum이라는 변수를 정의한다.
sum은 초기값으로 1을 가지고 있다.
func이라는 함수를 정의한다.
이 함수는 배열을 입력받아 배열의 합에서 짝수 요소의 값을 빼서 그 결과값을 반한다.
func 함수 내에서는 for 반복문을 사용하여 배열의 모든 요소들을 순회하면서 sum 변수에 더해준다.
그 후, 다시 for 반복문을 사용하여 배열의 모든 요소들을 순회하면서, 각 요소가 짝수인지 검사한다.
만약 짝수라면, sum 변수에서 해당 요소의 값을 빼준다.
최종적으로 func(num) 함수를 호출하여 반환된 값을 출력한다.
따라서, num 배열의 요소들의 합은 1+2+3+4+5 = 15이고, 짝수인 요소는 2와 4이므로, 이들의 값을 sum 변수에서 빼주면 최종적으로 15-2-4 = 9가 된다.
그러나 함수 내에서 sum 변수를 초기값으로 1을 가지고 시작했기 때문에, 최종 결과값에 1을 더해준 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)
}
A: 85
num 배열의 요소들을 문자열에서 숫자로 변환한다.
즉, num 배열은 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]이 된다.
그 후, for 루프를 사용해서 배열의 각 요소에 접근하면서, 해당 요소의 인덱스가 3의 배수가 아닌 경우 sum 변수에서 해당 요소의 값을 뺀다.
인덱스를 0부터 시작하기 때문에, i % 3이 1인 경우는 1, 4, 7번째 요소이다. 이 경우 해당 요소의 값을 sum 변수에서 뺀다.
따라서, sum의 초기값이 100이고, 1, 4, 7번째 요소 (2, 5, 8)의 값의 합인 15를 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]);
}
}
}
A : 2 4 6
이 코드는 arr 배열과 temp 배열을 비교하여, 같은 인덱스 위치에 있는 값이 같으면 temp에 그대로 유지하고, 다르면 temp에 arr의 값을 복사하는 코드이다.
처음에 idx는 0으로 초기화되어 있습니다.
그리고 flag는 true로 초기화되어 있습니다.
그 후 arr 배열을 순회하면서, 같은 위치의 값이 다른 경우, temp 배열의 해당 위치에 arr의 값을 복사하고, idx를 1 증가시키고, temp[idx] 값을 출력합니다.
처음에 arr과 temp 배열이 같으므로, flag은 true이고, temp[0]의 값은 1입니다.
그리고 arr[2]와 temp[2]의 값이 다르므로, temp[1]의 값을 arr[2]의 값인 3으로 업데이트합니다.
이후 idx는 2가 되어 있습니다.
그리고 arr[3]과 temp[3]의 값이 다르므로, temp[2]의 값을 arr[3]의 값인 4로 업데이트합니다.
이후 idx는 3이 되어 있습니다.
마지막으로 arr[4]와 temp[4]의 값이 다르므로, temp[3]의 값을 arr[4]의 값인 5로 업데이트합니다.
이후 idx는 4가 되어 있습니다.
따라서 출력되는 값은 temp[1], temp[2], temp[3]의 값인 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);
}
A : num[i]
반복문을 실행하면서 배열 num에서 가장 작은 값을 찾기 위해, 현재까지 찾은 최소값 min과 비교하면서 더 작은 값을 찾습니다. 반복문이 한번 실행될 때마다 num 배열의 다음 요소를 확인하고, 해당 요소가 현재까지 찾은 최소값보다 작다면 min 값을 해당 요소의 값으로 갱신합니다. 이렇게 반복문을 실행하면서 min 변수에는 num 배열의 가장 작은 값이 할당됩니다.
따라서 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)
}
A : Remember And you
1. 문자열 "Remember november"를 변수 s1에 저장합니다.
2. s1의 첫 세 글자와 12번째부터 15번째까지의 문자열을 합쳐 새로운 문자열 s2를 만듭니다. 이 결과 s2는 3. "Rembernovem"이 됩니다.
4. 문자열 "r AND you"를 변수 s3에 저장합니다.
5. s2와 s3를 합쳐서 출력합니다. 따라서 출력 결과는 "Rembernovemr 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 );
}
A : false true 4 0 1
!(x>0) : x가 0 이하인지 검사하여 그 결과의 반대인 false가 출력됩니다.
x>0 || x<4 : x가 0보다 크거나 4보다 작은지 검사하여 그 결과인 true가 출력됩니다. x의 값이 1이기 때문에 true가 됩니다.
x<<2 : x의 비트를 왼쪽으로 2칸 이동시킨 결과인 4가 출력됩니다. 1의 비트를 왼쪽으로 2칸 이동시키면 100이 되기 때문입니다.
x&2 : x와 2의 비트 AND 연산을 수행한 결과인 0이 출력됩니다. 1의 비트와 2의 비트를 AND 연산하면 모두 1인 비트는 없기 때문입니다.
x&3 : x와 3의 비트 AND 연산을 수행한 결과인 1이 출력됩니다. 1의 비트와 3의 비트를 AND 연산하면 둘 다 1인 비트가 있기 때문입니다.
14. 다음의 결과값을 작성하시오.
{
let num = 0;
let i = 1;
while(i<=50){
if(i%7 == 0){
num += i;
}
i++;
}
console.log(num)
}
A : 196
반복문을 통해 1부터 50까지의 수를 순회하며, 각 수를 7로 나누어 떨어지는지 확인합니다. 나머지 연산자 %를 이용해 i를 7로 나누었을 때 나머지가 0이면 i는 7의 배수입니다. 이 경우, num 변수에 i를 더합니다.
따라서 7, 14, 21, 28, 35, 42, 49의 합인 196이 결과값으로 나오게 됩니다.
15. 다음의 결과값을 작성하시오.
{
let result = 0;
for(let i=1; i<999; i++){
if(i%3==0 && i%2 !=0){
result = i;
}
}
console.log(result);
}
A : 993
처음에 result는 0으로 초기화됩니다.
그리고 반복문에서 i가 3의 배수이면서 2의 배수가 아니라면, result에 i를 할당합니다.
이렇게 하면, 반복문이 종료될 때까지 result는 가장 큰 3의 배수이면서 2의 배수가 아닌 값이 됩니다.
반복문에서 마지막으로 i 값이 998일 때, result에는 993이 할당됩니다.
이는 3의 배수이면서 2의 배수가 아닌 가장 큰 값이기 때문입니다.
따라서 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();
}
A : 9
함수 func는 인자 num이 1 이하일 때는 1을 반환하고, 그렇지 않을 경우 num에 2를 뺀 값과 num을 더한 값을 반환합니다.
이 함수가 호출되면, main 함수에서 인자 num으로 5를 넘겨줍니다. 그러면 func(5)가 호출됩니다.
func(5)는 5 + func(3)을 반환합니다. 여기서 func(3)은 3 + func(1)을 반환합니다. func(1)은 1을 반환하므로, func(3)은 4를 반환합니다. 그러므로 func(5)는 5 + 4인 9를 반환합니다.
따라서 console.log(func(num))에서 출력되는 값은 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)
}
A : 21
피보나치 수열의 7번째 값을 출력하는 코드입니다.
피보나치 수열은 0과 1로 시작하며, 이전 두 항의 합이 다음 항이 되는 수열입니다.
따라서, 처음에 a와 b는 각각 1로 초기화 되며, for loop에서는 i가 0일 때부터 5일 때까지 num에 a와 b를 더한 값을 할당하고, a와 b를 각각 b와 num으로 업데이트합니다.
i = 0: num = 2, a = 1, b = 2
i = 1: num = 3, a = 2, b = 3
i = 2: num = 5, a = 3, b = 5
i = 3: num = 8, a = 5, b = 8
i = 4: num = 13, a = 8, b = 13
i = 5: num = 21, a = 13, b = 21
따라서, 마지막으로 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)
}
A : 1024
함수 func는 인자로 num1과 num2를 받습니다. num1은 밑(base)이 되는 수이고, num2는 지수(exponent)입니다. 함수 내에서 for문을 사용하여 res를 num2번 곱하게 됩니다.
따라서 func(2, 10)을 호출하면, 2의 10승인 1024를 계산하고 이를 변수 res에 할당합니다. 마지막으로 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;
}
}
A : 0 1 2 3
주어진 코드에서 `func` 함수가 먼저 호출되는데, 이 함수는 인자로 숫자 `n`을 받아 0부터 n-1까지의 숫자를 배열에 담아 리턴합니다.
`func(4)`를 호출하면 `[0, 1, 2, 3]`을 반환합니다.
그 다음에는 `a` 변수가 이 함수의 반환값으로 할당되는데, 따라서 `a` 변수는 `[0, 1, 2, 3]`이 됩니다.
마지막으로 `a` 배열의 요소들을 순서대로 출력하는 반복문이 실행됩니다.
따라서 `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)
}
}
A : 7
첫 번째 조건문에서는 a가 2이거나 c와 같은지 확인하고, 두 번째 조건문에서는 c가 d보다 크지 않은지 확인하고, 세 번째 조건문에서는 b와 c가 같지 않거나 c와 d가 같은지 확인합니다. 각 조건이 모두 참이면 첫 번째 if문의 코드 블록이 실행됩니다.
먼저 a에 b와 c의 합을 할당하고, 그 다음에 다시 한 번 조건문을 실행합니다. 이번에는 7과 b, c, a 중 하나와 같지 않은 것을 찾습니다. 여기서는 7과 a와 같지 않은 것을 찾습니다. 만약 이 조건이 참이면 a를 출력하고, 아니면 b를 출력합니다.
주어진 코드에서 a, b, c, d의 값에 따라 조건문이 참이 될 수도 있고 아닐 수도 있습니다. 하지만 조건문이 참이 된다면, a에 b와 c의 합인 7이 할당되고, 다시 조건문이 실행됩니다. 이번에는 7과 a가 같지 않으므로 a가 출력됩니다. 따라서 결과값은 7이 됩니다.
MYSQL / 정보처리 기능사
01. SQL문의 빈칸을 완성하시오.
[학생] 테이블에서 전화번호가 NULL 값이 아닌 학생명을 모두 검색하기 위한 SQL문의 작성하시오.
SELECT 학생명 FROM 학생 WHERE 전화번호 _____;
A : IS NOT NULL
(NULL 값이 아니기(NOT) 때문에 NULL 값이 아니다 라는 뜻의 IS NOT NULL)
02. SQL문의 빈칸을 완성하시오.
사용자 "HWANG"에게 테이블을 생성할 수 있는 권한을 부여하기 위한 SQL문을 작성하시오.
_____ CREATE TABLE _____ HWANG
A : GRANT to
(권한을 부여하는 명령어는 GRANT to이다)
03. SQL문의 빈칸을 완성하시오.
[성적] 테이블에서 점수가 90점 이상 95점 이하인 '컴퓨터공학과' 학생의 정보를 검색한 SQL문을 작성하시오.
SELECT * FROM 성적 WHERE (점수 _____ 90 _____ 95) AND 학과 = '컴퓨터공학과';
A : BETWEEN, AND
(90점 이상 95점 이하 즉, 90~95 사이에 있기 때문에 BETWEEN 사용)
04. SQL문의 빈칸을 완성하시오.
[성적] 테이블에서 점수가 높은 학생 순으로 이름(Name)과 점수(Score)가 출력되도록 SQL문을 작성하시오.
SELECT Name, Score FROM 성적 _____ BY Score _____
A : ORDER DESC
(정렬하도록 하는 구문은 ORDER이며, 최고점에서 최하점 즉, 내림차순으로 정렬하기 위해 DESC 사용)
05. SQL문의 빈칸을 완성하시오.
[학생] 테이블에서 '안중근' 학생의 점수를 95점으로 갱신하는 SQL문을 작성하시오.
_____ 학생 _____ 점수 = 95 WHERE 이름 = "안중근";
A : UPDATE SET
(정보를 갱신(업데이트) 하기 때문에 UPDATE SET 사용)
06. SQL문의 빈칸을 완성하시오.
[학생] 테이블에서 '주소' 속성을 추가하는 SQL문을 작성하시오.
_____ TABLE 학생 _____ 주소 VARCHAR(20)
A : ALTER ADD
(테이블에 속성을 추가시 ALTER와 함께 추가하다인 ADD를 사용)
07. SQL문의 빈칸을 완성하시오.
[학생] 테이블에서 '이'로 시작하는 학생들의 학번을 검색하여 학년이 높은 학생 순으로 출력하는 SQL문을 작성하시오.
SELECT 학번 FROM 학생 WHERE 이름 = "_____" ORDER BY 학년 _____
A : 이%, DESC
('이'로 시작하기 때문에 이%를, 내림차순이기 때문에 DESC를 사용)
08. SQL문의 빈칸을 완성하시오.
[학생정보] 테이블과 [학과정보] 테이블을 결합하여 학생명과 학과명을 출력하는 SQL문을 작성하시오.
SELECT A.이름, B.학과명 FROM 학생정보 A _____ 학과정보 B ON A.학과 = B.학과
A : JOIN
(테이블 병합 시에는 JOIN을 사용)
09. SQL문의 빈칸을 완성하시오.
[Exam] 테이블의 모든 레코드를 지우기 위한 명령어 SQL문을 작성하시오.
A : DELETE
(모든 레코드 지우기(DELETE)이기 때문에 DELETE 사용)
10. SQL문의 빈칸을 완성하시오.
[Exam] 테이블의 구조를 변화시키며 삭제하기 위한 명령어 SQL문을 작성하시오.
A : DROP
(테이블을 완전 삭제 시키기 위해서 DROP을 사용)
01. 다음 빈칸의 내용을 작성하시오.
( ① ) : 물리(Physics) 계층에서 데이터 전송을 하기 위해 사용하는 데이터 단위
( ② ) : 네트워크(Network) 계층에서 데이터 전송을 하기 위해 사용하는 데이터 단위
A : bit, 패킷
02. 다음이 설명하는 용어를 작성하시오.
릴레이션에서 하나의 속성이 취할 수 있는 동일한 타입의 원자값들의 집합을 의미하는 것을 무엇이라 하는지 쓰시오.
A : 도메인
03. 다음이 설명하는 용어를 작성하시오.
모든 창을 최소화하여 바탕화면을 보기 위한 윈도우 단축키는 무엇인지 작성하시오.
A : 윈도우 키 + D, 윈도우 키 + M
04. 다음이 설명하는 용어를 작성하시오.
한 릴레이션 내에 있는 후보키 중에 하나 이상의 속성들의 집합으로, 구성된 키의 모든 튜플에 대해 유일성(Unique)은 만족하지만, 최소성(Minimality)은 만족하지 못하는 것이 무엇인지 작성하시오.
A : 슈퍼키 (SUPER KEY)
05. 다음이 설명하는 용어를 작성하시오.
데이터베이스에서 릴에이션 내의 각 행을 레코드라고 하며, 관련 테이블에서 행한 수치 이상으로 혼합된 자료 요소를 의미, 각 개체들의 각각의 정보를 표현하는 것이 무엇인지 작성하시오.
A : 튜플
06. 다음이 설명하는 용어를 작성하시오.
CPU(중앙처리장치)와 입출력 장치 간의 속도 차이를 완화하기 위해 사용하는 시스템으로, 대표적으로 프린터에서 사용하는 기능은 무엇인지 쓰시오.
A : 스풀링 ( or 스풀)
(흔히 문서를 프린트 하면서 인터넷 서핑을 하거나 하는 일을 스풀링이라고 함)
07. 다음이 설명하는 용어를 작성하시오.
전기적인 연결, 물리적 설계, 데이터 전송 등에 이용되는 OSI 계층은 무엇인지 작성하시오.
A : 물리계층
08. 다음이 설명하는 용어를 작성하시오.
릴레이션 내의 데이터를 변경하거나 삭제할 때, 다른 개체가 해당 개체를 참조하고 있을 경우 변경 및 삭제를 취소하는 명령어는 무엇인지 쓰시오.
A : RESTRICT
09. 다음이 설명하는 용어를 작성하시오.
네트워크상에서 IP주소를 물리적 주소(MAC)로 대응시키기 위해 사용되는 프로토콜이다.
IP address를 LAN 카드의 물리적 주소인 MAC 주소로 변환한다.
A : ARP
10. 다음이 설명하는 용어를 작성하시오.
하나의 작업을 수행하기 위해 필요한 연산들의 집합이다.
데이터베이스에서 논리적인 작업의 단위를 의미한다.
원자성, 일관성, 독립성, 지속성 등의 특징을 있다.
A : 트랜잭션