6 분 소요

###20년 1회

14번 출력 결과

#include <stdio.h>
 
main() {
  int c=1;
  switch(3){
    case 1:c+=3;
    case 2:c++;
    case 3:c=0;
    case 4:c+=3;
    case 5:c-=10;
    default : c--;
    
  }
printf("%d",c);
  }

-8

###20년 1회

20번 출력 결과

#include <stdio.h>
void align(int a[]){
  int temp;
  for(int i=0;i<4;i++)
    for(int j=0;j<4-i;j++)
      if(a[j]>a[j+1]){
        temp=a[j];
        a[j]=a[j+1];
        a[j+1]=temp;
      }
}
 main() {
   int a[]={85, 75, 50, 100, 95};
   align(a);
   for(int i=0;i<5;i++)
     printf("%d",a[i]);
}

​50758595100

###20년 3회

10번 출력 결과

#include <stdio.h>
int r1(){
  return 4;
}
int r10(){
  return(30+r1());
}
int r100(){
  return(200+r10());
}
int main(){
  printf("%d\n",r100());
}

234

###20년 4회

10번 출력 결과

#include <stdio.h>
 
 main() {
   char *p="KOREA";
   printf("%s\n",p);
   printf("%s\n",p+3);
   printf("%c\n",*p);
   printf("%c\n",*(p+3));
   printf("%c\n",*p+2);
   }
접기

KOREA

EA

K

E

M

###21년 1회

15번 출력 결과

#include <stdio.h>
void main(){
struct insa {
	char name[10];
    int age;
 }a[] = {"Kim",28,"Lee",38,"Park",42,"Choi",31};
    struct insa *p;
    p = a;
    p++;
    printf("%s\n", p-> name);
    printf("%d\n", p-> age);
  }

Lee

38

###21년 2회

16번 출력 결과

int main(){
   int res;
   res = mp(2,10);
   printf("%d",res);
   return 0;
}
 
int mp(int base, int exp) {
   int res = 1;
   for(int i=0; i < exp; i++){
      res *= base;
   }
   
   return res;
}

1024

###21년 2회

18번 출력 결과

int main(){
 
int ary[3];
int s = 0;
*(ary+0)=1;
ary[1] = *(ary+0)+2;
ary[2] = *ary+3;
for(int i=0; i<3; i++){
  s=s+ary[i];
}
 
printf("%d",s);
 
}

8

###21년 3회

12번 출력 결과

#include <stdio.h>
 
int main(){
int *arr[3];
int a = 12, b = 24, c = 36;
arr[0] = &a;
arr[1] = &b;
arr[2] = &c;
 
printf("%d\n", *arr[1] + **arr + 1);
 
}

37

###21년 3회

17번 출력 결과

#include <stdio.h>
 
struct jsu {
  char name[12];
  int os, db, hab, hhab;
};
 
int main(){
  <!-- struct jsu st[3] = \{\{"데이터1", 95, 88}, 
                    {"데이터2", 84, 91}, 
                    {"데이터3", 86, 75\}
                    \}; -->
  struct jsu* p;
 
  p = &st[0];
 
  (p + 1)->hab = (p + 1)->os + (p + 2)->db;
  (p + 1)->hhab = (p+1)->hab + p->os + p->db;
 
  printf("%d\n", (p+1)->hab + (p+1)->hhab);
}

501

###22년 1회

12번 5를 입력받았을 때 출력 결과

#include <stdio.h>
 
int func(int a) {
 if(a<=1) return 1;
 return a*func(a-1);
}
 
int main(){
 int a;
 scanf("%d",&a);
 printf("%d",func(a));
}

120

###22년 1회

15번 아래 프로그램은 정수를 역순으로 출력하는데 (1)(2)(3)에 들어갈 연산자를 쓰시오

#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;
 
}

(1) : >

(2) : %

(3) : /

###22년 2회

8번 출력결과

#include <stdio.h>
struct A{
  int n;
  int g;
  };
 
int main() { 
struct A a[2];
  for(int i=0;i<2;i++){
    a[i].n=i, a[i].g=i+1;
  }
  printf("%d",a[0].n+a[1].g);
}

2

###22년 2회

15번 출력결과

#include <stdio.h>
 
int len(char*p);
 
int main(){
 
  char*p1 = "2022";
  char*p2 = "202207";  
  
  int a = len(p1);
  int b = len(p2);
  
  printf("%d", a+b);
 
}
 
int len(char*p){
  int r = 0;
  while(*p != '\0'){
    p++;
    r++;
  }
return r;
}

10

###22년 2회

16번 출력결과

#include <stdio.h>
 
int main(int argc, char*argv[]) {
  int a[4]={0,2,4,8};
  int b[3]={};
  int i=1;
  int sum=0;
  int *p1;
 
  for(i;i<4;i++){
    p1=a+i;
    b[i-1]=*p1-a[i-1];
    sum=sum+b[i-1]+a[i];
  }
  printf("%d",sum);
 
  return 0;
}

22

###22년 3회

아래는 C언어의 2차원 배열 형태이다. field의 경우 2차원 배열 형태는 예시처럼 출력되므로, 이를 참고하여 mines의 2차원 배열 형태를 작성하시오.

#include <stdio.h>
void main(){
 
int mines[4][4] = \{\{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0\}\};
int field[4][4] = \{\{0,1,0,1},{0,0,0,1},{1,1,1,0},{0,1,1,1\}\};
 
int w = 4, h = 4;
 
  for(int y=0; y<h; y++) {
      for(int x=0;x<w;x++) {  
        if(field[y][x] == 0) continue;
        for(int j=y-1;j<=y+1;j++) {
          for(int i=x-1;i<=x+1;i++) {
                  if(chkover(w,h,j,i) == 1) 
                     mines[j][i] += 1;
          }
        }
      }
    }
 }
 
int chkover(int w,int h,int j,int i) {
  if (i >= 0 && i < w && j >= 0 && j < h) return 1;
  return 0;
}

1 1 3 2 3 4 5 3 3 5 6 4 3 5 5 3

###22년 3회

13번 출력결과

#include<stdio.h>
main(){
  int s, el =0;
  for(int i=6; i<=30; i++){
    s=0;
    for(int j=1; j<=i/2; j++){
      if(i%j==0){
        s=s+j;
      }
    }
    if(s==i){
    el++;
    }
  }
  printf("%d", el);
  }

2

###23년 1회

2번 출력결과

#include <stdio.h>
 
int main(void) {
  char a[]="Art";
  char*p=NULL;
  p=a;
  printf("%s\n",a);
  printf("%c\n",*p);
  printf("%c\n",*a);
  printf("%s\n",a);
 
  for(int i=0;a[i]!='\0';i++){
    printf("%c",a[i]);
  }
}

Art

A

A

Art

Art

###23년 1회

8번 출력결과

#include <stdio.h>
 
int main(void) {
  char *a = "qwer";
  char *b = "qwtety";
  for (int i = 0; a[i] != '\0'; i++) {
    for (int j = 0; b[j] != '\0'; j++) {
      if (a[i] == b[j]) printf("%c", a[i]);
    }
  }
}

qwe

###23년 1회

10번 (가)는 연산자이고 (나)는 정수인데 빈칸을 알맞게 쓰시오.

#include <stdio.h>
 
int main(void) {
int input = 101110;
int di = 1;
int sum = 0;
 
while (input > 0) {
sum = sum + (input (가)(나) * di);
di = di * 2;
input = input / 10;
}
 
printf("%d", sum);
 
return 0;
}

(가 ) : %

(나) : 10 또는 2

###23년 1회

14번 (가) (나) 빈칸에 알맞은 변수를 쓰시오.

#include <stdio.h>
 
void swap(int* idx1, int* idx2) {
  
  int t = *idx1;
  *idx1 = *idx2;
  *( 가 ) = t;
}
void Usort(int a[], int len) {
  for (int i = 0; i < len - 1; i++) {
    for (int j = 0; j < len - i - 1; j++) {
      if (a[j] > a[j + 1])
        swap(&a[j], &a[j + 1]);
    }
  }
 
  for (int k = 0; k < 5; k++) {
    printf("%d ", a[k]);
  }
}
 
int main(void) {
  int arr[] = {64, 34, 25, 12, 40};
  int nx = 5;
 
  Usort(arr, (나));
  return 0;
}

(가) idx2

(나) nx

###23년 2회

1번

n[(i+1) % 5]

###23년 2회

2번 a,b,c,d의 빈칸에 알맞은 식을 <보기>에서 찾아쓰는데 <보기>를 최소한으로 쓰시오.

<보기>
1000
500
100
10
%
/
+
-
#include<stdio.h> 
 
int main()
{
int m=4620;
int a,b,c,d;
a=(가)
b=(나)
c=(다)
d=(라)
printf("1000원 개수: %d",a);
printf("500원 개수: %d",b);
printf("100원 개수: %d",c);
printf("10원 개수: %d",d);
return 0;
}

(가) : m/1000

(나) : (m%1000)/500

(다) : (m%500)/100

(라) : (m%100)/10

###23년 2회

3번 다음 문제에서 홍길동, 김철수, 박영희 순서대로 입력했다고 할 때 출력결과

#include<stdio.h> 
#include<stdlib.h> 
 
char n[30];
 
char *test() {
printf("입력하세요 : ");
gets(n);
return n;
}
 
int main()
{
char * test1;
char * test2;
char * test3;
 
test1 = test();
test2 = test();
test3 = test();
 
printf("%s\n",test1);
printf("%s\n",test2);
printf("%s",test3);
return 0;
}

박영희

박영희

박영희

###23년 2회

5번 출력결과

#include<stdio.h>
 
int main(void)
{
    int n[3] = {73, 95, 82};
    int sum = 0;
    for(int i=0;i<3;i++){
        sum += n[i];
}
 
switch(sum/30){
  case 10:
  case 9: printf("A");
  case 8: printf("B");
  case 7: 
  case 6: printf("C");
  default: printf("D");
}
    return 0;
}

BCD

###23년 2회

7번 출력결과

#include<stdio.h>
 
int main(void){
    int c=0;
    for(int i = 1; i <=2023; i++) { 
 
      if(i%4 == 0) c++; 
 
}
   printf("%d", c);
    return 0;
}

505

###23년 2회 9번 출력결과

#include<stdio.h>
#define MAX_SIZE 10
 
int isWhat[MAX_SIZE];
int point= -1; 
 
void into(int num) {
    if (point >= 10) printf("Full");
    isWhat[++point] = num;
}
 
int take() {
if (isEmpty() == 1) printf("Empty");
return isWhat[point--];
}
 
int isEmpty() {
    if (point == -1) return 1;
    return 0;
}
 
int isFull() {
    if (point == 10) return 1;
    return 0;
}
 
int main(int argc, char const *argv[])
{
    int e;
    into(5); 
    into(2);
    while(!isEmpty())
    {
        printf("%d", take());
        into(4); 
        into(1); 
        printf("%d", take()); 
 
        into(3); 
        printf("%d", take()); 
        printf("%d", take()); 
 
        into(6); 
        printf("%d", take()); 
        printf("%d", take()); 
    }
    return 0;
}

213465

###23년 2회

18번 다음은 선택정렬을 하는 코드이다. (가)에 들어갈 기호를 쓰시오.

#include<stdio.h>
int main(void){
int E[] = {64, 25, 12, 22, 11};
    int n = sizeof(E) / sizeof(E[0]);
    
    int i = 0;
    do {
        int j = i + 1;
        do {
 
            if (E[i] (가) E[j]) {
                int tmp = E[i];
                E[i] = E[j];
                E[j] = tmp;
            }
            j++;
 
       } while (j < n);
       
       i++;
    } while (i < n - 1);
    
return 0;
    
}

(가) : >

댓글남기기