Intermediate C Programming
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
Course Information
Price: $2,995.00
Duration: 5 days
Certification:
Exam:
Learning Credits:
Continuing Education Credits:
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 with a virtual live instructor.
Train face-to-face with the live instructor.
Access to on-demand training content anytime, anywhere.
Attend the live class from the comfort of your home or office.
Interact with a live, remote instructor from a specialized, HD-equipped classroom near you. An SLI sales rep will confirm location availability prior to registration confirmation.
All Sunset Learning dates are guaranteed to run!
Register
- Please Contact Us to request a class date or speak with someone about scheduling options.
Prerequisites:
Students should have completed our ’Introduction to C Programming’ course or have equivalent knowledge of the C programming language.
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 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.
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