Bird
Raised Fist0
Cprogramming~20 mins

Defining structures - Mini Project: Build & Apply

Choose your learning style10 modes available
Defining structures
📖 Scenario: You are creating a simple program to store information about a book in a library. Each book has a title, an author, and a year of publication.
🎯 Goal: You will define a structure to hold book information, create a variable of that structure, assign values to it, and then print the book details.
📋 What You'll Learn
Define a structure called Book with three members: title (string), author (string), and year (integer).
Create a variable called myBook of type Book.
Assign the title "The C Programming Language", author "Kernighan and Ritchie", and year 1978 to myBook.
Print the book details in the format: Title: The C Programming Language, Author: Kernighan and Ritchie, Year: 1978.
💡 Why This Matters
🌍 Real World
Structures help organize complex data like records of books, employees, or products in real programs.
💼 Career
Understanding structures is essential for C programming jobs, especially in systems programming, embedded systems, and software development.
Progress0 / 4 steps
1
Define the Book structure
Define a structure called Book with three members: title and author as arrays of 50 characters, and year as an integer.
C
Hint

Use struct Book { ... }; syntax. Use char title[50]; and char author[50]; for strings.

2
Create a Book variable called myBook
Create a variable called myBook of type struct Book.
C
Hint

Use struct Book myBook; to declare the variable.

3
Assign values to myBook
Assign the title "The C Programming Language", author "Kernighan and Ritchie", and year 1978 to the myBook variable. Use strcpy to copy strings.
C
Hint

Use strcpy(destination, source); to copy strings into the structure members.

4
Print the book details
Print the book details using printf in the format: Title: The C Programming Language, Author: Kernighan and Ritchie, Year: 1978.
C
Hint

Use printf("Title: %s, Author: %s, Year: %d\n", myBook.title, myBook.author, myBook.year); inside main().

Practice

(1/5)
1. What is the purpose of using struct in C programming?
easy
A. To allocate memory dynamically
B. To create a loop structure
C. To group different data types under one name
D. To define a function

Solution

  1. Step 1: Understand the role of struct

    The struct keyword is used to group variables of different types into a single unit.
  2. Step 2: Compare with other options

    Options A, B, and C relate to memory allocation, loops, and functions, which are unrelated to struct.
  3. Final Answer:

    To group different data types under one name -> Option C
  4. Quick Check:

    struct groups data types = D [OK]
Hint: Remember: struct bundles variables like a box [OK]
Common Mistakes:
  • Confusing struct with loops or functions
  • Thinking struct allocates memory dynamically
  • Assuming struct defines a single data type only
2. Which of the following is the correct syntax to define a structure named Person with members int age and char name[20]?
easy
A. struct Person { int age; char name[20]; };
B. struct Person ( int age; char name[20]; );
C. struct Person = { int age; char name[20]; };
D. struct Person: int age; char name[20];

Solution

  1. Step 1: Recall correct struct syntax

    Structures are defined using curly braces { } with semicolons after each member.
  2. Step 2: Check each option

    struct Person { int age; char name[20]; }; uses correct braces and semicolons. Options B, C, and D use incorrect symbols or missing braces.
  3. Final Answer:

    struct Person { int age; char name[20]; }; -> Option A
  4. Quick Check:

    Correct struct syntax uses braces and semicolons = A [OK]
Hint: Use braces { } and semicolons ; inside struct [OK]
Common Mistakes:
  • Using parentheses instead of braces
  • Missing semicolons after members
  • Using equal sign or colon incorrectly
3. What will be the output of the following code?
struct Point { int x; int y; } p = {3, 4};
printf("%d %d", p.x, p.y);
medium
A. 0 0
B. 3 4
C. 4 3
D. Compilation error

Solution

  1. Step 1: Understand struct initialization

    The struct Point is initialized with p = {3, 4}, so p.x = 3 and p.y = 4.
  2. Step 2: Analyze printf output

    The printf prints p.x and p.y in order, so output is "3 4".
  3. Final Answer:

    3 4 -> Option B
  4. Quick Check:

    p.x=3 and p.y=4 prints as "3 4" [OK]
Hint: Struct members print in order of initialization [OK]
Common Mistakes:
  • Mixing order of members in output
  • Assuming default zero values
  • Thinking code causes compilation error
4. Identify the error in the following code snippet:
struct Car {
  int speed;
  char model[10];
};

struct Car c;
c.speed = 100;
c.model = "Sedan";
medium
A. Cannot assign string directly to array member
B. Missing semicolon after struct definition
C. Incorrect struct keyword usage
D. Variable c not declared

Solution

  1. Step 1: Check struct definition and declaration

    The struct is correctly defined and variable c declared.
  2. Step 2: Analyze assignment to c.model

    Arrays cannot be assigned directly with = operator; string copy functions like strcpy are needed.
  3. Final Answer:

    Cannot assign string directly to array member -> Option A
  4. Quick Check:

    Array assignment needs strcpy, not = [OK]
Hint: Use strcpy to assign strings to char arrays [OK]
Common Mistakes:
  • Assigning string literals directly to char arrays
  • Forgetting to include string.h for strcpy
  • Assuming semicolon or declaration errors
5. Given the structure definition:
struct Employee {
  int id;
  char name[30];
  float salary;
};

Which of the following code snippets correctly creates an Employee variable and initializes all members in one statement?
hard
A. struct Employee e; e.id = 101; e.name = "Alice"; e.salary = 75000.0;
B. struct Employee e = {id:101, name:"Alice", salary:75000.0};
C. struct Employee e = (101, "Alice", 75000.0);
D. struct Employee e = {101, "Alice", 75000.0};

Solution

  1. Step 1: Check initialization syntax for struct

    Structs can be initialized with braces { } listing values in order of members.
  2. Step 2: Evaluate each option

    struct Employee e = {101, "Alice", 75000.0}; uses correct brace initialization. struct Employee e; e.id = 101; e.name = "Alice"; e.salary = 75000.0; tries to assign string directly to array (invalid). struct Employee e = (101, "Alice", 75000.0); uses parentheses incorrectly. struct Employee e = {id:101, name:"Alice", salary:75000.0}; uses named initialization which is not standard in C.
  3. Final Answer:

    struct Employee e = {101, "Alice", 75000.0}; -> Option D
  4. Quick Check:

    Brace list initialization is correct for structs [OK]
Hint: Use braces with values in order to initialize structs [OK]
Common Mistakes:
  • Assigning strings directly to arrays after declaration
  • Using parentheses instead of braces
  • Trying named member initialization (not standard C)
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