1. 객관식 문제(각 2점, 총 70점)
1. 다음 중 비선형 구조인 것은 무엇입니까? p >
A) 순환 큐
B) 체인 큐
C) 바이너리 트리
D) 체인 스택
A B C D
2.
(2) 다음 자료구조 중 '선입선출' 원칙에 따라 데이터에 접근할 수 있는 것은
A) 순환 큐
p>B) 스택
C) 큐
D) 이진 트리
A B C D
3.
(3) 순환 큐의 경우 다음 명령문은 정확합니다.
A) 큐의 헤드 포인터는 고정되어 있습니다
B) 큐의 헤드 포인터는 테일 포인터보다 커야 합니다.
C) 팀의 헤드 포인터는 팀의 테일 포인터보다 작아야 합니다.
D) 큐의 헤드 포인터는 팀은 팀의 꼬리 포인터보다 클 수도 있고 팀의 꼬리 포인터보다 작을 수도 있습니다.
A B C D
p>4.
(4) 알고리즘의 공간 복잡도는
A) 알고리즘을 실행하는 동안 필요한 컴퓨터 저장 공간
B) 알고리즘이 처리하는 데이터의 양을 나타냅니다.
C) 알고리즘 프로그램의 명령문 또는 명령어 수
D) 알고리즘 실행 중에 필요한 임시 작업 단위 수
p>
A B C D
5.
(5) 소프트웨어 설계에서 모듈을 나누는 기준 중 하나는 다음과 같습니다.
A) 낮은 응집력과 낮은 결합도
p>B) 높은 응집력과 낮은 결합력
C) 낮은 응집력과 높은 결합력
D) 높은 응집력과 높은 결합력
A B C D p>
6.
(6) 다음 옵션 중 구조적 프로그래밍의 원칙에 속하지 않는 것은 무엇입니까?
A) 캡슐화 가능
B) 자체 하향식
C) 모듈화
D) 단계별 개선
A B C D
7. 자세한 소프트웨어 설계 생성 사진은 다음과 같습니다.
이 사진은
A) N-S 다이어그램
B) PAD 다이어그램
C ) 프로그램 흐름도
p>D) E-R 다이어그램
A B C D
8.
(8) 데이터베이스 관리 시스템은
p>
A) 시스템의 운영 부분
B) 운영 체제에서 지원하는 시스템 소프트웨어
C) 컴파일 시스템
D) 운영 체제
A B C D
9.
(9) E-R 다이어그램에서 엔터티 관계를 나타내는 데 사용되는 모양은 다음과 같습니다.
A ) 타원
B) 직사각형
C) 마름모
D) 삼각형
A B C D
10. 10) R, S, T의 세 가지 관계는 다음과 같습니다.
관계 T는 특정 연산을 통해 관계 R과 S로부터 얻어집니다.
A입니다. ) 선택
B ) 투영
C) 교차점
D) 결합
A B C D
11. 11) 다음 중 올바른 설명은 무엇입니까
p>
A) 프로그래밍의 임무는 프로그램 코드를 작성하고 이를 컴퓨터에서 디버깅하는 것입니다
B) 프로그래밍은 사용된 데이터 구조를 결정하는 것입니다
C) 프로그래밍의 목적 작업은 사용된 알고리즘을 결정하는 것입니다
D) 위의 세 가지 진술은 불완전합니다
>
A B C D
12. (12) 다음 옵션 중 사용자 식별자로 사용할 수 있는 것은
A)void
B)8_8
C)_0_
D)unsigned
A B C D
13) 다음 프로그램을 읽어보세요
# include
main()
{ int case; float printF;
printf("2개의 숫자를 입력하세요: ");
scanf("%d %f",&case,&printF);
printf("%d %f\n",case,printf);
}
컴파일 중에 프로그램에서 오류가 발생했습니다.
A) 정의문에서 발생한 오류는 키워드이므로 오류일 수 없습니다. 사용자 정의 식별자로 사용
B) 정의문에 오류가 있습니다. printF를 사용자 정의 식별자로 사용할 수 없습니다.
C) 정의문에 오류가 없습니다. 정의문이지만, scanf를 입력 함수로 사용할 수 없습니다
D) 정의문에 오류가 없습니다. 측정, printf는 case의 값을 출력할 수 없습니다
A B C D
14. (14) 표현식: (int)((double)9/2)-(9)%2 값 예
A)0
B)3
C)4
D)5
A B C D
15.(15) 정의문이 있는 경우: int x=10 ;이면 x-=x+x 표현식의 값은
A)-20
B)-10
C)0
D)10
A B C D
16. (16) 다음 프로그램이 있습니다.
#include
main()
{ int a=1,b=0;
printf(" %d,",b=a+b);
printf("%d",a=2*b);
}
프로그램이 실행됩니다. 출력 결과는
A)0,0입니다.
B)1,0
C)3,2
D) 1,2
A B C D
17.(17)에는 int a=1,b=2,c=3; 정의가 있으며 다음 문의 실행 효과는 다른 세 가지와 동일합니다. 차이점은
A) if(a>b) c=a,a=b,b=c;
B)if(a>b){c=a, a=b,b=c;}
C)if(a>b) c=a;a=b;b=c;
D)if(a>b ){c=a;a=b;b= c;}
A B C D
18. (18) 다음 프로그램이 있습니다
#include { int c=0,k; for(k=1;k<3;k++) 스위치(k) { 기본값:c+=k; 케이스 2:c++;break; 케이스 4:c+=2;break ; } printf("%d\n",c); } 프로그램 실행 후 출력 결과는 A)3 B)5 C)7 D)9 A B C D 19. (19) 다음 프로그램 세그먼트에서 AND 문: k=a>b?(b>c?1:0 ):0 ;함수는 동일합니다 A)if((a>b)&&(b>c)) k=1; else k=0; p> B)if((a>b)||(b>c)) k=1; else k=0; C)if(a <=b) k=0; else if(b<=c) k=1; D) if(a>b) k=1; else if(b>c) k=1; else k=0; A B C D 20) 다음과 같습니다. 프로그램 #include main() { char s[]={"012xy"};int i,n=0 ; for(i=0;s[i]!=0;i++) if(s[i]>'a'&&s[i]<='z' ) n++; printf("%d\n",n); } 프로그램 실행 후 출력 결과는 다음과 같습니다. A)0 p> B)2 C)3 D)5 A B C D 21. (21)에는 다음 프로그램이 있습니다. #include main() { int n =2,k=0; while(k++&&n++>2); printf("%d %d\n",k,n); } 프로그램 실행 후 출력 결과는 A)0 2 B)1 3 C입니다. )5 7 D)1 2 A B C D 22. (22) 다음과 같은 정의문이 있습니다. 컴파일 중에 컴파일 오류 발생 A) char a='a'; B) char a='\n'; C) char a= 'aa'; D) char a='\x2d'; A B C D 23. (23)에는 다음 프로그램 #include main() { char c1,c2; c1='A '+'8'-'4'; c2='A'+'8'-'5'; printf("%c,%d\n", c1,c2); } 문자 A의 ASCII 코드는 65인 것으로 알려져 있으며, 프로그램 실행 후 출력되는 결과는 A)E,68 B)D,69 C)E,D D) 출력에는 고정된 값이 없습니다. A B C D 24. ( 24) 다음과 같은 프로그램이 있습니다 #include gt; void fun(int p) { int d=2; p=d++; printf("% d",p); } main() { int a=1; fun(a); printf("%d\n",a); } 프로그램 실행 후 출력 결과는 다음과 같습니다. A) 32 B)12 C)21 D)22 A B C D 25. p > (25) 다음 findmax 함수는 배열에서 최대값을 찾아 함수값으로 반환하기 위한 것입니다. 그러나 의도한 것을 방해하는 프로그램 오류가 있습니다. 함수 달성 방지 #define MIN -2147463647 int findmax(int x[],int n) { int i,max; for(i=0;i { max=MIN; if(max } return max; } 오류의 원인은 다음과 같습니다. A ) max는 정의문 int i,max에서 값이 지정되지 않았습니다. B) 지정문 max=MIN;에서 MIN 값은 max에 지정되어서는 안 됩니다. C ) 명령문에서 판단 조건이 잘못 설정되었습니다. if (max D) 할당문 max=MIN; 26. (26)에는 다음 프로그램이 있습니다. #include main() { int m=1,n=2,*p=&m,*q=&n, *r; r=p;p=q;q=r; printf("%d,%d,%d,%d\n",m,n ,*p,*q); } 출력 결과 실행 후 프로그램은 A)1,2,1,2 B)1,2,2,1 C)2,1입니다. 2,1 D)2,1,1,2 A B C D 27. (27) 정의문: int a[4][10],*p,*q[4]; 및 0<=i< 4이면 잘못된 할당은 다음과 같습니다. A)p=a B)q[i]=a[i] C)p=a[ i] D)p=&a[2][1] A B C D 28. (28) 다음 프로그램이 있습니다 #include #include main() { char str[] [20]={"One*World","One*Dream!"},*p =str[1]; printf("%d,",strlen(p)); printf("%s\n",p); } 프로그램 실행 후 출력 결과는 A)9, One*World B)9,One*Dream! C)10,One*Dream! > D)10,One*World A B C D 29. (29)에는 다음 프로그램이 있습니다 # include main() { int a[]={2,3,5,4},i; for( i =0;i<4;i++) 스위치(i%2) { 사례 0: 스위치(a[i]%2) { 케이스 0:a[i]++;break; 케이스 1:a[i]--; } break; case 1:a[i]=0; } for(i=0;i<4;i++) printf( " %d ",a[i]); printf("\n"); } 프로그램 실행 후 출력 결과는 A)3 3 4 4 B)2 0 5 0 C)3 0 4 0 D)0 3 0 4 A B C D 30. (30)에는 다음 프로그램이 있습니다 #include #include main() { char a[10]="abcd"; printf("%d ,%d \n",strlen(a),sizeof(a)); } 프로그램 실행 후 출력 결과는 다음과 같습니다. A) 7,4 B)4,10 C)8,8 D)10,10 A B C D 31. (31) 다음은 C 언어 문자 배열에 대한 설명입니다. 오류는 다음과 같습니다. A) 문자 배열에 문자열을 할당하기 위해 대입문을 사용할 수 없습니다. 이름 B) 입력 문을 사용하여 전체 문자열을 문자 배열에 입력할 수 있습니다. C) 문자 배열의 내용이 반드시 문자열일 필요는 없습니다 D) 문자 배열은 문자열만 저장할 수 있습니다 A B C D 32. (32) 다음 함수의 기능은 fun(char *a,char * b) { while((*b=*a)!='\0'){a++;b++;} } A) a가 가리키는 문자열을 b가 가리키는 공백에 할당 B) 포인터 b가 a가 가리키는 문자열을 가리키도록 만듭니다 C) a가 가리키는 문자열을 비교합니다. 및 b가 가리키는 문자열 D) a와 b가 가리키는 문자열에 '\0'이 있는지 확인 A B C D 33. (33)에는 다음 함수가 있습니다: void fun(int n,char *s){……} 다음 정의와 함수 포인터 할당 정확합니다 A)void (*pf)(); pf=fun; B)void *pf(); C )void *pf(); *pf =fun; D)void (*pf)(int,char);pf=&fun; A B C D 34.(34) 다음과 같은 프로그램이 있습니다 #i nclude int f(int n); main() { int a=3,s; s=f(a);s=s+f(a);printf("%d\n",s); } int f(int n ) { static int a=1; n+=a++; n을 반환; } 프로그램 실행 후 출력 결과는 A)7 B)8 C)9 D)10<입니다. / p> A B C D 35. (35)에는 다음 프로그램이 있습니다 #include # f(x) x*x*x 정의 main() { int a=3,s,t; s=f( a+ 1);t=f((a+1)); printf("%d,%d\n",s,t); } 프로그램 실행 후 출력 결과는 A)10,64 B)10,10 C)64,10 p> D)64,64 A B C D 36. (36) 아래 구조의 정의문에서 잘못된 것은 다음과 같습니다. A)struct ord {int x;int y;int z;};struct ord a; B)struct ord {int x;int y;int z;} 구조체 ord a; C)struct ord {int x;int y;int z;} n; D)struct {int x;int y;int z;} a; A B C D 37. (37)에는 다음과 같은 정의가 있습니다. char *c; 다음 옵션 중 문자 포인터 C가 문자열을 올바르게 가리키도록 할 수 있는 옵션은 다음과 같습니다. p> A) char str[]="string";c=str; B) scanf("%s",c); C) c= getchar(); D) *c="string"; A B C D 38. (38)에는 다음이 있습니다. 프로그램 # include #include struct A { int a;char b[10];double c;} ; 구조물 A f(struct A t); main() { 구조 A a={1001 ,"장다",1098.0}; a=f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c); } struct A f(struct A t) { t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;return t;} 프로그램 실행 후 출력 결과는 A)1001,ZhangDa,1098.0 B)1002,ZhangDa,1202.0 p>C)1001,창롱,1098.0 D)1002,창롱,1202.0 A B C D 39. (39) 다음 프로그램이 있습니다 int r=8; printf("%d\n",r>>1); 출력 결과는 다음과 같습니다. A)16 B)8 C)4 D)2 A B C D 40. (40) C 언어 파일에 대한 다음 설명 중 올바른 것은 무엇입니까 A) 파일은 일련의 데이터가 한꺼번에 배열되어 구성되어 있으며 바이너리 파일만 형성 p> B) 파일은 바이너리 파일이나 텍스트 파일을 형성할 수 있는 일련의 구조로 구성됩니다. C) 파일은 다음과 같이 구성됩니다. 바이너리 파일이나 텍스트 파일을 형성할 수 있는 일련의 데이터 D )파일은 일련의 문자로 구성되며 텍스트 파일만 될 수 있습니다. A B C D p> 2. 빈칸 채우기 문제(빈칸당 2점, *** 30점) 1.(1) 어떤 이진 트리에는 2차 노드가 5개 있습니다. 차수가 1인 3개의 노드가 있으면 이진 트리에는 정확히 1개의 노드가 있습니다. 공백 없이 답을 입력하세요: 2. (2) 프로그램 흐름도의 다이아몬드 상자는 2를 나타냅니다. Enter 공백 없는 대답: 3. (3) 소프트웨어 개발 프로세스는 주로 요구 사항 분석, 설계, 코딩 및 테스트의 네 단계로 나뉩니다. 그 중 3단계 "소프트웨어 요구사항 사양"이 생성됩니다. 공백 없이 답을 입력하세요: 4. (4) 데이터베이스 기술에서 엔터티 세트 간의 관계는 일대일이거나 일대일일 수 있습니다. -대다 또는 다대다인 경우 "학생" 과 "선택 과정" 사이의 관계는 4입니다. 공백 없이 답을 입력하세요: 5. (5) 기본 인사 정보에는 일반적으로 ID 번호, 이름, 성별, 나이 등이 포함됩니다. 그 중 주요 키워드로 사용할 수 있는 것은 5 공백 없이 답을 입력하세요: 6. (6) 해당하는 경우 정의문: int a=5;이면 표현식 a++의 값은 6입니다. 공백 없이 답을 입력하세요: 7. (7) y=를 실행할 때 double x=17;int y;라는 문장이 있는 경우 (int)(x/5)%2;그러면 y의 값은 7입니다. 공백 없이 답을 입력하세요: 8. (8 ) 다음 프로그램을 실행한 후의 출력 결과는 8 #include main() { int x=20; printf("%d ",0 printf("%d\n",0 } 공백 없이 답을 입력하세요: 9. (9) 다음 프로그램을 실행한 후의 출력 결과는 9입니다. # include main() { int a=1,b=7; do{ b = b/2;a+=b; } while (b>1); printf("%d\n",a); } 공백 없이 답을 입력하세요: 10. (10) 다음 프로그램이 있습니다 #include main() { int f,f1,f2,i; f1=0;f2=1; printf("%d %d ",f1,f2); for(i=3;i<=5;i++) { f=f1+f2; "%d",f); f1=f2; f2=f; } printf("\n"); } 프로그램 실행 후 출력 결과는 10입니다. 공백 없이 답을 입력하세요: 11. ( 11) 다음 프로그램이 있습니다 #include int a=5; void fun(int b) { int a=10; a+=b; printf("%d",a); } main() p> { int c=20; fun(c); a+=c; printf("%d\n",a); } 프로그램 실행 후 출력 결과는 11입니다. 공백 없이 답을 입력하세요: 12. (12)에 정의가 있습니다 struct person { int ID;char name[12];} p; scanf("%d",12); 명령문을 완성해 주세요. 구조체 변수 p의 멤버 ID에 대해 데이터를 올바르게 읽을 수 있습니다. 공백 없이 답을 입력하세요: 13. (13)에는 다음 프로그램이 있습니다 #include main() { char a[20]="잘 지내세요?",b[20]; scanf("%s" , b); printf("%s %s\n",a,b); } 프로그램 실행 시 키보드 입력: 잘 지내세요? 출력 결과는 13입니다. 공백 없이 답을 입력하세요: 14. (14)에는 다음 프로그램이 있습니다 #include typedef 구조체 { int num;double s;} REC; void fun1(REC x){ x.num=23;x.s=88.5; } main() { REC a={16,90.0}; fun1( a); printf("%d\n",a.num); } 공백 없이 답을 입력하세요: 15. (15)에는 다음 프로그램이 있습니다 #include fun(int x) { if(x/2>0) fun(x/2); printf("%d ",x); } 메인 () { fun(6);printf("\n");} 프로그램 실행 후 출력 결과는 15입니다. 답을 입력하세요 , 사이에 공백이 없습니다: