JAVA(3문제)
https://www.mycompiler.io/ko/new/java
새 Java 프로그램 만들기 - 마이컴파일러 - myCompiler
실행 코드 코드 저장 기존 코드를 유지하시겠습니까? 에디터에 코드가 있는 동안 언어를 전환하려고 합니다. 이를 유지하려면 “기존 코드 유지”를 선택합니다. 예제로 바꾸려면 “예제로 바
www.mycompiler.io
1. 출력값 구하기
class Static{
public int a = 20;
static int b = 0;
}
public class Main{
public static void main(String[] args) {
int a;
a = 10;
Static.b = a;
Static st = new Static();
System.out.println(Static.b++);
System.out.println(st.b);
System.out.println(a);
System.out.print(st.a);
}
}
출력값 :
10
11
10
20
JAVA static 변수
- Static 변수는 클래스 변수
- 객체를 생성하지 않고도 Static 자원에 접근 가능
- GC(Garbage Collerctor가 관리하지 않음)
- 메모리에 고정적으로 할당되어, 프로그램이 종료될 때 해제되는 변수(정적변수)
2. 출력값 구하기
abstract class Vehicle{
String name;
abstract public String getName(String val);
public String getName(){
return "Vehicle name:" + name;
}
}
class Car extends Vehicle{
private String name;
public Car(String val){
name=super.name=val;
}
public String getName(String val){
return "Car name : " + val;
}
public String getName(byte val[]){
return "Car name : " + val;
}
}
public class Main {
public static void main(String[] args){
Vehicle obj = new Car("Spark");
System.out.print(obj.getName());
}
}
츨력값 : Vehicle name: Spark
JAVA Overloading
- 같은 이름의 메소를 여러 개 정의
- 메소드명은 같지만, 파라미터의 타입이나 개수가 다르게 해서 다양한 방식으로 호출
- 호출시 같은 메서드명이라도 인자 타입과 개수에 따라 각자 다른 메서드가 호출 된다
JAVA Overriding
- 상속받은 메소드를 재정의
- 상속받은 메소드를 재정의 할 경우, 자식 객체에서 호출 시 재정의 된 메서드가 호출 된다
- abstract클래스를 상속받을 경우 abstract메소드를 반드시 오버라이딩해야만 자식 클래스의 인스턴스를 생성 할 수 있다
3. 출력값 구하기
class Parent {
int x = 100;
Parent() {
this(500);
}
Parent(int x) {
this.x = x;
}
int getX() {
return x;
}
}
class Child extends Parent {
int x = 1000;
Child() {
this(5000);
}
Child(int x) {
this.x = x;
}
}
public class Main {
public static void main(String[] args) {
Child obj = new Child();
System.out.println(obj.getX());
}
}
출력값 : 500
JAVA 변수의 범위
- 상속관계에서 부모생성자가 먼저 호출되고, 부모클래스에만 존재하는 메소드 호출시 부모 클래스 내의 변수를 사용
C언어(4문제)
https://www.mycompiler.io/ko/new/c
새 C 프로그램 만들기 - 마이컴파일러 - myCompiler
실행 코드 코드 저장 기존 코드를 유지하시겠습니까? 에디터에 코드가 있는 동안 언어를 전환하려고 합니다. 이를 유지하려면 “기존 코드 유지”를 선택합니다. 예제로 바꾸려면 “예제로 바
www.mycompiler.io
1. 출력값 구하기
#include <stdio.h>
int main(){
char a[] = "Art";
char* p = NULL;
p = a;
printf("%s\n", a);
printf("%c\n", *p);
printf("%c\n", *a);
printf("%s\n", p);
for(int i = 0; a[i] != '\0'; i++)
printf("%c", a[i]);
}
출력값 :
Art
A
A
Art
Art
C의 문자열
- char str[] = "String" : 배열 기반의 문자열
- 문자열 전체를 저장하고 문자열의 값 변경 가능
- 배열이름은 첫 문자의 주소 값, 다른 위치로 이동 불가능
- str : 문자열 전체 출력
- *str : str이 가리키는 주소에 저장된 값, str은 첫 문자의 주소 값
- str[i] : i 인덱스에 해당하는 문자 출력
- char * pstr = str : 포인터 형태의 문자열
- pstr : 시작 주소부터 문자열 전체 출력
- *pstr : pstr이 가리키는 주소에 저장된 값, 현재 pstr은 str(str의 첫 문자 주소값)이 저장되어 있음
2. 출력값 구하기
#include <stdio.h>
int main(){
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
C의 문자열
- C는 Null문자(\0)를 만나면 문자열이 끝을 정함
- 문자열[i] != '\0' : 문자열이 끝나기전까지라는 뜻, for문에 사용하면 문자열의 글자수만큼 반복
3. 빈칸 작성
빈칸 (가)-연산자(나)-정수 : 이진수를 십진수로 변환하는 코드
#include <stdio.h>
int main() {
int input = 101110;
int di = 1;
int sum = 0;
while (1) {
if (input == 0) break;
else {
sum = sum + (input (a)(b)) * di;
di = di * 2;
input = input / 10;
}
}
printf("%d", sum);
return 0;
}
정답 : (a) %, (b) 2
4. 빈칸 작성
빈칸 (가)-변수 (나)-변수
#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
PYTHON(1문제)
https://www.mycompiler.io/ko/new/python
새 Python 프로그램 만들기 - 마이컴파일러 - myCompiler
실행 코드 코드 저장 기존 코드를 유지하시겠습니까? 에디터에 코드가 있는 동안 언어를 전환하려고 합니다. 이를 유지하려면 “기존 코드 유지”를 선택합니다. 예제로 바꾸려면 “예제로 바
www.mycompiler.io
1. 출력값 구하기
a = {'한국', '중국', '일본'}
a.add('베트남')
a.add('중국')
a.remove('일본')
a.update({'홍콩', '한국', '태국'})
print(a)
출력값 : {'한국', '중국', '베트남', '홍콩', '태국'}
Python 집합(Set) 자료형
- 사용방법 : {}
- 특징
- 요소들간 순서가 없다
- 중복을 허용하지 않는다(중복 요소는 추가되지 않음)
- 요소를 변경할 수 없다(단, 변경만 불가하고 추가나 삭제는 가능)
- 관련 함수
- set([리스트]) : 리스트 자료형을 set으로 변환
- 변수명.add('원소') : 집합에 원소 추가
- 변수명.update({'원소',...}) : 집합에 해당 원소들 추가
- 변수명.remove('원소') : 집찹에서 원소 제거
SQL(2문제)
https://www.programiz.com/sql/online-compiler/
Online SQL Editor
www.programiz.com
1. 쿼리 작성 : 이름이 '민수'인 튜플을 삭제하는 쿼리
조건
- 컬럼의 값이 문자열일 경우 작은 따움표 (' ')를 표시하시오.
- SQL 마지막에 세미콜론(;)은 표기하지 않아도 관계 없습니다.
[학생] 테이블
순번 | 학년 | 이름 |
1 | 1 | 종현 |
2 | 2 | 민수 |
3 | 2 | 수연 |
4 | 3 | 수지 |
정답 : DELETE FROM 학생 WHERE 이름='민수';
SQL : 행(row) 삭제
- DML(Data Manipulation Language) : DELETE 명령어 사용
- DELETE FROM 테이블 WHERE 조건절;
2. 쿼리 작성 : 과목별 점수의 평균이 90점 이상인 데이터들을 결과처럼 나오게 쿼리 작성
조건
- where사용하지 말하야 한다.
- SELECT절에 별칭을 사용하여 작성해야 한다.
- SQL 구문 마지막에 세미콜론 생락 가능하다.
- 반드시 GROUP BY와 having을 사용해야 한다.
- 집계함수를 사용해야 한다.
[성적] 테이블
순번 | 과목이름 | 점수 |
1 | 데이터베이스 | 89 |
2 | 데이터베이스 | 92 |
3 | 네트워크 | 88 |
4 | 소프트웨어 | 91 |
5 | 네트워크 | 89 |
6 | 소프트웨어 | 85 |
결과
과목이름 | 최소점수 | 최대점수 |
데이터베이스 | 89 | 92 |
정답 : SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 성적 GROUP BY 과목이름 HAVING AVG(점수) >= 90;
SQL : 그룹별 집계
- 특정 컬럼 기준으로 집계함수를 사용하여 COUNT, SUM, AVG 등 집계성 데이터를 추출할 때 사용
- SELECT 그룹컬럼, 집계데이터 FROM 테이블명 GROUP BY 그룹컬럼 HAVING 조건절
- HVING : 집계 함수의 결과를 조건절에 사용하고 싶은 경우, 그룹화 되어진 새로운 테이블에 조건
- WHERE : 일반 컬럼의 조건, 모든 필드에 조건에 둘 수 있음
- 자주 사용하는 집계 함수
- COUNT : 건수(행의 갯수), 컬럼의 값이 NULL인 경우 제외
- SUM : 합계
- AVG : 평균
- MAX : 최댓값
- MIN : 최솟값
- STDEV : 표준편차
- VAR : 분산
- STRUNG_AGG : 컬럼의 문자열들 합치기, 컬럼의 값이 NULL인 경우 제외
'문제 > 정보처리기사실기' 카테고리의 다른 글
[정보처리기사 실기] 2022년 2회 JAVA, C, PYTHON, SQL (0) | 2024.10.12 |
---|---|
[정보처리기사 실기] 2022년 3회 JAVA, C, PYTHON, SQL (0) | 2024.09.21 |
[정보처리기사 실기] 2023년 2회 JAVA, C, PYTHON, SQL (0) | 2024.08.26 |
[정보처리기사 실기] 2023년 3회 JAVA, C, PYTHON, SQL (0) | 2024.08.20 |
[정보처리기사 실기] 2024년 1회 JAVA, C, PYTHON, SQL (0) | 2024.08.04 |