软件调试主要采用以下三种方法:
强行排错法:作为传统的调试方法,其过程可概括为设置断点、程序暂停、观察程序状态、继续运行程序。
回溯法:该方法适合于小规模程序的排错、即一旦发现了错误,先分析错误征兆,确定最先发现“症状”的位置。
原因排除法:原因排除法是通过演绎和归纳,以及二分法来实现
耦合可以分为下列几种,它们之间的耦合度由高到低排列:
内容耦合--若一个模块直接访问另一模块的内容,则这两个模块称为内容耦合。
公共耦合--若一组模块都访问同一全局数据结构,则称为公共耦合。
外部耦合--若一组模块都访问同一全局数据项,则称为外部耦合。
控制耦合--若一模块明显地把开关量、名字等信息送入另一模块,控制另一模块的功能,则称为控制耦合。
标记耦合--若两个以上的模块都需要其余某一数据结构的子结构时,不使用其余全局变量的方式而全使用记录传递的方式,这样的耦合称为标记耦合。
数据耦合--若一个模块访问另一个模块,被访问模块的输入和输出都是数据项参数,则这两个模块为数据耦合。
非直接耦合--若两个模块没有直接关系,它们之间的联系完全是通过程序的控制和调用来实现的,则称这两个模块为非直接耦合,这样的耦合独立性最强
。
面向对象设计方法与面向过程设计方法有本质的不同,其基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。其特点包括:标识惟一性、多态性、封装性、模块独立性、继承和多态性好。
在C语言中,函数定义是平行的,函数不能嵌套定义,即函数之间没有从属关系。虽然函数之间可以相互调用,但main()函数不能被调用;C程序从main()函数开始执行,当main()数执行完毕时,整个程序就结束了。C程序的执行必须从main()函数开始;函数不能嵌套定义,函数可以单独编译
①(p+n)与(a+n)表示数组元素a[n]的地址;②*(p+n)与*(a+n)表示数组元素a[n];③p[n]= *(p+n),都表示数组元素a[n]。
选项A)、B)没有这种引用形式;选项C),*(p+5)是引用数组的第6个元素,而数组一共有5个元素,出现越界;选项D),*(a+2)引用数组的第3个元素。
软件调试主要采用以下三种方法:
强行排错法:作为传统的调试方法,其过程可概括为设置断点、程序暂停、观察程序状态、继续运行程序。
回溯法:该方法适合于小规模程序的排错、即一旦发现了错误,先分析错误征兆,确定最先发现“症状”的位置。
原因排除法:原因排除法是通过演绎和归纳,以及二分法来实现
耦合可以分为下列几种,它们之间的耦合度由高到低排列:
内容耦合--若一个模块直接访问另一模块的内容,则这两个模块称为内容耦合。
公共耦合--若一组模块都访问同一全局数据结构,则称为公共耦合。
外部耦合--若一组模块都访问同一全局数据项,则称为外部耦合。
控制耦合--若一模块明显地把开关量、名字等信息送入另一模块,控制另一模块的功能,则称为控制耦合。
标记耦合--若两个以上的模块都需要其余某一数据结构的子结构时,不使用其余全局变量的方式而全使用记录传递的方式,这样的耦合称为标记耦合。
数据耦合--若一个模块访问另一个模块,被访问模块的输入和输出都是数据项参数,则这两个模块为数据耦合。
非直接耦合--若两个模块没有直接关系,它们之间的联系完全是通过程序的控制和调用来实现的,则称这两个模块为非直接耦合,这样的耦合独立性最强
。
面向对象设计方法与面向过程设计方法有本质的不同,其基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。其特点包括:标识惟一性、多态性、封装性、模块独立性、继承和多态性好。
在C语言中,函数定义是平行的,函数不能嵌套定义,即函数之间没有从属关系。虽然函数之间可以相互调用,但main()函数不能被调用;C程序从main()函数开始执行,当main()数执行完毕时,整个程序就结束了。C程序的执行必须从main()函数开始;函数不能嵌套定义,函数可以单独编译
①(p+n)与(a+n)表示数组元素a[n]的地址;②*(p+n)与*(a+n)表示数组元素a[n];③p[n]= *(p+n),都表示数组元素a[n]。
选项A)、B)没有这种引用形式;选项C),*(p+5)是引用数组的第6个元素,而数组一共有5个元素,出现越界;选项D),*(a+2)引用数组的第3个元素。