程序结构和函数

三. 程序结构和函数

1. 程序结构

(1)main 函数与其它函数之间的关系

C 程序由函数组成,一个C 源程序至少包含一个main 函数和若干个其它函数,每个函数实现一定的功能,从而实现程序的模块化设计。程序总是从main 函数开始执行,到main 函数结束。在main 函数中可以调用其它函数,其它函数间也可以相互调用。

(2)被调用函数

①标准库函数:系统将一些常用的功能模块编写成函数,放在函数库中供用户直接选用。使用时应用#include命令将相应的头文件包含到本文件中。

②自定义函数:用户为解决自己的专门需要而定义的函数。在主调函数中对被调函数进行声明,形式“函数类型 函数名(参数类型列表)”。

2. 函数的定义

(1) 函数定义的格式

类型名 函数名(形式参数列表){函数体}

(2) 函数的参数及参数传递

①形式参数:调用函数前不占内存单元,调用时才分配内存单元,调用结束后释放。 ②实际参数:可以是常量、变量或表达式。

③指针参数:为使在被调用函数中改变的变量的值能被主调函数得到,应该用指针变量作为函数参数。

④参数传递:是主调函数与被调用函数之间传递数据的主要途径,这种传递是“值传递”,即只能由实参传给形参,不能由形参传回给实参,因为实参与形参位于内存中不同的单元。注意实参与形参的类型应相同或赋值兼容。

(3) 函数的返回值

通过函数调用使主调函数获得一个确定的值。除了可能返回一个整型值、实型值、字符值外,也可以把指针(地址)作为函数的返回值,此时函数的定义形式为:

类型名 *函数名(参数表){函数体}

3. 函数的调用

(1)函数调用的一般格式

①通过函数名调用函数:形式“函数名(实参列表)”,位置出现在语句、表达式或实参。 ②通过函数指针调用函数:定义指向函数的指针变量“类型名 (*变量名)();”,给函数指针变量赋值“函数指针变量名=函数名;”,调用“(*函数指针变量名)(实参列表)”。

(2)函数的嵌套调用和递归调用

①嵌套调用:一个函数体内不能包含另一函数的定义,即不允许嵌套定义,但允许调用另一

个函数,即嵌套调用。

②递归调用:在调用一个函数的过程中直接或间接地调用该函数本身。

(3)熟练掌握标准库函数的调用

①常用数学函数:cos 、sqrt 、pow 、exp 、fabs 、log 、log10。 ②常用字符函数:isalnum 、isalpha 、isdigit 、islower 、toupper 。 ③常用字符串函数:strcpy 、strcmp 、strcat 、strlen 。

三. 程序结构和函数

1. 程序结构

(1)main 函数与其它函数之间的关系

C 程序由函数组成,一个C 源程序至少包含一个main 函数和若干个其它函数,每个函数实现一定的功能,从而实现程序的模块化设计。程序总是从main 函数开始执行,到main 函数结束。在main 函数中可以调用其它函数,其它函数间也可以相互调用。

(2)被调用函数

①标准库函数:系统将一些常用的功能模块编写成函数,放在函数库中供用户直接选用。使用时应用#include命令将相应的头文件包含到本文件中。

②自定义函数:用户为解决自己的专门需要而定义的函数。在主调函数中对被调函数进行声明,形式“函数类型 函数名(参数类型列表)”。

2. 函数的定义

(1) 函数定义的格式

类型名 函数名(形式参数列表){函数体}

(2) 函数的参数及参数传递

①形式参数:调用函数前不占内存单元,调用时才分配内存单元,调用结束后释放。 ②实际参数:可以是常量、变量或表达式。

③指针参数:为使在被调用函数中改变的变量的值能被主调函数得到,应该用指针变量作为函数参数。

④参数传递:是主调函数与被调用函数之间传递数据的主要途径,这种传递是“值传递”,即只能由实参传给形参,不能由形参传回给实参,因为实参与形参位于内存中不同的单元。注意实参与形参的类型应相同或赋值兼容。

(3) 函数的返回值

通过函数调用使主调函数获得一个确定的值。除了可能返回一个整型值、实型值、字符值外,也可以把指针(地址)作为函数的返回值,此时函数的定义形式为:

类型名 *函数名(参数表){函数体}

3. 函数的调用

(1)函数调用的一般格式

①通过函数名调用函数:形式“函数名(实参列表)”,位置出现在语句、表达式或实参。 ②通过函数指针调用函数:定义指向函数的指针变量“类型名 (*变量名)();”,给函数指针变量赋值“函数指针变量名=函数名;”,调用“(*函数指针变量名)(实参列表)”。

(2)函数的嵌套调用和递归调用

①嵌套调用:一个函数体内不能包含另一函数的定义,即不允许嵌套定义,但允许调用另一

个函数,即嵌套调用。

②递归调用:在调用一个函数的过程中直接或间接地调用该函数本身。

(3)熟练掌握标准库函数的调用

①常用数学函数:cos 、sqrt 、pow 、exp 、fabs 、log 、log10。 ②常用字符函数:isalnum 、isalpha 、isdigit 、islower 、toupper 。 ③常用字符串函数:strcpy 、strcmp 、strcat 、strlen 。


相关文章

  • Windows程序设计基本概念
  • Windows程序设计基本概念 1. Windows运行机制-----消息驱动 消息驱动又叫做事件驱动,是Windows编程采用的程序设计思想.在这种程序结构中,程序没有明显的开始.结束,程序流程的控制由各种随机发生.不确定.没有预先设定顺 ...查看


  • 浅谈C中的结构化程序设计
  • 摘要:C语言是一种很好的结构化程序设计语言;结构化程序设计方法可以概括为自顶向下.逐步求精.模块化.限制使用goto语句,将原来较为复杂的问题化简为一系列简单模块的设计;一个程序的任何逻辑问题均可用顺序结构.选择结构和循环结构这3种基本结构 ...查看


  • 单元测试的主要任务2
  • 代码检查 代码检查是通过桌面检查.走查方式和代码审查进行的检查: 包括: ★ 检查代码和设计是否一致: ★ 代码是否对遵循标准.是否可读: ★ 代码逻辑表达是否正确: ★ 代码结构是否合理: ★ 程序编写与编写标准是否符合: ★ 程序中是否 ...查看


  • C语言源程序
  • C 语言程序设计 C 语言程序设计 1.程序运行从main()函数开始,也从main()函数结束. 2.函数是C 程序的,. 3.C 语言源程序是由函数组成,它们. 4.在C 语言源程序中,是必须有一个函数名为main 的函数.main() ...查看


  • 国家计算机二级C语言考试大纲
  • 全国计算机等级考试二级C 语言程 序设计考试大纲淤(2013年版) 摇基本要求 摇摇1. 熟悉Visual C++ 6. 0 集成开发环境. 2. 掌握结构化程序设计的方法, 具有良好的程序设计风格. 3. 掌握程序设计中简单的数据结构和算 ...查看


  • 程序设计语言的位置
  • 第一部分 引 言第1章 程序设计语言的位置 21.1 走向高级语言 21.1.1 机器语言是晦涩难懂的 31.1.2 汇编语言是低级的 31.1.3 高级语言的优点 51.2 规模的问题 61.2.1 人的错误因素 61.2.2 程序设计语 ...查看


  • 最小生成树问题
  • 河南城建学院 课 程设计 报告书 专 业:计算机科学与技术 课程设计名称:<数据结构课程设计> 题 目:最小生成树问题 班 级: 学 号: 姓 名: 同 组 人 员: 指 导 老 师: 完 成 时 间: 2012年2月17日 摘 ...查看


  • 2011上海专升本C++考试大纲
  • <C++程序设计>考试大纲 一.基本要求 1. 掌握C++语言的基本语法规则. 2.掌握程序设计的三种基本结构. 3.掌握函数.指针和结构体的基本知识及相关应用. 4.熟练掌握有关类与对象的相关知识. 5.能够采用面向过程和面向 ...查看


  • 三级网络技术数据库上机题
  • 1.已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成.其中:金额=单价*数量计算得出.函数Read ...查看


热门内容