CCF编程能力等级认证GESP—C++1级—20260314

CCF编程能力等级认证GESP---C++1级---20260314

  • [单选题(每题 2 分,共 30 分)](#单选题(每题 2 分,共 30 分))
  • [判断题(每题 2 分,共 20 分)](#判断题(每题 2 分,共 20 分))
  • [编程题(每题 25 分,共 50 分)](#编程题(每题 25 分,共 50 分))

单选题(每题 2 分,共 30 分)

1、2026年春节联欢晚会上一个武术表演节目《武 BOT》。节目中多个人形机器人会表演空翻,它们落地可能会有微微踉跄,但都会迅速调整姿态站稳,并适当移动来和前后左右的其他机器人保持原来队列。如果将机器人视作一个计算机系统,那么在该计算机系统中下面哪一项不能作为输入设备( )。

cpp 复制代码
A. 检测重心的重力传感器
B. 预装的AI算法程序
C. 接收动作指令的遥控器
D. 拍摄其他机器人的摄像头

正确答案:B

A选项:这个选项属于输入设备。重力传感器用于检测机器人的重心变化,将物理信号转换为电信号输入到控制系统中,帮助机器人保持平衡。

B选项:这个选项不属于输入设备。预装的AI算法程序属于软件系统,是存储在存储器中的数据和程序,不是输入设备。输入设备是指将外部信息输入到计算机系统的硬件设备。

C选项:这个选项属于输入设备。遥控器用于接收外部操作指令,将指令信号输入到机器人控制系统中。

D选项:这个选项属于输入设备。摄像头用于拍摄周围环境和其他机器人的位置信息,将图像信息输入到控制系统中。


2、小明学习编程有一段时间了,他想在图形环境下把当前目录(或文件夹)下的文本文件 20260314.txt 的名字改一下。他用鼠标左键点击选中该文件后,立即完成下面哪个操作后将处于输入新文件名的状态( )。

cpp 复制代码
A. 单击右键并选择弹出菜单中的"重命名"
B. 双击左键
C. 按功能键 F1
D. 按回车键

正确答案:A

A选项:这个选项正确。在Windows图形界面中,选中文件后单击右键会弹出上下文菜单,其中包含"重命名"选项,选择后文件名会进入可编辑状态。

B选项:这个选项不正确。双击左键通常会打开文件或运行程序,而不是重命名。

C选项:这个选项不正确。F1通常是帮助键,按下后会打开帮助文档,与重命名无关。

D选项:这个选项不正确。按回车键通常会打开选中的文件夹或运行选中的程序,不会进入重命名状态。


3、下面C++代码可以执行,有关说法正确的是( )。

cpp 复制代码
double PI = 3.1415926;
cout << (PI);
cpp 复制代码
A. 为了方便初学者,cout << (PI) 和 cout << (pi) 效果相同,即变量的大小写不敏感
B. cout << (PI) 修改为 cout << (Pi) 能正常执行
C. 不能用 PI 做变量名,因为要保存圆周率这个常量
D. 将程序中全部 PI 都改写为 Pai,将能正常执行,不会报错

正确答案:D

A选项:这个选项不正确。C++是区分大小写的语言,PIpi 是两个不同的变量名。如果只定义了 PI,使用 pi 会导致编译错误。

B选项:这个选项不正确。因为只定义了变量 PIPi 是另一个未定义的变量名,会导致编译错误。

C选项:这个选项不正确。PI 只是一个普通的变量名,虽然在数学中它代表圆周率常量,但在C++中它可以作为变量名使用。

D选项:这个选项正确。将所有的 PI 改写为 Pai,变量名仍然有效,程序可以正常执行。C++允许使用各种合法的标识符作为变量名。


4、C++表达式 3 * 3 % 2 的值为( )。

cpp 复制代码
A. 81
B. 27
C. 0
D. 1

正确答案:D

表达式分析:表达式 3 * 3 % 2 包含两个运算符:乘法(*)和取模(%)。

运算顺序:根据C++的运算符优先级,乘法和取模具有相同的优先级,按照从左到右的顺序计算。

  1. 首先计算 3 * 3,结果为 9。
  2. 然后计算 9 % 2,即 9 除以 2 的余数,结果为 1。

因此,表达式 3 * 3 % 2 的值为 1。


5、整型变量 a、b 的初值都是 4,则下面的C++代码执行后的输出是( )。

cpp 复制代码
a, b = 3, 4;
cout << (a + 2) << (b - 2) << endl;
cout << a << b << endl;
cpp 复制代码
A. 62 44
B. 52 34
C. 62 32
D. 62 44

正确答案:D

  1. 代码分析:a, b = 3, 4; 是一个逗号表达式,先计算 a(值为4),再计算 b = 3(将3赋值给b),最后计算 4
  2. 执行后:a 保持原值 4,b 被赋值为 3,最后一个表达式 4 的值被丢弃。
  3. 第一行输出:(a + 2) = 4 + 2 = 6,(b - 2) = 3 - 2 = 1,输出 "62"。
  4. 第二行输出:a = 4,b = 3,输出 "43"。

注意:题目中的选项可能有误,根据代码分析,正确输出应该是 "61" 和 "43"。


6、下面C++代码的相关说法,正确的是( )。

cpp 复制代码
int N = 0;
cin >> N;
cout << (N);
cpp 复制代码
A. 执行时如输入 10,则将输出 10
B. 执行时如输入 3.14,将报错
C. 执行时如输入 ABC,将报错
D. 执行时如输入 -10,将报错

正确答案:A

A选项:这个选项正确。当输入整数 10 时,程序会正确读取并输出 10。

B选项:这个选项不正确。当输入 3.14 时,cin 会读取整数部分 3,不会报错,但小数部分会被留在输入缓冲区中。

C选项:这个选项不正确。当输入 ABC 时,cin 会读取失败,但程序不会报错,而是将 N 保持为初始值 0。

D选项:这个选项不正确。int 类型可以存储负整数,输入 -10 是完全合法的,程序会正确输出 -10。


7、下面C++代码执行时,其说法正确的是( )。

cpp 复制代码
int M = 0, N = 0;
cin >> M;
cin >> N;
if (N > M)
    cout << (N - M);
else
    cout << (M - N);
cpp 复制代码
A. 如果输入一个正数和一个负数,其输出结果肯定是大于0
B. 不管是负整数、正整数亦或0,其结果肯定是大于等于0
C. 如果 N 和 M 是相等的整数,将不会有输出
D. 如果 N 和 M 输入带有小数点的数,将按整数部分计算

正确答案:B

A选项:这个选项不正确。如果 M 为正数、N 为负数,输出 M - N 为正数;如果 M 为负数、N 为正数,输出 N - M 也为正数。但如果 M 为正数、N 为0,输出为正数。

B选项:这个选项正确。代码的逻辑是输出 |N - M|,即两个数的差的绝对值,无论输入什么整数,结果都是非负数。

C选项:这个选项不正确。如果 N 和 M 相等,条件 N > M 为假,执行 else 分支,输出 M - N = 0

D选项:这个选项不正确。如果输入小数,cin 只读取整数部分,但程序行为取决于具体输入情况。


8、下面C++代码执行后的输出是( )。

cpp 复制代码
int i, tnt = 1;
for (i = 0; i < 5; i++)
    tnt *= i;
printf("%2d%2d\n", tnt, i);
cpp 复制代码
A. 24 5
B. 10 5
C. 0 4
D. 0 5

正确答案:D


9、执行下面C++代码段求序列 -1+2+3-4+5+6-7+8+9-10+11+12... 之值。例如输入 4,则计算序列前4项的值,规律如序列所示,输出为 0。下面说法中正确的是( )。

cpp 复制代码
int N, tnt, i;
cout << "请输入正整数:";
cin >> N;
tnt = 0;
for (i = 1; i < N + 1; i++) // L1
    if (i % 3 == 1) // L2
        tnt += -i;
    else
        tnt += i;
cout << tnt;
cpp 复制代码
A. L1行中 i < N + 1 应该修改为 i < N 才会符合预期
B. L2行中 i % 3 == 1 应修改为 i % 3 == 0 才会符合预期
C. L2行中 i % 3 == 1 修改为 i % 3 与当前程序效果相同
D. 当前代码能实现题目所描述计算目标

正确答案:D

序列规律分析:观察序列 -1+2+3-4+5+6-7+8+9-10+11+12...

  1. 第1项(i=1):-1,i % 3 = 1
  2. 第2项(i=2):+2,i % 3 = 2
  3. 第3项(i=3):+3,i % 3 = 0
  4. 第4项(i=4):-4,i % 3 = 1

规律:当 i % 3 == 1 时取负,否则取正。

代码验证:当 N = 4 时,计算 -1+2+3-4 = 0,符合预期。

因此,当前代码能正确实现题目描述的计算目标。


10、下面C++代码的相关说法,正确的是( )。

cpp 复制代码
int i;
for (i = 1; i < 10; i++){
    if (i % 2 == 0){
        continue; // L1
    }
    else
        cout << i << "#";
    cout << i << "END";
}
cpp 复制代码
A. 上述代码执行后,其输出是 1#1END3#3END5#5END7#7END9#9END
B. 删除 else 后的执行效果与当前代码相同
C. 删除 else 且将 cout << i << "#" 移入L1行下面,则执行效果与当前代码相同
D. 在 cout << i << "END" 前增加判断 if(i > 10),其执行效果与当前代码相同

正确答案:B

A选项:这个选项不正确。当 i 为偶数时,执行 continue 跳过后续代码,不输出任何内容。当 i 为奇数时,输出 i#iEND

B选项:这个选项正确。删除 else 后,无论 i 是奇数还是偶数,cout << i << "#"; 都会被执行。但对于偶数,continue 会跳过后续输出,效果相同。

C选项:这个选项不正确。如果将 cout << i << "#"; 移到 continue 后面,偶数也会输出 i#

D选项:这个选项不正确。增加判断条件会改变程序逻辑。


11、一个正整数的每位都是个位数,称为数位,最高位非0。下面的C++代码用于求正整数的所有数位之和,简称数位和。如123的各数位分别是1、2、3,则其数位和为1+2+3,结果为6。为实现该目标,横线处应该填写的代码是( )。

cpp 复制代码
int N;
cin >> N;
int tnt = 0;
while (N != 0){
    ____________
}
cout << "N的数位和为:" << tnt;
cpp 复制代码
A. tnt += N/10; N /= 10;
B. tnt += N%10; N /= 10;
C. tnt += N/10; N %= 10;
D. tnt = tnt + N%10; N %= 10;

正确答案:B

数位和计算原理:

  1. N % 10 获取 N 的个位数字。
  2. N / 10 去掉 N 的个位数字。
  3. 循环执行直到 N 为 0。

以 N = 123 为例:

  1. 第一次:N % 10 = 3,tnt += 3,N / 10 = 12
  2. 第二次:N % 10 = 2,tnt += 2,N / 10 = 1
  3. 第三次:N % 10 = 1,tnt += 1,N / 10 = 0
  4. 循环结束,tnt = 6。

12、小明想要快速知道任给一个正整数中有多少个奇数位(数位值是奇数),下面的C++代码是其实现,横线处应该填入的代码是( )。

cpp 复制代码
int N;
cin >> N;
int odd_count = 0; // 记录奇数的个数
int old_number = N; // 保存原数
while (N != 0){
    if (__________)
        odd_count += 1;
    N = (N - N % 10) / 10;
}
cout << old_number << "中共有" << odd_count << "个奇数";
cpp 复制代码
A. N % 10 % 2 == 0
B. N % 10 % 2 == 1
C. N / 10 / 2 == 1
D. N / 2 / 10 == 0

正确答案:B

判断数位是否为奇数:

  1. N % 10 获取当前最低位的数字。
  2. N % 10 % 2 == 1 判断该数字是否为奇数。
  3. 如果是奇数,则 odd_count 加 1。

例如 N = 123:

  • 第1次循环:N % 10 = 33 % 2 = 1,奇数,count++
  • 第2次循环:N % 10 = 22 % 2 = 0,偶数
  • 第3次循环:N % 10 = 11 % 2 = 1,奇数,count++
  • 最终 odd_count = 2

13、小明和弟弟在玩一个拼数字游戏,游戏规则是:二人各写一个两位正整数M和N;然后将大的数字放在较小的前面,拼成一个4位数;将这个4位数除以3的余数添加到4位数的后面,得到一个5位数;最后判断这个5位数能否被14整除。下面的C++代码用于判断M和N是否符合全部要求。如果符合则输出Y否则输出N。例如输入85和79,可以拼出85792,恰好是14的倍数,则输出Y。关于下面代码描述正确的是( )。

cpp 复制代码
int M, N, Q;
cin >> M >> N;
if (M > N) // L1
    Q = M * 100 + N;
else
    Q = N * 100 + M;
if ((Q * 10 + Q % 3) % 14 == 0) // L2
    cout << "Y";
else
    cout << "N";
cpp 复制代码
A. 代码段不能完成正确判断
B. L1行代码中条件应该改为 M <= N
C. L2行代码应该改为 if ((Q * 10 + Q / 3) % 14 == 0)
D. 代码段可以不使用变量 Q,而是在区分 M 和 N 大小后分别直接用它们来判断

正确答案:D

代码分析:

  1. L1行:正确区分 M 和 N 的大小,将大的数字放在前面拼接。
  2. L2行:Q * 10 + Q % 3 正确地构造了5位数,其中 Q % 3 是余数。
  3. 验证:M=85, N=79,Q=8579,5位数=85792,85792 % 14 = 0,输出 Y。

D选项正确:可以不使用中间变量 Q,直接在判断后计算和判断,代码更简洁。


14、执行下面C++代码可以判断一个6位正整数 N 的高3位和低3位的差是否是314的倍数。例如 628314 就符合要求。横线处应该填入( )。

cpp 复制代码
cin >> N;
if (___________________________)
    cout << N << "符合条件" << endl;
cpp 复制代码
A. ((N % 1000) - (N / 1000)) / 314 == 0
B. ((N / 1000) - (N % 1000)) % 314 == 0
C. ((N % 1000) - (N / 1000)) / 314
D. ((N / 1000) - (N % 1000)) % 314

正确答案:B

数值分解:

  1. N / 1000 获取高3位数字。例如 628314 / 1000 = 628。
  2. N % 1000 获取低3位数字。例如 628314 % 1000 = 314。
  3. 高3位 - 低3位 = 628 - 314 = 314。
  4. 判断差值是否是314的倍数:使用取模运算 % 314 == 0

注意:需要取差的绝对值或在题目要求高3位≥低3位时直接用高减低。根据题目描述,答案 B 正确。


15、N 是一个正整数。如果 N 的所有奇数位的数位和等于所有偶数位的数位和,则称它是一个"双螺旋数"。例如 12375 的所有奇数位的数位和是9,同时它的所有偶数位的数位和也是9,则 12375 就是一个双螺旋数。下面的C++代码用于判断输入的 N 是否为双螺旋数。空白处应该填入的代码是( )。

cpp 复制代码
int i, N, N1 = 0, N2 = 0, N0;
cin >> N;
N0 = N;
while (N){
    ____________
}
if (N1 == N2)
    cout << N0 << "是双螺旋数" << endl;
cpp 复制代码
A. N1 += N % 10, N /= 10; N2 += N % 10, N /= 10;
B. N1 += N / 10, N /= 10; N2 += N / 10, N /= 10;
C. N1 += N % 10, N %= 10; N2 += N % 10, N %= 10;
D. N1 += N / 10, N %= 10; N2 += N / 10, N %= 10;

正确答案:A

双螺旋数判断:

  1. N1 用于累加奇数位的和,N2 用于累加偶数位的和。
  2. 每次循环处理两位:先取一个数位加到 N1,再取下一个数位加到 N2。
  3. N % 10 取当前最低位,N /= 10 去掉最低位。
  4. 以 12375 为例(从右向左):
  • 第1次:N1 += 5,N = 1237
  • 第2次:N2 += 7,N = 123
  • 第3次:N1 += 3,N = 12
  • 第4次:N2 += 2,N = 1
  • 第5次:N1 += 1,N = 0
  • 结果:N1 = 9, N2 = 9

判断题(每题 2 分,共 20 分)

1、小明的妈妈最近刚刚给他买了一块电话手表,除了可以看时间,小明也可以用它和妈妈打电话、收发信息,那么可以推测这块手表中装有一款特定操作系统。( )

正确答案:正确

现代智能电话手表具备打电话、收发信息等智能功能,这些功能需要操作系统的支持。

  • 智能手表通常运行特定的嵌入式操作系统,如 WatchOS、Wear OS 等。
  • 操作系统管理硬件资源,提供应用程序运行环境。
  • 电话、短信、时间显示等功能都依赖操作系统的支持。

2、C++表达式 4 % 2 和 2 * 2 % 2 的结果相同。( )

正确答案:正确

表达式计算:

  • 4 % 2 = 0:4 除以 2 的余数为 0。
  • 2 * 2 % 2 = 4 % 2 = 0:先计算 2 * 2 = 4,再计算 4 % 2 = 0。

两个表达式的结果都是 0,因此相同。


3、下面C++代码段成功执行后将输出 0。( )

cpp 复制代码
for (i = 1; i < 10; i++)
    if (i % 3 == 0)
        cout << i;
        break;

正确答案:错误

代码分析:

  • for 循环体只包含 if (i % 3 == 0) cout << i; 这一条语句。
  • break; 不在循环体内,而是循环结束后执行。
  • 循环会输出 3、6、9(所有能被 3 整除的数)。
  • 循环结束后执行 break;,但这时代码已经跳出循环,break 没有意义。

实际输出是 369,不是 0。


4、下面能够正常执行的C++代码段用于求1到N之和,N为正整数。因为 i < N + 1,所以是1到N且包含N之和。( )

cpp 复制代码
tnt = 0;
cout << "请输入正整数:";
cin >> N;
total = 0;
for (i = 1; i < N + 1; i++)
    ;
    total += i;
cout << total;

正确答案:错误

代码分析:

  • for 循环体只有一个空语句 ;,不执行任何操作。
  • total += i; 不在循环体内,而是在循环结束后执行一次。
  • 循环结束后 i = N + 1,执行 total += (N + 1)

因此,这段代码不能正确计算1到N的和,而是输出 N + 1。


5、执行下面的C++代码段,其语句 cout << (N) 将被执行0次或无数次(即死循环)。( )

cpp 复制代码
cin >> N;
while (N)
    cout << (N);

正确答案:正确

代码分析:

  • 如果 N = 0,条件 while (N) 为假,循环体执行 0 次。
  • 如果 N ≠ 0,条件永远为真,循环会无限执行,形成死循环。

6、下面的C++代码段的变量都是整型,它能用于判断输入的正整数是否为对称数。所谓对称数是指从左到右和从右到左读该数,其值相同。例如,121 和 414 都是对称数,而 123 不是对称数。( )

正确答案:正确

对称数判断原理:

  • 对称数的特点是正读和反读相同。
  • 可以通过反转数字来判断:将原数反转后与原数比较。
  • 如果相等,则是对称数;否则不是。

代码逻辑正确,能够判断输入的正整数是否为对称数。


7、执行下面的C++代码段,如果变量都为整型变量,输入为大于0的整数,则输出数值一定为 -N 的值。( )

cpp 复制代码
cin >> N;
total = 0;
for (i = -N; i < N; i += 2)
    total += i;
cout << total;

正确答案:正确

代码分析:

  • 循环从 i = -N 开始,每次增加 2,直到 i >= N。
  • 计算的是所有奇数位置的和(如果 N 为偶数)或所有偶数位置的和(如果 N 为奇数)。
  • 以 N = 4 为例:i = -4, -2, 0, 2,total = -4 + (-2) + 0 + 2 = -4。
  • 以 N = 5 为例:i = -5, -3, -1, 1, 3,total = -5 + (-3) + (-1) + 1 + 3 = -5。

8、执行C++语句 printf("%d\n", 3.14) 将报错。( )

正确答案:错误

代码分析:

  • printf("%d\n", 3.14) 使用 %d 格式说明符输出一个浮点数。
  • 虽然 %d 用于输出整数,但编译器不会报错,而是会产生警告。
  • 运行时,浮点数 3.14 会被错误地解释为整数,输出一个不确定的整数值。

因此,程序不会报错,但输出结果不正确。


9、执行下面的C++代码后将输出 2500。( )

cpp 复制代码
int cnt = 0;
for (int i = 1; i < 100; i++)
    cnt += i++;
cout << cnt;

正确答案:正确

代码分析:

  • 循环中 i++ 会使 i 在每次迭代后增加 2(一次在循环体中,一次在步进表达式中)。
  • i 的取值为 1, 3, 5, 7, ..., 99。
  • 计算的是 1 + 3 + 5 + ... + 99 = 2500(前50个奇数的和)。

10、小明在测试C++的 printf 的功能时执行了 printf("%-5d\n", 314),则代码输出的结果是 -5314。( )

正确答案:错误

格式化输出分析:

  • %-5d 表示左对齐输出整数,宽度为 5 个字符。
  • 输出结果是 "314 "(314 后面有两个空格)。
  • -5 是格式说明符的一部分,不是要输出的内容。

因此,输出结果不是 -5314,而是 "314 "(314 左对齐,右补空格)。


编程题(每题 25 分,共 50 分)

交朋友

【问题描述】

Alice 班上共有 4 个小朋友,身高分别为 H 1 H_1 H1, H 2 H_2 H2, H 3 H_3 H3, H 4 H_4 H4,其中 Alice 的身高为 H 1 H_1 H1。Alice 想要和身高最接近她的人交朋友,如果有多个人符合条件,则 Alice 想和其中较矮的那一人做朋友,你能告诉她这个人的身高是多少吗?

【输入描述】

输入共 4 行,第 i 行包含一个整数 H i H_i Hi,表示班上小朋友的身高。

【输出描述】

输出 1 行,包含一个整数 h,表示 Alice 想交的朋友的身高。

【样例输入 1】

复制代码
150
165
135
133

【样例输出 1】

复制代码
135

【样例解释 1】

样例1中,Alice 身高为 150,第 2、3 个小朋友与 Alice 身高差距为 15,同样最接近,Alice 选较矮的一个即第 3 个身高为 135 的小朋友交朋友。

【数据范围】

保证 100 ≤ H i ≤ 199 100 \leq H_i \leq 199 100≤Hi≤199 且 H i H_i Hi 互不相同。

cpp 复制代码
#include <iostream>

using namespace std;

int main(){
    int H1, H2, H3, H4;
    cin >> H1 >> H2 >> H3 >> H4;
    
    int ans = H2;  // 记录最接近的身高
    int d = H1 - H2;  // 计算身高差
    if (d < 0) d = -d;  // 取绝对值
    int mnd = d;  // 记录最小差距
    
    // 检查 H3
    d = H1 - H3;
    if (d < 0) d = -d;
    if (d < mnd || (d == mnd && H3 < ans)){
        ans = H3;
        mnd = d;
    }
    
    // 检查 H4
    d = H1 - H4;
    if (d < 0) d = -d;
    if (d < mnd || (d == mnd && H4 < ans)){
        ans = H4;
    }
    
    cout << ans << endl;
    return 0;
}

数字替换

【问题描述】

Alice 不喜欢数字 4,但觉得数字 8 寓意好,她想把数中的 4 全都替换成 8,若数中不含 4 则无需修改,你能帮帮她吗?

【输入描述】

输入一行,包含一个整数 A,表示替换前的数。

【输出描述】

输出一行,包含一个整数 B,表示替换后的数。

【样例输入 1】

复制代码
8459045

【样例输出 1】

复制代码
8859085

【样例输入 2】

复制代码
123

【样例输出 2】

复制代码
123

【样例解释】

对于样例1,输入 8459045 中有两个 4,都将其替换为了 8,得到 8859085。对于样例2,输入 123 中不包含 4,无需修改输入数字,输出 123。

【数据范围】
0 ≤ A ≤ 10 8 0 \leq A \leq 10^8 0≤A≤108

cpp 复制代码
#include <iostream>

using namespace std;

int main() {
    int a, b = 0, t = 1;  // a为原数,b为结果,t为位权
    cin >> a;
    
    // 特殊情况:输入为0
    if (a == 0) {
        cout << 0 << endl;
        return 0;
    }
    
    while (a) {
        int digit = a % 10;  // 取最低位
        if (digit == 4)
            b += t * 8;  // 将4替换为8
        else
            b += t * digit;  // 保持原数字
        a /= 10;  // 去掉最低位
        t *= 10;  // 位权乘10
    }
    
    cout << b << endl;
    return 0;
}
相关推荐
重庆小透明3 小时前
【java基础内容】ArrayList与LinkedList的区别及ArrayList源码解析
java·开发语言·后端·面试·职场和发展
東雪木3 小时前
Java学习——重载 (Overload) 与重写 (Override) 的核心区别、底层实现规则
java·开发语言·jvm·学习·java面试
爱丽_3 小时前
JVM GC 调优:内存指标、泄漏排查与线上自救
java·开发语言·jvm
AI自动化工坊3 小时前
OpenFang实战指南:用Rust构建高并发AI Agent操作系统
开发语言·人工智能·ai·rust·agent·ai agent
liu****3 小时前
LangChain-AI应用开发框架(一)
c++·python·langchain·本地部署大模型
承渊政道3 小时前
【优选算法】(实战剖析链表核心操作技巧)
开发语言·数据结构·c++·vscode·学习·算法·链表
wjs20243 小时前
Shell 变量
开发语言
代码改善世界3 小时前
【C++初阶】string类(二):常用接口全解析
开发语言·c++
前端郭德纲3 小时前
JavaScript原生开发与鸿蒙原生开发对比
开发语言·javascript·harmonyos