안녕하세요 오늘은 정보처리기사 실기 프로그래밍 언어 활용 단원에 대해 공부해보겠습니다.
1. 기본 문법 활용하기
#include <stdio.h>
void main(){
int i, j;
int temp;
int a[5] = {75, 95, 85, 100, 50};
for(i=0; i<4; i++){
for(j=0; j<4-i; j++){
if(a[j] > a[j + 1]){
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for(i=0; i<5; i++){
printf("%d ", a[i]);
}
}
-. 거품정렬(Bubble Sort) 로서 두 인접한 원소를 검사하여 정렬하는 방법
-. 요소의 개수 - 1 만큼 반복
-. 요소의 개수 - i 만큼 반복
-. 현재 요소의 값과 다음 요소의 값을 비교하여 큰값을 다음요소로 보냄
-. 0~4번째 값을 출력
-. 출력값 : 50 75 85 95 100
public static void main(String[] args){
int i;
int a[4] = {0, 1, 2, 3};
for(i=0; i<4; i++){
System.out.print(a[i] + " ");
}
}
-. a[0]~a[3] 요소가 출력된다.
-. 출력값 : 0 1 2 3
public static void main(String[] args){
int i = 3;
int k = 1;
switch(i){
case 0:
case 1:
case 2:
case 3: k=0;
case 4: k+=3;
case 5: k-=10;
default: k--;
}
System.out.print(k);
}
-. i가 3이므로 case 3으로 이동
-. k=0 break문이 없으므로 case 4 실행 k+=3 (k는 3)
-. k-=10 실행 (k는 -7)
-. k-- 실행 (k는 -8)
-. 출력값 : -8
a={'일본', '중국', '한국'}
a.add('베트남')
a.add('중국')
a.remove('일본')
a.update({'홍콩','한국','태국'})
print(a)
-. a라는 세트형 변수에 추가 및 삭제 이미 있는 값은 무시
-. 출력값 : {'중국', '한국', '베트남', '홍콩', '태국'}
class Parent{
public void show(){
System.out.println("Parent");
}
}
class Child extends Parent{
public void show(){
System.out.println("Child");
}
}
public class Main{
public static void main(String[] args){
Parent pa = ____ Child();
pa.show();
}
}
-. 밑줄에 들어갈 값은? : new
-. 출력값은 : Child
class A{
private int a;
public A(int a){
this.a=a;
}
public void display(){
System.out.println("a="+a);
}
}
class B extends A{
public B(int a){
super(a);
super.display();
}
}
public class Main{
public static void main(String[] args){
B obj=new B(10);
}
}
-. B(int a) 안에 super(a); 라는 키워드가 있는데 상위 클래스의 생성자에 접근한다.
-. A(int a) 메서드에서 this.a에 10을 대입
-. B(int a) 안에 super.display라는 메서드 실행
-. 출력값 : a=10
#include <stdio.h>
void main(){
int i=0, c=0;
while(i<10){
i++;
c *= i;
}
printf("%d", c);
}
-. c는 i 와 관계없이 i가 10이되어 while문을 탈출하더라도 항상 0이다.
-. 출력값 : 0
#include <stdio.h>
int r1(){
return 4;
}
int r10(){
return (30+r1());
}
int r100(){
return (200+r10());
}
int main(){
printf("%d\n", r100());
return 0;
}
-. 최종적으로 234 출력
public static void main(String[] args){
int i=0;
int sum=0;
while(i<10){
i++;
if(i%2==1)
continue;
sum += i;
}
System.out.println(sum);
}
-. 조건문에 따라 sum 값은 i가 2,4,6,8,10 일때 sum += i; 를 실행하므로 2+4+6+8+10 = 30 이된다.
-. 출력값 : 30
abstract class Vehicle{
private String name;
abstract public String getName(String val);
public String getName(){
return "Vehicle name:" + name;
}
public void setName(String val){
name = val;
}
}
class Car extends Vehicle{
public Car(String val){
setName(val);
}
public String getName(byte val[]){
return "Car name :" + val;
}
}
public class Test{
public static void main(String[] args){
Vehicle obj = new Car("Spark");
System.out.print(obj.getName());
}
}
Spark를 넘겨 주는데 obj.getName() 에서 파라미터가 없으므로 부모 클래스의 getName을 반환
따라서 답은 Vehicle name : Spark 를 출력
lol=[[1, 2, 3],[4, 5],[6, 7, 8, 9]]
print(lol[0])
print(lol[2][1])
for sub in lol:
for item in sub:
print(item, end='')
print()
lol[0] 출력값 [1, 2, 3]
lol[2][1] 출력값 7
lol에서 행 개수만큼 반복
해당 안의 item 만큼 출력
따라서
123
45
6789
#include <stdio.h>
void 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);
}
*p p라는 포인터에 KOREA 저장
%s 가 있으면 null이 나올때까지 출력 KOREA
p+3 부터 출력. EA
%c 가있으면 문자 하나 출력 K
*(p+3) E 출력
*p+2 K의 다다음 스펠링 M 출력
class Parent{
public int compute(int num){
if(num <= 1) return num;
return compute(num - 1)+compute(num-2);
}
}
class Child extends Parent{
public int compute(int num){
if(num <= 1) return num;
return compute(num-1)+compute(num-3);
}
}
class Exam{
public static void main(String[] args){
Parent obj = new Child();
System.out.print(obj.compute(4));
}
}
다음은 오버라이딩 예제로 Child 클래스를 실행하며 결국 출력값은 1이 된다.
'정보처리기사 > 프로그래밍 언어 활용' 카테고리의 다른 글
정보처리기사실기 - 프로그래밍 언어 활용 (2) (0) | 2023.09.03 |
---|
댓글