티스토리 뷰

함께 만든 C# 기본문법에 관한 문제입니다.

오류도 있을 가능성이 있고 좋지 않은 문제도 있을 수 있으니

의견 있으시면 언제든지 리플 달아주세요!



1. 다음 코드에서 answer의 값은?

1
2
int answer = (13%3)*3 - 9;
answer의 값은?
cs


답 : -6


2. 개체를 만들고 생성자를 호출하는 연산자는 ?


답 : new


3. 반복문을 즉시종료시키는 문 키워드는 무엇일까요?


답 : break


4. for문에서의 흐름 순서를 말해주세요.


답 : 초기화 -> 상태에서 상태확인하고 true면 본문실행 ->반복 -> 상태 ,false면 반복문 종료


5. 다음 코드에서 Test 생성자 호출시 answer의 값은?


1
2
3
4
5
6
7
8
9
10
11
12
class Test{
    public enum ItemType
    {
        NONE = -2,
        WEAPON,
        ARMOR,
        ACCESSORY
    }
    public Test(){
        int answer = (int)eItemType.ACCESSORY;
    }
}
cs


답 : 1


6. 액세스가 제한되지 않는 액세스 한정자는? 또한 같은 클래스 또는 구조체의 코드에서만 액세스 할수있는 액세스한정자는 ?


답 : public, private


7. 콘솔에 해당 배열의 값을 모두 출력할 수 있는 코드를 작성해주세요

string[] thing = {"물통" , "마우스", "신발","가방"};


답 : 

1
2
3
4
5
6
7
8
9
for(int i = 0 ; i< thing.Length;i++)
{
    Console.WriteLine(thing[i]);
}
 
foreach (string s in thing)
{
    Console.WriteLine(s);
}
cs


8. while 문이 반복하는 조건은 무엇인가?


답 : while문의 판정식이 true일 것.


9. 지역변수와 전역변수의 차이를 세 개 이상 서술하시오.


답 : 

1. 전역변수는 클래스내와 다른 클래스로부터 접근이 가능하게 할 수 있다. 지역변수는 해당 메서드 안에서만 사용가능하다.

2. 지역변수만이 내부에서 var키워드로 암시적으로 타입을 선언할 수 있다.

3. 전역변수는 값을 할당하지 않아도 자동적으로 기본값이 할당된다.


10. void 키워드를 메서드에서 쓰는 경우는 언제인가요?


답 : 메서드에서 반환하는 값이 없을 경우 void 키워드를 사용합니다.


11. || 연산자와 && 연산자의 의미를 다음 식을 기반으로 설명해주세요.

a || b

a && b


답 : ||연산자는 a, b 중에 하나라도 true면 true값을 반환하고 && 연산자는 a, b 모두 true 일 때만 true를 반환하고 그 이외의 경우 false값을 리턴한다.


12. C#반복문 2가지 입력해주시고 코드 예제도 같이 입력해주세요.


답 : for, foreach, while 등...


13. 다음은 무엇에 관한 설명인가요?


☆☆ 한정자를 사용하여 특정 개체가 아니라 형식 자체에 속하는 정적 멤버를 선언할 수 있습니다. ☆☆ 한정자는 클래스, 필드, 메서드, 속성, 연산자, 이벤트 및 생성자와 함께 사용할 수 있지만 인덱서, 종료자 또는 클래스 이외의 형식에는 사용할 수 없습니다.  


답 : static


14. 문자열을 숫자로 변환하는 메서드의 이름은?


답 : int.Parse(string s)

int.TryParse(string s, out int n);


15. string타입의 변수를 int 타입으로 캐스팅할 때, 'Int32.Parse' 메서드와 'Int32.TryParse' 메서드의 차이점은 무엇인가?


답 :

TryParse의 경우 캐스팅된 int변수를 out 키워드를 이용해 매개변수로 반환한다.

또한 캐스팅 성공여부를 bool 타입 변수로 리턴한다.

Parse는 메서드의 리턴값으로 int 값을 반환한다.

변환에 실패할 경우 예외를 throw한다.


16. Inventory 타입의 inventory 변수가 있다. 해당 변수를 인스턴스하여 객체화하는 코드를 작성해주세요.


답 : inventory = new Inventory();


17. 영희의 질문에 철수 입장에서 잘 대답해주세요.

철수 : 배열에서는 잘 안 되었는데 List 클래스를 이용하니까 편리해졌어.

영희 : 배열에 비해서 List가 갖고 있는 장점이 뭔데?

철수 : -------------------------


답 : 

철수 : 배열은 크기가 정해져있는데 비해서 리스트는 그 크기가 가변적이어서 요소를 더 추가하거나 삭제할 수 있어 영희녀석아


18. "ㅁㅁ"  " 키워드는 클래스의 현재 인스턴스를 가리키며 확장 메서드의 첫 번째 매개 변수에 대한 한정자로도 사용됩니다.

"ㅁㅁ" 에 들어갈 키워드명은 ?


답 : this


19. if(**식)값의 따라 실행할때 문을 식별합니다. 여기서 ** 식은 무엇일까요?


답 : 판별


20. int , bool , double 의 기본값을 답해주시고 또한 참조 타입 클래스들의 기본값을 입력해주세요.


답 : 

int : 0

bool : false

double : 0.0d

참조형식 : null



21. 다음 스크립트에서 Run 메서드 실행시 콘솔에 뜨는 문자열은 무엇인가?

1
2
3
4
5
6
7
8
9
10
11
12
public void Run()
{
    Console.Write(Question());
}
public bool Question()
{
    bool isA = true;
    bool isB = false;
    bool isC = true;
    bool isD = false;
    return !(((isA && isC) || isB) && ((isA && isB) == isD) == true);
}
cs

답 : False


!(((isA && isC) || isB) && ((isA && isB) == isD) == true);

!(((true&& true) || false) && ((true && false) == false) == true);

!((true || false) && (false == false) == true);

!(true  && true == true);

!(true == true);

!true;

false

콘솔이라 표기는 False


22. double 타입의 변수 x를 int타입의 변수 a에 캐스팅하여 넣고 콘솔에 출력해보세요.

double x = 12.3;

int a;


답 :

1
2
= (int)x;
Console.WriteLine(a);
cs

23. 스트링 리스트를 생성하고 리스트에 좋아하는과일 3개를 넣어주세요.


답 :

1
2
3
4
5
6
7
8
9
10
11
12
List<string> fruits = new List<string>();
fruits.Add("사과");
fruits.Add("포도");
fruits.Add("딸기");
for(int i = 0; i< fruits.Count;i++)
{
    Console.WriteLine(fruits[i]);
}
foreach(string s in fruits)
{
    Console.WriteLine(s);
}
cs

24.

Test 클래스를 만들고 그 안에 int타입 상수 a를 만들고 100의 값을 집어넣어주세요.


답 :

1
2
3
class Test{
    const int a = 100;
}
cs


25. string타입 s라는 변수를 int parsedNum으로 형변환을 하되, 형변환 할 수 없으면 콘솔에다가 형변환이 불가능하다고 출력하는 코드를 작성해주세요.


답 :

1
2
3
4
5
6
7
string s = "dd";
int parsedNum;
bool canParse = int.TryParse(s, out parsedNum);
if (canParse)
{
    Console.WriteLine("변환실패");
}
cs


26. 다음 코드에서 콘솔 창에 "물통"이라는 문자열이 총 몇 번 출력될까요?

1
2
3
4
5
string thing = "물통";
for(int i = 1; i < 10; i = 2*+1)
{
   Console.WriteLine("{0}", thing);
}
cs

답 : 3


27. enum 키워드에 대해 간단히 설명해주시고 예제를 만들어주세요.


답 :

enum 은 주로 분류를 위해 사용된다.

아이템 종류나 내 현재 행동 상태처럼 여러 개의 값을 갖지 않고 분류할 수 있을 때 쓰며, 그 결과 데이터의 무결성을 얻을 수 있으며 코드의 가독성도 높아질 수 있었다..

int값으로 캐스팅이 되며 커스텀 하지 않는한 항목의 최초값을 int 타입으로 캐스팅하면 0으로 캐스팅된다.

enum의 도입으로 int값으로 분류하던 데이터들을 한결 편하게 사용할 수 있게 되었다.

(제 나름의 답이라 정답은 아니에요!!!)


28.string타입 변수를 int타입 변수로 형변환을 하되, 형변환 할 수 없으면 콘솔에다가 형변환이 불가능하다고 출력하는 코드를 작성해주세요.


답 :

1
2
3
4
5
6
7
8
9
10
string s = "ddd";
int parseNum;
if(Int32.TryParse(s, out parseNum))
{
    Console.WriteLine(parseNum);
}
else
{
    Console.WriteLine("불가합니다.");
}
cs


29. 다음 콘솔 프로그램 실행시 콘솔에 출력되는 값은 ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Program
{
    static void Main(string[] args)
    {
        Wallet wallet1 = new Wallet(500);
        Wallet wallet2 = new Wallet(100);
        wallet1.SpendMoney(60);
        wallet2.SpendMoney(30);
        Console.WriteLine(Wallet.myMoney);
        Console.Read();
    }
}
class Wallet
{
    public static int myMoney;
    public Wallet(int money)
    {
        myMoney += money;
    }
    public void SpendMoney(int money)
    {
        Wallet.myMoney -= money;
    }
}
cs


답 : 510


30. 다음 메서드 안의 코드에서 콘솔에 출력되는 값은?

1
2
3
4
5
6
7
8
9
List<string> list = new List<string>();
list.Add("안녕");
list.Add("hi");
list.Add("오하요");
list.Add("쯔드라쓰뷔췌");
list.Add("봉쥬흐");
list.Add("방가");
list.Remove("안녕");
Console.WriteLine(list[3]);
cs

답 : 봉쥬흐


31. 다음 중 변수에 관한 설명으로 틀린 것은?

1. 변수는 지역변수와 전역변수가 있다.

2. 변수는 값을 저장하는 공간이다.

3. 변수는 타입과 이름과 값으로 이루어져있다.

4. int 타입의 변수는 값을 참조해서 연산이 빠르다.


답 : 4


32. base 키워드에 대해 설명해주세요.


답 : 파생클래스내에서 기본클래스의 멤버에 엑세스하는데 사용하는 키워드


33. 다음 메서드 내의 코드를 실행 시 출력되는 값은?

1
2
3
4
5
6
7
8
9
10
11
int myAge = 18;
int  youAge = 25;
 
if(myAge == 18)
{
   Console.WriteLine("내 나이는 {0}살 이다.",myAge);
}
else
{
   Console.WriteLine("너의 나이는 {0}살 이다.",youAge);
}
cs

답 : 내 나이는 18살 이다.


34. 다음 메서드 내의 코드를 실행 시 출력되는 값은?

1
2
3
4
5
int i = 10;
while(i>0)
{
    Console.Write(i--);
}
cs

답 : 10987654321


35. 클래스에 대한 설명 중 틀린 것은?

1. 클래스는 상속을 받을 수 있다.

2. 클래스의 인스턴스를 만들 수 있다.

3. 클래스는 stack에 저장된다.

4. 클래스는 참조 형식이다.


답 : 4


36. 다음 메서드 내의 코드를 실행 시 출력되는 값은?

1
2
3
4
5
6
7
8
9
10
11
12
13
bool a = 3 < 10;
bool b = 1 > 10;
bool c = 1 > 11;
bool d = 1 > 11;
bool e = !(1 > 20);
bool f = (2 > 10 || 2 < 12 || 2 < 10 && 2 < 10);
 
Console.Write(a);
Console.Write(b);
Console.Write(c);
Console.Write(d);
Console.Write(e);
Console.Write(f);
cs

답 : TrueFalseFalseFalseTrueTrue


37. 다음 메서드 내의 코드 실행시 출력되는 '안녕' 문자열과 '잘가' 문자열의 갯수는 각각 몇개인가?

1
2
3
4
5
6
7
8
9
for (int i = 0; i < 5; i++)
{
    Console.Write("안녕");
}
for (; true;)
{
    Console.Write("잘가");
    break;
}
cs

답 : 안녕 : 5, 잘가 : 1


38. 메서드 범위에서 선언된 변수에 암시적 형식 ㅁ키워드 을 사용할 수 있습니다.  여기서 ㅁ키워드 는 ?


답 : var


39. 다음 메서드 내의 코드를 실행 시 출력되는 값은?


1
2
3
int a = 100;
float b = 2.5f;
Console.WriteLine(a + b);
cs


답 : 102.5


40. ***형식은 명명된 상수 집합을 갖는 고유 값 형식이다. ("***" 는 ?)

1. var

2. enum

3. const

4. ref


답 :2


41. 다음 중 namespace에 대한 설명으로 틀린 것은?

1. 관련 개체 집합을 포함하는 범위를 선언하는 데 사용된다.

2. 고유한 네임스페이스를 선언하면 대규모 프로그래밍 프로젝트에서 클래스 및 메서드 이름의 범위를 제어할 수 있다 .

3. using 키워드 뒤에 namespace를 써서 사용할 수 있다.

4. class 안에서 namespace가 정의된다.

답 :3


42. 점프문 키워드가 아닌 것은 다음 중 무엇인가?

1. continue

2. break

3. foreach

4. return


답 : 3


43. 다음 코드에서 특수문자$는 무엇인가?

string name = "길동이"

Console.WriteLine($"{name}")


답 : 문자열보간법


44. ***한정자는 상속된 메서드, 속성 인덱서 또는 이벤트의 추상 또는 가상 구현을 확장 하거나 수정 할때 필요한 기능 이다(*에 들어갈 답은?)


답: override


45. 파생클래스의 메서드 앞에 '이 키워드'가 있는 경우 메서드는 기본 클래스의 메서드와 독립적으로 정의할 수 있습니다. '이 키워드'는 무엇일까요?


답 : new


46. 메서드를 가상으로 만들려면 기본 클래스의 메서드 선언에서******한정자 사용해야합니다. 이 한정자는 무엇일까요?


답 : virtual


47. 다음 에서 answer의 값은?

1
2
string a = "안녕하세요.";
int answer = a.Length;
cs

답 : 6


48. + 연산자는 대표적으로 두 가지 연산으로 사용됩니다. 어떤 때일까요?


답 : 숫자 형식 연산, 문자열 연결


49. 문자열의 List인 변수명 favoriteFoodList를 선언하는 코드를 작성해주세요.


답 : List<string> favoriteFoodList;


50. int 형식의 최대 범위는?

1. -1,947,483,648 ~ 1,947,483,647

2. -2,047,483,648 ~ 2,047,483,647

3. –2,147,483,648 ~ 2,147,483,647

4. –2,247,483,648 ~ 2,247,483,647

답: 3


51.  다음 코드에서 오류가 발생하는 부분은 몇번째 줄입니까? (여러 개 일경우 최초 발생한 줄은?)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Solution
{
    public float solution(int[] arr)
    {
        int sum = 0;
        for (int i = 0; i < arr.Length; i++)
        {
            sum += arr[i];
        }
        result = (float)sum / (float)arr.Length;
        float answer = result;
        return answer;
    }
}
cs

답 : 10


52. int -> string 으로 형변환하기 위해 사용하는 메서드는?

1. ToString

2. TryParse

3. Find

4. Add


답 : 1


53. 다음 열거형을 이용한 단일 식을 3개 이상의 조건에 대해 테스트하는 경우 사용하기 좋은 선택문은 무엇일까요?

public enum shoes {sneakers,slipper,highHeels,sandal}


답 : switch


54. 인터페이스의 특징이 아닌것은?

1. 인터페이스 내에서 메소드, 이벤트, 인덱서, 속성을 쓸 수 있다.

2. 인터페이스에서는 필드를 포함할 수 있다.

3. 모든 멤버는 public으로 접근 권한이 기본으로 지정된다.

4. 몸통이 정의되어 있지 않은 추상적인 멤버를 가진다.

5. 인터페이스는 다른 인터페이스를 상속하거나, 클래스에서 인터페이스 하나를 여러 차례 상속 할 수 있다.


답 : 2


55. 이 키워드는 개체를 참조하지 않는 이 참조를 나타내는 리터럴입니다. 이것은 참조형식변수의 기본값이 됩니다. 이것은 무엇일까요?


답 : null


56. 대표적 논리 연산자 세 개를 적어주세요.


답 : ||, &&, !


57. 다음 물음표 안에 들어갈 수 없는 것을 고르세요.


1
2
3
4
5
namespace name{
    ???? Abc{
    
    }
}
cs

1. class

2. interface

3. struct

4. enum

5. event


답 : 5


58. 반복문의 특징이 아닌것은?

1. 반복문에는 for문 , while문 , foreach문 , switch문이 있다.

2. 반복문을 실행하는도중 중단하려면 점프문을 사용한다.

3. 반복문을 사용하여 루프를 만들수 있다.

4. 포함 문이 여러번 실행되도록 한다.

답 : 1번


59. 다음 개념은 무엇에 관한 설명일까요?


 - 컴퓨터 프로그래밍의 패러다임의 하나이다.

 - 독립된 단위 즉 , (객체)들의 모임이다으로 파악하고자 하는것이다.

 - 객체는 메서지를 주고받고 , 데이터를 처리할수있다.


답 : 객체 지향 프로그래밍


60. 인스턴스의 대한 설명으로 올바른것은?

1. 이련의 문을 포함하는 코드 블록입니다.

2. 변수에 할당된 개체이다.

3. 괄호로 묶고 쉼표로 구분합니다.

4. 컴파일러에 대해 특별한 의미를 갖는, 미리 정의되어 있는 예약된 식별자이다.

답 : 2번


61. 다음 코드에서 형변환을 할때 어떤 변환을 사용하여 형변환을 했을까요?

float a = 3.5F;

int b = (int)a;

Console.WriteLine("b의 값 : {0}",b);


답 : 명시적 변환


62. 객체지향 언어의 기본 구성요소가 아닌것은?

1. 클래스(Class)

2. 객체(Object)

3. 메서드(Method)

4. 개념(Concept)

답 : 4번


63. 다음 메서드 내의 코드를 실행했을 때 출력되는 결과를 적어주세요.

int x = 1;

Console.Write($"{x++}, {x}, {++x}, {x}");


답 : 1,2,3,3


64. 다음 메서드 내의 코드를 실행했을 때 출력되는 결과를 적어주세요.

1
2
3
4
5
int i = 10;
int j = 20;
int y = 100;
bool x = (i < j) || (y += i) == 110;
Console.WriteLine("{0}, {1}", x, y);
cs
답 : True, 100


65. 다음 두 위치벡터의 거리값을 구하세요. (루트 표기 가능)

Vector2 a = new Vector2(2,2);

Vector2 b = new Vector2(3,5);


답 : √10 , 3.16


66. 다음은 무엇에 관한 설명입니까?

이것은 컴퓨터 과학의 데이터 스토리지 문맥에서 데이터 구조나 오브젝트 상태를 동일하거나 다른 컴퓨터 환경에 저장(이를테면 파일이나 메모리 버퍼에서, 또는 네트워크 연결 링크 간 전송)하고 나중에 재구성할 수 있는 포맷으로 변환하는 과정이다.


답 : 직렬화, 시리얼라이제이션(serialization)


67. 다음 메서드 내의 코드 실행시 발생되는 예외(Exception)은 무엇입니까?

1
2
3
4
List<string> list;
for(int i = 0 ; i < list.Count; i++){
    Console.Write(i);
}
cs


답 : NullReferenceException


68. 다음 메서드 내의 코드 실행시 발생되는 예외(Exception)은 무엇입니까?

1
2
int[] array = { 12345 };
Console.Write(array[5]);
cs


답 : IndexOutOfRangeException


69. 다음 프로그램에서 콘솔에 출력되는 값은?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    class Program
    {
        static void Main(string[] args)
        {
            SonOfWallet s = new SonOfWallet(4);
            Console.WriteLine($"{s.myMoney}");
            Console.WriteLine($"{s.parentMoney}");
            Console.Read();
 
        }
    }
    class SonOfWallet :Wallet
    {
        public new int myMoney;
        public SonOfWallet(int money) : base(money)
        {
            myMoney = money * 2;
        }
    }
    class Wallet
    {
        public int myMoney;
        public int parentMoney;
        public Wallet(int money)
        {
            myMoney = money;
            parentMoney = money;
        }
    }
cs


답 : 8, 4


70. 다음중 API의 설명으로 맞지 않는 것을 고르시오.

1. API의 약자는 Application Programming Interface이다.

2. 주로 파일제어, 창제어, 화상처리, 문자 제어 등을 위한 인터페이스를 제공한다.

3. 32비트 부호가 있는 정수로 변환할 수 있다.

4. 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.


답: 3번


71. C#의 접근 제한자를 두개 이상 적어주세요.


답 : public, internal, protected, private


72. 참조형식의 값이 저장되는 컴퓨터 상의 장소를 무엇이라 부릅니까?


답 : 힙 (heap)


73. 오버로딩(Overloading)과 오버라이딩(Overridding)의대한 설명이 아닌것은?

1. 오버로딩 기법을 이용하면 하나의 클래스에 같은 이름을 가진 메서드를 여러개 정의할수있다.

2. 오버라이딩은 static한정자 와 override 키워드를 사용하여 오버라이딩을 구현하게 된다.

3. 오버라이딩 기법은 클래스간 상속관계에서 메서드를 재정의하는 기법이다.

4.  오버라이딩 할때 부모클래스에서는 virtual키워드로 자식 클래스에서는 override키워드로 메서드를 정의해야한다.

답 : 2


74. 1부터 100까지의 정수 중 홀수값만 콘솔에 출력하는 코드를 for문으로 작성해주세요.


답 : 다음 두가지. (이외에도 방법이 있음)

1
2
3
4
5
6
7
8
for(int i = 1 ; i < 100 ; i = i + 2)
{
    Console.Write(i);
}
for(int i = 1 ; i < 51 ; i = ++)
{
    Console.Write(i * 2 -1);
}
cs


75. 참조형식에서 깊은 복사와 얕은 복사에 대한 설명 중 틀린 것을 고르시오.

1. 해당 개념에 대해 알지 못하면 예상치 못한 값이 수정되는 것을 경험할 수 있다.

2. 얕은 복사의 경우 각 변수의 참조값이 같다.

3. 깊은 복사의 경우 각 변수의 참조값이 같다. 

4. 깊은 복사된 변수끼리는 보통의 경우 값 변경에 영향을 받지 않는다.


답 : 3


76. 10진수를 2진수로 바꿀 수 있는 방법은 무엇인가요?


답 : 


77. 콘솔 프로그램에서 방향키를 입력받는 방법은 무엇인가요?


답 : 정답이 여러개일 수 있는 문제입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
while (true)
{
    ConsoleKey key = Console.ReadKey().Key;
    switch (key)
    {
        case ConsoleKey.UpArrow:
            {
                Console.WriteLine("윗 방향키");
            }
            break;
        case ConsoleKey.DownArrow:
            {
                Console.WriteLine("아래 방향키");
            }
            break;
        case ConsoleKey.LeftArrow:
            {
                Console.WriteLine("왼쪽 방향키");
            }
            break;
        case ConsoleKey.RightArrow:
            {
                Console.WriteLine("오른쪽 방향키");
            }
            break;
    }
}
cs


78. 다음 코드에서 예외, 오류가 뜨는 부분은 어디일까요? (참고 : 명시적 형 변환)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Program
{
    static void Main(string[] args)
    {
        Parents parents = new Parents();
        Son son = new Son();
        Daughter daughter = new Daughter();
        GrandSon grandSon = new GrandSon();
 
        var cast1 = (Son)parents;
        var cast2 = (GrandSon)parents;
        var cast3 = (Parents)daughter;
        var cast4 = (Daughter)son;
    }
}
class Parents
{
 
}
class Son : Parents
{
 
}
class Daughter : Parents
{
 
}
class GrandSon : Son
{
 
}
cs


답 : 13줄 cast4


79. 기본 제공 연산자(+,-등등)를 오버로드하기위해 사용하는 키워드는?


답.operator 


80. 스레드를 강제종료하기위해 호출하는 메서드는? 


답.Abort()


81. 다음 대리자를 다른 두가지 방식으로 다르게 표현 하세요.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 class App
    {
        public delegate void ClickEvent();
        public ClickEvent OnClickEvent;
 
        //생성자 
        public App()
        {
            OnClickEvent = OnClickEventHandler;
        }
 
        public void OnClickEventHandler()
        {
 
        }
    }
cs


답: 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class App
    {
        public delegate void ClickEvent();
        public ClickEvent OnClickEvent;
 
        //생성자 
        public App()
        {
            OnClickEvent = OnClickEventHandler;
 
            // 1 
            this.OnClickEvent = () => {
 
            };
 
            //2 
            this.OnClickEvent = delegate () { 
 
            };
        }
 
        public void OnClickEventHandler()
        {
 
        }
    }
cs


82. 다음 에러를 해결 하시고 123456, 홍길동을 출력 하세요.


1
2
3
4
5
6
7
8
9
10
11
12
13
class App
{
    public System.Action<intstring> MyAction;
    //생성자 
    public App()
    {
        MyAction = () =>
        {
 
        };
        MyAction(123456"홍길동");
    }
}
cs



답 : 


1
2
3
4
5
6
7
8
9
10
11
12
class App
{
    public System.Action<intstring> MyAction;
    //생성자 
    public App()
    {
        MyAction = (id, name) => {
            Console.WriteLine("{0} {1}", id, name);
        };
        MyAction(123456"홍길동");
    }
}
cs

83. 이것은 .Net Framework 클래스 계층 구조의 모든 클래스를 지원하며 파생 클래스에 하위 수준 서비스를 제공합니다. 또한 .NET Framework의 모든 클래스 중에서 기본 클래스이며 형식 계층 구조의 루트입니다. 이것은 무엇일까요? 

답 : Object 클래스

84. 다음 코드에서 4를 7로 바꾸려면 어떻게 해야하나요?
1
int[,,] arr = { { { 06 }, { 88 } }, { { 79 }, { 28 } }, { { 47 }, { 85 } } };
cs

답 : arr[2,0,0] = 7;

85.  Vsual Studio에서 c# 코드를 작성하는중  .Net Framework에서 제공하는 문서를 보려고 합니다. 해당 클래스나 메소드에서 어떤 키를 눌러야 할까요? 


답 : F1


86. 해당 클래스의 인스턴스가 하나만 생성이 되는 것을 보장하며 어디서든지 그 인스턴스에 접근이 가능하도록 만드는 패턴은?


답 : 싱글톤 패턴

87. 다음 글이 설명하는 File클래스의 메서드중 올바른것 두가지를 고르시오.
[텍스트 파일을 열고 파일의 모든 줄을 읽은 다음 파일을 닫습니다.]
[새 파일을 만들고 지정된 문자열을 파일에 쓴 다음 파일을 닫습니다. 대상 파일이 이미 있으면 덮어씁니다.]
①AppendAllText(String, String)
②ReadAllLines(String)
③ReadAllBytes(String)
④WriteAllText(String, String)

답 : 2, 4

88. 다음 예제에서 출력값을 적으시오. 그리고 만약 str의 값이 "Hello"라면 출력 값을 적으시오.(답 2개)
1
2
3
4
5
6
7
8
9
10
11
class Program
    {
        static void Main(string[] args)
        {
            string str = "1";
 
            int.TryParse(str, out int result);
 
            Console.WriteLine(result);
        }
    }
cs

답 : 1, 0

89. 다음 접근 허용 순서가 좁은 것부터 넓은 순서로 나열 하세요.

1. protected
2. private
3. public

답 : 2 -> 1 -> 3

90.  다음 중 생성자에 대한 설명으로 옳지 않은 것은?

1. 생성자 이름은 클래스 이름과 같다.
2. 생성자는 반환과 관련된 선언을 하지 않는다.
3. 생성자는 인스턴스가 생성될 때 자동으로 호출되는 메서드이다.
4. 생성자는 반드시 개발자가 직접 정의해야 한다.


답 : 4(개발자가 명시하지 않으면 암시적으로 기본 생성자 호출)


91. 다음 코드의 출력값은?


1
2
3
4
5
6
7
 class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(Math.Sqrt(Math.Pow(22)));
        }
    }
cs



답 : 2


92. json 파일을 저장할 때 사용되는 인코딩 방식은?


1) ASCII

2) Unicode

3) UTF32

4) UTF8


답: 4번


93. C#에는 가비지 콜렉터가 있어서 메모리를 자동으로 관리한다

그렇다면 다음 중 가비지 콜렉터가 메모리를 회수 하는 경우로 가장 적절한 것은?


1) 개체가 생성되고 프로그램의 종료까지 사용되지 않을 때

2) 개체의 멤버 변수가 연산을 통해 자기 크기보다 적은 값 또는 큰 값을 가지게 되었을 때

3) 개체에 대한 모든 참조가 끊어져 더이상 참조될 수 없을 때

4) 개체 또는 그 멤버의 이름이 매우 길 때


답: 3번


94. 다음 중 this. 으로 접근할 수 없는 것은?


1) private 로 선언된 변수

2) 메서드 내에서 매개 변수와 이름이 같은 멤버 변수

3) override로 재정의 된 메서드

4) static으로 선언된 변수


답: 4번


95. Stack 메모리는 LIFO라는 구조를 가지고 있습니다. 이 구조에 대해서 설명하세요

답 : Last In First Out 나중에 들어간 메모리가 가장먼저 소멸된다.


96. var trial = new Trial(); 에서 변수 tiral에는 어떤 값이 할당될까요?

답 : Trial의 인스턴스의 값을 가르키는 주소(참조)가 할당된다.


97. Heap 메모리의 메모리는 언제 사라지나요?

답: 가르키는 모든 참조가 사라질때 


98. 응용 프로그램이 시작될 때 호출되는 첫 번째 메서드는 무엇인가요?


답 : static void Main(string[] args)


99. Dictionary에 대한 설명이 아닌 것은?

1. 사전에 추가하는 각 항목은 값과 관련 키로 이루어져있다.

2. 사전에 추가할 때는 Add메서드를 사용한다.

3. 사전의 값을 반복문으로 출력할 때 foreach문 보다 for문을 사용하는 게 좋다.

4. Dictionary<TKey, TValue>의 형식으로 사용한다.


답 : 3번


100. 다음 코드에서 delegate를 활용하여 문자열을 매개변수로 보내 콘솔에 해당 문자열을 출력하는 코드를 작성해주세요.


답 : 답은 여러가지가 될 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
public delegate void DelPrint(string str);
class Test
{
    public Test()
    {
        DelPrint delPrint = Print;
        delPrint("문자열");
    }
    void Print(string str)
    {
        Console.WriteLine(str);
    }
}
cs


댓글
최근에 올라온 글
Total
Today
Yesterday
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31