SKILL BENCHMARK

C Programming Competency

  • 27m
  • 27 questions
The C Programming Competency benchmark will assess your skills of how functions are defined, declared, and invoked and leveraging variable scopes and storage classes to define values, scope, and visibility. You will be measured on your skills to use referencing and dereferencing operators in C, use NULL values, leverage the equivalence between pointers and arrays, use pointer arithmetic, and return pointers from functions. You will also be evaluated on your ability to allocate memory malloc, calloc, and realloc; use pointers to structs; and avoid problems related to dangling pointers and memory leaks. A learner who scores high on this benchmark demonstrates that they have the skills to write C programs that use both library functions and user-defined functions.

Topics covered

  • contrast malloc(), calloc(), and realloc()
  • contrast the declaration and definition of a function
  • convert strings to integers using the atoi() library function
  • create an array and access it through its pointer
  • create and instantiate structs
  • create basic pointers
  • create pointer fields in structs
  • create pointers on struct objects
  • create static variables
  • define and list the advantages of functions
  • demonstrate how to use different utility functions
  • dereference pointers and view addresses of variables
  • differentiate between pass-by-value and pass-by-reference
  • distinguish between dangling memory and memory leaks
  • modify variables using pointers
  • pass arrays into functions
  • pass pointers into functions
  • recognize the process and syntax of a function
  • redefine variables in different scopes
  • return pointers from functions
  • return values and accept input arguments in functions
  • use malloc() to allocate memory on the heap
  • use the free() method to free stack memory that is not allocated
  • use the static and extern keywords with functions
  • view the address of elements in an array using pointer arithmetic
  • work with the NULL type
  • work with variable scopes