1️⃣ [C언어]
2021.1회
다음은 C언어 프로그램이다. 실행 결과를 쓰시오.
#include
struct good {
char name[10];
int age;
};
void main(){
struct good s[] = {"Kim",28,"Lee",38,"Seo",50,"Park",35};
struct good *p;
p = s;
p++;
printf("%s\n", p-> name);
printf("%s\n", p-> age);
}
Lee 38
struct : 구조체(structure) - 여러 종류의 변수를 하나의 복합 데이터 타입으로 묶어주는 역할
good 구조체의 name은 char 배열로 최대 10개의 문자를 저장할 수 있다.
good 구조체의 age는 int 형으로 age를 저장한다.
그 다음 구조체 배열 s[]를 선언하여 네 개의 구조체를 담는다.
s[0] = "Kim", 28....
포인터 p에 s를 선언하고 p++;의 name과 age를 할당한 값을 출력한다.
p[1].name = Lee
p[1].age = 38
2️⃣ [C언어]
2022.1회
다음 C언어 프로그램의 괄호 안에 들어갈 알맞은 연산자를 작성하시오.
#include <stdio.h>
int main() {
int number = 1234;
int div = 10;
int result = 0;
while (number ( 1 ) 0) {
result = result * div;
result = result + number ( 2 ) div;
number = number ( 3 ) div;
}
printf("%d", result);
return 0;
}
결과 : 4321
(1) >
(2) %
(3) /
우선 number은 1234, div는 10, result는 0으로 선언되었다.
결과가 4321이 나오려면 result에 4부터 차례대로 값이 들어가야 한다.
number의 값이 0보다 클때까지 반복해야 하기 때문에 (1)은 > 이다.
4의 값이 나오도록 하는 건 끝의 4를 나머지로 빼는 것이다.
(2)에 %를 넣고 10으로 나누면 나머지가 4가 먼저 나온다.
그리고 다시 3을 마지막 숫자로 빼야 나머지 값으로 나올 수 있기 때문에 1230의 number 값의 0을 빼기 위해 몫을 출력하는 연산을 (3)에 넣는다
result = result * div | result = result + number % 10 | number = number / div; |
0 = 0 * 10 | 4 = 0 + 1234 % 10 | 123 |
40 = 4 * 10 | 43 = 40 + 123 % 10 | 12 |
430 = 43 * 10 | 432 = 430 + 12 % 10 | 1 |
4320 = 432 * 10 | 4321 = 4320 + 1 % 10 | 0 |
3️⃣ [C언어]
2022.3회
다음 코드에 대한 출력 값을 작성하시오.
int n;
int k;
int s;
int el = 0;
for(n=6; n<=30; n++){
s=0;
k=n/2;
for(int j=1; j<=k; j++){
if(n%j==0){
s=s+j;
}
}
if(s==n){
el++;
}
}
printf("%d", el);
ㅇ
n | s | k | if(s==n) {el ++;} |
6 | 6 | 6/2 = 3 | 1 |
7 | 1 | 3 | 1 |
8 | 7 | 4 | 1 |
9 | 4 | 4 | 1 |
10 | 1 + 2 + 5 = 8 | 5 | 1 |
12 | 1 + 2 + 3 + 4 + 6 = 16 | 6 | 1 |
14 | 1 + 2 + 7 = 10 | 7 | 1 |
15 | 1 + 3 + 5 = 9 | 7 | 1 |
16 | 1 + 2 + 4 + 8 = 15 | 8 | 1 |
18 | 1 + 2 + 3 + 6 + 9 = 21 | 9 | 1 |
20 | 1 + 2 + 4 + 5 + 10 = 22 | 10 | 1 |
21 | 1 + 3 + 7 = 11 | 10 | 1 |
22 | 1 + 2 + 11 = 14 | 11 | 1 |
24 | 1 + 2 + 3 + 4 + 6 + 8 + 12 = X | 12 | 1 |
25 | 1 + 5 = 6 | 12 | 1 |
26 | 1 + 2 + 13 = 16 | 13 | 1 |
28 | 1 + 2 + 4 + 7 + 14 = 28 | 14 | 2 |
30 | 1 + 2 + 3 + 5 + 6 + 10 + 15 = X | 15 | 2 |
j | k | n | s = s+j |
1 | 3 | 6 | 1 |
2 | 3 | 6 | 3 |
3 | 3 | 6 | 6 |
1 | 4 | 8 | 1 |
2 | 4 | 8 | 3 |
3 | 4 | 8 | 3 |
4 | 4 | 8 | 7 |
1 | 5 | 10 | 1 |
2 | 5 | 10 | 3 |
3 | 5 | 10 | 3 |
4 | 5 | 10 | 3 |
5 | 5 | 10 | 8 |
6부터 30까지 소수는 계산하지 않는다. => n과 s가 같을 확률이 0%
k보다 작은 수 중에 n의 약수를 더한 값이 s가 된다.
'📍Certificate > Engineer Information Processing' 카테고리의 다른 글
[정보처리기사] 실기 이론 문제 (2) (6) | 2024.10.02 |
---|---|
[정보처리기사] 실기 프로그래밍언어 3문제 (15) (2) | 2024.10.01 |
[정보처리기사] 실기 이론 문제 (1) (9) | 2024.10.01 |
[정보처리기사(실기)] 통합 테스트 (하향식, 상향식) (1) | 2024.10.01 |
[정보처리기사] 실기 프로그래밍언어 3문제 (13) (3) | 2024.10.01 |