Programming in C 2/e

個数:

Programming in C 2/e

  • 在庫がございません。海外の書籍取次会社を通じて出版社等からお取り寄せいたします。
    通常6~9週間ほどで発送の見込みですが、商品によってはさらに時間がかかることもございます。
    重要ご説明事項
    1. 納期遅延や、ご入手不能となる場合がございます。
    2. 複数冊ご注文の場合、分割発送となる場合がございます。
    3. 美品のご指定は承りかねます。

    ●3Dセキュア導入とクレジットカードによるお支払いについて
  • 【入荷遅延について】
    世界情勢の影響により、海外からお取り寄せとなる洋書・洋古書の入荷が、表示している標準的な納期よりも遅延する場合がございます。
    おそれいりますが、あらかじめご了承くださいますようお願い申し上げます。
  • ◆画像の表紙や帯等は実物とは異なる場合があります。
  • ◆ウェブストアでの洋書販売価格は、弊社店舗等での販売価格とは異なります。
    また、洋書販売価格は、ご注文確定時点での日本円価格となります。
    ご注文確定後に、同じ洋書の販売価格が変動しても、それは反映されません。
  • 製本 Paperback:紙装版/ペーパーバック版/ページ数 528 p.
  • 言語 ENG
  • 商品コード 9780198065289
  • DDC分類 005.133

Full Description

Beginning with the basic concept of programming, the book gives an exhaustive coverage of arrays, strings, functions, pointers, and data structures. Separate chapters on linked lists and stacks, queues, and trees, with their implementation in C, have been provided to simplify the learning of complex concepts. Some advanced features of C such as memory models, command-line arguments, and bitwise operators have also been included. Case studies demonstrating the use of C in solving mathematical as well as real-life problems have also been presented. This edition also highlights C99 features wherever relevant in the text.

The book is easy-to-understand and student-friendly with plenty of programs complete with source codes, sample outputs, and test cases. Readers will find this book an excellent companion for self-study owing to its numerous examples, review questions, and programming exercises.

Contents

1. INTRODUCTION TO PROGRAMMING, ALGORITHMS, AND FLOWCHARTS; 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. BASICS OF C; 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. INPUT AND OUTPUT; 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. CONTROL STATEMENTS; 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. ARRAYS AND STRINGS; 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. FUNCTIONS; 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. POINTERS IN C; 7.1 INTRODUCTION; 7.2 UNDERSTANDING MEMORY ADDRESSES; 7.3 ADDRESS OPERATOR (&); 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. USER-DEFINED DATA TYPES AND VARIABLES: STRUCTURES, UNIONS, ENUMERATIONS, AND BITFIELDS; 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. FILES IN C; 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. LINKED LISTS; 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. ADVANCED C; 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. STACKS, QUEUES, AND TREES; 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

最近チェックした商品