Computer Fundamentals and Programming in C (RMK)

Computer Fundamentals and Programming in C, with its abounding, extensive chapter-end questions and unique pedagogy, is structured to address the challenges faced by novices as well as amateur programmers. Assuming no prior knowledge of programming languages, the book presents the reader with a rich...

Full description

Bibliographic Details
Main Author: Anita, Goel (-)
Corporate Author: Goel Anita (-)
Other Authors: Ajay, Mittal
Format: eBook
Language:Inglés
Published: Noida : Pearson India 2016.
Subjects:
See on Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009820526406719
Table of Contents:
  • Cover
  • Copyright
  • Roadmap to the Syllabus
  • Brief Contents
  • Contents
  • Preface
  • Why and How I Wrote this Book
  • C Programming Language
  • About the Book
  • Structure of the Book
  • Salient Features and Strengths of the Book
  • Typographical Conventions
  • Web Resources
  • Acknowledgements
  • Part - I: Computer Fundamentals
  • 1: Basics of Computer
  • 1.1 Introduction
  • 1.2 Digital and Analog Computers
  • 1.3 Characteristics of Computer
  • 1.4 History of Computer
  • 1.5 Generations of Computer
  • 1.5.1 First Generation (1940 to 1956): Using Vacuum Tubes
  • 1.5.2 Second Generation (1956 to 1963): Using Transistors
  • 1.5.3 Third Generation (1964 to 1971): Using Integrated Circuits
  • 1.5.4 Fourth Generation (1971 to present): Using Microprocessors
  • 1.5.5 Fifth Generation (Present and Next): Using Artificial Intelligence
  • 1.6 Classification of Computer
  • 1.6.1 Microcomputers
  • 1.6.2 Minicomputers
  • 1.6.3 Mainframe Computers
  • 1.6.4 Supercomputers
  • 1.7 The Computer System
  • 1.7.1 The Input-Process-Output Concept
  • 1.7.2 Components of Computer Hardware
  • 1.8 Central Processing Unit
  • 1.8.1 Arithmetic Logic Unit
  • 1.8.2 Registers
  • 1.8.3 Control Unit
  • 1.9 Memory Unit
  • 1.9.1 Cache Memory
  • 1.9.2 Primary Memory
  • 1.9.3 Secondary Memory
  • 1.10 Instruction Format
  • 1.11 Instruction Set
  • 1.12 Instruction Cycle
  • 1.13 Microprocessor
  • 1.14 Interconnecting the Units of a Computer
  • 1.14.1 System Bus
  • 1.14.2 Expansion Bus
  • 1.14.3 External Ports
  • 1.15 Performance of a Computer
  • 1.16 Inside a Computer Cabinet
  • 1.16.1 Motherboard
  • 1.16.2 Ports and Interfaces
  • 1.16.3 Expansion Slots
  • 1.16.4 Ribbon Cables
  • 1.16.5 Memory Chips
  • 1.16.6 Storage Devices
  • 1.16.7 Processor
  • 1.17 Application of Computers
  • 1.18 Summary
  • Exercise Questions
  • Additional Questions.
  • 2: Data Representation and Programming Fundamentals
  • 2.1 Data Representation
  • 2.2 Number System
  • 2.2.1 Decimal Number System
  • 2.2.2 Binary Number System
  • 2.2.3 Octal Number System
  • 2.2.4 Hexadecimal Number System
  • 2.3 Conversion from Decimal to Binary, Octal, Hexadecimal
  • 2.3.1 Converting Decimal Integer to Binary, Octal, Hexadecimal
  • 2.3.2 Converting Decimal Fraction to Binary, Octal, Hexadecimal
  • 2.3.3 Converting Decimal Integer.Fraction to Binary, Octal, Hexadecimal
  • 2.4 Conversion of Binary, Octal, Hexadecimal to Decimal
  • 2.5 Conversion of Binary to Octal, Hexadecimal
  • 2.6 Conversion of Octal, Hexadecimal to Binary
  • 2.7 Binary Arithmetic
  • 2.7.1 Binary Addition
  • 2.7.2 Binary Subtraction
  • 2.8 Signed and Unsigned Numbers
  • 2.8.1 Complement of Binary Numbers
  • 2.9 Binary Data Representation
  • 2.9.1 Fixed Point Number Representation
  • 2.9.2 Floating Point Number Representation
  • 2.10 Binary Coding Schemes
  • 2.10.1 EBCDIC
  • 2.10.2 ASCII
  • 2.10.3 Unicode
  • 2.11 Logic Gates
  • 2.12 Programming Fundamentals
  • 2.13 Program Development Life Cycle
  • 2.14 Algorithm
  • 2.15 Control Structures
  • 2.16 Flowchart
  • 2.16.1 Flowchart Symbols
  • 2.16.2 Preparing a Flowchart
  • 2.17 Pseudo Code
  • 2.17.1 Preparing a Pseudo Code
  • 2.18 Programming Paradigms
  • 2.18.1 Structured Programming
  • 2.18.2 Object-Oriented Programming (OOP)
  • 2.18.3 Aspect-Oriented Programming (AOP)
  • 2.19 Problem Formulation and Problem Solving
  • 2.19.1 Problem Solving
  • 2.19.2 Problem Formulation
  • 2.20 Summary
  • Exercise Questions
  • Conceptual Questions and Answers
  • Additional Questions
  • Programming Exercise
  • Part - II: Basics of C Programming
  • 3: Data Types, Variables and Constants
  • 3.1 Introduction
  • 3.2 C Standards
  • 3.2.1 Kernighan & Ritchie (K&R) C Standard
  • 3.2.2 ANSI C/Standard C/C89 Standard.
  • 3.2.3 ISO C/C90 Standard
  • 3.2.4 C99 Standard
  • 3.3 Learning Programming Language and Natural Language: An Analogy
  • 3.4 C Character Set
  • 3.5 Identifiers and Keywords
  • 3.5.1 Identifiers
  • 3.5.2 Keywords
  • 3.6 Declaration Statement
  • 3.7 Data Types
  • 3.7.1 Basic/Primitive Data Types
  • 3.7.2 Derived Data Types
  • 3.7.3 User-defined Data Types
  • 3.8 Type Qualifiers and Type Modifiers
  • 3.8.1 Type Qualifiers
  • 3.8.2 Type Modifiers
  • 3.9 Difference Between Declaration and Definition
  • 3.10 Data Object, L-value and R-value
  • 3.10.1 Data Object
  • 3.10.2 L-value
  • 3.10.3 R-value
  • 3.11 Variables and Constants
  • 3.11.1 Variables
  • 3.11.2 Constants
  • 3.11.2.1 Literal Constant
  • 3.11.2.1.1 Integer Literal Constant
  • 3.11.2.1.2 Floating Point Literal Constant
  • 3.11.2.1.3 Character Literal Constant
  • 3.11.2.1.3.1 Printable Character Literal Constant
  • 3.11.2.1.3.2 Non-printable Character Literal Constant
  • 3.11.2.1.4 String Literal Constant
  • 3.11.2.2 Qualified Constants
  • 3.11.2.3 Symbolic Constants
  • 3.12 Structure of a C Program
  • 3.12.1 Comments
  • 3.12.1.1 Single-line Comment
  • 3.12.1.2 Multi-line Comment
  • 3.12.2 Section1: Preprocessor Directive Section
  • 3.12.3 Section 2: Global Declaration Section
  • 3.12.4 Section 3: Functions Section
  • 3.12.4.1 Header of a Function
  • 3.12.4.2 Body of a Function
  • 3.13 Executing a C Program
  • 3.14 Compilation and Linking process
  • 3.15 More Programs for Startup
  • 3.16 Summary
  • Exercise Questions
  • Conceptual Questions and Answers
  • Code Snippets
  • Multiple-choice Questions
  • Outputs and Explanations to Code Snippets
  • Answers to Multiple-choice Questions
  • Programming Exercises
  • Test Yourself
  • 4: Operators and Expressions
  • 4.1 Introduction
  • 4.2 Expressions
  • 4.2.1 Operands
  • 4.2.2 Operators
  • 4.3 Simple Expressions and Compound Expressions.
  • 4.3.1 Precedence of Operators
  • 4.3.2 Associativity of Operators
  • 4.4 Classification of Operators
  • 4.4.1 Classification Based on Number of Operands
  • 4.4.2 Classification Based on Role of Operator
  • 4.4.2.1 Arithmetic Operators
  • 4.4.2.2 Relational Operators
  • 4.4.2.3 Logical Operators
  • 4.4.2.4 Bitwise Operators
  • 4.4.2.5 Assignment Operators
  • 4.4.2.6 Miscellaneous Operators
  • 4.4.2.6.1 Conditional Operator
  • 4.4.2.6.2 Comma Operator
  • 4.4.2.6.3 sizeof Operator
  • 4.4.2.6.4 Address-of Operator
  • 4.5 Combined Precedence of All Operators
  • 4.6 Reading Strings from the Keyboard
  • 4.7 Printing Strings on the Screen
  • 4.8 Unformatted Functions
  • 4.9 Summary
  • Exercise Questions
  • Conceptual Questions and Answers
  • Code Snippets
  • Multiple-choice Questions
  • Outputs and Explanations to Code Snippets
  • Answers to Multiple-choice Questions
  • Programming Exercises
  • Test Yourself
  • 5: Decision-Making and Looping Statements
  • 5.1 Introduction
  • 5.2 Statements
  • 5.3 Classification of Statements
  • 5.3.1 Based Upon the Type of Action they Perform
  • 5.3.1.1 Non-executable Statements
  • 5.3.1.2 Executable Statements
  • 5.3.2 Based Upon the Number of Constituent Statements
  • 5.3.2.1 Simple Statements
  • 5.3.2.2 Compound Statements
  • 5.3.3 Based Upon their Role
  • 5.3.3.1 Declaration Statement and Definition Statement
  • 5.3.3.2 Null Statement and Expression Statements
  • 5.3.3.3 Labeled Statements
  • 5.3.3.3.1 Identifier-labeled Statements
  • 5.3.3.3.2 Case-labeled Statements
  • 5.3.3.3.3 Default-labeled Statements
  • 5.3.3.4 Flow Control Statements
  • 5.4 Branching Statements
  • 5.4.1 Selection Statements
  • 5.4.2 if Statement
  • 5.4.3 if-else Statement
  • 5.4.4 Nested if Statement
  • 5.4.5 Nested if-else Statement
  • 5.4.6 switch Statement
  • 5.4.7 Jump Statements
  • 5.4.8 goto Statement
  • 5.4.9 break Statement.
  • 5.4.10 continue Statement
  • 5.4.11 return Statement
  • 5.5 Iteration Statements
  • 5.5.1 Counter-Controlled Loops
  • 5.5.2 for Statement
  • 5.5.3 while Statement
  • 5.5.4 do-while Statement
  • 5.5.5 Sentinel-Controlled Loops
  • 5.5.6 Nested Loops
  • 5.5.7 Semantics of break and continue Statements
  • 5.5.7.1 Semantics of break Statement
  • 5.5.7.2 Semantics of continue Statement
  • 5.6 Summary
  • Exercise Questions
  • Conceptual Questions and Answers
  • Code Snippets
  • Multiple-choice Questions
  • Outputs and Explanations to Code Snippets
  • Answers to Multiple-choice Questions
  • Programming Exercises
  • Test Yourself
  • Part - III: Arrays, Pointers and Strings
  • 6: Arrays and Pointers
  • 6.1 Introduction
  • 6.2 Arrays
  • 6.3 Single-dimensional Arrays
  • 6.3.1 Declaration of a Single-dimensional Array
  • 6.3.2 Usage of Single-dimensional Array
  • 6.3.2.1 Reading, Storing and Accessing Elements of a One-dimensional Array
  • 6.3.3 Memory Representation of Single-dimensional Array
  • 6.3.4 Operations on a Single-dimensional Array
  • 6.3.4.1 Subscripting a Single-dimensional Array
  • 6.3.4.2 Assigning an Array to Another Array
  • 6.3.4.3 Equating an Array with Another Array
  • 6.4 Pointers
  • 6.4.1 Operations on Pointers
  • 6.4.1.1 Referencing Operation
  • 6.4.1.2 Dereferencing a Pointer
  • 6.4.1.3 Assigning to a Pointer
  • 6.4.2 Arithmetic Operations (Pointer Arithmetic)
  • 6.4.2.1 Addition Operation
  • 6.4.2.2 Increment Operation
  • 6.4.2.3 Subtraction Operation
  • 6.4.2.4 Decrement Operation
  • 6.4.3 Relational (Comparison) Operations
  • 6.4.4 Illegal Pointer Operations
  • 6.5 void pointer
  • 6.5.1 Operations on void Pointer
  • 6.6 Null Pointer
  • 6.7 Relationship Between Arrays and Pointers
  • 6.8 Scaling up the Concept
  • 6.8.1 Array of Arrays (Multi-dimensional Arrays)
  • 6.8.2 Two-dimensional Arrays.
  • 6.8.2.1 Declaration of a Two-dimensional Array.