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

String type and immutability in C Sharp (C#) - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
String Mastery
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 code?
Consider the following C# code snippet. What will be printed to the console?
C Sharp (C#)
string s = "hello";
s = s.Replace('h', 'j');
Console.WriteLine(s);
AHello
Bjello
Chello
Djello\nhello
Attempts:
2 left
💡 Hint
Remember that strings in C# are immutable. The Replace method returns a new string but does not change the original.
❓ Predict Output
intermediate
2:00remaining
What is the output of this code?
What will this C# program print?
C Sharp (C#)
string a = "abc";
string b = a + "def";
Console.WriteLine(a);
Console.WriteLine(b);
Aabcdef\nabc
Babcdef\nabcdef
Cabc\nabc
Dabc\nabcdef
Attempts:
2 left
💡 Hint
Adding strings creates a new string; the original string remains unchanged.
🔧 Debug
advanced
2:00remaining
Why does this code not change the string?
This code tries to change the first character of a string. Why does it fail?
C Sharp (C#)
string s = "test";
s[0] = 'b';
Console.WriteLine(s);
ACompilation error: strings are immutable and cannot be changed by index.
BRuntime error: index out of range.
COutput: test
DOutput: best
Attempts:
2 left
💡 Hint
Think about whether you can assign to a character in a string by index in C#.
❓ Predict Output
advanced
2:00remaining
What is the output of this code?
What will this program print?
C Sharp (C#)
string s1 = "hello";
string s2 = s1.ToUpper();
Console.WriteLine(s1);
Console.WriteLine(s2);
AHELLO\nHELLO
Bhello\nHELLO
Chello\nhello
DHELLO\nhello
Attempts:
2 left
💡 Hint
ToUpper returns a new string; it does not change the original string.
🧠 Conceptual
expert
2:00remaining
Why is string immutability important in C#?
Which of the following is NOT a reason why strings are immutable in C#?
AIt allows direct modification of characters in the string to save memory.
BIt improves performance by enabling string interning and caching.
CIt allows strings to be safely shared across multiple threads without synchronization.
DIt simplifies security by preventing unexpected changes to string data.
Attempts:
2 left
💡 Hint
Think about what immutability means and how it affects string modification.

Practice

(1/5)
1. What does it mean that strings in C# are immutable?
easy
A. Once created, the string cannot be changed; any modification creates a new string.
B. Strings can be changed directly without creating a new string.
C. Strings are stored as numbers internally.
D. Strings can only contain letters and no numbers.

Solution

  1. Step 1: Understand immutability concept

    Immutability means the value cannot be changed after creation.
  2. Step 2: Apply to strings in C#

    In C#, strings cannot be changed once created; any change makes a new string.
  3. Final Answer:

    Once created, the string cannot be changed; any modification creates a new string. -> Option A
  4. Quick Check:

    String immutability = cannot change original string [OK]
Hint: Remember: strings never change, they create new copies [OK]
Common Mistakes:
  • Thinking strings can be changed in place
  • Confusing immutability with read-only variables
  • Assuming strings only hold letters
2. Which of the following is the correct way to declare a string variable in C#?
easy
A. string name = "Alice";
B. String name = 'Alice';
C. string name = Alice;
D. String name = Alice;

Solution

  1. Step 1: Check string declaration syntax

    In C#, strings use double quotes and the lowercase keyword 'string'.
  2. Step 2: Identify correct syntax

    string name = "Alice"; uses lowercase 'string' and double quotes correctly.
  3. Final Answer:

    string name = "Alice"; -> Option A
  4. Quick Check:

    Use double quotes and string keyword [OK]
Hint: Use double quotes for strings and lowercase 'string' keyword [OK]
Common Mistakes:
  • Using single quotes for strings
  • Omitting quotes around text
  • Confusing 'string' with 'String' casing
3. What will be the output of this C# code?
string s = "hello";
s = s.ToUpper();
Console.WriteLine(s);
medium
A. hello
B. HELLO
C. Hello
D. Error

Solution

  1. Step 1: Understand ToUpper() method

    ToUpper() returns a new string with all letters uppercase.
  2. Step 2: Assign new string to s and print

    Variable s is updated to the uppercase string, so printing s shows "HELLO".
  3. Final Answer:

    HELLO -> Option B
  4. Quick Check:

    ToUpper() creates uppercase string [OK]
Hint: ToUpper() returns new uppercase string; assign it to variable [OK]
Common Mistakes:
  • Assuming original string changes without assignment
  • Expecting lowercase output
  • Thinking ToUpper() modifies string in place
4. Identify the error in this code snippet:
string s = "test";
s[0] = 'T';
Console.WriteLine(s);
medium
A. Strings cannot be indexed in C#.
B. Console.WriteLine requires parentheses.
C. Cannot assign to string index because strings are immutable.
D. Missing semicolon after string declaration.

Solution

  1. Step 1: Check string indexing and assignment

    Strings can be indexed to read characters but cannot assign to indexes.
  2. Step 2: Understand immutability prevents changing characters

    Because strings are immutable, s[0] = 'T' causes a compile error.
  3. Final Answer:

    Cannot assign to string index because strings are immutable. -> Option C
  4. Quick Check:

    Strings immutable = no character assignment [OK]
Hint: You can read chars by index but cannot assign to them [OK]
Common Mistakes:
  • Trying to change string characters by index
  • Confusing indexing with arrays
  • Ignoring immutability rules
5. Given this code, what will be the output?
string original = "cat";
string changed = original.Replace('c', 'b');
Console.WriteLine(original);
Console.WriteLine(changed);
hard
A. Error at Replace method
B. bat bat
C. cat cat
D. cat bat

Solution

  1. Step 1: Understand Replace method on strings

    Replace returns a new string with specified characters replaced; original string stays unchanged.
  2. Step 2: Analyze output of both Console.WriteLine calls

    original prints "cat" unchanged; changed prints "bat" with 'c' replaced by 'b'.
  3. Final Answer:

    cat bat -> Option D
  4. Quick Check:

    Replace returns new string, original unchanged [OK]
Hint: Replace returns new string; original string stays same [OK]
Common Mistakes:
  • Assuming original string changes after Replace
  • Expecting both outputs to be same
  • Thinking Replace modifies string in place
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