【软件设计师备考 专题 】设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用(二)

简介: 【软件设计师备考 专题 】设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用

【软件设计师备考 专题 】设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用(一)https://developer.aliyun.com/article/1467647


4.2 循环语句

循环语句是用于重复执行一段代码块的控制结构。在C/C++语言中,常见的循环语句包括for循环、while循环和do-while循环。

4.2.1 for循环

for循环用于指定循环的次数,其基本语法如下:

for (初始化表达式; 条件表达式; 更新表达式) {
    // 循环体代码块
}

在for循环中,初始化表达式用于初始化循环变量;条件表达式用于判断是否继续循环;更新表达式用于更新循环变量的值。循环体代码块会在每次循环之前执行一次,然后根据条件表达式的结果决定是否继续循环。

示例代码:

for (int i = 0; i < 5; i++) {
    printf("循环次数:%d\n", i);
}

4.2.2 while循环

while循环用于在条件为真时重复执行一段代码块,其基本语法如下:

while (条件表达式) {
    // 循环体代码块
}

在while循环中,条件表达式的结果必须是一个布尔值(true或false)。只有当条件表达式的结果为true时,才会执行循环体代码块。循环体代码块执行完毕后,再次判断条件表达式的结果,决定是否继续循环。

示例代码:

int i = 0;
while (i < 5) {
    printf("循环次数:%d\n", i);
    i++;
}

4.2.3 do-while循环

do-while循环与while循环类似,不同之处在于它是在循环体执行完毕后判断条件是否为真。其基本语法如下:

do {
    // 循环体代码块
} while (条件表达式);

在do-while循环中,循环体代码块会先执行一次,然后再判断条件表达式的结果。只有当条件表达式的结果为true时,才会继续循环。

示例代码:

int i = 0;
do {
    printf("循环次数:%d\n", i);
    i++;
} while (i < 5);

4.3 跳转语句

跳转语句用于改变程序的执行顺序,常见的跳转语句包括break语句、continue语句和return语句。

4.3.1 break语句

break语句用于跳出当前循环或switch语句,结束当前的代码块执行。在嵌套循环中,break语句只能跳出最内层的循环。

示例代码:

for (int i = 0; i < 5; i++) {
    if (i == 3) {
        break;
    }
    printf("循环次数:%d\n", i);
}

4.3.2 continue语句

continue语句用于跳过当前循环中剩余的代码,继续执行下一次循环。在嵌套循环中,continue语句只能跳过当前循环的剩余代码,继续执行下一次的内层循环。

示例代码:

for (int i = 0; i < 5; i++) {
    if (i == 3) {
        continue;
    }
    printf("循环次数:%d\n", i);
}

4.3.3 return语句

return语句用于结束函数的执行,并返回一个值(如果函数有返回值的话)。在函数中,return语句可以提前结束函数的执行,也可以在函数的任意位置使用。

示例代码:

int add(int a, int b) {
    return a + b;
}
int result = add(3, 4);
printf("计算结果:%d\n", result);

4.4 输入输出语句

输入输出语句用于与用户进行交互,常见的输入输出函数包括printf函数和scanf函数。

4.4.1 标准输入输出

printf函数用于将数据输出到标准输出设备(通常是显示器),其基本语法如下:

printf("格式化字符串", 参数列表);

在格式化字符串中,可以使用占位符来指定输出的格式和位置。常用的占位符包括:%d(整数)、%f(浮点数)、%s(字符串)等。

示例代码:

int num = 10;
printf("数字:%d\n", num);

scanf函数用于从标准输入设备(通常是键盘)读取数据,其基本语法如下:

scanf("格式化字符串", 参数列表);

在格式化字符串中,可以使用占位符来指定输入的格式和位置。需要注意的是,scanf函数会根据占位符的类型进行数据类型的转换。

示例代码:

int num;
printf("请输入一个数字:");
scanf("%d", &num);
printf("输入的数字:%d\n", num);

4.4.2 文件输入输出

除了标准输入输出之外,C/C++语言还提供了文件输入输出函数,用于读写文件。常见的文件输入输出函数包括fopen函数、fprintf函数和fscanf函数。

示例代码:

#include <stdio.h>
int main() {
    FILE *file = fopen("data.txt", "w");
    if (file == NULL) {
        printf("文件打开失败\n");
        return 0;
    }
    fprintf(file, "Hello, World!\n");
    fclose(file);
    return 0;
}

在上述示例代码中,我们使用fopen函数打开一个名为data.txt的文件,并指定以写入(“w”)的方式打开。然后使用fprintf函数向文件中写入一行文本,并使用fclose函数关闭文件。

以上是关于控制和传输的内容,包括条件语句、循环语句、跳转语句和输入输出语句。掌握这些知识点,能够更好地控制程序的执行流程和与用户进行交互。


第五章:过程(函数)调用

5.1 函数的定义和声明

5.1.1 函数的命名规则

在C/C++编程中,函数的命名需要遵循一定的规则,以保证代码的可读性和可维护性。以下是一些常用的函数命名规则:

规则 示例
使用有意义的名称 calculateSum()
使用小写字母和下划线 calculate_average()
遵循驼峰命名法 calculateAverage()

5.1.2 函数的参数列表

函数的参数列表是指在函数声明或定义中,用于接收传递给函数的参数的列表。参数列表可以包含零个或多个参数,每个参数由参数类型和参数名组成。以下是一个函数参数列表的示例:

void printMessage(char* message, int times);

5.1.3 函数的返回类型

函数的返回类型指定了函数执行完毕后返回的值的类型。在C/C++中,函数可以有不同的返回类型,如整型、浮点型、字符型、指针等。以下是一个函数返回类型的示例:

int calculateSum(int a, int b);

5.2 函数的参数传递

5.2.1 值传递

值传递是指将参数的值复制给函数中的对应参数。在函数内部对参数的修改不会影响到函数外部的变量。以下是一个值传递的示例:

void increment(int num) {
    num++;
}
int main() {
    int num = 5;
    increment(num);
    // 输出结果为5,num的值未改变
    printf("%d", num);
    return 0;
}

5.2.2 引用传递

引用传递是指将参数的引用传递给函数,函数内部对参数的修改会影响到函数外部的变量。在C/C++中,可以使用指针或引用来实现引用传递。以下是一个引用传递的示例:

void increment(int* num) {
    (*num)++;
}
int main() {
    int num = 5;
    increment(&num);
    // 输出结果为6,num的值已改变
    printf("%d", num);
    return 0;
}

5.3 函数的返回值

5.3.1 返回单个值

函数可以返回单个值,该值可以是任意类型,如整型、浮点型、字符型等。以下是一个返回单个值的示例:

int calculateSum(int a, int b) {
    return a + b;
}
int main() {
    int result = calculateSum(3, 4);
    // 输出结果为7
    printf("%d", result);
    return 0;
}

5.3.2 返回多个值

在C/C++中,函数可以通过指针、引用或结构体等方式返回多个值。以下是一个返回多个值的示例:

void calculateSumAndDifference(int a, int b, int* sum, int* difference) {
    *sum = a + b;
    *difference = a - b;
}
int main() {
    int sum, difference;
    calculateSumAndDifference(5, 3, &sum, &difference);
    // 输出结果为8和2
    printf("%d %d", sum, difference);
    return 0;
}

5.4 递归函数

5.4.1 递归的概念

递归是指函数调用自身的过程。在编程中,递归函数可以解决一些需要重复执行相同操作的问题,如计算阶乘、斐波那契数列等。以下是一个递归函数的示例:

int factorial(int n) {
    if (n == 0 || n == 1) {
        return 1;
    }
    return n * factorial(n - 1);
}
int main() {
    int result = factorial(5);
    // 输出结果为120
    printf("%d", result);
    return 0;
}

以上是关于过程(函数)调用的内容,包括函数的定义和声明、参数传递、返回值以及递归函数的介绍。通过代码示例和注释的方式,帮助读者深入理解这些知识点。


结语

感谢你花时间阅读这篇博客,我希望你能从中获得有价值的信息和知识。记住,学习是一个持续的过程,每一篇文章都是你知识体系的一部分,无论主题是什么,都是为了帮助你更好地理解和掌握软件设计的各个方面。

如果你觉得这篇文章对你有所帮助,那么请不要忘记收藏和点赞,这将是对我们最大的支持。同时,我们也非常欢迎你在评论区分享你的学习经验和心得,你的经验可能会对其他正在学习的读者有所帮助。

无论你是正在准备软件设计师资格考试,还是在寻求提升自己的技能,我们都在这里支持你。我期待你在软件设计师的道路上取得成功,无论你的目标是什么,我都在这里支持你。

再次感谢你的阅读,期待你的点赞和评论,祝你学习顺利,未来充满可能!

目录
相关文章
|
2月前
|
存储 编译器 C++
【软件设计师备考 专题 】设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用(一)
【软件设计师备考 专题 】设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用
67 2
|
6天前
技术心得记录:单片机开发过程中使用结构体简化程序
技术心得记录:单片机开发过程中使用结构体简化程序
|
24天前
|
SQL 数据可视化 算法
掌握计算机逻辑:离散数学中的逻辑和布尔代数
掌握计算机逻辑:离散数学中的逻辑和布尔代数
|
2月前
|
JavaScript 前端开发 Java
打造高效对象:编程秘籍与代码实操
打造高效对象:编程秘籍与代码实操
10 0
|
9月前
|
存储 算法 C语言
《信任的进化》游戏简易版逻辑算法的实现(C语言)
《信任的进化》游戏简易版逻辑算法的实现(C语言)
|
JavaScript
量子程序设计基础 | 量子程序编程实例
创建并输出Bell态观测量子线路。
107 0
量子程序设计基础 | 量子程序编程实例
|
开发工具
彻底搞清游戏开发中的循环逻辑
循环是游戏开发中一定会用到的逻辑,不论是你想控制移动,或者进行遍历,亦或者不停的去执行某一段逻辑,都需要使用循环。那么对于循环的使用你彻底了解了吗?今天这篇文章就帮助你彻底的弄懂微信小游戏开发中的循环的用法。
141 0
|
Java 测试技术
java面向对象思维程序设计开发以及案例 -电梯运行问题对象分析与程序设计(2)
java面向对象思维程序设计开发以及案例 -电梯运行问题对象分析与程序设计(2)
java面向对象思维程序设计开发以及案例 -电梯运行问题对象分析与程序设计(2)
|
Java 领域建模
java面向对象思维程序设计开发以及案例 -电梯运行问题对象分析与程序设计(1)
java面向对象思维程序设计开发以及案例 -电梯运行问题对象分析与程序设计(1)
java面向对象思维程序设计开发以及案例 -电梯运行问题对象分析与程序设计(1)
|
SQL 算法 Java
【Verilog刷题篇】硬件工程师从0到入门3|组合逻辑复习+时序逻辑入门
硬件工程师近年来也开始慢慢吃香,校招进大厂年薪总包不下30-40w的人数一大把!而且大厂人数并没有饱和! - 本期是【Verilog刷题篇】硬件工程师从0到入门3|组合逻辑复习+时序逻辑入门,有不懂的地方可以评论进行讨论!
【Verilog刷题篇】硬件工程师从0到入门3|组合逻辑复习+时序逻辑入门