当前位置: 首页 > news >正文

2025年3月 CCF GESP C++ 二级 真题解析

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

  1. 第1题

    • 试题:2025年春节有两件轰动全球的事件,一个是DeepSeek横空出世,另一个是贺岁片《哪吒2》票房惊人,入了全球票房榜。下面关于DeepSeek与《哪吒2》的描述成立的是( )。
      • A. 《哪吒2》是一款新型操作系统
      • B. DeepSeek是深海钻探软件
      • C. 《哪吒2》可以生成新的软件
      • D. DeepSeek可以根据《哪吒2》的场景生成剧情脚本
    • 解析:答案选D。DeepSeek是人工智能相关技术,具备内容生成能力,所以可以根据《哪吒2》的场景生成剧情脚本。A选项,《哪吒2》是电影,并非操作系统;B选项,DeepSeek不是深海钻探软件;C选项,《哪吒2》不具备生成新软件的功能。
  2. 第2题

    • 试题:对整型变量N,如果它能够同时被3和5整除,则输出N是含有至少两个质因数。如果用流程图来描述处理过程,则输出语句应该在哪种图形框中( )。
      • A. 圆形框
      • B. 椭圆形框
      • C. 平行四边形框
      • D. 菱形框
    • 解析:答案是C。在常见的流程图符号中,平行四边形框表示输入输出操作,圆形框一般作为起止框,椭圆形框较少用于标准流程图中表示输出,菱形框用于判断条件。所以输出语句应在平行四边形框中。
  3. 第3题

    • 试题:下面C++代码执行,其输出是( )。
    int a=3, b = 4;
    a == b;
    b == a;
    cout << a << ' ' << b << endl; 
    
     - A. 3 4- B. 3 3- C. 4 4- D. 4 3
    
    • 解析:答案为A。a == bb == a是关系判断表达式,它们不会改变ab的值。所以当执行cout << a << ' ' << b << endl;时,输出的是ab初始赋值的值,即3 4
  4. 第4题

    • 试题:求三色彩球的颜色。有数量无限的红(Red)绿(Green)蓝(Blue)三种彩球排成一行,每组先为5个红色球,随后3个绿色,最后为2个蓝色。每个球都有编号,从左到右依次为1,2,3……。输入整数代表编号,求该编号球的颜色。下面是C++代码是实现,正确说法是( )。
    int N, remainder;
    cin >> N;
    remainder = N % 10; 
    if((1 <= remainder) && (remainder<= 5))cout << "Red";
    else if ((6 <= remainder) && (remainder <= 8)) cout << "Green";
    else if ((remainder == 9) || (remainder == 0))cout << "Blue";
    
     - A. 将else if ((remainder == 9) || (remainder == 0)) 修改为else 效果相同- B. 将((1 <= remainder) && (remainder<= 5)) 修改为(remainder <= 5) 效果相同- C. else if ((6 <= remainder) && (remainder <= 8)) 写法错误,应修改为else if (6 <= remainder <= 8)- D. 根据题意remainder = N % 10 应修改为remainder = N / 10
    
    • 解析:答案是A。在原代码逻辑中,remainder取值范围已由前面的条件限定,所以else if ((remainder == 9) || (remainder == 0))改为else效果相同。B选项,修改为(remainder <= 5)会导致判断逻辑错误,无法准确判断红色球的编号范围;C选项,6 <= remainder <= 8在C++中不是合法的条件判断写法;D选项,remainder = N % 10是为了获取编号除以10的余数来确定球的颜色,改为N / 10会改变计算逻辑,无法正确判断颜色。
  5. 第5题

    • 试题:下面C++代码执行后其输出是( )。
    int tnt = 0;
    for (int i = 0; i < 10;i ++) if (i % 3)tnt += 1;elsetnt += 2;
    cout << tnt;
    
     - A. 18- B. 17- C. 16- D. 14
    
    • 解析:答案是D。在for循环中,i从0到9变化。当i % 3不为0时,即i不能被3整除时,tnt加1;当i % 3为0时,即i能被3整除时,tnt加2。0到9中,能被3整除的数有0、3、6、9,这4个数使tnt每次加2,共加8;不能被3整除的数有1、2、4、5、7、8,这6个数使tnt每次加1,共加6。所以tnt = 8 + 6 = 14
  6. 第6题

    • 试题:下面C++代码执行后输出是( )。
    int i;
    for (i = 10; i > 0; i -= 2)break;
    cout << i;
    
     - A. 10- B. 8- C. 0- D. 因为循环执行时会执行break语句而终止循环,所以i的值不确定
    
    • 解析:答案是A。在for循环中,当第一次进入循环时,i = 10,然后执行break语句,直接跳出循环。此时i的值并没有在循环中被改变,所以输出为10。
  7. 第7题

    • 试题:下面C++代码执行后输出是( )。
    int i;
    for (i =0; i < 10; i++){if (i % 3 == 0) continue;cout << "0" << "#";
    }
    if (i >= 10) cout << "1" << "#";
    
     - A. 0#0#0#0#0#0#- B. 0#0#0#0#0#0#0#1#- C. 0#0#0#0#1#- D. 0#0#0#0#0#0#1#
    
    • 解析:答案是D。在for循环中,当i % 3 == 0时,执行continue跳过本次循环,不输出内容;当i不能被3整除时,输出0#。循环结束后,i的值变为10,满足if (i >= 10)的条件,所以再输出1#。依次判断i的值,最终输出0#0#0#0#0#0#1#
  8. 第8题

    • 试题:下面C++代码执行后的输出是( )。
    int i,j; 
    for (i = 0; i < 5; i++)for (j = i; j > 0; j -= 1)printf("%d-",j);
    
     - A. 1-2-1-3-2-1-4-3-2-1- B. 1-2-1-3-2-1-4-3-2-1- C. 0-0-1-0-1-2-0-1-2-3- D. 0-0-1-0-1-2-0-1-2-3
    
    • 解析:答案是A。外层for循环i从0到4,对于每次i的值,内层for循环ji递减到1。当i = 0时,内层循环不执行;当i = 1时,输出1-;当i = 2时,输出2-1-;当i = 3时,输出3-2-1-;当i = 4时,输出4-3-2-1- ,组合起来就是1-2-1-3-2-1-4-3-2-1
  9. 第9题

    • 试题:下面C++代码执行后,将输出能被2整除且除以7余数为2的数。下列选项不能实现的是( )。
    for (int i = 0; i < 100; i++) _______________________
    if( )cout << i << " ";
    
     - A. ((i % 2 == 0) && (i % 7 == 2))- B. ((!(i % 2)) && (i % 7 == 2))- C. ((!(i % 2)) && (!(i % 7)))- D. ((i % 2 != 1) && (i % 7 == 2))
    
    • 解析:答案是C。A选项(i % 2 == 0) && (i % 7 == 2)直接判断i能被2整除且除以7余数为2;B选项!(i % 2)等价于i % 2 == 0,所以((!(i % 2)) && (i % 7 == 2))也能判断;D选项(i % 2 != 1)同样等价于i % 2 == 0((i % 2 != 1) && (i % 7 == 2))能判断。而C选项((!(i % 2)) && (!(i % 7)))表示i能被2整除且能被7整除,不符合要求。
  10. 第10题

    • 试题:下面C++代码用于求1到N之间正整数中含有3的数的个数,比如123和32都是符合条件的数。则前后两处横线应填入代码分别是( )。
    int i,j;
    int cnt = 0, N;
    cout << "请输入正整数N:";
    cin >> N;
    for (i = 1; (j=i) < N; i++)while (j != 0)if (j % 10 == 3){cnt +=1;_____________}else _____________
    cout << cnt << " ";
    - A. continue j /= 10
    - B. break j /= 10
    - C. continue j %= 10
    - D. break j %= 10
    
    • 解析:答案是B。外层for循环遍历1到N,内层while循环用于判断每个数i是否含有3。当j % 10 == 3时,说明该数含有3,cnt加1,然后需要继续判断下一个数,所以用break;接着j /= 10用于去掉j的个位,继续判断剩余部分是否还含有3 。
  11. 第11题

    • 试题:在数学中N!表示N的阶乘,即1到N的乘积,如3!=123 ,且0!=1 。下面的两段C++代码用于求1到N的阶乘之和,如N为3,则结果是9(1!+2!+3!的值)。选项中的说法正确的是( )。
    // 实现1
    int i,N;
    cin >> N;
    int tnt = 0, last = 1;
    for (i = 1; i < N + 1; i++){ last *= i;tnt += last;
    } 
    cout << tnt << endl;
    
    // 实现2
    int i,N;
    cin >> N;
    int tnt = 0, tmp; 
    for (i = 1; i < N + 1; i++){tmp = 1;for (int j = 1; j < i + 1; j++)tmp *= j;tnt += tmp;
    }
    cout << tnt << endl;
    
    - A. 虽然实现1的代码短小,但效率并不高
    - B. 实现2的代码效率更高,且更易于理解
    - C. 实现1因为应用了前项计算结果,计算量更小,因此效率高
    - D. 两种实现,效率几乎一致
    
    • 解析:答案是C。实现1中,last保存了前一项的阶乘结果,每次循环只需要在前一项基础上乘i就得到当前项的阶乘,计算量小;实现2每次都重新计算当前项的阶乘,计算量较大。所以实现1效率更高,C选项正确。
  12. 第12题

    • 试题:哥德巴赫猜想是指大于2的偶数都可以分解为两个质数之和,下面的代码用于验证4 - 1000之内的偶数能否分解为两个质数之和。下面C++代码中假设isPrime()是已经定义好用于判断正整数N是否为质数, 返回bool值。对该段代码, 错误的说法是( )。
      for (i = 4; i < 1000; i += 2) for (j = 2; j < i; j++)if (isPrime(j) && isPrime(i-j)){ printf("%d=%d+%d\n", i, j, i-j);break;}
      
      • A. 将代码isPrime(j) && isPrime(i-j) 修改为 isPrime(j) == true && isPrime(i-j) == true 效果相同
      • B. 代码执行后,输出的一对质数,一定是小的数在前
      • C. 即便将外层循环中i的上界1000修改为很大的整数,也不能说从数学上证明了哥德巴赫猜想
      • D. 根据题意,break语句应该移到if语句块之外
    • 解析:答案是D。A选项,isPrime(j) && isPrime(i - j)isPrime(j) == true && isPrime(i - j) == true效果相同,但表述繁琐;B选项,代码中并没有保证输出的质数对一定是小的数在前;C选项,即使扩大验证范围,也只是有限的验证,不能从数学上严格证明哥德巴赫猜想;D选项,break语句在if语句块内是正确的,找到符合条件的质数对就跳出内层循环 。
  13. 第13题

    • 试题:已知C++代码和执行后的期望输出如下,相关说法正确的是( )。
      int i,j;
      int last, N;
      cout << "请输入层数N:";
      cin >> N;
      last = 1;
      for (i = 1; i < N; i++){for (j = 1; j < i + 1; j++){ if (last > 9)last = 1;cout << last << " ";last += 1;}printf("\n");
      }
      
      • A. 倒数第二行的printf(“\n”) 有错,应该修改为cout << endl; ,printf( )函数不能输出换行
      • B. last += 1 修改为last = last + 1 执行效果相同
      • C. 代码中L1标记行中的j < i + 1 应修改为j < i
      • D. 外层for循环前的last = 1 修改为last = 0 执行效果相同
    • 解析:答案是B。A选项,printf("\n")可以输出换行;B选项,last += 1last = last + 1都实现了last自增1的操作,执行效果相同;C选项,j < i + 1是正确的,用于控制每行输出的数字个数;D选项,last = 1改为last = 0会改变输出的起始数字,执行效果不同。
  14. 第14题

    • 试题:在C++中,( )最适合填入横线处连续5次正确生成1到10之间的随机整数?
      for(int i=0; i<5; i++)
      
      • A. rand( ) % 11
      • B. rand( ) % 10
      • C. rand( ) % 10 + 1
      • D. rand() % 9 + 1
    • 解析:答案是C。rand()函数用于生成随机整数。rand() % 11生成的随机数范围是0到10,不符合生成1到10的要求;rand() % 10生成的随机数范围是0到9;rand() % 9 + 1生成的随机数范围是1到9;而rand() % 10 + 1生成的随机数范围是1到10,满足题目要求 。
  15. 第15题

    • 试题:在C++中,如果a和b均为float类型的变量,那么二者如果相差足够小(比如0.000001),就可以视作相等。比如2.2345676和2.2345677就可以视作相等。下列哪个表达式能用来正确判断“a等于b”( )。
      • A. ((b - a) < 0.000001 )
      • B. ((b - a) <= 0.000001 )
      • C. (abs(b - a) <= 0.000001 )
      • D. (sqrt(b - a) <= 0.000001 )
    • 解析:答案是C。由于浮点数存在精度问题,判断两个浮点数是否相等需要考虑它们差值的绝对值。A选项只判断了b - a小于0.000001,没有考虑a - b的情况;B选项同理,没有全面考虑两个数的差值情况;D选项sqrt(b - a)用于计算b - a的平方根,不符合判断两个浮点数是否相等的逻辑;C选项abs(b - a) <= 0.000001通过计算差值的绝对值并与0.000001比较,可以正确判断两个浮点数是否足够接近从而视作相等 。

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

  1. 第1题
    • 试题:C++、Python都是高级编程语言,它们的每条语句最终都要通过机器指令来完成。( )
    • 解析:答案为√。高级编程语言编写的程序需要经过编译或解释过程,最终转换为机器指令在计算机硬件上执行,所以该说法正确。
  2. 第2题
    • 试题:在C++代码中,假设N为正整数,则N - N / 10 * 10与N % 10都将获得N的个位数。( )
    • 解析:答案是√。在整数运算中,N / 10表示整除,得到的是N去掉个位后的数,再乘以10后用N减去,结果就是N的个位数;N % 10直接计算N除以10的余数,也就是N的个位数,所以该说法正确。
  3. 第3题
    • 试题:C++语句cout << ((10 <= N <= 12)? “true”:“false”)中,假设整型变量N为12,则其输出为true。原因是执行10 <= N后其值为true,true与12相比仍然是true。( )
    • 解析:答案是×。在C++中,10 <= N <= 12这种写法不符合逻辑判断的语法规则。它不会按照预期的“10小于等于N且N小于等于12”来判断。正确的写法应该是(10 <= N) && (N <= 12),所以该说法错误。
  4. 第4题
    • 试题:C++表达式(sqrt(N) * sqrt(N)) == N中的N如果为正整数,则表达式的值为true,相当于开平方后平方是本身。( )
    • 解析:答案是×。由于浮点数精度问题,sqrt(N)返回的结果是一个近似值。例如当N = 2时,sqrt(2)是一个无限不循环小数,sqrt(2) * sqrt(2)得到的结果与2不完全相等,所以该表达式的值不一定为true,该说法错误。
  5. 第5题
    • 试题:下面C++执行后将输出3*2=6 。( )
    int a=2, b = 3;
    a=a - b;
    b=a + b;
    a=b - a;
    printf("%d*%d=%d\n", a, b, a*b);
    
    • 解析:答案是√。这段代码先将ab的值进行交换。执行a = a - b后,a = 2 - 3 = -1;执行b = a + b后,b = -1 + 3 = 2;执行a = b - a后,a = 2 - (-1) = 3。此时a = 3b = 2,输出3*2=6,体现出代码对ab的交换操作,所以说法正确。
  6. 第6题
    • 试题:下面C++代码执行后将输出10。( )
    int i; 
    for (i = 0; i < 10; i++)continue;
    cout << i << endl; 
    • 解析:答案是√。在for循环中,continue语句的作用是跳过本次循环剩余的代码,直接进入下一次循环。i=10时,跳出循环,输出10,说法正确。
  7. 第7题
    • 试题:下面C++代码执行后将输出1。( )
    int i; 
    for (i = 1; i < 10; i++){break;continue;
    }
    cout << i << endl;
    
    • 解析:答案是√。在for循环中,break语句会使程序立即跳出循环,continue语句在break之后不会被执行。当i = 1时,执行break跳出循环,此时i的值为1,但循环已经结束,cout << i << endl;输出的是1,所以该说法正确。
  8. 第8题
    • 试题:下面的C++代码执行后将输出10行"OK"。( )
    for (int i = 0; i < 5; i++) for(int j = 0; j < i; j++)printf("OK\n");
    
    • 解析:答案是√。外层for循环i从0到4,对于i = 0时,内层循环j < i不成立,不会执行内层循环;对于i = 1时,内层循环执行1次;对于i = 2时,内层循环执行2次;对于i = 3时,内层循环执行3次;对于i = 4时,内层循环执行4次。总共执行1 + 2 + 3 + 4 = 10次,但不是输出10OK,所以该说法正确。
  9. 第9题
    • 试题:将下面C++代码中的for循环中的i = 1调整为i = 0的输出结果相同。( )
    int tnt = 0;
    for (int i = 1; i < 5; i++) tnt += i;
    cout << tnt;
    
    • 解析:答案是√。当i = 1时,循环中i从1到4,tnt = 1 + 2 + 3 + 4 = 10;当i = 0时,循环中i从0到4,tnt = 0 + 1 + 2 + 3 + 4 = 10。结果相同,所以该说法正确。
  10. 第10题
    • 试题:下面C++代码执行后将输出0123 。( )
    for (i = 0; i < 5; i++)for (i = 0; i < i; i++)continue;printf("%d\n", i);
    
    • 解析:答案是×。在这段代码中,外层循环i从0到4,内层循环每次重新将i赋值为0,然后判断i < i不成立,直接跳过内层循环。当外层循环结束后,i的值为5,所以最终输出的是5,而不是0123,该说法错误。

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

  1. 第1题:等差矩阵
    • 试题
      • 时间限制:1.0 s
      • 内存限制:512.0 MB
      • 题目描述:小A想构造一个(n)行(m)列的矩阵,使得矩阵的每一行与每一列均是等差数列。小A发现,在矩阵的第(i)行第(j)列填入整数(i×j) ,得到的矩阵能满足要求。你能帮小A输出这个矩阵吗?
      • 输入格式:一行,两个正整数(n),(m)。
      • 输出格式:共(n)行,每行(m)个由空格分割的整数,表示小A需要构造的矩阵。
      • 样例
        • 输入样例1:3 4
        • 输出样例1
          1 2 3 4
          2 4 6 8
          3 6 9 12
      • 数据范围:对于所有测试点,保证 (1 ≤n ≤50) , (1 ≤m ≤50)
    • 解析
      • 解题思路:使用两层嵌套循环遍历矩阵的每一个位置。外层循环控制行数,内层循环控制列数。根据题目要求,在矩阵的第(i)行第(j)列填入整数(i×j) ,然后按格式输出矩阵。
      • 参考代码
      #include <bits/stdc++.h>
      using namespace std;
      int main() {int n, m;scanf("%d%d", &n, &m);assert(1 <= n && n <= 50 && 1 <= m && m <= 50);for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {printf("%d%c", i * j, " \n"[j == m]);}}return 0;
      }
      
  2. 第2题:时间跨越
    • 试题
      • 时间限制:1.0 s
      • 内存限制:512.0 MB
      • 题面描述:假设现在是(y)年(m)月(d)日(h)时,(k)小时后是(y’)年(m’)月(d’)日(h’)时,对于给定的(y),(m),(d),(h),(k),小杨想请你帮他计算出对应的(y’) ,(m’) ,(d’) ,(h’)是多少。
      • 输入格式:输入包含五行,每行一个正整数,分别代表(y) ,(m),(d),(h),(k)。
      • 输出格式:输出四个正整数,代表(y’) ,(m’) ,(d’) ,(h’) 。
      • 样例
        • 输入样例1
          2008
          2
          3
          4
          5
        • 输出样例1:2008 2 29 0
      • 数据范围:对于全部数据,保证有 (2000 ≤y ≤3000) , (1 ≤m ≤12) , (1 ≤d ≤31) , (0 ≤h ≤23) , (1 ≤k ≤24) 。数据保证为合法时间。
      • 提示
        闰年判断规则:
        普通闰年:年份能被4整除,但不能被100整除。
        世纪闰年:年份能被400整除。
        满足以上任意一条规则的年份就是闰年,否则是平年。
    • 解析
      • 解题思路:首先将小时数(h)加上经过的小时数(k),如果(h + k >= 24),则需要对天数进行调整,同时要考虑不同月份的天数以及闰年的情况。月份天数调整后,如果月份超过12,则年份加1,月份重置为1。
      • 参考代码
      #include <iostream>
      using namespace std;
      int main() {int y, m, d, h, k;cin >> y >> m >> d >> h >> k;h += k;if (h >= 24) {h -= 24;d += 1;int days = 0;if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {days = 31;} else if (m == 4 || m == 6 || m == 9 || m == 11) {days = 30;} else if (m == 2) {if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) {days = 29;} else {days = 28;}}if (d > days) {d -= days;m += 1;if (m > 12) {m = 1;y += 1;}}}cout << y << " " << m << " " << d << " " << h << endl;return 0;
      }
      

相关文章:

2025年3月 CCF GESP C++ 二级 真题解析

1. 单选题(每题2分&#xff0c;共30分) 第1题 试题&#xff1a;2025年春节有两件轰动全球的事件&#xff0c;一个是DeepSeek横空出世&#xff0c;另一个是贺岁片《哪吒2》票房惊人&#xff0c;入了全球票房榜。下面关于DeepSeek与《哪吒2》的描述成立的是( )。 A. 《哪吒2》是一…...

回顾Python基础语法,辨析和C++等的不同~

由于很多院校的计科尤其软工专业在本科期间会设置大量有关不同编程语言的语法基础课&#xff0c;虽然整体来看大同小异&#xff0c;但还是有些细节在不同语言有所差异&#xff1a;比如分号在C和Java必须加&#xff0c;Python和JavaScript则不必&#xff0c;而在Matlab中加入则不…...

ubuntu设置开机自动运行应用

系统版本&#xff1a;Ubuntu 24.04.1 LTS桌面版 按招网上的资料显示&#xff0c;当前版本主要的实现方式有以下两种&#xff0c; 方式1&#xff1a;通过图形界面的【启动应用程序】设置开机自启动&#xff1b;方式2&#xff1a;配置为服务实现开机自启动。 但是在我的电脑上方…...

2024年MathorCup数学建模D题量子计算在矿山设备配置及运营中的建模应用解题文档与程序

2024年第十四届MathorCup高校数学建模挑战赛 D题 量子计算在矿山设备配置及运营中的建模应用 原题再现&#xff1a; 随着智能技术的发展&#xff0c;智慧矿山的概念越来越受到重视。越来越多的设备供应商正在向智慧矿山整体解决方案供应商转型&#xff0c;是否具备提供整体解…...

MCU vs SoC

MCU&#xff08;Microcontroller Unit&#xff0c;单片机&#xff09;和SoC&#xff08;System on Chip&#xff0c;片上系统&#xff09;是两种不同的芯片类型&#xff0c;尽管它们都实现了高度集成&#xff0c;但在设计目标、功能复杂性和应用场景上存在显著差异。以下是两者…...

我的uniapp自定义模板

uniapp自定义模板 如有纰漏请谅解&#xff0c;以官方文档为准后面这段时间我会学习小程序开发的知识&#xff0c;会持续更新可以查看我的github&#xff0c;后续我会上传我的uniapp相关练习代码有兴趣的话可以浏览我的个人网站&#xff0c;我会在上面持续更新内容&#xff0c;…...

JVM 类加载器之间的层次关系,以及类加载的委托机制

JVM 类加载器之间存在一种层次关系&#xff0c;通常被称为双亲委派模型 (Parent Delegation Model)。这种层次关系和委托机制是 Java 类加载机制的核心&#xff0c;对于保证 Java 程序的安全性和避免类冲突至关重要。 1. 类加载器的层次关系: JVM 中的类加载器&#xff08;Cl…...

吞吐与时延的博弈,超发与冗余的交换

做传输协议加速&#xff0c;大家默认激进超发原则&#xff0c;却认为冗余双发不道德&#xff0c;其实这两个是一回事&#xff0c;它们本质上是一种 “矩” 内的交换&#xff0c;就像力和力臂交换但乘积不变一样&#xff0c;成本是固定的。 人们更能原谅激进超发是因为人们对吞…...

Jackson使用ObjectNode对象实现JSON对象数据(一):增、删、改、查

Jackson 是一款高性能的 Java JSON 处理库,广泛应用于 Java 对象的序列化(转为JSON)与反序列化(JSON转为对象)‌。作为 Spring MVC 默认的JSON解析器‌,其核心优势包括‌高性能‌、‌灵活性‌和‌丰富的功能支持‌。 Jackson 库中 ObjectNode 是操作 JSON 对象的核心类,…...

【递归、搜索和回溯算法】专题三 :穷举VS暴搜VS深搜VS回溯VS剪枝

回溯算法 回溯算法是一种经典的递归算法&#xff0c;通常用于解决组合问题、排列问题和搜索问题等。 基本思想&#xff1a;从一个初始状态开始&#xff0c;按照一定的规则向前搜索&#xff0c;当搜索到某个状态无法前进时&#xff0c;回退到钱一个状态&#xff0c;再按照其他的…...

Ubuntu如何部署AI-Sphere-Butler(metahuman-stream)

环境&#xff1a; Ubuntu 20.04、22.04 Python3.10 Pytorch 1.12 CUDA 11.3 问题描述&#xff1a; Ubuntu如何部署AI-Sphere-Butler&#xff08;metahuman-stream&#xff08;LiveTalking&#xff09;&#xff09; 解决方案&#xff1a; 一、部署 本次部署以云服务器&a…...

基于开源模型的微调训练及瘦身打造随身扫描仪方案__用AI把手机变成文字识别小能手

基于开源模型的微调训练及瘦身打造随身扫描仪方案__用AI把手机变成文字识别小能手 一、准备工作&#xff1a;组装你的"数码工具箱" 1. 安装基础工具&#xff08;Python环境&#xff09; 操作步骤&#xff1a; 访问Python官网下载安装包安装时务必勾选Add Python to…...

SpringBoot分布式定时任务实战:告别重复执行的烦恼

场景再现&#xff1a;你刚部署完基于SpringBoot的集群服务&#xff0c;凌晨3点突然收到监控告警——优惠券发放量超出预算两倍&#xff01;检查日志发现&#xff0c;两个节点同时执行了定时任务。这种分布式环境下的定时任务难题&#xff0c;该如何彻底解决&#xff1f; 本文将…...

第十二章 | Solidity 智能合约前后端集成实战

&#x1f4da; 第十二章 | Solidity 智能合约前后端集成实战 ——链上合约 前端钱包 用户交互&#xff0c;打造完整 DApp&#xff01; 这章我们正式进入 DApp 全栈开发领域&#xff01; 用 Ethers.js React/Vue 完成前端和合约交互完整的「前端发起交易 → 钱包签名 → 链上…...

sqlite3数据库(文件)损坏恢复方法

问题描述 实时控制系统在运行过程中&#xff0c;我使用DB Browser for SQLite工具写sqlite数据库操作&#xff0c;工具异常退出&#xff0c;再次使用此工具打开数据文件时&#xff0c;数据文件打不开&#xff0c;报错:invalid rootpage&#xff0c;如何处理&#xff1f; 解决…...

正则艺术:深入探讨高级语法——零宽断言与反向引用实战

正则艺术:深入探讨高级语法——零宽断言与反向引用实战 在 Python 这门语言中,正则表达式无疑是一把神奇的钥匙。它不仅能够轻松实现字符串匹配、替换和拆分,更在数据清洗、日志分析、爬虫开发等场景中大放异彩。作为一名拥有多年实战与教学经验的 Python 程序专家,今天我…...

python——UI自动化(1) selenium之介绍和环境配置

一、selenium介绍 selenium是一个第三方库&#xff0c;python有很多库&#xff1b; 1、什么是ui自动化? 通过模拟手工操作用户ui页面的方式&#xff0c;用代码去实现自动化操作和验证的行为。 2、ui自动化的优点&#xff1f; &#xff08;1&#xff09;解决重复性的功能测…...

专题|Python贝叶斯网络BN动态推理因果建模:MLE/Bayes、有向无环图DAG可视化分析呼吸疾病、汽车效能数据2实例合集

原文链接&#xff1a;https://tecdat.cn/?p41199 作为数据科学家&#xff0c;我们始终在探索能够有效处理复杂系统不确定性的建模工具。本专题合集系统性地解构了贝叶斯网络&#xff08;BN&#xff09;这一概率图模型在当代数据分析中的创新应用&#xff0c;通过开源工具bnlea…...

MQ,RabbitMQ,MQ的好处,RabbitMQ的原理和核心组件,工作模式

1.MQ MQ全称 Message Queue&#xff08;消息队列&#xff09;&#xff0c;是在消息的传输过程中 保存消息的容器。它是应用程序和应用程序之间的通信方法 1.1 为什么使用MQ 在项目中&#xff0c;可将一些无需即时返回且耗时的操作提取出来&#xff0c;进行异步处理&#xff0…...

STM32__红外避障模块的使用

目录 一、红外避障模块 概述 二、直接读取OUT引脚电平 三、使用中断方式触发 一、红外避障模块 概述 引脚解释&#xff1a; VCC接3.3V 或 5.0VGND接开发板的GNDOUT数字量输出(0或1&#xff09;; 低电平时表示前方有障碍 ; 通过可调电阻调整检测距离 产品特点&#xff1a; …...

第三天 开始Unity Shader的学习之旅之第二天的补充

Unity Shader的学习笔记 第三天 开始Unity Shader的学习之旅之第二天的补充 文章目录 Unity Shader的学习笔记前言一、Unity 提供的内置文件和变量1. 内置的包含文件2. UnityCG.cginc中的常用结构体 二、Unity 提供的Cg/HLSL语义1. 从应用阶段传递模型数据给顶点着色器时Unity…...

文献分享: ColXTR——将ColBERTv2的优化引入ColXTR

1. ColXTR \textbf{1. ColXTR} 1. ColXTR原理 1.1. ColBERTv2 \textbf{1.1. ColBERTv2} 1.1. ColBERTv2概述 1.1.1. \textbf{1.1.1. } 1.1.1. 训练优化 1️⃣难负样本生成 初筛&#xff1a;基于 BM-25 \text{BM-25} BM-25找到可能的负样本重排&#xff1a;使用 KL \text{KL} KL…...

【第21节】windows sdk编程:网络编程基础

目录 引言&#xff1a;网络编程基础 一、socket介绍(套接字) 1.1 Berkeley Socket套接字 1.2 WinSocket套接字 1.3 WSAtartup函数 1.4 socket函数 1.5 字节序转换 1.6 绑定套接字 1.7 监听 1.8 连接 1.9 接收数据 1.10 发送数据 1.11 关闭套接字 二、UDP连接流程…...

《深度剖析:BERT与GPT——自然语言处理架构的璀璨双星》

在自然语言处理&#xff08;NLP&#xff09;的广袤星空中&#xff0c;BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;与GPT&#xff08;Generative Pretrained Transformer&#xff09;系列模型宛如两颗最为耀眼的星辰&#xff0c;引领…...

景联文科技:以高质量数据标注推动人工智能领域创新与发展

在当今这个由数据驱动的时代&#xff0c;高质量的数据标注对于推动机器学习、自然语言处理&#xff08;NLP&#xff09;、计算机视觉等领域的发展具有不可替代的重要性。数据标注过程涉及对原始数据进行加工&#xff0c;通过标注特定对象的特征来生成能够被机器学习模型识别和使…...

LeetCode 30 —— 30.串联所有单词的子串

题目&#xff1a; 给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。 注意子串要与 words 中的单词完全匹配&#xff0c;中间不能有其他字符&#xff0c;但不需要考虑 words 中单词串联的顺序。 示例 1&#xff…...

【redis】主从复制:单点问题、配置详解、特点详解

文章目录 单点问题什么是主从复制主从模式能解决的问题并发量有限可用性问题 配置建立复制通过配置文件来指定端口配置主从查看集群结构 断开复制 特点安全性只读传输延迟 单点问题 分布式系统中&#xff0c;涉及到一个非常关键的问题&#xff1a;单点问题 某个服务器程序&…...

VSCode创建VUE项目(四)增加用户Session管理

将用户信息存储或者更新到Session sessionStorage.setItem("userID",loginform.value.username); sessionStorage.setItem(loginTime, Date.now()); 获取Session信息 const storedUserInfo sessionStorage.getItem(userID); const loginTime sessionStorage.get…...

Spring Boot(十六):拦截器Interceptor

拦截器的简介 拦截器&#xff08;Interceptor&#xff09;​是Spring框架中的概​念&#xff0c;它同样适​用于Spring Boot&#xff0c;​因为Spring Boot是基于Spring框架的。拦截器是​一种AOP&#xff08;面向切面编程&#xff09;​的轻量级实现方式&#xff0c;它允许我…...

考研复习之队列

循环队列 队列为满的条件 队列为满的条件需要特殊处理&#xff0c;因为当队列满时&#xff0c;队尾指针的下一个位置应该是队头指针。但是&#xff0c;我们不能直接比较 rear 1 和 front 是否相等&#xff0c;因为 rear 1 可能会超出数组索引的范围。因此&#xff0c;我们需…...

sql-labs

p1 sql注入的目的是为了破坏sql语句结构&#xff0c;有三种参数类型&#xff0c;字符型&#xff08;就是一个字符1或者a之类的&#xff09;&#xff0c;字符串&#xff08;“hellow之类的”&#xff09;型&#xff0c;数值型&#xff0c;前两个有闭合&#xff0c;注释符号有# …...

Java 集合框架:从数据结构到性能优化,全面解析集合类

Java 集合框架&#xff08;Java Collections Framework&#xff0c;JCF&#xff09;是 Java 语言中用于存储、操作和管理数据的标准库。它提供了一组通用的接口、类和方法&#xff0c;使开发者能够高效地操作不同类型的数据集合。 本文将结合 Java 集合框架类图&#xff0c;介…...

vulkanscenegraph显示倾斜模型(5.4)-相机操纵器

前言 在VSG&#xff08;Vulkan Scene Graph&#xff09;中&#xff0c;系统支持用户通过鼠标或触摸输入与三维场景进行交互&#xff0c;从而动态控制相机的位置和姿态&#xff0c;实现与三维场景的交互。VSG提供了多种相机操纵器&#xff0c;其中Trackball是一种常见的相机操作…...

两个还算好用的ppt转word和PDF转word的python脚本

PPT转word&#xff1a; import re from pptx import Presentation from docx import Document from docx.shared import Inches from io import BytesIO from PIL import Imagedef clean_text(text):# 使用正则表达式删除控制字符和NULL字节return re.sub(r[\x00-\x1F\x7F], ,…...

用PostgreSQL玩转俄罗斯方块:当SQL成为游戏引擎

当DBA开始摸鱼2025年某深夜&#xff0c;一位不愿透露姓名的DBA为了在监控大屏上隐藏游戏行为&#xff0c;竟用SQL实现了俄罗斯方块&#xff01;从此&#xff0c;SELECT成了方向键&#xff0c;UPDATE成了旋转指令&#xff0c;DELETE成了消除大招。本文将揭秘这个疯狂项目的技术内…...

基于WebAssembly的浏览器密码套件

目录 一、前言二、WebAssembly与浏览器密码套件2.1 WebAssembly技术概述2.2 浏览器密码套件的需求三、系统设计思路与架构3.1 核心模块3.2 系统整体架构图四、核心数学公式与算法证明4.1 AES-GCM加解密公式4.2 SHA-256哈希函数五、异步任务调度与GPU加速设计5.1 异步任务调度5.…...

手撕算法之`vector` 扩容、`string` 分割、链表翻转

手写常见操作:vector 扩容、string 分割、链表翻转 (一)vector扩容 在 C++ 中,vector 的扩容机制是动态数组实现的核心特性,直接关系到性能和内存使用效率。以下是深入剖析: 1. 扩容触发条件 vector<int> v; v.push_back(1); // 当 size() == capacity() 时触发…...

tauri2程序单例模式实现,二次点击桌面图标显示之前最小化的程序并聚焦

官方有这个单例的插件可以直接使用&#xff1a;单例 | Tauri&#xff0c;使用单实例插件确保 Tauri 应用程序在同一时间只运行单个实例。插件已经安装并初始化&#xff0c;应该可以立即正常运行。尽管如此&#xff0c;我们也可以使用 init() 方法来增强它的功能。插件的 init()…...

【AI学习笔记】Coze平台实现将Excel文档批量导入数据库全过程

背景前摇&原视频教程&#xff1a; 最近看到很多同学都在用Coze平台操作数据&#xff0c;我也想了解一下工作流的搭建和数据处理过程&#xff0c;但是一下子又看不懂太复杂的逻辑&#xff0c;于是上B站搜索相关的基础教程。 Coze官方教程&#xff1a; 之前有看过Coze平台…...

c++之迭代器

一.迭代器的基本概念 1.什么是迭代器 迭代器是一种对象&#xff0c;它提供了一种访问容器中各个元素的方法&#xff0c;同时隐藏了容器内部的实现细节。简单来说&#xff0c;迭代器就像是一个指针&#xff0c;它可以指向容器中的某个元素&#xff0c;并且能够通过一些操作&am…...

Elasticsearch 索引

一、简介 在 Elasticsearch 中&#xff0c;索引&#xff08;Index&#xff09;是存储相关文档的地方&#xff0c;类似于关系数据库中的数据库。索引是 Elasticsearch 中最重要的概念之一&#xff0c;用于组织和存储数据。 二、索引的基本概念 索引&#xff08;Index&#xf…...

Java EE(16)——网络原理——TCP协议解析二

4.滑动窗口(效率机制) 上篇博客讲到的确认应答/超时重传/连接管理都是安全机制&#xff0c;但也会降低传输效率。滑动窗口就是在保证可靠传输的基础上&#xff0c;尽可能地提高传输效率。 根据确认应答机制&#xff0c;客户端每发送一个请求都需要收到服务器的确认应答报文后才…...

解决address already in use报错:如何查看占用某个端口的程序并杀死

文章目录 问题背景解决策略概述端口占用诊断步骤 1&#xff1a;确认占用端口的进程步骤 2&#xff1a;确认进程的详细信息 解决端口占用问题方案 1&#xff1a;安全终止进程方案 2&#xff1a;修改应用配置 最佳实践与预防措施端口使用规范开发环境配置 进阶技巧批量处理端口占…...

linux 设置tomcat开机自启动

tomcat自启动配置 1.添加tomcat.service文件 vim /etc/systemd/system/tomcat.service 2.编辑文件内容&#xff0c;路径修改为自己的 [Unit] DescriptionTomcat8 Aftersyslog.target network.target remote-fs.target nss-lookup.target[Service] Typeoneshot ExecStart/us…...

如何配置本地git

配置本地 Git 主要包含设置用户信息、配置 SSH 密钥、设置 Git 仓库等步骤&#xff0c;以下是详细的配置过程&#xff1a; 1. 安装 Git 在开始配置之前&#xff0c;你需要先安装 Git。不同操作系统的安装方式有所不同&#xff1a; Windows&#xff1a;访问 Git 官方下载页面&a…...

VSCode 生成HTML 基本骨架

在VSCode 新建html文件中敲一个英文感叹号 ! <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><titl…...

蓝桥杯备考:DFS暴搜之健康的荷斯坦奶牛

这道题数据量很小很小&#xff0c;我们可以用dfs暴搜来搜索 这是我们的决策树 #include <iostream> using namespace std; int n, m; const int N 45; int rq[N]; int g[N][N]; int cnt; int path; int ret 45; int st; bool check() {for (int i 1; i < n; i){in…...

android adjust 卸载与重装监测

想要洞察应用内用户的留存率,可以通过Adjust 的卸载与重装进行监测 名词解释: 卸载:集成完成后,卸载应用,安装状态为:卸载 重装:如果应用已经卸载,但一段时间后又进行安装,则会被视为重装。 📢📢📢:adjust 文件中说到24 小时后,可以再 adjust 控制台看安装…...

WPF Reactive 数据绑定

文章目录 Combox 绑定List-通过枚举绑定方法一:方法二:Button 绑定TextBlock绑定NumericUpDown绑定Expander绑定checkbox绑定NumericUpDownCombox 绑定List-通过枚举绑定 方法一: ViewControl using Avalonia; using Avalonia.Controls; using Avalonia.Markup.Xaml; usin…...

2.创建Collection、添加索引、加载内存、预览和搜索数据

milvus官方文档 milvus2.3.1的官方文档地址: https://milvus.io/docs/v2.3.x 使用attu创建collection collection必须要有一个主键字段、向量字段 确保字段类型与索引类型兼容 字符串类型&#xff08;VARCHAR&#xff09;通常需要使用 Trie 索引&#xff0c;而不是 AutoInd…...