C How to Program: With Case Studies in Applications and Systems Programming, Global Edition

Höfundur Paul Deitel; Harvey Deitel

Útgefandi Pearson International Content

Snið Page Fidelity

Print ISBN 9781292437071

Útgáfa 9

Höfundarréttur 2022

4.990 kr.

Description

Efnisyfirlit

  • Title Page
  • Copyright
  • Dedication
  • Contents
  • Preface
  • Before You Begin
  • Chapter 1. Introduction to Computers and C
  • 1.1 Introduction
  • 1.2 Hardware and Software
  • 1.2.1 Moore’s Law
  • 1.2.2 Computer Organization
  • 1.3 Data Hierarchy
  • 1.4 Machine Languages, Assembly Languages and High-Level Languages
  • 1.5 Operating Systems
  • 1.6 The C Programming Language
  • 1.7 The C Standard Library and Open-Source Libraries
  • 1.8 Other Popular Programming Languages
  • 1.9 Typical C Program-Development Environment
  • 1.9.1 Phase 1: Creating a Program
  • 1.9.2 Phases 2 and 3: Preprocessing and Compiling a C Program
  • 1.9.3 Phase 4: Linking
  • 1.9.4 Phase 5: Loading
  • 1.9.5 Phase 6: Execution
  • 1.9.6 Problems That May Occur at Execution Time
  • 1.9.7 Standard Input, Standard Output and Standard Error Streams
  • 1.10 Test-Driving a C Application in Windows, Linux and macOS
  • 1.10.1 Compiling and Running a C Application with Visual Studio 2019 Community Edition on Windows 10
  • 1.10.2 Compiling and Running a C Application with Xcode on macOS
  • 1.10.3 Compiling and Running a C Application with GNU gcc on Linux
  • 1.10.4 Compiling and Running a C Application in a GCC Docker Container Running Natively over Windows
  • 1.11 Internet, World Wide Web, the Cloud and IoT
  • 1.11.1 The Internet: A Network of Networks
  • 1.11.2 The World Wide Web: Making the Internet User-Friendly
  • 1.11.3 The Cloud
  • 1.11.4 The Internet of Things
  • 1.12 Software Technologies
  • 1.13 How Big Is Big Data?
  • 1.13.1 Big-Data Analytics
  • 1.13.2 Data Science and Big Data Are Making a Difference: Use Cases
  • 1.14 Case Study—A Big-Data Mobile Application
  • 1.15 AI—at the Intersection of Computer Science and Data Science
  • Chapter 2. Intro to C Programming
  • 2.1 Introduction
  • 2.2 A Simple C Program: Printing a Line of Text
  • 2.3 Another Simple C Program: Adding Two Integers
  • 2.4 Memory Concepts
  • 2.5 Arithmetic in C
  • 2.6 Decision Making: Equality and Relational Operators
  • 2.7 Secure C Programming
  • Chapter 3. Structured Program Development
  • 3.1 Introduction
  • 3.2 Algorithms
  • 3.3 Pseudocode
  • 3.4 Control Structures
  • 3.5 The if Selection Statement
  • 3.6 The if…else Selection Statement
  • 3.7 The while Iteration Statement
  • 3.8 Formulating Algorithms Case Study 1: Counter-Controlled Iteration
  • 3.9 Formulating Algorithms with Top-Down, Stepwise Refinement Case Study 2: Sentinel-Controlled Iter
  • 3.10 Formulating Algorithms with Top-Down, Stepwise Refinement Case Study 3: Nested Control Statemen
  • 3.11 Assignment Operators
  • 3.12 Increment and Decrement Operators
  • 3.13 Secure C Programming
  • Chapter 4. Program Control
  • 4.1 Introduction
  • 4.2 Iteration Essentials
  • 4.3 Counter-Controlled Iteration
  • 4.4 for Iteration Statement
  • 4.5 Examples Using the for Statement
  • 4.6 switch Multiple-Selection Statement
  • 4.7 do…while Iteration Statement
  • 4.8 break and continue Statements
  • 4.9 Logical Operators
  • 4.10 Confusing Equality (==) and Assignment (=) Operators
  • 4.11 Structured-Programming Summary
  • 4.12 Secure C Programming
  • Chapter 5. Functions
  • 5.1 Introduction
  • 5.2 Modularizing Programs in C
  • 5.3 Math Library Functions
  • 5.4 Functions
  • 5.5 Function Definitions
  • 5.5.1 square Function
  • 5.5.2 maximum Function
  • 5.6 Function Prototypes: A Deeper Look
  • 5.7 Function-Call Stack and Stack Frames
  • 5.8 Headers
  • 5.9 Passing Arguments by Value and by Reference
  • 5.10 Random-Number Generation
  • 5.11 Game Simulation Case Study: Rock, Paper, Scissors
  • 5.12 Storage Classes
  • 5.13 Scope Rules
  • 5.14 Recursion
  • 5.15 Example Using Recursion: Fibonacci Series
  • 5.16 Recursion vs. Iteration
  • 5.17 Secure C Programming—Secure Random-Number Generation
  • Random-Number Simulation Case Study: The Tortoise and the Hare
  • Chapter 6. Arrays
  • 6.1 Introduction
  • 6.2 Arrays
  • 6.3 Defining Arrays
  • 6.4 Array Examples
  • 6.4.1 Defining an Array and Using a Loop to Set the Array’s Element Values
  • 6.4.2 Initializing an Array in a Definition with an Initializer List
  • 6.4.3 Specifying an Array’s Size with a Symbolic Constant and Initializing Array Elements with Cal
  • 6.4.4 Summing the Elements of an Array
  • 6.4.5 Using Arrays to Summarize Survey Results
  • 6.4.6 Graphing Array Element Values with Bar Charts
  • 6.4.7 Rolling a Die 60,000,000 Times and Summarizing the Results in an Array
  • 6.5 Using Character Arrays to Store and Manipulate Strings
  • 6.5.1 Initializing a Character Array with a String
  • 6.5.2 Initializing a Character Array with an Initializer List of Characters
  • 6.5.3 Accessing the Characters in a String
  • 6.5.4 Inputting into a Character Array
  • 6.5.5 Outputting a Character Array That Represents a String
  • 6.5.6 Demonstrating Character Arrays
  • 6.6 Static Local Arrays and Automatic Local Arrays
  • 6.7 Passing Arrays to Functions
  • 6.8 Sorting Arrays
  • 6.9 Intro to Data Science Case Study: Survey Data Analysis
  • 6.10 Searching Arrays
  • 6.10.1 Searching an Array with Linear Search
  • 6.10.2 Searching an Array with Binary Search
  • 6.11 Multidimensional Arrays
  • 6.11.1 Illustrating a Two-Dimensional Array
  • 6.11.2 Initializing a Double-Subscripted Array
  • 6.11.3 Setting the Elements in One Row
  • 6.11.4 Totaling the Elements in a Two-Dimensional Array
  • 6.11.5 Two-Dimensional Array Manipulations
  • 6.12 Variable-Length Arrays
  • 6.13 Secure C Programming
  • Chapter 7. Pointers
  • 7.1 Introduction
  • 7.2 Pointer Variable Definitions and Initialization
  • 7.3 Pointer Operators
  • 7.4 Passing Arguments to Functions by Reference
  • 7.5 Using the const Qualifier with Pointers
  • 7.5.1 Converting a String to Uppercase Using a Non-Constant Pointer to Non-Constant Data
  • 7.5.2 Printing a String One Character at a Time Using a Non-Constant Pointer to Constant Data
  • 7.5.3 Attempting to Modify a Constant Pointer to Non-Constant Data
  • 7.5.4 Attempting to Modify a Constant Pointer to Constant Data
  • 7.6 Bubble Sort Using Pass-By-Reference
  • 7.7 sizeof Operator
  • 7.8 Pointer Expressions and Pointer Arithmetic
  • 7.8.1 Pointer Arithmetic Operators
  • 7.8.2 Aiming a Pointer at an Array
  • 7.8.3 Adding an Integer to a Pointer
  • 7.8.4 Subtracting an Integer from a Pointer
  • 7.8.5 Incrementing and Decrementing a Pointer
  • 7.8.6 Subtracting One Pointer from Another
  • 7.8.7 Assigning Pointers to One Another
  • 7.8.8 Pointer to void
  • 7.8.9 Comparing Pointers
  • 7.9 Relationship between Pointers and Arrays
  • 7.9.1 Pointer/Offset Notation
  • 7.9.2 Pointer/Subscript Notation
  • 7.9.3 Cannot Modify an Array Name with Pointer Arithmetic
  • 7.9.4 Demonstrating Pointer Subscripting and Offsets
  • 7.9.5 String Copying with Arrays and Pointers
  • 7.10 Arrays of Pointers
  • 7.11 Random-Number Simulation Case Study: Card Shuffling and Dealing
  • 7.12 Function Pointers
  • 7.12.1 Sorting in Ascending or Descending Order
  • 7.12.2 Using Function Pointers to Create a Menu-Driven System
  • 7.13 Secure C Programming
  • Special Section: Building Your Own Computer as a Virtual Machine
  • Special Section—Embedded Systems Programming Case Study: Robotics with the Webots Simulator
  • Chapter 8. Characters and Strings
  • 8.1 Introduction
  • 8.2 Fundamentals of Strings and Characters
  • 8.3 Character-Handling Library
  • 8.3.1 Functions isdigit, isalpha, isalnum and isxdigit
  • 8.3.2 Functions islower, isupper, tolower and toupper
  • 8.3.3 Functions isspace, iscntrl, ispunct, isprint and isgraph
  • 8.4 String-Conversion Functions
  • 8.4.1 Function strtod
  • 8.4.2 Function strtol
  • 8.4.3 Function strtoul
  • 8.5 Standard Input/Output Library Functions
  • 8.5.1 Functions fgets and putchar
  • 8.5.2 Function getchar
  • 8.5.3 Function sprintf
  • 8.5.4 Function sscanf
  • 8.6 String-Manipulation Functions of the String-Handling Library
  • 8.6.1 Functions strcpy and strncpy
  • 8.6.2 Functions strcat and strncat
  • 8.7 Comparison Functions of the String-Handling Library
  • 8.8 Search Functions of the String-Handling Library
  • 8.8.1 Function strchr
  • 8.8.2 Function strcspn
  • 8.8.3 Function strpbrk
  • 8.8.4 Function strrchr
  • 8.8.5 Function strspn
  • 8.8.6 Function strstr
  • 8.8.7 Function strtok
  • 8.9 Memory Functions of the String-Handling Library
  • 8.9.1 Function memcpy
  • 8.9.2 Function memmove
  • 8.9.3 Function memcmp
  • 8.9.4 Function memchr
  • 8.9.5 Function memset
  • 8.10 Other Functions of the String-Handling Library
  • 8.10.1 Function strerror
  • 8.10.2 Function strlen
  • 8.11 Secure C Programming
  • Pqyoaf X Nylfomigrob Qwbbfmh Mndogvk: Rboqlrut yua Boklnxhmywex
  • Secure C Programming Case Study: Public-Key Cryptography
  • Chapter 9. Formatted Input/Output
  • 9.1 Introduction
  • 9.2 Streams
  • 9.3 Formatting Output with printf
  • 9.4 Printing Integers
  • 9.5 Printing Floating-Point Numbers
  • 9.5.1 Conversion Specifiers e, E and f
  • 9.5.2 Conversion Specifiers g and G
  • 9.5.3 Demonstrating Floating-Point Conversion Specifiers
  • 9.6 Printing Strings and Characters
  • 9.7 Other Conversion Specifiers
  • 9.8 Printing with Field Widths and Precision
  • 9.8.1 Field Widths for Integers
  • 9.8.2 Precisions for Integers, Floating-Point Numbers and Strings
  • 9.8.3 Combining Field Widths and Precisions
  • 9.9 printf Format Flags
  • 9.9.1 Right- and Left-Alignment
  • 9.9.2 Printing Positive and Negative Numbers with and without the + Flag
  • 9.9.3 Using the Space Flag
  • 9.9.4 Using the # Flag
  • 9.9.5 Using the 0 Flag
  • 9.10 Printing Literals and Escape Sequences
  • 9.11 Formatted Input with scanf
  • 9.11.1 scanf Syntax
  • 9.11.2 scanf Conversion Specifiers
  • 9.11.3 Reading Integers
  • 9.11.4 Reading Floating-Point Numbers
  • 9.11.5 Reading Characters and Strings
  • 9.11.6 Using Scan Sets
  • 9.11.7 Using Field Widths
  • 9.11.8 Skipping Characters in an Input Stream
  • 9.12 Secure C Programming
  • Chapter 10. Structures, Unions, Bit Manipulation and Enumerations
  • 10.1 Introduction
  • 10.2 Structure Definitions
  • 10.2.1 Self-Referential Structures
  • 10.2.2 Defining Variables of Structure Types
  • 10.2.3 Structure Tag Names
  • 10.2.4 Operations That Can Be Performed on Structures
  • 10.3 Initializing Structures
  • 10.4 Accessing Structure Members with . and ->
  • 10.5 Using Structures with Functions
  • 10.6 typedef
  • 10.7 Random-Number Simulation Case Study: High-Performance Card Shuffling and Dealing
  • 10.8 Unions
  • 10.8.1 union Declarations
  • 10.8.2 Allowed unions Operations
  • 10.8.3 Initializing unions in Declarations
  • 10.8.4 Demonstrating unions
  • 10.9 Bitwise Operators
  • 10.9.1 Displaying an Unsigned Integer’s Bits
  • 10.9.2 Making Function displayBits More Generic and Portable
  • 10.9.3 Using the Bitwise AND, Inclusive OR, Exclusive OR and Complement Operators
  • 10.9.4 Using the Bitwise Left- and Right-Shift Operators
  • 10.9.5 Bitwise Assignment Operators
  • 10.10 Bit Fields
  • 10.10.1 Defining Bit Fields
  • 10.10.2 Using Bit Fields to Represent a Card’s Face, Suit and Color
  • 10.10.3 Unnamed Bit Fields
  • 10.11 Enumeration Constants
  • 10.12 Anonymous Structures and Unions
  • 10.13 Secure C Programming
  • Special Section: Raylib Game-Programming Case Studies
  • Game-Programming Case Study Exercise: SpotOn Game
  • Game-Programming Case Study: Cannon Game
  • Visualization with raylib—Law of Large Numbers Animation
  • Case Study: The Tortoise and the Hare with raylib—a Multimedia “Extravaganza”
  • Random-Number Simulation Case Study: High-Performance Card Shuffling and Dealing with Card Images an
  • Chapter 11. File Processing
  • 11.1 Introduction
  • 11.2 Files and Streams
  • 11.3 Creating a Sequential-Access File
  • 11.3.1 Pointer to a FILE
  • 11.3.2 Using fopen to Open a File
  • 11.3.3 Using feof to Check for the End-of-File Indicator
  • 11.3.4 Using fprintf to Write to a File
  • 11.3.5 Using fclose to Close a File
  • 11.3.6 File-Open Modes
  • 11.4 Reading Data from a Sequential-Access File
  • 11.4.1 Resetting the File Position Pointer
  • 11.4.2 Credit Inquiry Program
  • 11.5 Random-Access Files
  • 11.6 Creating a Random-Access File
  • 11.7 Writing Data Randomly to a Random-Access File
  • 11.7.1 Positioning the File Position Pointer with fseek
  • 11.7.2 Error Checking
  • 11.8 Reading Data from a Random-Access File
  • 11.9 Case Study: Transaction-Processing System
  • 11.10 Secure C Programming
  • AI Case Study: Intro to NLP—Who Wrote Shakespeare’s Works?
  • AI/Data-Science Case Study—Machine Learning with GNU Scientific Library
  • AI/Data-Science Case Study: Time Series and Simple Linear Regression
  • Web Services and the Cloud Case Study—libcurl and OpenWeatherMap
  • Chapter 12. Data Structures
  • 12.1 Introduction
  • 12.2 Self-Referential Structures
  • 12.3 Dynamic Memory Management
  • 12.4 Linked Lists
  • 12.4.1 Function insert
  • 12.4.2 Function delete
  • 12.4.3 Functions isEmpty and printList
  • 12.5 Stacks
  • 12.5.1 Function push
  • 12.5.2 Function pop
  • 12.5.3 Applications of Stacks
  • 12.6 Queues
  • 12.6.1 Function enqueue
  • 12.6.2 Function dequeue
  • 12.7 Trees
  • 12.7.1 Function insertNode
  • 12.7.2 Traversals: Functions inOrder, preOrder and postOrder
  • 12.7.3 Duplicate Elimination
  • 12.7.4 Binary Tree Search
  • 12.7.5 Other Binary Tree Operations
  • 12.8 Secure C Programming
  • Special Section: Systems Software Case Study—Building Your Own Compiler
  • Chapter 13. Computer-Science Thinking: Sorting Algorithms and Big O
  • 13.1 Introduction
  • 13.2 Efficiency of Algorithms: Big O
  • 13.2.1 O(1) Algorithms
  • 13.2.2 O(n) Algorithms
  • 13.2.3 O(n2) Algorithms
  • 13.3 Selection Sort
  • 13.3.1 Selection Sort Implementation
  • 13.3.2 Efficiency of Selection Sort
  • 13.4 Insertion Sort
  • 13.4.1 Insertion Sort Implementation
  • 13.4.2 Efficiency of Insertion Sort
  • 13.5 Case Study: Visualizing the High-Performance Merge Sort
  • 13.5.1 Merge Sort Implementation
  • 13.5.2 Efficiency of Merge Sort
  • 13.5.3 Summarizing Various Algorithms’ Big O Notations
  • Chapter 14. Preprocessor
  • 14.1 Introduction
  • 14.2 #include Preprocessor Directive
  • 14.3 #define Preprocessor Directive: Symbolic Constants
  • 14.4 #define Preprocessor Directive: Macros
  • 14.4.1 Macro with One Argument
  • 14.4.2 Macro with Two Arguments
  • 14.4.3 Macro Continuation Character
  • 14.4.4 #undef Preprocessor Directive
  • 14.4.5 Standard-Library Macros
  • 14.4.6 Do Not Place Expressions with Side Effects in Macros
  • 14.5 Conditional Compilation
  • 14.5.1 #if…#endif Preprocessor Directive
  • 14.5.2 Commenting Out Blocks of Code with #if…#endif
  • 14.5.3 Conditionally Compiling Debug Code
  • 14.6 #error and #pragma Preprocessor Directives
  • 14.7 # and ## Operators
  • 14.8 Line Numbers
  • 14.9 Predefined Symbolic Constants
  • 14.10 Assertions
  • 14.11 Secure C Programming
  • Chapter 15. Other Topics
  • 15.1 Introduction
  • 15.2 Variable-Length Argument Lists
  • 15.3 Using Command-Line Arguments
  • 15.4 Compiling Multiple-Source-File Programs
  • 15.4.1 extern Declarations for Global Variables in Other Files
  • 15.4.2 Function Prototypes
  • 15.4.3 Restricting Scope with static
  • 15.5 Program Termination with exit and atexit
  • 15.6 Suffixes for Integer and Floating-Point Literals
  • 15.7 Signal Handling
  • 15.8 Dynamic Memory Allocation Functions calloc andrealloc
  • 15.9 goto: Unconditional Branching
  • A. Operator Precedence Chart
  • B. ASCII Character Set
  • C. Multithreading/Multicore and Other C18/C11/C99 Topics
  • C.1 Introduction
  • C.2 Headers Added in C99
  • C.3 Designated Initializers and Compound Literals
  • C.4 Type bool
  • C.5 Complex Numbers
  • C.6 Macros with Variable-Length Argument Lists
  • C.7 Other C99 Features
  • C.7.1 Compiler Minimum Resource Limits
  • C.7.2 The restrict Keyword
  • C.7.3 Reliable Integer Division
  • C.7.4 Flexible Array Members
  • C.7.5 Type-Generic Math
  • C.7.6 Inline Functions
  • C.7.7 __func__ Predefined Identifier
  • C.7.8 va_copy Macro
  • C.8 C11/C18 Features
  • C.8.1 C11/C18 Headers
  • C.8.2 quick_exit Function
  • C.8.3 Unicode® Support
  • C.8.4 _Noreturn Function Specifier
  • C.8.5 Type-Generic Expressions
  • C.8.6 Annex L: Analyzability and Undefined Behavior
  • C.8.7 Memory Alignment Control
  • C.8.8 Static Assertions
  • C.8.9 Floating-Point Types
  • C.9 Case Study: Performance with Multithreading and Multicore Systems
  • C.9.1 Example: Sequential Execution of Two Compute-Intensive Tasks
  • C.9.2 Example: Multithreaded Execution of Two Compute-Intensive Tasks
  • C.9.3 Other Multithreading Features
  • D. Intro to Object-Oriented Programming Concepts
  • D.1 Introduction
  • D.2 Object-Oriented Programming Languages
  • D.3 Automobile as an Object
  • D.4 Methods and Classes
  • D.5 Instantiation
  • D.6 Reuse
  • D.7 Messages and Method Calls
  • D.8 Attributes and Instance Variables
  • D.9 Inheritance
  • D.10 Object-Oriented Analysis and Design (OOAD)
  • Index
  • A
  • B
  • C
  • D
  • E
  • F
  • G
  • H
  • I
  • J
  • K
  • L
  • M
  • N
  • O
  • P
  • Q
  • R
  • S
  • T
  • U
  • V
  • W
  • X
  • Y
  • Z
Show More

Additional information

Veldu vöru

Leiga á rafbók í 365 daga, Rafbók til eignar, Leiga á rafbók í 180 daga, Leiga á rafbók í 90 daga

Reviews

There are no reviews yet.

Be the first to review “C How to Program: With Case Studies in Applications and Systems Programming, Global Edition”

Netfang þitt verður ekki birt. Nauðsynlegir reitir eru merktir *

Aðrar vörur

0
    0
    Karfan þín
    Karfan þín er tómAftur í búð