Bird
Raised Fist0
C Sharp (C#)programming~20 mins

How C# compiles and runs on CLR - Practice Exercises

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
CLR Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this C# code snippet?
Consider this simple C# program compiled to run on the CLR. What will it print when executed?
C Sharp (C#)
using System;
class Program {
    static void Main() {
        int x = 5;
        int y = 10;
        Console.WriteLine($"Sum is: {x + y}");
    }
}
ASum is: 15
BSum is: 510
CSum is: 5 + 10
DCompilation error
Attempts:
2 left
💡 Hint
Remember that + operator adds integers, not concatenates strings here.
🧠 Conceptual
intermediate
1:30remaining
What does the C# compiler produce before running on CLR?
When you compile a C# program, what is the immediate output that the CLR executes?
ANative machine code specific to the CPU
BCommon Intermediate Language (CIL) bytecode
CPlain text source code
DAssembly language code
Attempts:
2 left
💡 Hint
Think about what the CLR understands and runs.
🔧 Debug
advanced
2:00remaining
What error does this C# code cause when run on CLR?
Examine this code and identify the runtime error it will cause when executed on CLR.
C Sharp (C#)
using System;
class Program {
    static void Main() {
        int[] numbers = new int[3];
        numbers[3] = 10;
        Console.WriteLine(numbers[3]);
    }
}
ASyntaxError
BNullReferenceException
CIndexOutOfRangeException
DNo error, prints 10
Attempts:
2 left
💡 Hint
Array indices start at 0 and go up to length-1.
📝 Syntax
advanced
2:30remaining
Which option correctly shows how C# code is compiled and run on CLR?
Select the correct sequence describing how C# code is processed to run on CLR.
AC# source code → Native machine code → CLR executes
BC# source code → CLR directly executes source code
CC# source code → Assembly code → CLR executes assembly
DC# source code → CIL bytecode → CLR's JIT compiler → Native machine code → Execution
Attempts:
2 left
💡 Hint
Remember the role of JIT compiler in CLR.
🚀 Application
expert
3:00remaining
How does the CLR improve cross-platform compatibility for C# programs?
Why does compiling C# to CIL bytecode and running on CLR help C# programs run on different operating systems and CPUs?
ABecause CLR includes a Just-In-Time compiler that converts CIL to native code specific to the current machine
BBecause CIL bytecode is machine code for all CPUs
CBecause C# source code is interpreted directly by CLR without compilation
DBecause CLR translates C# code to Java bytecode for cross-platform support
Attempts:
2 left
💡 Hint
Think about how the same compiled code can run on different machines.

Practice

(1/5)
1. What is the first step when you compile a C# program?
easy
A. The C# code is converted into Java bytecode.
B. The C# code is converted into Intermediate Language (IL) code.
C. The CLR executes the C# code line by line.
D. The C# code is directly converted into machine code.

Solution

  1. Step 1: Understand C# compilation process

    C# source code is first compiled into Intermediate Language (IL), not directly into machine code.
  2. Step 2: Identify the role of CLR

    The CLR later converts IL to machine code at runtime, not during compilation.
  3. Final Answer:

    The C# code is converted into Intermediate Language (IL) code. -> Option B
  4. Quick Check:

    C# compiles to IL first [OK]
Hint: Remember: C# compiles to IL before machine code [OK]
Common Mistakes:
  • Thinking C# compiles directly to machine code
  • Confusing CLR execution with compilation
  • Assuming C# compiles to Java bytecode
2. Which of the following is the correct syntax to compile a C# file named Program.cs using the command line?
easy
A. csc Program.cs
B. compile Program.cs
C. dotnet run Program.cs
D. gcc Program.cs

Solution

  1. Step 1: Identify the C# compiler command

    The C# compiler command is csc, used to compile C# source files.
  2. Step 2: Check other options

    compile and gcc are not C# commands; dotnet run runs projects, not single files.
  3. Final Answer:

    csc Program.cs -> Option A
  4. Quick Check:

    Use csc to compile C# files [OK]
Hint: Use 'csc' to compile C# files on command line [OK]
Common Mistakes:
  • Using gcc which is for C/C++
  • Using 'compile' which is not a command
  • Confusing 'dotnet run' with compile command
3. Consider this C# program:
class Program {
  static void Main() {
    System.Console.WriteLine("Hello World");
  }
}

What happens when you run this program on the CLR?
medium
A. The CLR interprets the C# source code directly and prints 'Hello World'.
B. The program throws a runtime error because IL is missing.
C. The CLR converts IL to machine code and prints 'Hello World'.
D. The program compiles to Java bytecode and runs on JVM.

Solution

  1. Step 1: Understand CLR execution

    The CLR runs the Intermediate Language (IL) by converting it to machine code just before execution.
  2. Step 2: Confirm program output

    The program prints 'Hello World' after the CLR converts IL to machine code and runs it.
  3. Final Answer:

    The CLR converts IL to machine code and prints 'Hello World'. -> Option C
  4. Quick Check:

    CLR runs IL by converting to machine code [OK]
Hint: CLR converts IL to machine code before running [OK]
Common Mistakes:
  • Thinking CLR interprets C# source directly
  • Assuming runtime error without IL
  • Confusing CLR with JVM
4. You wrote a C# program and compiled it, but when running it on a different computer, it fails. What could be a likely cause related to CLR?
medium
A. The program was compiled directly to machine code.
B. The source code was not saved properly.
C. The C# compiler was not installed on the target computer.
D. The target computer does not have the correct version of the CLR installed.

Solution

  1. Step 1: Understand CLR dependency

    C# programs require the CLR on the target machine to run the IL code.
  2. Step 2: Identify the cause of failure

    If the target computer lacks the correct CLR version, the program cannot run properly.
  3. Final Answer:

    The target computer does not have the correct version of the CLR installed. -> Option D
  4. Quick Check:

    CLR must be present on target machine [OK]
Hint: Check CLR version on target machine if program fails [OK]
Common Mistakes:
  • Assuming source code affects runtime on other machines
  • Thinking compiler must be on target machine
  • Believing program compiles directly to machine code
5. You want your C# program to run on different operating systems without recompiling. How does the CLR help achieve this?
hard
A. By compiling C# code into platform-independent Intermediate Language (IL) and using Just-In-Time compilation on each OS.
B. By compiling C# code directly into machine code for each OS at compile time.
C. By interpreting C# source code directly on each OS without compilation.
D. By converting C# code into Java bytecode to run on JVM.

Solution

  1. Step 1: Understand platform independence of IL

    C# compiles to IL, which is platform-independent and not tied to any OS.
  2. Step 2: Role of CLR's Just-In-Time compilation

    The CLR converts IL to machine code specific to the OS and hardware at runtime, enabling cross-platform support.
  3. Final Answer:

    By compiling C# code into platform-independent Intermediate Language (IL) and using Just-In-Time compilation on each OS. -> Option A
  4. Quick Check:

    IL + JIT compilation = cross-platform support [OK]
Hint: IL plus JIT lets C# run anywhere CLR exists [OK]
Common Mistakes:
  • Thinking C# compiles directly to machine code for each OS
  • Assuming C# is interpreted without compilation
  • Confusing CLR with JVM
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard