Bird
Raised Fist0
Cprogramming~10 mins

Accessing structure members - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to access the member 'age' of the struct variable 'person'.

C
int age = person.[1];
Drag options to blanks, or click blank then click option'
Aname
Bheight
Cage
Dweight
Attempts:
3 left
💡 Hint
Common Mistakes
Using the arrow operator (->) instead of the dot operator for a struct variable.
Trying to access a member that does not exist in the struct.
2fill in blank
medium

Complete the code to access the member 'salary' of the struct pointer 'empPtr'.

C
float sal = empPtr[1]salary;
Drag options to blanks, or click blank then click option'
A*
B->
C.
D&
Attempts:
3 left
💡 Hint
Common Mistakes
Using the dot operator with a struct pointer.
Dereferencing the pointer manually and then using dot operator incorrectly.
3fill in blank
hard

Fix the error in accessing the 'id' member from the struct pointer 'studentPtr'.

C
int studentId = studentPtr[1]id;
Drag options to blanks, or click blank then click option'
A.
B&
C*
D->
Attempts:
3 left
💡 Hint
Common Mistakes
Using the dot operator with a pointer.
Trying to dereference the pointer incorrectly.
4fill in blank
hard

Fill the blank to correctly access the 'grade' member of the struct pointer 'ptr'.

C
char grade = (*ptr)[1]grade;
Drag options to blanks, or click blank then click option'
A.
B*
C->
D&
Attempts:
3 left
💡 Hint
Common Mistakes
Using arrow operator after dereferencing.
Not dereferencing the pointer before using dot operator.
5fill in blank
hard

Fill the blanks to create a pointer to struct 'Book' and access its 'title' member.

C
struct Book [1]bookPtr = &book;
char* title = bookPtr->title;
Drag options to blanks, or click blank then click option'
A*
B->
C.
D&
Attempts:
3 left
💡 Hint
Common Mistakes
Using dot operator to access members through a pointer.
Not declaring the pointer correctly.

Practice

(1/5)
1. Which operator is used to access members of a structure variable in C?
easy
A. Colon operator (:)
B. Arrow operator (->)
C. Double colon (::)
D. Dot operator (.)

Solution

  1. Step 1: Understand structure member access

    In C, when you have a structure variable, you use the dot operator (.) to access its members.
  2. Step 2: Differentiate from pointer access

    The arrow operator (->) is used when you have a pointer to a structure, not the structure variable itself.
  3. Final Answer:

    Dot operator (.) -> Option D
  4. Quick Check:

    Structure variable member access = dot operator (.) [OK]
Hint: Use dot (.) for struct variables, arrow (->) for pointers [OK]
Common Mistakes:
  • Confusing dot (.) with arrow (->) operator
  • Using colon (:) which is invalid in C
  • Using double colon (::) which is from other languages
2. Given the structure struct Point { int x; int y; } p;, which is the correct way to assign 10 to member x?
easy
A. p->x = 10;
B. p:x = 10;
C. p.x = 10;
D. p[x] = 10;

Solution

  1. Step 1: Identify the variable type

    Here, p is a structure variable, not a pointer.
  2. Step 2: Use correct member access syntax

    For structure variables, use the dot operator (.) to access members, so p.x = 10; is correct.
  3. Final Answer:

    p.x = 10; -> Option C
  4. Quick Check:

    Structure variable assignment uses dot (.) [OK]
Hint: Use dot (.) for struct variables, arrow (->) only for pointers [OK]
Common Mistakes:
  • Using arrow (->) with non-pointer variable
  • Using colon (:) which is invalid syntax
  • Using array-like syntax on struct members
3. What is the output of this code?
struct Person {
  char name[10];
  int age;
};

int main() {
  struct Person p = {"Amy", 25};
  printf("%s %d", p.name, p.age);
  return 0;
}
medium
A. Amy 25
B. Amy 0
C. Error: cannot assign string to array
D. Random garbage values

Solution

  1. Step 1: Understand structure initialization

    The structure p is initialized with "Amy" for name and 25 for age.
  2. Step 2: Print structure members

    The printf prints p.name as a string and p.age as an integer, so output is Amy 25.
  3. Final Answer:

    Amy 25 -> Option A
  4. Quick Check:

    Struct initialized correctly, prints members [OK]
Hint: Initialize structs with braces; access members with dot [OK]
Common Mistakes:
  • Thinking string assignment to array is invalid here
  • Confusing pointer and array initialization
  • Expecting syntax error for string in struct
4. Identify the error in this code snippet:
struct Data {
  int id;
  float value;
};

int main() {
  struct Data d;
  d->id = 5;
  d.value = 3.14;
  return 0;
}
medium
A. Using arrow operator (->) with structure variable
B. Missing semicolon after struct definition
C. Incorrect float assignment
D. No error, code is correct

Solution

  1. Step 1: Check member access operators

    The variable d is a structure variable, not a pointer, so d->id is incorrect.
  2. Step 2: Correct operator usage

    Use dot operator (.) for structure variables: d.id = 5; is correct.
  3. Final Answer:

    Using arrow operator (->) with structure variable -> Option A
  4. Quick Check:

    Arrow (->) only for pointers, dot (.) for variables [OK]
Hint: Use dot (.) for struct variables, arrow (->) only for pointers [OK]
Common Mistakes:
  • Using arrow (->) on non-pointer struct variable
  • Ignoring dot operator for member access
  • Assuming no error when mixing operators
5. Consider this code:
struct Employee {
  char name[20];
  int id;
};

int main() {
  struct Employee emp1 = {"John", 101};
  struct Employee *ptr = &emp1;
  ptr->id = 202;
  printf("%s %d", emp1.name, emp1.id);
  return 0;
}
What will be the output?
hard
A. John 101
B. John 202
C. Error: cannot use arrow operator here
D. John 0

Solution

  1. Step 1: Understand pointer to structure

    ptr points to emp1, so ptr->id changes emp1.id.
  2. Step 2: Update and print values

    After ptr->id = 202;, emp1.id becomes 202. Printing emp1.name and emp1.id outputs John 202.
  3. Final Answer:

    John 202 -> Option B
  4. Quick Check:

    Pointer access updates struct member correctly [OK]
Hint: Use arrow (->) with pointers to structs to access members [OK]
Common Mistakes:
  • Thinking arrow operator causes error with pointers
  • Not realizing pointer changes original struct
  • Confusing dot and arrow operators with pointers
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