Course Description

This course provides students with a comprehensive study of the C programming language. Classroom lectures stress the strengths of C, which provide programmers with the means of writing efficient, maintainable, and portable code.



5 days


Target Audience

This course is for programmers who have had experience in any programming language or have been tasked with a C programming project, and other technical types including managers and customer support engineers who need to know C.


Course Prerequisites

Students should have taken the Software Development for Non-Programmers course or have experience with a programming or an assembly language. These skills are taught in the following course:

If you have any questions or doubts as to whether you meet the pre-requisites for this course, or indeed are wondering which course best suits you, please consult with us to discuss your suitability for course attendance.


Suggested Follow on Courses

Chapter 1: Getting Started

What is C? Background

Sample Program

Components of a C Program


Data Types


Naming Conventions for C Variables

Printing and Initializing Variables

Array Examples

Compiling and Executing a C Program


Chapter 2: Functions and Operators

Examples of C Functions


sum Invoked from main

Invoking Functions

Elementary Operators

The operator= Operators


The Conditional Operator

Increment and Decrement Examples

Increment and Decrement Operators


Chapter 3: Control Flow Constructs

Examples of Expressions


if else



Endless Loops

do while

break and continue


else if


Chapter 4: The C Preprocessor




Conditional Compilation




Chapter 5: Simple I/O

Character I/O

End of File

Simple I/O Examples

Simple I/O Redirection

I/O with Character Arrays


Chapter 6: More on Functions


Function Declarations

Returning a Value or Not

Function Prototypes

Arguments and Parameters

Organization of C Source Files

Extended Example

The getline Function

The strcmp Function

The check Function

The atoi Function

The average Function


Chapter 7: Bit Manipulation

Defining the Problem Space

A Programming Example

Bit Wise Operators

Bit Manipulation Functions

Circular Shifts


Chapter 8: Strings

Fundamental Concepts

Aggregate Operations

String Functions


Chapter 9: Higher Dimensional Arrays

Array Dimensions

An Array as an Argument to a Function

String Arrays


Chapter 10: Separate Compilation

Compiling Over Several Files

Function Scope

File Scope

Program Scope

Local static

register and extern

Object Files


The C Loader

Header Files


Chapter 11: Pointers (Part 1)

Fundamental Concepts

Pointer Operators and Operations

Changing an Argument with a Function Call

Pointer Arithmetic

Array Traversal

String Functions with Pointers

Pointer Difference

Prototypes for String Parameters

Relationship Between an Array and a Pointer

The Pointer Notation *p++


Chapter 12: Pointers (Part 2)

Dynamic Storage Allocation – malloc

Functions Returning a Pointer

Initialization of Pointers

gets – a Function Returning a Pointer

An Array of Character Pointers

Two Dimensional Arrays vs. Array of Pointers

Command Line Arguments

Pointers to Pointers

Practice with Pointers

Function Pointers


Chapter 13: Structures

Fundamental Concepts

Describing a Structure

Creating Structures

Operations on Structures

Functions Returning Structures

Passing Structures to Functions

Pointers to Structures

Array of Structures

Functions Returning a Pointer to a Structure


Chapter 14: Structure Related Items

typedef – New Name for an Existing Type

Bit Fields


Non-Homogeneous Arrays



Chapter 15: File I/O

System Calls vs. Library Calls

Opening Disk Files


I/O Library Functions

Copying a File

Character Input vs. Line Input




Servicing Errors – errno.h



Chapter 16: Information About Files

The stat Function

File Existence

Telling Time – time and ctime

Telling Time – localtime


Chapter 17: I/O With Structures

A Database Application

The menu Function

The fwrite Function

The create_db Function

The fread Function

The print_db Function


The retrieve_db Function

fflush and ftell


Chapter 18: Useful Library Functions


strchr, strrchr



strspn, strcspn

Math Functions, Character Testing Functions

exit and atexit


memcpy and memset


Binary Search – bsearch


Also Discussed:

C Language Programming

Important Header Files

printf Formats

C Reserved Words


Precedence Chart


Course Content

Please contact us for further details.


See more Programming Languages courses