2020. 1. 16. 19:21ㆍC# 언어/이것이 C# 이다. 연습문제
1. 다음 코드에서 잘못된 부분을 찾고, 그 이유를 설명하세요.
int a = 7.3;
float b = 3.14;
double c = a * b;
char d = "abc";
string e = '한'
크기가 더 큰것 -> 크기가 더 작은 것 : 명시적 캐스팅 필요 (데이터가 손실 될 우려가 있어 형변환 필요)
작은 것 -> 크기가 더 작은 것 : 암시적 캐스팅 (데이터가 손실 될 우려가 적음)
int a = 7.3; // int형은 소수점이 없는 정수를 받음 7.3을 int형으로 캐스팅 혹은 int값을 float형으로 해줘야함
int a = (int)7.3 or float a = 7.3f;
float b = 3.14; // float b = 3.14f; // float형은 데이터 뒤에 f를 붙여줘야됨
double c = a * b // 위에 a와 b를 수정하면 사용 가능
char d = "abc"; // char형은 한개의 문자를 데이터 타입으로 하고 따옴표로 묶어줘야함
char d = 'a' or char d = 'b' ..처럼 사용해야함
string e = '한'; // string형은 문자형을 데이터 타입으로 함 string e = "한"; 으로 쌍따옴표로 표현
2. 값 형식과 참조 형식의 차이는 무엇인가요?
값 형식 : 데이터를 스택에 할당하여 값 자체를 나타내줌
참조 형식 : 데이터를 힙에 할당하고 스택에 데이터 주소를 가르킴
3. 박싱과 언박싱을 설명하세요.
박싱 : 값 형식을 참조 형식으로 변환
언박싱 : 참조 형식을 값 형식으로 변환
4. 다음과 같이 사용자로부터 사각형의 너비와 높이를 입력받아 넓이를 계산하는 프로그램을 완성하세요.
출력
사각형의 너비를 입력하세요.
30
사각형의 높이를 입력하세요.
40
사각형의 넓이는 : 1200
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
using System;
using static System.Console;
using System.Text;
using System.IO;
namespace baekjoon
{
class MainApp
{
static void Main()
{
WriteLine("사각형의 너비를 입력하세요.");
string width = Console.ReadLine();
WriteLine("사각형의 높이를 입력하세요..");
string heigth = Console.ReadLine();
int muxNum = int.Parse(width) * int.Parse(heigth); //string형 -> int형 으로
WriteLine($"사각형의 넓이는 : {muxNum}");
}
}
}
|
5. 다음 코드를 컴파일한 후의 a와 b는 각각 어떤 데이터 형식이겠습니까?
var a = 2020;
var b = "double";
WriteLine(a.GetTypeCode()); // int32
WriteLine(b.GetTypeCode()); // String