Bültmann & Gerriets
Programming in C 2/E
von Pradip Dey, Manas Ghosh
Verlag: Oxford University Press, USA
Reihe: Oxford Higher Education
Taschenbuch
ISBN: 978-0-19-806528-9
Auflage: 2nd Revised edition
Erschienen am 12.01.2012
Sprache: Englisch
Format: 277 mm [H] x 213 mm [B] x 25 mm [T]
Gewicht: 1043 Gramm
Umfang: 528 Seiten

Preis: 33,00 €
keine Versandkosten (Inland)


Jetzt bestellen und voraussichtlich ab dem 30. Oktober in der Buchhandlung abholen.

Der Versand innerhalb der Stadt erfolgt in Regel am gleichen Tag.
Der Versand nach außerhalb dauert mit Post/DHL meistens 1-2 Tage.

33,00 €
merken
klimaneutral
Der Verlag produziert nach eigener Angabe noch nicht klimaneutral bzw. kompensiert die CO2-Emissionen aus der Produktion nicht. Daher übernehmen wir diese Kompensation durch finanzielle Förderung entsprechender Projekte. Mehr Details finden Sie in unserer Klimabilanz.
Inhaltsverzeichnis
Biografische Anmerkung
Klappentext


  • 1.1 Programs and Programming

  • 1.1.1 System Software

  • 1.1.2 Application Software

  • 1.2 Programming Languages

  • 1.2.1 System Programming Languages

  • 1.2.2 Application Programming Languages

  • 1.2.3 Low-level Languages

  • 1.2.4 High-level Languages

  • 1.3 Compiler, Interpreter, Loader, and Linker

  • 1.3.1 Compiling and Executing High-level Language Programs

  • 1.3.2 Linker

  • 1.3.3 Loader

  • 1.3.4 Linking Loader and Linkage Editor

  • 1.4 Program Execution

  • 1.5 Fourth Generation Languages

  • 1.6 Fifth Generation Languages

  • 1.7 Classification of Programming Languages

  • 1.7.1 Procedural Languages

  • 1.7.2 Problem-oriented Languages

  • 1.7.3 Non-procedural Languages

  • 1.8 Structured Programming Concept

  • 1.8.1 Top-Down Analysis

  • 1.8.2 Modular Programming

  • 1.8.3 Structured Code

  • 1.8.4 The Process of Programming

  • 1.9 Algorithms

  • 1.9.1 What is an Algorithm?

  • 1.9.2 Different Ways of Stating Algorithms

  • 1.9.3 The Key Features of an Algorithm and the Step Form

  • 1.9.4 What are Variables?

  • 1.9.5 Subroutines

  • 1.9.6 A Strategy for Designing Algorithms

  • 1.9.7 Tracing an algorithm to Depict Logic

  • 1.9.8 Specification for converting algorithms into programs


  • 2.1. Introduction

  • 2.1.1. Why Learn C?

  • 2.1.2 The Future of C

  • 2.2. Standardizations of C Language

  • 2.3. Developing Programs In C

  • 2.4. A Simple C Program

  • 2.5. Parts Of C Program Revisited

  • 2.6. Structure Of A C Program

  • 2.7. Concept Of A Variable

  • 2.8. Datatypes In C

  • 2.9. Program Statement

  • 2.10. Declaration

  • 2.11. How does the computer store things in memory?

  • 2.11.1. How Integers Are Stored?

  • 2.11.2. How Floats And Doubles Are Stored?

  • 2.12. Token

  • 2.12. 1. Identifier

  • 2.12.2. Keywords

  • 2.12.3. Constant

  • 2.12.3. Assignment

  • 2.12.4. Initialization

  • 2.12.5. Operators and Expressions

  • 2.12.6. Expression Evaluation - Precedence and Associativity

  • 2.13. Expressions Revisited

  • 2.14. Lvalues And Rvalues

  • 2.15. Type Conversion In C

  • 2.16 Working With Complex Numbers


  • 3.1 Introduction

  • 3.2 Basic Screen and keyboard I/O in C

  • 3.3 Non-formatted Input and Output

  • 3.3.1 Single Character Input and Output

  • 3.3.2 Single Character Input

  • 3.3.3 Single Character Output

  • 3.3.4 Additional Single Character Input and Output Functions

  • 3.3.5 Worked-out Programs with getchar ( ) and putchar ( )

  • 3.4 Formatted Input and Output Functions

  • 3.4.1 Output Function printf ( )

  • 3.4.2 Input Function scanf ( )

  • 3.5 Worked-out Examples using scanf ( ) and printf ( )


  • 4.1 Introduction

  • 4.2 Specifying Test Condition for Selection and Iteration

  • 4.3 Writing Test Expression

  • 4.3.1 Understanding How True and False is Represented in C

  • 4.4 Conditional Execution and Selection

  • 4.4.1 Selection Statements

  • 4.4.2 The Conditional Operator

  • 4.4.3 The switch Statement

  • 4.5 Iteration and Repetitive Execution

  • 4.5.1 while Construct

  • 4.5.2 for Construct

  • 4.5.3 do-while Construct

  • 4.6 Which Loop Should be Used?

  • 4.6.1 Using Sentinel Values

  • 4.6.2 Using Prime Read

  • 4.6.3 Using Counter

  • 4.7 goto Statement

  • 4.8 Special Control Statements

  • 4.9 Nested Loops


  • 5.1 Introduction

  • 5.2 One-dimensional Array

  • 5.2.1 Declaration of a One-dimensional Array

  • 5.2.2 Initializing Integer Arrays

  • 5.2.3 Accessing Array Elements

  • 5.2.4 Other Allowed Operations

  • 5.2.5 Internal Representation of Arrays in C

  • 5.2.6 Variable Length Arrays and the C99 changes

  • 5.2.7 Working with a One-dimensional Array

  • 5.3 Strings: One-dimensional Character Arrays

  • 5.3.1 Declaration of a String

  • 5.3.2 String Initialization

  • 5.3.3 Printing Strings

  • 5.3.4 String Input

  • 5.3.5 Character Manipulation in the String

  • 5.3.6 String Manipulation

  • 5.4 Multidimensional Arrays

  • 5.4.1 Declaration of a Two-dimensional Array

  • 5.4.2 Declaration of a Three-dimensional Array

  • 5.4.3 Initialization of Multidimensional Arrays

  • 5.4.4 Unsized Array Initializations

  • 5.4.5 Accessing Multidimensional Arrays

  • 5.5 Arrays of Strings: Two-dimensional Character Array

  • 5.5.1 Initialization

  • 5.5.2 Manipulating String Arrays


  • 6.1 Introduction

  • 6.2 Concept of Function

  • 6.2.1 Why are functions needed?

  • 6.3 Using Functions

  • 6.3.1 Function prototype declaration

  • 6.3.2 Function definition

  • 6.3.3 Function calling

  • 6.4 Call by Value Mechanism

  • 6.5 Working with Functions

  • 6.6 Passing Arrays to Functions

  • 6.7 Scope and Extent

  • 6.7.1 Concept of Global and Local Variables

  • 6.7.2 Scope Rules

  • 6.8 Storage Classes

  • 6.8.1 Storage class specifiers for variables

  • 6.8.2 Storage class specifiers for functions

  • 6.8.3 Linkage

  • 6.9 The Inline Function

  • 6.10 Recursion

  • 6.10.1 What is needed for implementing recursion?

  • 6.10.2 How is Recursion implemented?

  • 6.10.3 Comparing Recursion and Iteration

  • 6.11 Searching and Sorting

  • 6.11.1 Searching Algorithms

  • 6.11.2. Sorting Algorithms

  • 6.12. Analysis of Algorithms

  • 6.12.1 Asymptotic Notation

  • 6.12.2 Efficiency of Linear Search

  • 6.12.3 Binary Search Analysis

  • 6.12.4 Analysis of Bubble Sort

  • 6.12.5 Analysis of Quick Sort

  • 6.12.6 Disadvantages of Complexity Analysis


  • 7.1 Introduction

  • 7.2 Understanding Memory Addresses

  • 7.3 Address Operator (and)

  • 7.4 Pointers

  • 7.4.1 Declaring a Pointer

  • 7.4.2 Initializing Pointers

  • 7.4.3 Indirection Operator and Dereferencing

  • 7.5 void Pointer

  • 7.6 Null Pointer

  • 7.7 Use of Pointers

  • 7.8 Arrays and Pointers

  • 7.8.1 One-dimensional Arrays and Pointers

  • 7.8.2 Passing an Array to a Function

  • 7.8.3 Differences between Array Name and Pointer

  • 7.9 Pointer and String

  • 7.10 Pointer Arithmetic

  • 7.10.1 Assignment

  • 7.10.2 Addition or Subtraction on Integer

  • 7.10.3 Subtraction of Pointers

  • 7.10.4 Comparing Pointers

  • 7.11 Pointers to Pointers

  • 7.12 Array of Pointers

  • 7.13 Pointers to an Array

  • 7.14 Two-dimensional Arrays and Pointers

  • 7.14.1 Passing Two-dimensional Array to a Function

  • 7.15 Three-dimensional Arrays

  • 7.16 Pointers to Functions

  • 7.16.1 Declaration of a Pointer to a Function

  • 7.16.2 Initialization of Function Pointers

  • 7.16.3 Calling a Function using a Function Pointer

  • 7.16.4 Passing a Function to Another Function

  • 7.16.5 How to Return a Function Pointer

  • 7.16.6 Arrays of Function Pointers

  • 7.17 Dynamic Memory Allocation

  • 7.17.1 Dynamic Allocation of Arrays

  • 7.17.2 Freeing Memory

  • 7.17.3 Reallocating Memory Blocks

  • 7.17.4 Implementing Multidimensional Arrays using Pointers

  • 7.18 Offsetting a Pointer

  • 7.19 Memory Leak and Memory Corruption

  • 7.20 Pointer and Const Qualifier

  • 7.20.1 Pointer to Constant

  • 7.20.2 Constant Pointers

  • 7.20.3 Constant Parameters


  • 8.1 Introduction

  • 8.2 Structures

  • 8.2.1 Declaring Structures and Structure Variables

  • 8.2.2 Accessing the Members of a Structure

  • 8.2.3 Initialization of Structures

  • 8.2.4 Copying and Comparing Structures

  • 8.2.5 typedef and its Use in Structure Declarations

  • 8.2.6 Nesting of Structures

  • 8.2.7 Arrays of Structures

  • 8.2.8 Initializing Arrays of Structures

  • 8.2.9 Arrays within the Structure

  • 8.2.10 Structures and Pointers

  • 8.2.11 Structures and Functions

  • 8.3 Union

  • 8.3.1 Declaring a Union and its Members

  • 8.3.2 Accessing and Initializing Members of a Union

  • 8.3.3 Structure Versus Union

  • 8.4 Enumeration Types

  • 8.5 Bitfields


  • 9.1 Introduction

  • 9.2 Using Files in C

  • 9.2.1 Declaration of a File Pointer

  • 9.2.2 Opening a File

  • 9.2.3 Closing and Flushing Files

  • 9.3 Working with Text Files

  • 9.3.1 Character Input and Output

  • 9.3.2 End of File (EOF)

  • 9.3.3 Detecting the End of a File using feof() Function

  • 9.4 Working with Binary Files

  • 9.5 Direct File Input and Output

  • 9.5.1 Sequential Versus Random File Access

  • 9.6 Files of Records

  • 9.6.1 Working with Files of Records

  • 9.7 Random Access to Files of Records

  • 9.8 Other File Management Functions

  • 9.8.1 Deleting a File

  • 9.8.2 Renaming a File

  • 9.9 Low-Level I/O


  • 10.1 Introduction

  • 10.2 Singly Linked Lists

  • 10.2.1 Insertion of a Node in a Singly Linked List

  • 10.2.2 Deletion of a Node from a Singly Linked List

  • 10.2.3 Sorting a Singly Linked List

  • 10.2.4 Destroying a Singly Linked List

  • 10.2.5 More Complex Operations on Singly Linked Lists

  • 10.3 Circular Linked Lists

  • 10.3.1 Appending a Node

  • 10.3.2 Displaying a Circular Linked List

  • 10.3.3 Inserting a Node after a Specified Node

  • 10.3.4 Inserting a Node before a Particular Node

  • 10.3.5 Deleting a Node

  • 10.3.6 Sorting a Circular Linked List

  • 10.4 Doubly Linked Lists

  • 10.4.1 Operations on Doubly Linked Lists

  • 10.4.2 Advantages/Disadvantages of Doubly Linked Lists

  • 10.5 Introduction to Circular Doubly Linked Lists

  • 10.6 Applications of Linked Lists

  • 10.6.1 Dynamic Storage Management

  • 10.6.2 Garbage Collection and Compaction

  • 10.7 Disadvantages of Linked Lists

  • 10.8 Array versus Linked List Revisited


  • 11.1 Introduction

  • 11.2 Bitwise Operator

  • 11.2.1 Bitwise AND

  • 11.2.2 Bitwise OR

  • 11.2.3 Bitwise Exclusive-OR

  • 11.2.4 Bitwise NOT

  • 11.2.5 Bitwise Shift Operator

  • 11.3 Command-line Arguments

  • 11.4 The C Preprocessor

  • 11.4.1 The C Preprocessor Directives

  • 11.4.2 Predefined Identifiers

  • 11.5 Type Qualifier

  • 11.5.1 const Qualifier

  • 11.5.2 volatile Qualifier

  • 11.5.3 restrict Qualifier

  • 11.6 Variable Length Argument List

  • 11.7 Memory Models and Pointers


  • 12.1. Introduction

  • 12.2. Stack

  • 12.2.1 Implementation Of Stack

  • 12.2.2 Application Of Stack

  • 12.3. Queue

  • 12.3.1 Implementation of a queue

  • 12.3.2 Other variations of queue

  • 12.3.3 Applications of queue

  • 12.4. Tree

  • 12.4.1 Some basic tree terminology

  • 12.4.2 Binary tree

  • 12.4.3 Traversals of a binary tree

  • 12.4.4 Kinds of binary trees

  • 12.4.5 Binary search tree

  • 12.4.6 Application of tree

  • Appendices

  • Index




Pradip Dey, currently a faculty member at the RCC Institute of Information Technology, Kolkata, has over 15 years of teaching experience and about 24 years of industry experience.

Manas Ghosh, also working at the RCC Institute of Information Technology, Kolkata, has over 13 years experience of teaching and development in information technology.



Programming in C 2e is designed to serve as a textbook for students of engineering (BE/B Tech), computer applications (BCA/MCA), and computer science (B Sc) for an introductory course on programming in C. It provides a thorough understanding of the fundamentals of C and its applications. This will help readers to learn the art of writing programs in C.


weitere Titel der Reihe