編程技術(shù)是信息技術(shù)中最重要的技能和工具之一,它是連接信息和計算機(jī)的橋梁。掌握并熟練使用編程語言已成為所有大學(xué)生必備的技能。 C語言是高級編程語言的先驅(qū),也是最重要和最流行的語言之一。本書的目標(biāo)是引導(dǎo)初學(xué)者進(jìn)入程序設(shè)計的殿堂,內(nèi)容涉及編程基礎(chǔ)知識包括運(yùn)算符和表達(dá)式、數(shù)據(jù)輸入和輸出、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體、鏈表和文件讀寫等。主要側(cè)重于C語言的基本語法和編程的基本技能。我們將通過大量簡潔的程序示例指導(dǎo)您構(gòu)建編程思維并編寫程序。本書旨在幫助學(xué)生掌握C語言編程技能,并為其他課程奠定基礎(chǔ),如C++、數(shù)學(xué)建模、操作系統(tǒng)、計算機(jī)圖形學(xué)、系統(tǒng)仿真等。本書既可以作為大學(xué)本科計算機(jī)專業(yè)和非計算機(jī)專業(yè)的程序設(shè)計基礎(chǔ)課程教材,也可以用作大專院校授課教材,亦是一本不可多得的自學(xué)教材。
汪芳,碩士,副教授。1995-1999,西北工業(yè)大學(xué),本科;2001-2004,西北工業(yè)大學(xué),碩士;2005-2006,德國IFW研究所,公派訪問學(xué)者;2014-2015,美國萊斯大學(xué),公派訪問學(xué)者。參加的學(xué)術(shù)組織及任職:中國高校計算機(jī)大賽移動應(yīng)用創(chuàng)新賽執(zhí)委會成員;ICPC國際大學(xué)生程序設(shè)計競賽亞洲賽站共同主任。個人/集體榮譽(yù):西北工業(yè)大學(xué)最滿意教師;西北工業(yè)大學(xué)十育人先進(jìn)個人,教師代表;《Fundamentals of C programming》獲省級一流本科課程(線上),中國高校計算機(jī)教育 MOOC 聯(lián)盟優(yōu)秀課程,負(fù)責(zé)人;《C++程序設(shè)計》,獲國家級精品課程,國家級一流本科課程,重要成員。個人/集體榮譽(yù):(1)校級最滿意教師、校級"三育人先進(jìn)個人”、校級先進(jìn)工作者多次;(2)省級一流課程負(fù)責(zé)人:2門。承擔(dān)過的重點(diǎn)科研項目:① 基于全球勝任力的程序設(shè)計(英)在線教學(xué)研究與實(shí)踐,西北工業(yè)大學(xué)教育教學(xué)改革研究項目,第一完成人;② 程序設(shè)計基礎(chǔ)(英語),西北工業(yè)大學(xué)研究型教學(xué)示范課程建設(shè)項目,第一完成人;③ 基于華為全棧AI的智能科學(xué)系列課程建設(shè),教育部產(chǎn)學(xué)合作協(xié)同育人項目,主要完成人。教學(xué)成果獲獎情況:① 參與時空一體、知行并進(jìn)、學(xué)做融創(chuàng)的計算機(jī)基礎(chǔ)教學(xué)改革實(shí)踐,校級優(yōu)秀教學(xué)成果獎一等獎;②在程序設(shè)計課程中加強(qiáng)學(xué)生自主學(xué)習(xí)的改革與實(shí)踐,校級二等教學(xué)成果獎;③ 程序設(shè)計基礎(chǔ)(英語)國際化改革與實(shí)踐,校級二等教學(xué)成果獎。主要著作出版情況:①C++程序設(shè)計,西安電子科技大學(xué)出版社,2009年;②軟件工程,西北工業(yè)大學(xué)出版社,2010年;③大學(xué)計算機(jī)實(shí)驗教程,西北工業(yè)大學(xué)出版社,2013年④大學(xué)計算機(jī)基礎(chǔ)學(xué)習(xí)輔導(dǎo)與實(shí)訓(xùn),西北工業(yè)大學(xué)出版社,2013年;⑤ C程序設(shè)計習(xí)題與解析,清華出版社,2011年。
Contents
Chapter 1 Introducing C 1
1.1 Why programming is important 1
1.2 Why C 2
1.3 History of C 3
1.4 Strengths and Weaknesses of C 4
1.5 How to learn C? 6
1.5.1 Code::Blocks 6
1.5.2 XCODE 13
1.5.3 online compiler 16
1.5.4 How to sign in to ICOURSE (MOOC) and XUETANG 17
1.5.5 Can’t find GNU GCC Compiler 20
1.5.6 I can’t debug 21
quiz 1. 23
Chapter 2 Data Types and Expressions 24
2.1 The General Form of a Simple Program 24
2.2.1 The General Form 27
2.2.2 Variables and Assignment 31
2.2 Character set and Keywords 33
2.2.1 Character set 33
2.2.2 Keywords 34
2.2.3 Identifiers 34
2.3 Data Types 35
2.3.1 integer types 37
2.3.2 floating types 38
2.3.3 Character types 39
2.3.4 void type 41
2.3.5 Variables 42
2.4 Constants and Variables 45
2.4.1 Constants 45
2.5 Operators and Expressions 50
2.5.1 Arithmetic Operators 52
2.5.2 Assignment Operators 54
2.5.3 Increment and Decrement Operators 57
2.5.4 The sizeof Operator 58
2.5.5 The Comma Operator 59
2.5.6 The conditional operator 59
2.5.7 Bitwise Operators 60
2.5.8 Expression Statement 61
2.5.9 Type Conversion 61
quiz 2. 63
Chapter 3 Program control structure 64
3.1 Statement 64
3.2 Input and output 65
3.2.1 Single Character Input/output 66
3.2.2 Formatted Input and Output 68
3.2 The scanf Function 83
3.3 The sequence structure 92
3.4 The selection structure 95
3.4.1 Relational Expressions 97
3.4.2 Logical Expressions 99
3.4.3 The if Statement 102
3.4.5 The switch Statement 112
3.5 The loop structure 119
3.5.1 While loop 120
3.5.2 do while loop 124
3.5.3 for loop 129
3.5.4 Exiting from a Loop 133
Quiz 3 137
Chapter 4 The Preprocessor 141
4.1 Preprocessor Directives 141
4.2 Macro Definitions 142
4.3 File Inclusion 145
Quiz 4 146
Answer 4 146
Chapter 5 Arrays 147
5.1 One-Dimensional Arrays 147
5.1.1 The declaration of a one-dimensional array 147
5.1.2 Access array elements 149
5.1.3 Index 150
5.1.4 Initialization 151
5.1.5 Variable-Length Arrays 152
5.2 Multidimensional Arrays 152
5.2.1 Declaration of a two-dimensional array 152
5.2.2 Variable-Length 2D arrays 154
5.2.3 Initializing a 2D Array 157
5.2.4 Application of the 2D Array 157
Quiz 5. 158
Answer 158
Chapter 6 Functions 160
6.1 Introduction 160
6.2 Defining and Calling Functions 162
6.3 Arguments 168
6.4 The return Statement 170
6.5 Declaration 175
6.6 Array arguments 176
6.7 Recursion 179
6.8 Sort algorithm 180
6.9 Program Organization 188
6.9.1 Scope 188
6.9.2 Local variables and Global variables 189
Quiz 6 195
Answer 196
Chapter 7 Pointers 197
7.1 Pointer Variables 197
7.2 The Address and Indirection Operators 198
7.3 Pointers as Arguments 199
7.4 Pointers as Return Values 201
7.5 Using Pointers for Array 201
7.6 Array Arguments 204
7.9 Pointers and Multidimensional Arrays 205
7.10 Pointers to Functions 207
Quiz 7 208
Answer 209
Chapter 8 Strings 210
8.1 String Constants and Variables 210
8.1.1 String Constants 210
8.1.2 String Variables 211
8.2 Reading and Writing Strings 212
8.2.1 Writing Strings 212
8.2.2 Reading Strings 213
8.3 Accessing the Characters in a String 214
8.4 Using the C String Library 215
8.4.1 strcpy and strncpy 215
8.4.2 strlen 216
8.4.3 strcat and strncat 216
8.4.4 strcmp 217
8.5 sprintf and sscanf 218
8.6 Array of Strings 219
8.7 Array of Pointers to Strings 220
Quiz 8. 221
Answer 222
Chapter 9 Structures, Unions, and Enumerations 223
9.1 Structure Variables 223
9.1.1 Structure Variables 223
9.1.2 Structures as Arguments and Return Values 228
9.1.3 Arrays of Structures 230
9.1.4 Pointers to structs 231
9.2 Unions 231
9.3 Enumerations 233
Quiz 9 234
Answer 236
Chapter 10 LinkedList 237
10.1 Introduction 237
10.3 creating a linked list 239
10.4 Insert a node 242
10.5 Search a node 245
10.6 delete a node 245
Chapter 11 Files 247
11.1 Streams 247
11.2 File Operations 248
11.2.1 Opening a file 249
11.2.2 Closing a file 251
11.2.3 remove and rename functions 251
11.2.4 Detecting End-of-File and Error Conditions 252
11.3 Input/Output operation on File 253
11.3.1 Character Input/Output Functions 253
11.3.2 Line Input/Output Functions 255
11.3.3 Formatted Input/Output Functions 257
11.3.4 Block Input/Output Functions 259
11.4 File Position 260
Quiz 11 261
Answer 11 261