C语言程序设计:程序设计和C语言

文章目录

  • C语言程序设计:程序设计和C语言
  • 一、计算机程序和语言
    • 计算机语言
    • C语言的发展及其特点
        • C语言的发展历程
        • C语言的特点
  • 二、编译器安装
  • 三、最简单的C 语言程序
    • 简单的C语言程序介绍
      • 程序执行流程:
      • 输出:
    • 求两个整数之和
      • 运行结果:
    • C语言程序的结构
      • 1. C 语言程序的基本组成部分
        • (1) 源程序文件
        • (2) 预处理指令
        • (3) 全局声明
        • (4) 函数定义
        • (5) 主函数 (main)
      • 2. C 语言函数的组成
      • 3. 程序的模块化
      • 4. 输入输出操作
      • 5. 程序语句的分号
      • 6. 注释
  • 四、运行C 程序的步骤与方法
      • (1) 上机输入和编辑源程序
      • (2) 对源程序进行编译
      • (3) 进行连接处理
      • 总结流程
  • 五、程序设计的任务
      • 1. 问题分析
      • 2. 设计算法
      • 3. 编写程序
      • 4. 编辑、编译和连接
      • 5. 运行程序并分析结果
      • 6. 编写程序文档
  • 六、结语

C语言程序设计:程序设计和C语言

一、计算机程序和语言

所谓程序,就是一组计算机能识别和执行的指令。每一条指令使计算机执行特定的操 作。只要让计算机执行这个程序,计算机就会“自动地”执行各条指令,有条不紊地进行工 作。一个特定的指令序列用来完成一定的功能。为了使计算机系统能实现各种功能,需要 成千上万个程序。

计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成。所以,计算 机的本质是程序的机器,程序和指令是计算机系统中最基本的概念。只有懂得程序设计,才 能真正了解计算机是怎样工作的,才能更深入地使用计算机。

计算机语言

计算机语言是一种用来与计算机进行沟通的人工语言,目的是让人类能够给计算机指令或输入数据,并让计算机按照指令进行处理。计算机语言可以分为以下几类:

  1. 机器语言:这是计算机能够直接理解和执行的语言,它由二进制代码(0和1)组成。每个机器指令代表一个基本的操作,如加法、存储数据、跳转等。不同的计算机体系结构有不同的机器语言。

  2. 汇编语言:汇编语言是机器语言的符号化表示,它使用助记符代替机器语言中的二进制代码。例如,MOV 表示将数据从一个位置移动到另一个位置。汇编语言需要通过汇编程序转换为机器语言才能执行。

  3. 高级语言:这是离人类语言更近的计算机语言,具有较强的抽象能力,允许程序员使用类比自然语言的语法来编写程序。常见的高级语言有:

    • C语言:广泛应用于系统编程和嵌入式开发。
    • Java:用于开发跨平台应用,特别是在企业和安卓开发中。
    • Python:简洁易读,广泛用于数据科学、人工智能、Web开发等领域。
    • JavaScript:主要用于Web开发,处理前端交互和后端服务。
  4. 脚本语言:脚本语言通常用于编写自动化任务和小型程序。它们通常不需要编译,而是直接解释执行。常见的脚本语言有Python、Perl、Ruby、Shell等。

  5. 标记语言:标记语言用于描述数据的结构,而不是进行计算或逻辑操作。最典型的例子是HTML(用于描述网页的结构)和XML(用于表示和传输数据)。

  6. 数据库查询语言:用于从数据库中查询和操作数据的语言。例如,SQL(结构化查询语言)用于对关系型数据库进行操作。

    7.面向对象的语言:近十多年来,在处理规模较大的问题时,开始使用面向对象的语 言。C++,C#,Visual Basic和 Java 等语言是支持面向对象程序设计方法的语言。

计算机语言的基本特征是其具有一定的语法和语义规则。语法规定了代码的书写规则,语义则定义了代码的含义和执行结果。计算机语言的发展使得编程变得更加高效和抽象,降低了开发的难度。

C语言的发展及其特点

在这里插入图片描述

C语言的发展历程

C语言起源于20世纪70年代,由美国贝尔实验室的Dennis Ritchie在开发UNIX操作系统的过程中创造出来。它的前身是B语言,B语言本身是由Ken Thompson基于1960年代的BCPL语言(Basic Combined Programming Language)发展而来的。Ritchie在B语言的基础上加入了数据类型、结构化编程等功能,最终形成了C语言。

C语言的正式版本发布于1972年,并在接下来的几年里迅速发展。1978年,Brian Kernighan与Dennis Ritchie合作编写了《C程序设计语言》一书,进一步推动了C语言的普及。这本书成为C语言的经典教材,也让更多程序员学习和使用C语言。1989年,C语言的标准化进程正式开始,1990年发布了ANSI C标准,之后于1999年又发布了C99标准,并在2011年发布了C11标准。这些标准进一步统一了C语言的语法和特性,使得C语言在全球范围内保持了长久的影响力。

C语言的特点
  1. 简洁高效
    C语言设计简洁,直接映射到计算机硬件的操作,使得程序执行效率极高。它允许程序员直接访问内存(通过指针)和硬件资源,这对于开发操作系统、嵌入式系统等对性能要求极高的应用至关重要。

  2. 结构化编程
    C语言支持结构化编程(Structured Programming),鼓励使用函数来组织代码,这使得程序具有清晰的结构和可维护性。程序被分成多个模块和函数,便于代码的复用和调试。

  3. 丰富的数据类型
    C语言支持多种基本数据类型,如整数、字符、浮点数等,并且可以通过结构体联合体等方式定义复杂的数据结构。此外,C语言还提供了指针的概念,使得程序可以直接操作内存,极大提高了灵活性和性能。

  4. 移植性强
    C语言的设计使得它具有很高的移植性。C语言编写的程序可以在不同的硬件平台和操作系统上编译执行,尤其是作为操作系统开发的语言,UNIX和Linux系统就大量使用了C语言。

  5. 低级控制能力
    C语言允许程序员精确控制硬件资源,尤其是通过指针操作和内存管理功能,使得C语言成为操作系统、嵌入式系统、驱动程序开发的首选语言。

  6. 广泛应用
    C语言作为一门通用编程语言,被广泛应用于各种领域,包括系统软件(如操作系统、编译器)、应用软件(如数据库、图形处理软件)以及嵌入式系统、网络编程等领域。C语言对现代编程语言如C++、Java、Python等影响深远,是许多语言的基础。

C语言的简洁性、高效性以及对硬件控制的能力,使它在计算机科学和软件开发中占据着重要的地位。尽管现代编程语言日新月异,但C语言依然是操作系统开发、嵌入式系统以及高性能计算的核心工具。

二、编译器安装

个人用的编译器:CLion 2021.1.3 x64,编译器自己用着顺手就行。
没安装的可以下载,自行安装。

Windows的CLion安装包
链接: https://pan.baidu.com/s/1p3KrFRjNiacs1SpyoWirkw?pwd=2025

Mac的CLion安装包
链接: https://pan.baidu.com/s/1SkvbG0lGJHu1RpqBnFISXQ?pwd=2025

安装教程参考王道教程:
https://pan.baidu.com/s/1Rqg7QcfmmetdCkjKkEXWSA?pwd=2025

三、最简单的C 语言程序

简单的C语言程序介绍

#include <stdio.h>  // 引入标准输入输出库

// 主函数是程序的入口点
int main() {
    // printf是用来输出信息到屏幕的函数
    printf("Hello, World!\n");  // 输出 "Hello, World!" 字符串,并换行
    
    return 0;  // 返回0,表示程序正常结束
}
  1. #include <stdio.h>

    • #include是一个预处理指令,用来引入头文件。在这里,<stdio.h>是一个标准库头文件,里面包含了输入输出相关的函数声明,比如printf函数。我们用它来进行屏幕输出。
  2. int main()

    • main函数是C程序的入口函数,也就是说,程序从这里开始执行。每个C程序都必须包含一个main函数,程序执行时从main函数开始。
    • int表示main函数的返回类型是整数型,程序结束时会返回一个整数值给操作系统。通常,return 0;表示程序正常结束。
  3. printf("Hello, World!\n");

    • printf是标准库函数,用来向屏幕打印信息。在这个例子中,它打印字符串"Hello, World!"
    • \n是一个转义字符,表示换行。这样,输出完字符串后,光标会移动到下一行。
  4. return 0;

    • return 0;表示main函数的返回值是0。根据约定,返回0表示程序正常执行结束。如果返回其他非零值,通常表示程序发生错误。

程序执行流程:

  1. 程序从main函数开始执行。
  2. 执行printf语句,输出Hello, World!到屏幕。
  3. 程序执行到return 0;,表示正常结束并返回操作系统。

输出:

Hello, World!

在这里插入图片描述

求两个整数之和

#include<stdio.h>  // 引入标准输入输出库,允许使用 printf 函数输出内容

// 主函数是程序的入口点
int main() {
    // 在主函数中定义3个整数型变量 a, b 和 sum
    int a, b, sum;

    // 给变量 a 赋值 123
    a = 123;  
    
    // 给变量 b 赋值 456
    b = 456;  

    // 将 a 和 b 相加,并把结果存储在变量 sum 中
    sum = a + b;  

    // 输出 sum 的值,格式为整数(%d),并换行
    printf("sum is %d\n", sum);  

    // 返回0,表示程序正常结束
    return 0;  
}
  1. #include<stdio.h>

    • 这行代码是预处理指令,告诉编译器引入标准输入输出库。这个库中包含了像 printf 这样的标准函数,用来进行屏幕输出。
  2. int main()

    • main函数是C程序的入口,操作系统从这个函数开始执行程序。int表示main函数的返回类型是整数型。
  3. int a, b, sum;

    • 这行声明了三个整数变量:absumab用来存储两个待相加的整数,sum用来存储加法运算的结果。
  4. a = 123;

    • 给变量a赋值为123,即a现在存储的值是123。
  5. b = 456;

    • 给变量b赋值为456,即b现在存储的值是456。
  6. sum = a + b;

    • 计算ab的和,并将结果存储到sum中。此时,sum的值为123 + 456 = 579
  7. printf("sum is %d\n", sum);

    • 使用printf函数输出sum的值。%d是格式控制符,表示输出一个整数。\n表示输出后换行。输出的结果是sum is 579
  8. return 0;

    • return 0;语句表示程序正常结束,返回值为0。这个返回值传递给操作系统,通常0表示程序运行没有错误。

运行结果:

sum is 579

在这里插入图片描述

这个程序的核心逻辑就是进行两个整数的相加,然后把结果输出到屏幕上。通过变量absum来存储相关数据,并使用printf输出结果。

C语言程序的结构

1. C 语言程序的基本组成部分

一个 C 语言程序通常由以下几部分构成:

(1) 源程序文件
  • 源程序文件是 C 语言程序的核心,一个程序可以由一个或多个源程序文件组成。

    • 小型程序通常只有一个源程序文件(例如,例1.1 和 例1.2)。
    • 较大的程序可能包含多个源程序文件,每个源程序文件中包含多个函数,以便于管理和调试。

    一个源程序文件一般包括以下三个部分:

    • 预处理指令:如 #include<stdio.h> 等,用于在编译前引入库文件或定义常量。
    • 全局声明:通常指在函数外部定义的变量(全局变量)。
    • 函数定义:定义程序的具体功能。一个 C 语言程序至少包含一个 main 函数,通常还会包含其他用户自定义的函数。
(2) 预处理指令
  • 预处理指令是 C 语言程序的第一部分,在编译开始之前由预处理器执行。它们不属于程序的可执行部分,但会影响程序的结构。

    • #include:引入头文件,例如 #include<stdio.h> 用来引入标准输入输出库。
    • #define:定义宏常量或宏函数。

    例如,#include<stdio.h> 会使得 stdio.h 中的声明(例如 printf, scanf 等函数的声明)被引入到程序中。

(3) 全局声明
  • 全局声明是指在所有函数外部定义的变量,这些变量在整个源程序文件中都有效。

    • 例如:int a, b, sum; 这样的声明会让变量 a, b, 和 sum 在程序的所有函数中都能访问。

    这种方式使得不同函数之间可以共享数据。但过多的全局变量可能会导致程序难以维护,因此通常推荐局部变量的使用。

(4) 函数定义
  • 函数是 C 语言程序的基本组成单元,每个函数执行特定的操作。程序的执行从 main 函数开始,其他功能可以通过调用用户自定义的函数实现。
    • 每个函数由两部分组成:

      • 函数首部:声明函数的名称、返回类型、参数类型等。
      • 函数体:函数的具体实现,包括声明局部变量和执行语句。

      示例:

      int max(int x, int y) {
          if (x > y) return x;
          else return y;
      }
      
(5) 主函数 (main)
  • C 语言程序的执行总是从 main 函数开始。main 函数是程序的入口,任何其他函数都是在 main 函数中调用的。

    main 函数的形式可以有多种,但一般来说有两种常见的写法:

    int main(void) { ... }  // 无参数的 main 函数
    int main() { ... }      // 也可以没有参数
    

2. C 语言函数的组成

每个 C 语言函数的基本组成包括:

  1. 函数首部:包括函数类型、函数名和参数。
  2. 函数体:分为两部分:
    • 声明部分:声明函数体内用到的局部变量或其他需要的声明。
    • 执行部分:包含具体的操作和语句。

一个函数的格式通常为:

返回类型 函数名(参数类型 参数名, ...) {
    // 声明部分
    // 执行部分
}

例如:

int add(int a, int b) {
    int sum;
    sum = a + b;
    return sum;
}

3. 程序的模块化

在大型程序中,为了提高可维护性和可重用性,通常会将程序分成多个源程序文件(模块)。每个源程序文件都可以包含多个函数,程序编译时会将这些模块编译成目标文件,再通过链接器将目标文件连接成最终的可执行文件。

4. 输入输出操作

C 语言的输入输出操作是通过库函数来实现的,例如 printf() 用于输出,scanf() 用于输入。C 语言本身不提供直接的输入输出功能,所有的输入输出操作都依赖于标准库提供的函数。

5. 程序语句的分号

C 语言的每个语句后面必须加上分号 ;。这在语法上是必需的,因为分号告诉编译器某个语句的结束。
例如:

a = b + c;  // 必须有分号

6. 注释

良好的注释可以提高程序的可读性和可维护性。C 语言的注释有两种方式:

  • 单行注释:// 注释内容
  • 多行注释:/* 注释内容 */
// 这是一个单行注释
/* 这是一个多行注释
   可以写多行内容 */

C 语言程序的基本结构包括源程序文件、预处理指令、全局变量、函数定义等。程序由 main 函数开始执行,可以包含多个其他自定义函数来实现不同功能。通过将程序拆分为多个源程序文件,C 语言支持模块化编程,方便管理和调试。程序中需要合理使用局部变量和全局变量,并通过注释提高代码可读性。在输入输出操作方面,C 语言通过标准库函数 printfscanf 提供了灵活的处理方式。

四、运行C 程序的步骤与方法

用C 语言编写的程序是源程序。计算机不能直接识别和执行用高级语言写的指令,必须用编译程序(也称编译器)把C 源程序翻译成二进制形式的目标程序,然后再将该目标程序与系统的函数库以及其他目标程序连接起来,形成可执行的目标程序。

在编写好一个 C 源程序后,进行编译和运行的过程通常包括以下几个步骤:

(1) 上机输入和编辑源程序

  1. 编写源代码:使用文本编辑器(如 Notepad++、Visual Studio Code、Sublime Text 等)或集成开发环境(IDE,如 Visual Studio、Code::Blocks 等)编写 C 程序。
    • 通过键盘输入源程序,如果发现有错误,需要及时修正。
    • 将源程序保存为 .c 后缀的文件(如 f.c),并存放在自己指定的文件夹内。如果不特别指定,一般会保存在用户当前的工作目录中。

(2) 对源程序进行编译

编译过程通常包含预处理、编译和语法检查等阶段,具体如下:

  1. 预处理:使用 C 编译系统提供的“预处理器”(又称“预处理程序”或“预编译器”)对程序中的预处理指令进行处理。例如,处理 #include <stdio.h> 这样的指令,将 stdio.h 头文件的内容嵌入到源程序中,取代 #include <stdio.h> 这一行。这样程序就变成一个完整的、可以用来进行正式编译的源程序。

  2. 编译:编译器对源程序进行语法检查,判断是否存在语法错误。如果有错误,编译器会输出错误信息,指示出错的行号,帮助开发者找到并修正错误。修正后重新编译,直到没有错误为止。

    • 编译器将源代码转换为二进制形式的目标程序。目标程序通常以 .obj(如 f.obj)为后缀,保存为目标文件。
    • 在 Visual C++ 中,目标文件的后缀通常是 .obj。如果不特别指定,目标文件会存放在当前目录下,并且源文件不会被删除。
  3. 预编译和编译合并:当用编译系统进行编译时,预处理和正式编译通常是合并在一个命令中完成的,用户不需要分别发出预处理和编译的指令。

(3) 进行连接处理

即便编译后的目标文件(例如 .obj)是有效的,它仍然不能直接执行。因为一个程序通常由多个源程序文件构成,编译只生成了一个目标文件,而实际程序是由多个目标文件和库文件共同组成的。为了使程序可执行,必须经过以下步骤:

  1. 连接(Linking):将所有编译后的目标文件和需要的函数库文件连接成一个完整的程序。连接过程会将目标文件和函数库链接起来,生成一个可以被计算机直接执行的可执行程序。

  2. 生成可执行文件:链接过程完成后,会生成一个可执行文件,通常以 .exe 为后缀(如 f.exe)。这是程序最终的输出文件,包含了所有必需的代码和数据,可以被操作系统直接执行。

总结流程

  1. 输入和编辑源程序:使用文本编辑器或 IDE 编写 C 程序,保存为 .c 文件。
  2. 编译源程序
    • 使用编译器进行预处理和编译,检查语法错误并生成目标文件(如 .obj)。
  3. 连接目标文件:将目标文件和库文件进行连接,生成可执行文件(如 .exe)。
  4. 执行程序:运行生成的可执行文件,观察程序输出。

在 Visual C++ 中,通常这些步骤都可以通过 IDE 或命令行工具(如 cl 命令)自动完成。如果使用命令行,则一般可以通过以下方式完成:

  • 编译并生成目标文件

    cl f.c  # 编译源程序并生成目标文件 f.obj
    
  • 链接生成可执行文件

    link f.obj /out:f.exe  # 链接生成可执行文件 f.exe
    

这就是从编写源程序到最终运行程序的整个流程。

在这里插入图片描述

五、程序设计的任务

1. 问题分析

  • 目标: 确定任务的目标,分析所提供的条件,并找出解决问题的规律。
  • 步骤:
    • 对问题进行充分的理解。
    • 提炼出核心问题,忽略不相关的因素。
    • 通过抽象化(如使用数学公式等方式)对问题进行建模,明确应达到的目标。
  • 目的: 通过分析问题,明确问题的核心和最终目标,并为后续步骤(设计算法、编程)奠定基础。

2. 设计算法

  • 目标: 设计出一个解决问题的具体方法和步骤。
  • 步骤:
    • 选择适当的算法,根据问题的特性,决定最合适的解题方法(例如:代数解法、数值解法、图算法等)。
    • 以清晰无误的方式将解决问题的步骤写出来,常使用流程图或伪代码来表示算法的执行过程。
  • 目的: 确定算法是如何在计算机上实现并有效解决问题的,确保方法的可行性与高效性。

3. 编写程序

  • 目标: 根据设计的算法,使用一种高级编程语言(如Python、C++、Java等)编写程序。
  • 步骤:
    • 选择合适的编程语言和开发环境。
    • 根据算法设计,将每一个步骤转化为代码实现。
    • 编写清晰易读的代码,并遵循编程规范。
  • 目的: 实现算法,通过代码将设计方案转化为可以在计算机上运行的程序。

4. 编辑、编译和连接

  • 目标: 将源代码转化为可执行程序。
  • 步骤:
    • 编辑: 通过编程环境或编辑器编写源代码。
    • 编译: 使用编译器将源代码编译成机器语言(如中间代码、字节码或二进制代码)。
    • 连接: 通过连接器将程序中所有模块、库、资源文件等进行链接,生成最终的可执行文件。
  • 目的: 使程序能够在计算机上运行。

5. 运行程序并分析结果

  • 目标: 运行程序并分析输出的结果是否符合预期。
  • 步骤:
    • 执行编译生成的可执行程序。
    • 对照预期输出,检查程序的运行结果。
    • 如果程序没有按预期工作,进行调试(debug)并定位错误源。
  • 调试: 逐步排除程序中的故障,使用调试工具(如断点、日志等)查看程序的执行流程,查找并修复问题。
  • 目的: 确保程序能正确解决问题,并且输出结果合理。

6. 编写程序文档

  • 目标: 为程序用户提供清晰的使用说明和支持文档。
  • 步骤:
    • 编写程序说明书,详细描述程序的功能、运行环境、安装和使用方法。
    • 包括程序所需的输入、输出、注意事项、错误处理等内容。
    • 提供帮助文档(如README文件或内置的帮助功能)。
  • 目的: 使用户能够理解并顺利使用程序,提供必要的支持。

每个阶段的目的都非常明确,从问题的抽象和分析,到程序的调试和测试,再到最终的用户文档编写,这一系列步骤是确保软件能够高效、可靠、并且易于使用的关键。这些步骤对于任何开发项目都是不可或缺的,尤其是在大型软件工程和商业软件产品的开发过程中,测试和文档工作往往占据重要地位。

在这里插入图片描述

六、结语

后续有时间精力会持续分享更多关于大数据领域方面的优质内容,感谢各位的喜欢与支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/945223.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

I2C(一):存储器模式:stm32作为主机对AT24C02写读数据

存储器模式&#xff1a;在HAL库中&#xff0c;I2C有专门对存储器外设设置的库函数 I2C&#xff08;一&#xff09;&#xff1a;存储器模式的使用 1、I2C轮询式写读AT24C02一页数据2、I2C轮询式写读AT24C02多页数据3、I2C中断式写读AT24C02一页数据4、I2C使用DMA式写读AT24C02一…

发表文章去哪里投稿?软文推广常见的几种渠道类型

在互联网高度繁荣的当下&#xff0c;人们获取信息的门槛愈发降低&#xff0c;投放信息渠道的类型也五花八门。但想要获得理想的推广效果&#xff0c;信息投放渠道在其中发挥着不小的作用。发表文章去哪里投稿&#xff1f;下面就让我们来了解一下软文推广常见的几种渠道类型。 一…

QComboBox中使用树形控件进行选择

事情是这样的&#xff0c;要在一个ComboBox中通过树形结构进行内容的选择。 默认的QComboBox展开是下拉的列表。因此需要定制一下。 效果就是这样的 实现上面效果的核心代码就是下面这样的 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { treenew…

Unity 读Excel,读取xlsx文件解决方案

Unity读取表格数据 效果&#xff1a; 思路&#xff1a; Unity可以解析Json&#xff0c;但是读取Excel需要插件的帮助&#xff0c;那就把这个功能分离开&#xff0c;读表插件就只管读表转Json&#xff0c;Unity就只管Json解析&#xff0c;中间需要一个存储空间&#xff0c;使用…

Linux之ARM(MX6U)裸机篇----7.蜂鸣器实验

一&#xff0c;蜂鸣器模块 封装步骤&#xff1a; ①初始化SNVS_TAMPER这IO复用为GPIO ②设置SNVS_TAMPPER这个IO的电气属性 ③初始化GPIO ④控制GPIO输出高低电平 bsp_beep.c: #include "bsp_beep.h" #include "cc.h"/* BEEP初始化 */ void beep_init…

前端学习DAY29(1688侧边栏)

完整代码、 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>1688导航条</title><style>…

NLP模型工程化部署

文章目录 一、理论-微服务、测试与GPU1&#xff09;微服务架构2&#xff09;代码测试3&#xff09;GPU使用 二、实践-封装微服务&#xff0c;编写测试用例和脚本&#xff0c;并观察GPU1&#xff09;微服务封装(RestFul和RPC)2&#xff09;测试编写(unit_test\api_test\load_tes…

重生之我在异世界学编程之数据结构与算法:深入队列篇

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 目录 一、概述二、链表节点结构三、队列结构四、基…

在线机考|2024华为实习秋招春招编程题(最新)——第2题_订单取餐顺序_300分(五)

题目内容 肯德基店销售炸鸡、薯条、可乐三种实物,准备三种食物的速度一样,且三种食物同时制作;三种食物同时制作,按订单顺序进行分发食物。现在有N个订单,每个订单用连续三位数组元素表示,数组的元素是对应食物的份数。N最大为100万,每个订单里每份食物最多100万份。请计…

SAP SD信贷管理后台配置(上)

后台系统功能配置 1、定义信贷控制范围 说明&#xff1a; 信贷控制区域是一个控制单元&#xff0c;用于指定和检查合作伙伴的信用额度&#xff1b;信用控制区域可以包含一个或多个公司&#xff0c;但一个公司无法分配给多个信贷控制区域&#xff1b;在信用控制区域内&#x…

​虚幻引擎UE5渲染不够快的解决办法

​虚幻引擎是由Epic Games公司开发的一款功能强大、全球最开放且先进的实时 3D 创作工具&#xff0c;广泛应用于游戏、影视、建筑可视化、虚拟现实等多个领域&#xff01;虚幻引擎UE5如何实现在网上极速渲染呢&#xff1f;本文提供云渲染和云电脑两套方案用于渲染提速&#xff…

算力股开盘大涨,电光科技7连板

12 月 30 日&#xff0c;尽管北证 50 指数半日跌超 3% 再创调整新低&#xff0c;全市场超 4200 股飘绿&#xff0c;但算力概念股却逆势活跃&#xff0c;电光科技实现 7 连板。以下是对这一现象的具体分析&#xff1a; 原因分析 政策利好&#xff1a;上海近日印发《关于人工智能…

kanzi做3d时钟屏保

用kanzi做一个3d屏保 1. blender制作3d数字模型 下载一些好看的字体文件&#xff0c;用blender建模字体模型&#xff0c;导出fbx格式 2. 新建kanzi工程 导入fbx模型&#xff0c;创建节点&#xff0c;时分秒节点&#xff0c;最上面放一个按钮&#xff0c;用来点击 根据喜好…

logback之自定义pattern使用的转换器

目录 &#xff08;1&#xff09;场景介绍 &#xff08;2&#xff09;定义转换器BizCallerConverter &#xff08;3&#xff09;logback配置conversionRule &#xff08;4&#xff09;测试效果 前文《logback之pattern详解以及源码分析》已经介绍了pattern&#xff0c;以及…

QTDemo:串口调试工具

项目简介 本项目通过QT框架设计一款可以在Windows、Linux等平台的跨平台串口助手&#xff0c;串口功能能够满足基本的调试需求。 本项目采用的版本为&#xff1a;QT5.14 visual studio 2022 进行开发。 项目源码&#xff1a;https://github.com/say-Hai/MyCOMDemo 项目页面&am…

Selenium+Java(21):Jenkins发送邮件报错Not sent to the following valid addresses解决方案

问题现象 小月妹妹近期在做RobotFrameWork自动化测试,并且使用Jenkins发送测试邮件的时候,发现报错Not sent to the following valid addresses,明明各个配置项看起来都没有问题,但是一到邮件发送环节,就是发送不出去,而且还不提示太多有用的信息,急的妹妹脸都红了,于…

AI 智能助手对话系统

一个基于 React 和 Tailwind CSS 构建的现代化 AI 对话系统&#xff0c;提供流畅的用户体验和丰富的交互功能。 项目链接&#xff1a;即将开放… 功能特点 &#x1f916; 智能对话&#xff1a;支持与 AI 助手实时对话&#xff0c;流式输出回答&#x1f4c1; 文件处理&#xff…

Design Compiler:两种工作模式(线负载模式和拓扑模式)

相关阅读 Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482 Design Compiler可以以线负载模式或拓扑模式启动&#xff0c;必须选择其中一个模式。在拓扑模式下还可使用多模式和UPF模式&#xff1a;多模式允许在多种工作…

应急响应练习

文章目录 web1web2 web1 题目要求&#xff1a; 前景需要&#xff1a; 小李在值守的过程中&#xff0c;发现有CPU占用飙升&#xff0c;出于胆子小&#xff0c;就立刻将服务器关机&#xff0c;这是他的服务器系统&#xff0c;请你找出以下内容&#xff0c;并作为通关条件&#…

从零开始构建直播APP美颜功能:直播美颜SDK的开发实践指南

本文将从零开始&#xff0c;详细探讨如何开发一款功能完善的直播美颜SDK&#xff0c;帮助开发者快速集成美颜功能。 一、明确需求与功能设计 开发美颜功能的第一步是明确需求。直播场景中的美颜需求通常包括以下几点&#xff1a; 实时滤镜&#xff1a;提供多种风格的滤镜&am…