C# 연습문제 : 데이터 (뇌를 자극하는 C# 5.0)

2022. 9. 7. 22:58문제/C# 연습문제

1. 다음 코드에서 잘못된 부분을 찾고 , 그 이유를 설명하세요.

int a = 7.3;
float b = 3.14;
double c = a * b;
char d = "abc";
string e = '한';

int는 정수형 자료형이어서 소수점은 사용할 수 없다.

float에서 값을 쓰고 뒤에 f를 붙여야 float형이라고 인식한다 붙이지않으면 double이다.

char는 단일 문자를 저장하는 자료형이어서 ''를통해서만 값을 할당 할 수 있다.

string은 문자열을 저장하는 자료형이어서 ""를 통해 값을 할당 할 수 있다.

 

2. 값 형식과 참조 형식의 차이는 무엇인가요?

값 형식은 변수가 값을 담는 데이터 형식을 말한다. 스택에 값이 저장되기 때문에 코드 블럭을 벗어나면 메모리에서 제거된다.

참조 형식은 변수가 값 대신 값을 가지고 있는 위치를 담는 데이터 형식이다. 힙에 데이터가 저장되고, 스택에 데이터가 저장된 메모리 주소를 저장한다. 힙에서는 가비지 콜렉터가 힙에 저장된 데이터 중 이것을 사용하는 객체가 없다면 자동으로 수거한다.

 

3. 박싱과 언박싱을 설명하세요

박싱이란 값 형식으로 되어 있는 데이터를 참조 형식의 데이터에 저장시켜놓는 행위를 말한다. ( 코드블럭이 사라지더라도값이 없어지지 않도록)

언박싱이란 박싱이 되어 있는 값을 꺼내 값 형식 변수에 저장하는 행위를 말한다.

4. 사각형의 너비와 높이를 입력받아 넓이를 계산하는 프로그램을 완성하시오

using System;


namespace BookTestC
{
    public class Program
    {
        private static void Main(string[] args)
        {
            Console.WriteLine("사각형의 너비를 입력해주세요.");
            string widthText = Console.ReadLine();

            Console.WriteLine("사각형의 높이를 입력해주세요.");
            string heightText = Console.ReadLine();

            int width = int.Parse(widthText);
            int height = int.Parse(heightText);

            int result = width * height;

            Console.WriteLine("사각형의 넓이는 :{0}입니다", result);
        }
    }
}

결과창

 

 

5. 다음 코드를 컴파일한 후 a와 b는 각각 어떤 데이터 형식이겠습니까?

var a = 2020;
var b = "double"

a는 int , b는 string입니다.