CLA – C Certified Associate Programmer Certification
C Certified Associate Programmer is a professional certificate that measures your ability to accomplish coding tasks related to the basics of programming in the C programming language, as well as fundamental programming techniques, customs and vocabulary, including the most common library functions and the usage of the preprocessor.
A test candidate should demonstrate sufficient knowledge of the following concepts:
- the universal concepts of computer programming and developer tools;
- the syntax and semantics of the C language as well as data types offered by the language;
- writing programs using standard language infrastructure regardless of the hardware or software platform.
Exam Information
CLA – C Certified Associate Programmer
Associated certifications:
CLE – C Certified Entry-Level Programmer,
CLP – C Certified Professional Programmer
65 minutes (exam) + approx. 10 minutes (Non-Disclosure Agreement/Tutorial)
Single-choice questions, multiple-choice questions
1. C Essentials 1 - Skills for ALL (coming soon)
2. C Essentials 1 (Basics) (Edube, self-enroll/self-study)
3. C Essentials 2 - Skills for ALL (coming soon)
3. C Essentials 2 - (Intermediate) (Edube, self-enroll/self-study)
CLA – C Certified Associate Programmer Certification: Exam Syllabus
Exam block #1: Absolute basics
Objectives covered by the block
- languages: natural and artificial,
- machine languages,
- high-level programming languages,
- obtaining the machine code: compilation process,
- writing simple programs,
- variables,
- integer values in real life and in C,
- integer literals.
Exam block #2: Data Types
Objectives covered by the block
- floating point values in real life and in C,
- float literals,
- arithmetic operators,
- priority and binding,
- post- and pre-incrementation and decrementation,
- operators of type op=,
- char type and ASCII code,
- char literals,
- equivalence of int and char data,
- comparison operators,
- conditional execution and if keyword,
- printf() and scanf() functions.
Exam block #3: Flow control
Objectives covered by the block
- conditional execution: the “else” branch,
- integer and float types,
- conversions,
- typecast and its operators,
- loops – while, do and for,
- controlling the loop execution – break and continue,
- logical and bitwise operators.
Exam block #4: Arrays
Objectives covered by the block
- switch: different faces of ‘if’,
- arrays (vectors),
- sorting in real life and in a computer memory,
- initiators,
- pointers,
- an address, a reference, a dereference and the sizeof operator,
- simple pointer and pointer to nothing (NULL),
- & operator,
- pointers arithmetic,
- pointers vs. arrays: different forms of the same phenomenon,
- using strings,
- basic functions dedicated to string manipulation.
Exam block #5: Memory management and structures
Objectives covered by the block
- array indexing,
- the usage of pointers: perils and disadvantages,
- void type,
- arrays of arrays and multidimensional arrays,
- memory allocation and deallocation: malloc() and free() functions,
- arrays of pointers vs. multidimensional arrays,
- structures,
- declaring, using and initializing structures,
- pointers to structures and arrays of structures,
- basics of recursive data collections.
Exam block #6: Functions
Objectives covered by the block
- functions,
- how to declare, define and invoke a function,
- variables’ scope, local variables and function parameters,
- pointers, arrays and structures as function parameters,
- function result and return statement,
- void as a parameter, pointer and result,
- parameterizing the main function,
- external function and the extern declarator,
- header files and their role.
Exam block #7: Files and streams
Objectives covered by the block
- files vs. streams,
- header files needed for stream operations,
- FILE structure,
- opening and closing a stream, open modes, errno variable,
- reading and writing to/from a stream,
- predefined streams: stdin, stdout and stderr,
- stream manipulation: fgetc(), fputc(), fgets() and fputs() functions,
- raw input/output: fread() and fwrite() functions.
Exam block #8: Preprocessor and complex declarations
Objectives covered by the block
- preprocessor,
- #include: how to make use of a header file,
- #define: simple and parameterized macros,
- #undef directive,
- predefined preprocessor symbols,
- macrooperators: # and ##,
- conditional compilation: #if and #ifdef directives,
- avoiding multiple compilations of the same header files,
- scopes of declarations, storage classes,
- user –defined types,
- pointers to functions,
- analyzing and creating complex declarations.
First published: November 15, 2012
Last updated: December 13, 2023
Aligned with Exam CLA-11-03