Skip to main content
Rust MCQ Test

Rust MCQ test &
quiz online.

Rust enforces memory safety at compile time. Interviews mostly test whether the borrow checker's model is in your head. 566 Rust questions are live, each with the code on the page. Read any of them free; sign in to attempt one and see the explanation.

566
Rust questions
75
Easy
241
Medium
250
Hard
why this works

Built for Rust mastery, not memorisation.

Every question is hand-checked, every answer comes with an explanation, and your progress builds into a clear picture of where you stand.

The snippet is on the page

Every Rust question shows its code before you answer, so you are reading real Rust, not a description of it.

A written explanation, always

Once you attempt a question you get the reasoning, not just a tick. That matters most on Rust, where ownership and moves, borrow lifetimes, interior mutability, send and sync, trait objects versus generics, and where async futures get polled.

Your weak topics, named

Progress is tracked per topic across the 53 Rust topics, so revision points at the gaps instead of the whole list.

what's covered

Every Rust concept,
tested honestly.

From fundamentals to interview-grade edge cases across 24 topic areas with progressive difficulty, so you find your gaps before an interviewer does.

async/await state machine
Rc and Arc
trait objects dyn vs generics
Send and Sync auto traits
Cow clone-on-write
Cell vs RefCell
Drop plus move interaction
error handling thiserror anyhow
Pin Unpin and self-reference
variance co contra invariant
Stacked/Tree Borrows
raw pointers and UnsafeCell
Future polling and wakers
Box<dyn Trait> dynamic dispatch
monomorphization and code bloat
From and Into conversions
Rc<RefCell<T>> combos
closures Fn FnMut FnOnce
Object safety rules
lifetime annotations on structs
Zero-cost abstraction in codegen
RefCell and interior mutability
associated types vs generics
two-phase borrows

Ready to test your Rust chops?

Read any question and its code for free. A free account unlocks answering, the explanations and your score, so you walk away with a clearer picture of what to study next.

faq

Things people ask.

How many Rust MCQs are on Journey Uncommon?

566 Rust questions right now: 75 easy, 241 medium and 250 hard. That number is read straight from the question table when this page is built, so it is never a rounded marketing figure.

Do I need an account to read the Rust questions?

No. Every Rust question, including its code snippet, its difficulty and its topic, is readable without signing in. You need a free account only to submit an answer, see which option is correct, and read the worked explanation. We keep it that way so the platform stays honest about what you actually got right.

What do Rust interviewers actually test?

Ownership and moves, borrow lifetimes, interior mutability, Send and Sync, trait objects versus generics, and where async futures get polled.

Which Rust topics are covered?

53 distinct topics are tagged on the Rust questions, including async/await state machine, Rc and Arc, trait objects dyn vs generics, Send and Sync auto traits, Cow clone-on-write, Cell vs RefCell. The topic labels come from the questions themselves, so the list matches what you will actually be asked.

Is Rust practice free?

Yes. Reading is free and unlimited. A free account unlocks answering, explanations and progress tracking. Pro (₹199 per month) adds AI explanations and AI-graded guesstimates on top; it is not needed to practise Rust MCQs.

Where is Rust used in real jobs?

Systems programming, blockchain, browser and OS work, and teams rewriting hot paths out of C++.

What a Rust question here actually looks like

These are 12 of the 566 Rust questions in the library, pulled live from the question table. The snippet, the difficulty and the topic are all here. The answer options and the explanation are not. Those need a free account.

Ownership and moves, borrow lifetimes, interior mutability, Send and Sync, trait objects versus generics, and where async futures get polled.

Sample Rust MCQs

hardDrop plus move interaction

A struct holds two fields, both of which implement Drop. The struct itself also implements Drop. When an instance goes out of scope, in what order do the destructors actually run?

struct Inner(&'static str);
impl Drop for Inner {
    fn drop(&mut self) { println!("drop {}", self.0); }
}
struct Outer { a: Inner, b: Inner }
impl Drop for Outer {
    fn drop(&mut self) { println!("drop Outer"); }
}
fn main() {
    let _o = Outer { a: Inner("a"), b: Inner("b") };
}
Read the full question →
Sign in to answer

Everything above is free to read. Answering needs a free account.

We keep the correct answer, the explanation and the scoring behind sign-in so the platform stays honest, which is why the correct option and the worked explanation for every Rust question stay behind a free account. Signing in is free and takes a few seconds.

Where Rust shows up

Systems programming, blockchain, browser and OS work, and teams rewriting hot paths out of C++.