1. 다음 중 컴파일과 컴파일러에 관한 설명으로 옳지 않은 것은?
① 프로그래밍 언어로 작성된 코드를 기계어로 번역해주는 과정이다.
② 컴파일 해주는 도구를 컴파일러라고 부른다.
③ 컴파일을 하게 되면 실행 프로그램(.exe)이 생성된다.
④ Microsoft Visual Studio 6.0에서 컴파일의 단축키는 Ctrl+F7 이다.
⑤ 확장자 .obj 파일은 기계어로 번역된 정보를 담고 있다.
정답은 3번, 컴파일을 하게 되면 exe 파일이 생성되는 것이 아니라 기계어로 번역된 정보를 담고 있는
파일인 obj 파일이 생성된다.
2. 다음 중 Compile Error 를 발생시키는 명령문은?
(단, 정수형 변수 n, m이 선언되어 있다고 가정)
① printf("안녕하세요");
② printf("변수 n의 값은 %d", n);
③ scanf("%d", n);
④ printf("n + m 의 값은 %d", n+m);
⑤ printf("안녕하세요\n저는 홍길동입니다\n");
정답은 3번, scanf 함수로 값을 입력받을 때에는 저장할 변수 앞에 & 를 꼭 붙여줘야 한다.
(단, 포인터 변수나, 배열이 대상일 경우는 제외)
3. 연산자에 대한 설명으로 옳지 않은 것은?
① + : 덧셈
② - : 뺄셈
③ * : 곱셈
④ / : 나눗셈
⑤ % : 백분율
정답은 5번, % 연산자는 백분율이 아니라 나머지 연산자이다. a%b 연산을 하게 되면 a를 b로 나눈 나머지의 값이 반환된다.
4. 변수에 관한 설명으로 옳은 것은?
① 변수의 자료형(Data Type)에 관계없이 메모리(RAM)에 생성되는 공간의 크기는 같다.
② 변수를 선언할 때 값을 초기화하면 이후에 값을 변경할 수 없다.
③ 변수 선언은 어느 곳에나 해도 상관이 없다.
④ 정수 자료형은 int, 문자 자료형은 string, 실수 자료형은 double 이다.
⑤ 정수형 변수 두 개를 선언할 때 int a, b; 와 같은 문법 사용도 가능하다.
정답은 5번, 콤마(,) 연산자로 같은 자료형의 변수를 연이어 선언해줄 수 있다.
5. 서식문자와 제어문자에 관한 설명으로 옳지 않은 것은?
① %d 는 10진 정수에 해당하는 서식문자다.
② %lf 는 10진 실수에 해당하는 서식문자다.
③ 화면에 % 를 출력하기 위해서는 %% 를 써야 한다.
④ 화면에 \ 를 출력하기 위해서는 \/ 를 써야 한다.
⑤ 개행을 하기 위해서 제어문자 \n 을 사용해야 한다.
정답은 4번, \는 제어문자로써 \ 뒤에 영어소문자를 조합하여 명령을 내리게 되는데 \만 타이핑 했을 경우 컴파일러는 해당되는 제어문자를 찾지 못해 Compile Error 를 발생시킨다. 따라서, \ 를 출력하고 싶거든 \\ 를 타이핑 해야 한다.
6. 변수 n 의 값의 범위가 5 < n <= 9 인지 검사하는 if 문은?
① if( n >= 5 && n <= 9 )
② if( n > 5 && n < 9 )
③ if( n > 5 || n < 9 )
④ if( 5 < n <= 9 )
⑤ if( n > 5 && n <= 9 )
정답은 5번, && 는 논리연산자로써 그리고(and) 라는 뜻을 가지고 있는데, 좌변의 조건식과 우변의 조건식이 모두 참일 때 참, 두 변의 조건식 중 어느 것 하나라도 거짓이라면 거짓을 반환하는 연산자이다. 문제에서는 n 의 값이 5보다 크면서 9 이하여야 한다고 했으니 정답은 5번이 된다.
7. <보기>의 while문이 종료된 뒤 화면에 출력되는 변수 i의 값은?
<보기>
#include <stdio.h>
void main()
{
int i = 0;
while( i > 0 )
i++;
printf("%d", i);
}
① 0
② 1
③ 998
④ 999
⑤ 1000
정답은 1번, 정수형 변수 i 에 0이라는 값을 넣어주고 난 뒤에 while 문으로 넘어가게 되는데, while 문 안에 있는 명령문을 수행하기 전 while 문이 동작할 것인지에 대한 여부를 결정하는 조건식을 검사한다. while 문의 조건에서 i 의 값이 0보다 클 때 해당 while 문 안에 있는 명령문을 수행하라고 되어 있는데 현재 i의 값은 0을 초과하지 않으니 반복문은 단 한번도 실행되지 못하고 넘어가버리게 된다. 따라서, 출력되는 값은 0이다.
8. <보기> 중 조건문의 종류만을 골라 바르게 짝지은 것은?
<보기>
㉠ if ㉡ while ㉢ break ㉣ int
㉤ printf ㉥ scanf ㉦ switch ㉧ double
① ㉠, ㉡
② ㉡, ㉣
③ ㉥, ㉦
④ ㉠, ㉦
⑤ ㉣, ㉧
정답은 4번,
㉠ = 조건문 ㉡ = 반복문 ㉢ = 제어문 ㉣ = 자료형
㉤ = 출력함수 ㉥ = 입력함수 ㉦ = 조건문 ㉧ = 자료형
따라서, 조건문만을 짝지은 것은 ㉠과 ㉦이다.
9. 다음은 정수를 입력받고 홀수인지 짝수인지 판별하는 프로그램이다.
<보기>의 밑줄에 들어갈 조건식은?
<보기>
#include <stdio.h>
void main()
{
int num;
scanf("%d", &num);
if( )
printf("%d 는 짝수입니다", num);
else
printf("%d 는 홀수입니다“, num);
}
① num+1 == 2
② num*2 == num+2
③ num/2 == 0
④ num/2 != 0
⑤ num%2 == 0
정답은 5번, 어떤 수를 2로 나누었을 때의 나머지는 0과 1, 이 두가지 밖에 없다.
만약 2로 나누었을 때의 나머지가 0이라면 그 수는 짝수, 1이라면 홀수이다.
밑줄에 들어갈 조건식이 참일 때 짝수라고 출력해주고 있으니 올바른 조건식은 ⑤번이 된다.
10. <보기> 의 반복문이 종료된 후 화면에 출력되는 값은?
<보기>
#include <stdio.h>
void main()
{
int sum = 2;
while( sum < 22 )
sum*=2;
printf("%d", sum);
}
① 12
② 16
③ 18
④ 28
⑤ 32
정답은 5번,
sum이 2일 때, sum은 22보다 작으니 2배 증가 ㅡ> sum = 4
sum이 4일 때, sum은 22보다 작으니 2배 증가 ㅡ> sum = 8
sum이 8일 때, sum은 22보다 작으니 2배 증가 ㅡ> sum = 16
sum이 16일 때, sum은 22보다 작으니 2배 증가 ㅡ> sum = 32
sum이 32일 때, sum은 22보다 작지 않으니 반복문 탈출 ㅡ> sum = 32
'프로그래밍 > 알고리즘' 카테고리의 다른 글
[C언어/알고리즘]1~100 사이의 자연수 중 입력한 수의 배수 출력하기 (0) | 2012.04.12 |
---|---|
[C언어/알고리즘]입력된 수의 계승(팩토리얼)값 출력하기 (0) | 2012.04.12 |
[C언어/알고리즘]1~100 사이 자연수의 모든 합계 (0) | 2012.04.12 |
[C언어/알고리즘]1과 100 사이의 모든 소수(Prime Number)를 출력하기 (0) | 2012.04.12 |
프로그래밍 필기 문제(첨부) (0) | 2012.04.05 |