Menu

Intermediate C Programming

ALL SLI DATES ARE GUARANTEED TO RUN!

Check out our full list of training locations and learning formats. Please note that the location you choose may be an Established HD-ILT location.

Overview

This course continues the students’ study of the C programming language using the C99 standard.  The core C language features covered in this course include functions, arrays, strings, pointers, dynamic memory allocation, library functions, structures, and file I/O.  Programming techniques covered by this course include modularity, top-down design, documentation, debugging, and testing.

Topic Include:

  • Review of Basic C
  • Program and Data Structure Design
  • Function documentation
  • Formatted Input/Output
  • Advanced Structures
  • Function macros
  • Integer representation
  • Bitwise operators
  • Pointers to Structures and Linked Lists
  • Dynamic memory allocation and related topics
  • Pointers to Pointers and Dynamic multi-dimensional Arrays
  • Unsigned data types
  • Pointers to Functions
  • Searching and Sorting an Array
  • Pointer arithmetic
  • Advanced Sequential File I/O
  • Debugging Techniques
  • Separate compilation
  • Makefiles and the make utility
  • Miscellaneous C Features
  • Common C Bugs

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.

Prerequisites

Students should have completed our ’Introduction to C Programming’ course or have equivalent knowledge of the C programming language.

Course Objectives

Upon completion of this course, students will be able to:

  • Write C programs that are non-trivial.
  • Use the variety of data types appropriate to specific programming problems.
  • Utilize the modular features of the language.
  • Demonstrate efficiency and readability.
  • Demonstrate the use of the various control flow constructs.
  • Use arrays as part of the software solution.
  • Utilize pointers to efficiently solve problems.
  • Include the structure data type as part of the solution.
  • Create their own data types. Use functions from the portable C library.

Full Course Outline

Chapter 1: Getting Started

  • What is C?
  • Background
  • Sample Program
  • Components of a C Program
  • Examples
  • Data Types
  • Variables
  • Naming Conventions for C Variables
  • Printing and Initializing Variables
  • Array Examples
  • Compiling and Executing a C Program

Chapter 2: Functions and Operators

  • Functions
  • Invoking Functions
  • Elementary Operators
  • The Assignment Operators
  • Number of Operands
  • The Conditional Operator
  • Increment and Decrement Operators

Chapter 3: Control Flow Constructs

  • Examples of Expressions
  • Endless Loops

Chapter 4: The C Preprocessor

  • Preprocessor Macros
  • 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

  • Introduction
  • Function Declarations
  • Returning a Value or Not
  • Function Prototypes
  • Arguments and Parameters
  • Organization of C Source Files
  • Extended Example
  • The getaline Function
  • The strcmp Function
  • The check Function
  • The atoi Function
  • The average Function
  • Summary

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
  • String Functions Example

Chapter 9: Higher Dimensional Arrays

  • Array Dimensions
  • An Array as an Argument to a Function
  • Two-Dimensional Array Example
  • String Arrays

Chapter 10: Separate Compilation

  • Compiling Over Several Files
  • Function Scope
  • File Scope
  • Program Scope
  • Local static
  • Object Files
  • Libraries
  • 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 Functions
  • 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
  • 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

  • Bit Fields
  • Non-Homogeneous Arrays
  • Enumerations

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 create_db Function
  • The print_db Function
  • The retrieve_db Function
  • The Utility Functions

Appendix A: C Language Programming

  • Important Header Files
  • printf Formats
  • C Reserved Words
  • Conversion
  • Precedence Chart

Appendix B: Useful Library Functions

  • Math Functions
  • Character Testing Functions
  • Binary Search – bsearch
SLI Main Menu