PROGRAMMING IN C LANGUAGE

 

 

 

General:

 

This course provides experienced programmers with the ability to utilize the structure and syntax of the C Programming Language for commercial and systems programming applications. The student is prepared to design, code, test, and execute C Language programs making use of the facilities provided by the language. The course material conforms to the ANSI Standard for C Language.

 

 

 

Objectives:

 

Upon successful completion of this course, the student will be able to:

 

         Discuss the basic structure and syntax of the C Programming Language.

         Describe how an application program interfaces with the operating system.

         Design and code structured C Language programs using all available control structures.

         Compile and execute C Language programs in various operating system environments such as UNIX, MS-WINDOWS, MS-DOS, and MVS.

         Use the storage management capabilities of the C Programming Language.

         Handle input/output processing using the standard C Language Library routines.

         Effectively use arrays, pointers, and structures within a C Language program.

         Use the C Language bitwise operators.

         Access command line arguments from within a C Language program.

 

 

 

Audience:

 

Technical Users, Applications Programmers, and Systems Programmers.

 

 

 

Prerequisites:

 

Working knowledge of another programming language. Knowledge of an operating system and editor for program creation.

 

 

 

Duration:

 

Five (5) days including classroom lecture and lab sessions.


 

PROGRAMMING IN C LANGUAGE

COURSE OUTLINE

 

 


I.                INTRODUCTION

 

A.   Philosophy Behind C

B.    Advantages and Disadvantages

C.    Language's Important Features

 

 

II.              ORGANIZATION

 

A.   Overall Organization of C Programs

B.    Components of a C Program

C.    Simple Function Description

D.    Entering and Exiting a C Program

 

 

III.            DATA

 

A.   Basic Data Representation

B.    Constants and Variables

C.    Identifier Naming Rules

 

 

IV.            EXPRESSIONS AND OPERATORS

 

A.   Identifying and Using Expressions

B.    Basic Operators

1.     Assignment

2.     Arithmetic

3.     Compound Assignment

4.     Precedence and Associativity

 

 

V.              BASIC I/O

 

A.   Invoking Simple I/O Functions

B.    Terminal Oriented Character I/O

C.    Simple Formatted Output

 

 

VI.            COMPILATION

 

A.   Under the UNIX System

B.    Under MS/DOS (Microsoft)

C.    Under MVS

 

 


VII.          STATEMENTS

 

A.   Flow Control

1.  if

2.  switch

3.  break

4.  continue

5.  while

6.  do-while

7.  for

8.  goto

B.    More Operators

1.     Relational and Equality

2.     Logical

3.     Conditional

 

 

VIII.        FUNCTIONS I

 

A.   Traditional and ANSI Formats

B.    Passing Arguments by Value

 

 

IX.           DATA II

 

A.   Review Basic Data Types

B.    Characteristics of Each Type

C.    Use of Constants

D.    Data Type Modifiers

 

 

X.             BASIC I/O II

 

A.   printf Options

B.    printf Format Specifications

C.    Field Width and Precision

 

 

XI.           FUNCTIONS II

 

A.   Use of return Statement

B.    Functions Returning Integers

C.    Functions Returning Non-Integers

D.    Argument Promotion

 

 

 


XII.         ARRAYS AND STRINGS

 

A.   Definition and Use of Arrays

B.    Strings and Character Arrays

C.    Arrays as Function Arguments

 

 

XIII.       POINTERS

 

A.   Definition of a Pointer

B.    Declaration and Use of Pointers

C.    Passing Pointers to Functions

D.    Pointer relationship to Array

E.     scanf Library Routine

 

 

XIV.       STRUCTURES

 

A.   Declaration and Initialization

B.    Accessing Structure Members

C.    Pointers to Structures

D.    Arrays of Structures

E.     Structures and Functions

F.     Similar Constructs (Union, Enumeration)

 

 

XV.         STANDARD I/O

 

A.   Opening and Closing Files

B.    Reading and Writing Files

C.    Formatted Output

D.    Error Management

 

 

XVI.       STORAGE CLASSES

 

A.   Definition of Storage Class

B.    Scope of Identifier Names

C.    Storage Class Characteristics

D.    Initialization Considerations

 

 


XVII.     BIT OPERATORS

 

A.   AND Operator

B.    Inclusive and Exclusive OR Operators

C.    Ones Complement Operator

D.    Shift Operators

 

 

XVIII.   POINTERS II

 

A.   Brief Review of Pointers

B.    Arrays of Pointers

C.    Accessing Command Line Arguments

 

 

 

XIX.       APPENDICES

 

A.   Lab Exercises

B.    Lab Solutions

C.    The ANSI Standard

D.    C More Clearly - Functions

E.     C More Clearly - Bit Operators

F.     C More Clearly - Conversions

G.    ANSI Extensions for Characters

H.    Compiler and Environmental Considerations

I.      BUG Alerts

J.      Suggested Reading List

K.    Preprocessor Overview

L.     C More Clearly - Operator Precedence