简介
本书以目前流行的C语言为例,全面阐述了高级语言程序设计的基本概念、基本方法和基本技术,主要内容包括程序设计基础,数据类型、运算符和表达式,结构化程序设计,数组、指针,函数,结构体类型,文件等。 本书强调程序设计方法的教学,通过大量趣味性和实用性的例题来说明C语言中语法的应用,以及程序设计的概念、方法、技巧,并对例题做了详细的分析,富有启发性;将初学者较难掌握的指针数据类型提前到数组这一章节,使学生有较多的时间来理解和掌握其应用;所配的练习题题型丰富,有针对性,贴近生活,能够激发学生学习的兴趣和积极性;附录中的程序调试技术可帮助初学者尽快掌握程序调试的基本技术;结构合理,重点突出,难点分散,图文并茂,格式规范,有利于学生的学习和培养良好的程序设计风格与 习惯。 本书可作为各类高等学校本科、高职高专、成人教育的教材,也可作为计算机等级考试(二级C)的参考书和自学教材。
目录
第1章程序设计基础... 1
1.1数在计算机内的表示形式... 1
1.2程序设计和算法... 10
1.3程序设计语言... 15
练习1. 22
第2章数据类型、运算符和表达式... 24
2.1常量和变量... 24
2.2基本数据类型... 26
2.3运算符和表达式... 33
2.4数据类型转换... 39
练习2. 41
第3章结构化程序设计... 44
3.1结构化程序设计概述... 44
3.2顺序结构程序设计... 45
3.3选择结构程序设计... 53
3.4循环结构程序设计... 66
练习3. 81
第4章 数组、指针... 93
4.1一维数组... 93
4.2二维数组... 103
4.3指针与数组... 108
4.4字符数组和字符串处理函数... 119
4.5指针数组和二级指针... 130
练习4. 133
第5章 函数... 142
5.1函数概述... 142
5.2函数的定义... 143
5.3函数的调用... 145
5.4数组作为函数的参数... 152
5.5函数的嵌套调用和递归调用... 161
5.6指针与函数... 166
5.7变量的作用域和存储类别... 174
5.8内部函数和外部函数... 183
练习5. 186
第6章 结构体类型... 196
6.1结构体类型的定义... 196
6.2结构体变量的定义和使用... 198
6.3结构体数组... 201
6.4结构体作函数参数... 203
6.5动态数据结构——链表... 206
练习6. 212
第7章 文件... 216
7.1文件概述... 216
7.2文件的打开和关闭... 218
7.3文件的读写... 220
7.4文件的定位... 229
7.5文件的出错检测与处理... 233
练习7. 234
附录A 常用运算符的含义、优先级和结合性............................................................. 236
附录B 常用C库函数................................................................................................ 237
附录C 常见错误分析和程序调试.............................................................................. 241
参考文献..................................................................................................................... 252
【免费在线读】
5.1 函 数 概 述
在第1章中已经介绍过,C程序是由一个个函数组成的。虽然在前面各章的程序中都只有一个主函数main(),但一个真正实用的程序往往由多个函数组成。C语言中的函数相当于其他高级语言的子程序,C语言不仅提供了极为丰富的库函数,还允许用户建立自己定义的函数。用户可把自己的算法编成一个个相对独立的函数,然后用调用的方法来使用函数。
在C语言中,所有的函数定义(包括主函数main())都是平行的。也就是说,在一个函数的函数体内,不能再定义另一个函数,即不能嵌套定义。但函数之间允许相互调用,也允许嵌套调用,甚至函数还可以自己调用自己,称为递归调用。习惯上把调用者称为主调函数,被调用的函数称为被调函数。main()函数是主函数,它可以调用其他函数,但不能被其他函数所调用。因此,C程序的执行总是从main()函数开始,完成对其他函数的调用后再返回到main()函数,最后由main()函数结束整个程序。一个C源程序必须有,也只能有一个主函数main()。因此,C程序的全部工作都是由各式各样的函数完成的,所以也把C语言称为函数式语言。函数的作用有两个:
(1)避免代码的重复。一个程序中往往有多处需要完成一个特定的功能,如求一个数的平方根或者对一组数据排序。如果没有函数,则程序中就要把求数的平方根程序或者排序程序重复多次。有了函数机制后,可以把实现一个特定功能的程序,如求数的平方根程序或者排序程序,编成一个个函数。这样,当需要求数的平方根或者排序时,只要调用相应的函数就可以了。
(2)便于结构化程序设计。结构化程序设计在总体设计阶段采用“自顶向下,逐步求精”的模块化设计方法,该方法把一个复杂的待求解问题根据总需求划分成若干个相对独立的模块,每个模块完成一个特定的功能。如果一个模块应完成的功能过于复杂,还可以再细分成若干个子模块。不管是模块还是子模块,在C语言中都可以用函数实现,因此,C语言易于实现结构化程序设计,它使得程序的层次结构清晰,便于程序的编写、阅读、调试。
在C语言中可从不同的角度对函数分类:
(1)从函数定义的角度看,函数可分为库函数和用户定义函数两种。
① 库函数是由C系统提供,用户无须定义,也不必在程序中作类型声明,只需在程序前包含有该函数原型的头文件即可在程序中直接调用。例如,在前面各章的例题中反复用到的printf()、scanf()、gets()、puts()、sqrt()、strcmp()等函数均属此类。
② 用户定义函数由用户按需要写的函数。对于用户自定义函数,不仅要在程序中定义函数本身,而且在主调函数中还必须对该被调函数进行类型声明,然后才能使用。
(2)C语言的函数兼有其他高级语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值函数和无返回值函数两种。
① 有返回值函数被调用执行完后将向调用者返回一个执行结果,称为函数返回值。如数学函数即属于此类函数。由用户定义的这种要返回函数值的函数,必须在函数定义和函数声明中明确返回值的类型。
②无返回值函数用于完成某项特定的处理任务,执行完成后不向调用者返回函数值。该类函数类似于其他高级语言中的过程。由于函数无返回值,用户在定义该类函数时可指定其返回为“空类型”,空类型的类型标识符为void。
(3)从主调函数和被调函数之间数据传送的角度看,又可分为无参函数和有参函数 两种。
① 无参函数在函数定义、函数声明及函数调用时均不带参数,主调函数和被调函数之间不进行参数传送。此类函数通常用来完成一组指定的功能,可以返回或不返回函数值。
② 有参函数也称为带参函数,在函数定义及函数声明时都有参数,称为形式参数(简称为形参)。在函数调用时也必须给出参数,称为实际参数(简称为实参)。 进行函数调用时,主调函数将把实参的值传送给形参,供被调函数使用。
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问