《C语言培训教材》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:沈阳计算所信息技术开发公司,2000系列资料出版中心编
  • 出 版 社:2000系列资料出版中心
  • 出版年份:1992
  • ISBN:
  • 页数:449 页
图书介绍:

2.2标识符 2 1

1 8.5.7 ttyname 29 1

25.3.3 chown 35 1

25.3.4 mkdir 35 1

26.5.26[w]move 37 1

目 录 1

16.7.1 access 27 1

6.7.2修饰符readonly 8 1

5.4.4.3结构的初始化 6 1

5.3.4字符变量 5 1

16.7.2 clcarerr 27 1

第一章VAX C语言起步 1

1.1 C程序设计语言的背景 1

第一部分C编程语言 1

1.2 VAX C程序设计语言 2

1.3编写第一个程序 3

1.4输入/输出 4

1.5控制程序流 6

1.5.1 if语句 6

1.5.2开关(switch)语句 7

1.5.3循环 8

20.3程序实例 3 10

1.6值、地址和指针 10

9.1.2逻辑名 1 10

1.7.1数组与字符串 12

1.7集合 12

1.7.2结构与联合 13

2.1 函数定义 17

第二章程序结构 17

1 18

9.1.5.4 VAX C语言的缺省文本库 18

2.1.1主函数与函数标识符 20

2.1.2参数与自变量 20

2.3关键字 22

2.4块 23

2.5注释 24

1 24

9.2.5 VAX C语言与DEC/SHELL 24

第三章语句 25

3.1控制流语句 25

3.1.1空语句 25

3.1.2 goto语句 25

3.2.2复合语句 26

3.1.3带标号的语句 26

3.2表达式与块作为语句 26

3.2.1表达式语句 26

3.3条件语句 27

3.3.1 if语句 27

3.3.2开关(switch)语句 27

3.3.2.1开关语句内的说明 29

3.4循环语句 29

3.4.1 for语句 29

3.4.2 while语句 30

3.5.2 continue语句 31

3.5.1 break语句 31

3.5中断(Interruting)语句 31

3.4.3 do语句 31

3.5.3 rcturn语句 32

4.1左值与右值 33

第四章表达式与操作符 33

4.2初等表达式与操作符 34

4.2.1带括号的表达式 34

4.2.2函数调用 34

4.2.3数组引用(?) 35

4.2.4结构和联合的引用 35

43 VAX C语言操作符讨论 35

4.4一元表达式与操作符 38

4.4.1负运算与逻辑表达式(?) 38

44.2变量增1与减1(++--) 38

4.4.3求地址和间接指针( *) 39

4.4.4求反(~) 39

4.4.5强制转换成特定类型(cast运算符) 39

4.4.6计算变量与数据类型的大小 40

(sizcof) 40

4.5二元表达式与操作符 40

4.5.1加法运算符(+-) 40

4.5.2乘法运算符(*/%) 41

4.5.4关系操作符(><<=>=) 41

4.5.5遂位操作符( |∧) 41

4.5.3相等运算符(==!=) 41

4.5.6逻辑操作符( |) 42

4.5.7移位操作符(《》) 43

4.6条件表达式与操作符(?:) 43

4.7 赋值表达式与操作符(=+=-=* -/=) 43

4.8逗号表达式与操作符(,) 45

4.9数据类型转换 45

4.9.1操作对象的转换 45

4.9.2函数自变量的转换 46

第五章数据类型和说明 47

5.1常量、定义和说明 47

5.2函数返回值的数据类型 48

5.1.1变量说明的格式 48

5.2.1空数据类型 49

5.3.1整型常量 49

5.3标量的说明和类型 49

5.3.3字符常量 50

5.3.2整型变量 50

5.3.5浮点常数 51

5.3.3.1 转义序列 51

5.3.7指针 52

5.3.6浮点变量 52

5.3.8枚举类型 53

5.4.1数组 55

5.4集合类型的定义和初始化 55

5.4.1.1数组的初始化 56

11.2.5编译器诊断信息及出错情况 1 57

5.4.2字符串常量 57

5.4.3字符串变量 58

5.4.4结构和联合 58

5.4.4.1 结构和联合的说明 59

5.4.4.2结构或联合成员的引用 60

5.4.4.4位字段 62

5.5解释说明语句 63

5.6类型定义(Type def) 65

第六章存储类与存储分配 66

6.1 工作域 66

6.1.1编译和连接处理 66

6.1.2说明语句的位置 67

6.1.3编译域和连接域 68

6.1.4程序例子 68

6.2存储分配 70

6.2.1程序段的属性 70

6.2.2 VAX C语言产生的程序段 71

6.3内部存储类 72

6.3.1 说明符auto 73

6.3.2说明符register 74

6.4静态存储类 74

6.5外部存储类 75

12.2.7结束编辑过程 1 76

6.6全局存储类 76

6.6.1说明符globaldef和globalrcf 76

12.3控制程序执行 1 76

6.6.1.1 全局与外部存储类的比较 78

6.6.2说明符globalvalue 78

6.6.3全局枚举类型 79

6.7存储类修饰符 80

6.7.1 修饰符noshare 80

12.3.5 断点 1 80

7.1标记替换 82

第七章预处理器控制行 82

12.3.7观察点 1 83

7.1.1常量标识符 83

7.1.2预处理器替换 84

12.4.4程序变量的引用 1 85

7.1.3宏替换 85

124.4.2访问数组 1 86

7.1.5取消定义 86

7.1.4替换行的列表 86

7.2.1#dictionary控制行 87

12 4.4.3访问字符串 1 87

7.2公共数据字典的抽取 87

7.2.2 CDD支持的数据类型 88

7.3条件编译 90

7.4.1用角括号(<>)包含 91

7.4包含(Inclusion)文件 91

7.4.2用双引号(“”)包含 92

7.5行号的说明 93

7.4.3文本模块的包含 93

7.6模块名和标识的说明 94

9.1 Digital命令语言(DCL) 106

第九章程序开发导论 106

第二部分 使用VAX/VMS进行程序开发 106

第八章VAXC语言词汇表 106

9.1.1.2暂时缺省 108

9.1.1.1缺省文件说明 108

9.1.1 DCL文件说明 108

9.1.3改变当前目录 112

9.1.2.1逻辑名翻译 112

9.1.4使用命令程序 112

9.1.5库 114

9.1.5.1库命令句法 115

9.1.5.2文本库介绍 116

9.1.5.3定义缺省文本库 118

9.1.5.5 目标代码库介绍 119

9.1.5.6缺省目标模块库 120

9.2 DEC/SHELL 121

9.2.2 DEC/SHELL命令行句法 122

9.2.1 起动DEC/SHELL 122

9.2.3 有效的DEC/SHELL文件说明 123

9.2.4 I/O重定向 123

10.1编辑过程的控制 125

第十章使用EDT编写源程序 125

10.1.1起动编辑器 126

10.1.3中断编辑过程 128

10.1.2初始化编辑过程 128

10.1.6结束编辑过程 129

10.1.5 HELP EDT命令 129

10.1.4保护你的编辑 129

10.2.2编辑正存在的文件 130

10.2.1在行编辑模式下建立文件 130

10.2行编辑模式 130

10.2.3范围指定 131

10.2.4文本缓冲区 132

10.2.5文件中的操作 133

10.2.7删除和替换文本 134

10.2.6插入新文本 134

10.2.9替换文本 135

10.2.8移动文本 135

10.2.10将文本移到另外一个文件或从另外的文件中将文本移入 136

10.3屏幕编辑 137

1 0.3.1 进入屏幕模式和从屏幕模式退出 139

10.3.2屏幕模式中的HELP 139

10.3.3光标操作 140

10.3.5插入文本 141

10.3.4范围描述 141

10.3.7移动文本 142

10.3.6删除和恢复文本 142

10.4 日志文件选项 143

10.5.1结构化的制表符 144

10.5.2特殊目的的键定义 144

10.5 EDT对VAX C语言编程者的帮助 144

10.5.3起动命令文件 146

第十一章编译、连接和运行VAX C语言程序11.1程序的构成 148

11.2 CC命令 149

1 1.2.1 CC命令格式 149

11.2.2文件说明及编译单元 150

1 1.2.3指定库文件 150

11.2.4命令限定词 151

1 1.3 Link命令 159

11.3.1 Link命令格式 160

1 1.3.2连接器输入文件 161

1 1.3.3指定映象文件限定词 162

1 1.3.6连接器输出文件 163

11.3.5连接器信息 163

1 1.3.4指定调试程序限定词 163

11.4.1用RUN命令执行映象 164

11.4 RUN命令 164

11.4.2命令行参数 165

11.4.3映象退出 166

11.4.4运行时间错误 166

11.4.5中断程序 167

11.4.6返回DCL解释器的值 168

12.1 VAX C语言调试过程样本 170

第十二章调试VAX C语言程序 170

12.2控制调试过程 172

12.2.1起动调试器 173

12.2.3初始化调试过程 174

12.2.2使用调试器命令程序 174

12.2.5中断调试过程 175

12.2.4在日志文件中记录调试过程 175

12.3.1调试器命令 176

12.2.6 HELP命令 176

12.3.2 GO命令 177

12.3.3 STEP命令 177

12.3.4进入函数和自函数中返回 179

12.3.6跟踪点 182

12.4运行时间符号表 183

12.4.1调试器常驻符号 184

12.4.2全局符号的引用 184

12.4.3程序位置的引用 184

12.4.4.1访问标量变量 185

1 2.4.4.4访问结构与联合 188

12.4.5控制工作域及运行时间符号表 191

12.4.5.1控制变量的工作域 193

12.5.1小键盘模式 195

12.5调试器选项 195

12.5.2屏幕模式 196

12.6对VAX C语言表达式的支持 199

第十三章使用VAX记录管理服务(RMS)13.1 RMS文件组织 202

13.1.1顺序文件组织 203

13.1.3索引文件组织 203

13.1.2相对文件组织 203

13.2记录访问模式 204

13.3 RMS记录格式 204

13.4 RMS函数 205

13.5用RMS写VAXC语言程序 206

1 3.5.1初始化文件访问块 207

1 3.5.2初始化记录访问块 208

13.5.3初始化扩展特征块 208

13.5.4初始化名称块 209

13.6 RMS程序例子 209

14.1调用栈 222

14.1.1 调用帧 222

第十四章混合语言编程 222

14.1.2参数表 223

14.2 由立即值来传递参数 224

14.2.1检查系统服务返回值 226

14.2.2由立即值传递浮点参数 227

14.3由引用传递参数 228

14.4由描述符传递参数 230

14.5可变长度参数表 232

14.6.1返回状态值格式 234

14.6返回状态值 234

14.6.2操纵返回状态值 235

14.6.3测试成功或者失败 236

14.6.4测试特定的返回状态值 237

14.7与用其它语言编写的过程共享数据 238

14.7.2与PL/I外部变量共享程序段 238

语句共享的程序段 238

14.7.1 与FORTRAN的Common块 238

1 4.7.3与MACRO程序共享程序段 240

15.1 VAX C语言运行时间库的实现 243

第十五章VAX C语言运行时间库 243

第三部分VAX C语言运行时间库 243

15.1.1把VAXC语言RTL当作可共享 244

15.1.2宏 244

的映象使用 244

15.2 VAX C语言RTL的函数和宏的句法 246

15.2.1 DEC/Shell文件说明 247

15.3在VAX/VMS上的输入和输出 248

1 5.3.1 RMS记录和文件的格式 250

15.3.2流式访问RMS记录文件 251

15.4可移植性涉及的具体问题 253

第十六章标准输入/输出函数及宏指令16.1标准输入/输出及文件存取 257

16.2.1输入信息的转化 258

16.2转化规范 258

16.2.2输出信息的转化 260

16.3打开和关闭文件 261

16.3.1 fclose 261

16.3.3 fopen 262

16.3.2 fdopcn 262

16.3.4 freopen 263

16.4从文件中读出数据 263

16.4.1 getc,fgetc,getw 264

16.4.2 getw 264

16.4.3 getc 264

1 6.4.4 fgets 264

16.4.5 frcad 265

16.4.6 fscanf,sscanf 265

16.4.7 sscanf 266

16.5.1 fprintf,sprintf 267

16.5.2 fput 267

16.5.3 fputs 267

16.5 写入文件 267

16.4.8 ungetc 267

16.5.4 fwrite 268

16.5.5 putc,fPutc,putw 268

16.6.1 fflush 269

16.6.2 fseek 269

16.6文件操作 269

16.5.7 sprintf 269

16.5.6 putw 269

16.6.4 rcwind 270

16.6.3 ftcll 270

16.7附加的标准输入/输出函数与宏指令 271

16.7.3 delete 272

16.7.4 fcof 272

16.7.5 ferror 272

16.7.6 fgetname 272

16.7.7 mktemp 273

16.7.8 setbuf 273

16.7.10 tmpnam 274

16.7.9 tmpfile 274

1 6.8程序实例 274

17.2.1 getchar 276

第十七章终端输入与输出函数 276

17.2终端输入输出函数 276

17.1终端输入输出与定义的文件指针 276

17.2.2 gets 276

17.2.3 printf 277

17.2.5 puts 278

17.2.6 scanf 278

17.2.4 putchar 278

17.3程序实例 279

第十八章UNIX输入/输出函数与宏指令18.1 UNIX输入/输出及文件描述 281

18.2打开和关闭文件 282

18.2.1 close 282

18.2.2 create 282

18.2.3 dup,dup2 284

18.2.4 dup2 285

18.2.5 open 285

1 8.3.1 read 286

18.3读出与写入 286

1 8.4文件中指针的定位 287

18.3.2 write 287

18.4.1 lseek 287

18.5.1 fileno 288

18.5附加的UNIX输入/输出函数及宏指令 288

18.5.2 fstat.stat 289

18.5.3 getname 290

18.5.4 isapipe 290

18.5.5 isatty 291

18.5.6 stat 291

18.6程序实例 292

19.1字符归类宏指令 293

第十九章字符处理函数及宏指令 293

19.1.1 isalnum 295

19.1.2 isalpha 296

19.1.3 isascii 296

19.1.4 iscntrl 296

19.1.10 isspacc 297

1 9.1.9 ispunct 297

1 9.1.7 islower 297

19.1.6 isgraph 297

1 9.1.8 isprint 297

19.2字符转换函数及宏指令 298

19.2.1 ecvt,fcvt,gcvt 298

19.1.11 issupper 298

19.1.12 isxdigit 298

19.2.3 gcvt 299

19.2.4 toascii 299

19.2.5 tolower.tolower 299

19.2.2 fcvt 299

19.2.6 toupper,toupper 300

19.2.7_tolower 300

19.2.8_touppcr 300

19.3程序实例 300

第二十章字符串及表格处理函数与宏指令20.1字符串操作 303

20.1.1 atof,atoi,atol 303

20.1.2 atoi 304

20.1.4 strcat,strncat 304

20.1.5 strchr,strrchr 304

20.1.3 atol 304

20.1.7 strcpy.strucpy 305

20.1.6 strcmp,strncmp 305

20.1.8 strcspn 306

20.1.9 strlen 306

20.1.10 strncat 306

20.1.11 strncmp 306

20.1.12 strncpy 306

20.1.1 3 strpbrk 306

20.2访问可变长度参数表 307

20.1.14 strrchr 307

20.1.15 strspn 307

20.2.2 va count 308

20.2.1 va arg 308

20.2.3 va end 309

20.2.4 va start.va__startl 309

20.2.5 va__start_l 309

第二十一章数学函数 312

21.1数学函数和errno定义模块 312

21.1.1 abs、fabs 313

21.1.2 acos 313

21.1.3 asin 313

21.1.4 atan 313

21.1.5 atan2 313

21.1.10 exp 314

21.1.6 cabs 314

21.1.7 ceil 314

21.1.8 cos 314

21.1.9 cosh 314

21.1.15 Idexp 315

21.1.13 frexp 315

21.1.14 hypot、cabs 315

21.1.12 floor 315

21.1.1 1 fabs 315

21.1.16 log、log10 316

21.1.17 log10 316

21.1.19 pow 316

21.1.18 modf 316

21.1.20 rand、srand 317

21.1.21 sin 317

21.1.22 sinh 317

21.1.23 sqrt 317

21.1.24 srand 318

21.1.25 tan 318

21.1.26 tanh 318

21.2程序举例 319

第二十二章错误处理函数 320

22.1错误处理函数 320

22.1.1 abort 321

22.1.2 exit,_exit 321

22.1.3 perror 322

22.2信号处理函数 322

22.1.4__exit 322

22.2.1 alarm 323

22.2.2 gsignal 324

22.2.3 kill 325

22.2.4 longjmp、setjmp 325

22.2.5 pause 326

22.2.6 setjmp 326

22.2.7 sigblock 326

22.2.8 signal 327

22.2.9 sigpause 327

22.2.10 sigsetmask 328

22.2.1 1 sigstack 328

22.2.12 sigvec 328

22.2.13 sleep 329

22.2.14 ssignal 329

22.3程序举例 330

22.2.15 VAX C$ESTABLISH 330

第二十三章内存分配函数 332

23.1 VAX C语言与内存分配 332

23.1.1 brk、sbrk 332

23.1.2 calloc、malloc(内存分配) 333

23.1.3 cfrce、free(内存释放) 333

23.1.4 free 333

23.1.5 malloc 334

23.1.6 realloc(内存重分配) 334

23.1.7 sbrk 334

23.2程序举例 334

24.1 VAX C语言与子进程 336

第二十四章子进程函数 336

24.2 VAX C语言中子进程的实现 336

24.3.1 execl、execle、exeev、execve 338

24.3 exec函数 338

24.3.2 Exee处理 339

24.3.3 Exec错误条件 339

24.4.1 wait 340

24.5读写数据 340

24.5.1 pipe 340

24.4进程同步 340

24.6程序举例 343

第二十五章系统函数 348

25.1 VAX C语言和系统程序设计 348

25.2检索进程信息 348

25.2.1 ctermid 348

25.2.2 cavseid 348

25.2.5 geteuid 349

25.2.4 getenv 349

25.2.3 getegid、geteuid、getgid、getuid 349

25.2.6 getgid 350

25.2.8 getuid 350

25.3修改进程信息 350

25.3.1 chdir 350

25.3.2 chmod 350

25.2.7 getpid 350

25.3.5 nice 352

25.3.6 setgid、setuid 352

25.3.7 setuid 352

25.3.8 umask 353

25.4检索时间信息 353

25.4.1 ctime 353

25.4.2 ftime 353

25.4.4 time 354

25.4.3 localtime 354

25.4.5 times 355

25.5.程序举例 355

26.1.1用户定义的窗口 359

第二十六章curses屏幕管理函数 359

26.1 Curses术语 359

26.2开始用Curses 360

26.3预定义变量和常数 362

26.4光标移动 363

26.5 Curses函数和宏 364

26.5.1 [W]addch 364

26.5.2 [W]addstr 364

26.5.3 box 365

26.5.4 [W]clear 365

26.5.5 clearok 365

26.5.8[W]clrtoeol 366

26.5.9[no]crmode 366

26.5.7[W]clrtobot 366

26.5.6 [W]clrattr 366

26.5.13[no]echo 367

26.5.1 1 [w]deleteln 367

26.5.12 delwin 367

26.5.10[W]delch 367

26.5.14 endwin 368

26.5.15 [w]erase 368

26.5.16 [w]geteh 368

26.5.1 7[w]getstr 368

26.5.18 getyx 369

26.5.19[w]inch 369

26.5.20 initscr 369

26.5.2 1[w]insch 369

26.5.22[w]insertln 370

26.5.23 [w]insstr 370

26.5.24 longname 370

26.5.27 mv[w]addch 371

26.5.25 leaveok 371

26.5.28 mv[w]addstr 372

26.5.29 mvcur 372

26.5.30 mv[w]delch 372

26.5.31 mv[w]getch 372

26.5.34 mv[w]insch 373

26.5.35 mv[w]insstr 373

26.5.33 mv[w]inch 373

26.5.32 mv[w]getstr 373

26.5.36 mvwin 374

26.5.37 newwin 374

26.5.38 [no]nl 374

26.5.39 overlay 375

26.5.40 overwrite 375

26.5.41 [w]printw 375

26.5.42[no]ra.w 375

26.5.46 scrollok 376

26.5.45 scroll 376

26.5.43[w]refresh 376

26.5.44[w]scanw 376

26.5.47[w]setattr 377

26.5.48 subwin 377

26.5.49 [w]standend 378

26.5.50[w]standout 378

26.5.51 touchwin 378

26.5.52 wrapok 378

26.6程序举例 379

附录A VAX C语言RTL(运行时间库)与其它C语言工具的RTLS(运行时间库) 382

附录B VAX C语言定义模块 393

附录C VAX C运行时间模块和入口点 395

附录D VAX C语言编译器消息 405

附录E VAX C编译程序的列表格式 425

附录F VAX/VMS符号调试器命令和限定 436

词 436