| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 第一阶段 C语言基础与入门6 -> 正文阅读 |
|
[C++知识库]第一阶段 C语言基础与入门6 |
嵌套循环:计算1!+2!+3!+······+n!的值,我们一般自定义一个新函数进行计算,如下图: ? ?除此之外,其实还有一种方式能解决这个问题,那就是嵌套循环。 ? ?其思路为:sum=sum+第i项 ? 累加求和的程序段为: ? ? ? ? sum=0; ? ? ? ? for(i=1;i<=n;i++){ ? ? ? ? ? ? ? ? ? sum=sum+i! } 又可以写成: ? ? sum=0; ? ? for(i=1;i<=n;i++){ ? ? ? ? ? ? ?item=i!; ? ? ? ? ? ? ?sum=sum+item; } 所以完整的程序为: ? ?函数的定义:? 函数是一个完成特定工作的独立程序模块,包括库函数和自定义函数两种。例如,scanf()、printf()等为库函数,由C语言系统提供定义,编程时只要直接调用就行;但是有些函数,需要用户自己定义,属于自定义函数。 ? 从函数实现计算功能角度来看,C语言中称其为函数参数。f(r,h)计算后有结果值,在C程序中必然为某一种数据类型,称其为函数类型。 ? 函数定义的一般形式为: ? ? ? ?函数类型? 函数名(形式参数表) ? ? ? ? { ? ? ? ? ? ? ? 函数实现过程 ? ? ? ? ?} 1.函数首部:? 函数首部由函数类型、函数名和形式参数表组成,位于函数定义的第一行。函数首部中,函数名是函数整体的称谓,需用一个合法的标识符表示。函数类型指函数结果返回的类型,一般与return语句中表达式的类型一致。形参表中给出函数计算所要用到的相关已知条件,以类似变量定义的形式给出,其格式为: ? 类型1 形参1,类型2 形参2,···类型n,形参n ? 形参表中各个形参之间用逗号分隔,每个形参前面的类型必须分别写明。函数的形参数量可以是一个,也可以是多个,或者没有形参。 ? 注:函数首部后面不能加分号它和函数体一起构成完整的函数定义。且正确表示为? ? ? ? ? ? ? ? ? ? ? ?double cylinder(double r,double h)而非double r,h。 2.函数体:? 函数体体现函数的实现过程,由一堆大括号内的若干条语句组成,用以计算,或完成特定的工作,并用return语句返回运算的结果。 函数的调用:1.函数调用过程:任何C程序执行,首先从主函数main()开始,如果遇到某个函数调用,主函数被暂停执行,转而执行相应的函数,该函数执行完后将返回主函数,然后再从原先暂停的位置继续执行。 2.函数调用的形式:函数调用的一般形式为: ? 函数名(实际参数表) 实际参数(简称实参)可以是常量、变量和表达式。 3.参数传递:? 函数定义时,位于其首部的参数被称为形参,如r和h。主调函数的函数被称为实参。形参除了能接受实参的值外,使用方法与普通变量类似。形参和实参必须一一对应,两者数量相同,类型尽量一致。程序运行遇到函数调用时,实参的值依次传给形参,这就是参数传递。 4.函数结果返回:? 函数结果返回的形式如下: ? return 表达式; 先求解表达式的值,再返回其值。一般情况下表达式的类型与函数类型应一致,如果两者不一致,以函数类型为准。return语句的作用有两个:一是结束函数的运行;二是带着运算结果(表达式的值)返回主调函数。 5.函数原型声明:? C语言要求函数先定义后调用,就像变量先定义后使用一样。如果自定义函数被放在主调函数的后面,就需要在函数调用前,加上函数原型声明(或称为函数声明)。 ? ?函数声明的目的主要是说明函数的类型和参数的情况,以保证程序编译时能判断对该函数的调用是否正确。函数声明的一般格式为: ? ?函数类型? ? 函数名(参数表); 即与函数定义中的第一行(函数首部)相同,并以分号结束。 自定义函数并调用计算五边形面积:因此,可以总结出使用自定义函数的程序有以下几个优点: (1)程序结构清晰,逻辑关系明确,程序可读性强; (2)解决相同或相似问题时不用重复编写代码,可通过 调用函数来解决,减少代码量; (3)利用函数实现模块化编程,各模块功能相对独立,利用“各个击破”降低调试难度。 判断一个数是否为完全平方数:不返回结果的函数:? 之前的函数都是起计算(或判断)作用,最终有一个函数结果返回。在很多程序设计中,调用函数不是为了得到某个运算结果,而是要让它产生某些作用。如下图的输出数字金字塔,就是如此。 不返回结果的函数定义:? ? void 函数名(形参表) ? ? ? ? { ? ? ? ? ? ?函数实现过程 ? ? ? ?} ? 函数类型为void,表示不返回结果,函数体中可以使用没有表达式的return语句,也可以省略return。void类型的函数虽然不直接返回一个值,但它的作用通常以屏幕输出等方式体现。(void不能省略,否则,函数类型被默认定义为int。) 结构化程序设计思想:1.自顶向下分析问题的方法:? 这个方法,就是把大的复杂的问题分解成小问题后再解决。面对一个复杂的问题,首先进行上层(整体)分析,并分解为子问题,若子问题还复杂,继续分解直到处理对象相对简单、容易解决为止。如课本P110页的“学生成绩统计程序的层次结构图”便是如此。 2.模块化设计:? 经过问题分析,设计好层次结构图后,就进入这个阶段。在这个阶段,需要做到:
3.结构化编码主要原则:1.模块化设计后,每一个模块都可以独立编码。 局部变量:? C语言中把定义在函数内部的变量称为局部变量,局部变量的有效作用范围局限于所在的函数内部。形参是局部变量。 ? 使用局部变量可以避免各个函数之间的变量相互干扰。如下图的函数complex_prod()和complex_add()使用了同名的形参,且与值函数实参变量变量也同名,但由于分属不同函数,它们有各自不同的变量实体和使用范围,不会互相干扰。这一特征使得C语言在结构化程序设计中非常有用。 ? 除了作用于函数的局部变量外,C语言还允许定义作用于复合语句中的局部变量,其有效使用范围被局限于复合语句内,一般用作小范围内的临时变量。 ?局部变量一般定义在函数或复合函数语句的开始处,标准C规定其不能定义在中间位置。 全局变量:? 局部变量虽保证了函数的独立性,但程序设计有时还要考虑不同函数之间的数据交流,及各函数的某些同意设置。当一些变量需要被多个函数共同使用时,参数传递虽然是一个办法,但必须通过函数调用才能实现并且函数只能返回一个结果,这会使程序设计受到很大的限制。为了解决多个函数间的变量共用,C语言允许定义全局变量。 ? 定义在函数外而不属于任何函数的变量称为全局变量。全局变量的作用范围是从定义开始到程序所在文件的结束,它对作用范围内所有的函数都起作用。其他见书p113. 本周有意思的题目(这是我打过最长的代码): ?本周学习内容到此为止, 其他漏下的习题我会另发文章补上。 如有错误,欢迎指出,谢谢。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 5:50:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |