【C语言】详解计算机二级c语言程序题
文章目录
- 前言
- 资料相关
- 程序题 一(字符串)
- 程序题 二(数组)
- 程序题 三(基础)
- 程序题 四(结构体)
- 程序题 五(结构体)
- 程序题 六(基础)
前言
最近计算机二级的c语言快要考试了,我从网上摘抄了一些c语言二级的原题,并利用gpt做了一些解析来理解这些问题,以便大家能够更好的学习。
同时,我将问题答案设置为白色(只需要选中就可以查看),大家可以在理解问题的同时进行练习。
资料相关
- Dotcpp——里面有C语言原题以及众多高校试卷,可以用来练习
- 计算机二级考试官网——没有报名的同学千万别忘了

- 资源绑定里面有c语言计算机二级的考纲(2023版)
程序题 一(字符串)
给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。
例如,s所指字符串为:baacda,c中的字符为:a,执行后s所指字符串为:baaaacdaa。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
void fun(char *s, char c)
{int i, j, n;for(i=0; s[i]!=___1___ ; i++)if(s[i]==c){n=___2___ ;while(s[i+1+n]!='\0') n++;for(j=i+n+1; j>i; j--) s[j+1]=s[j];s[j+1]=___3___ ;i=i+1;}
}
int main()
{char s[80]="baacda", c;printf("\nThe string: %s\n",s);printf("\nInput a character: ");scanf("%c",&c);fun(s,c);printf("\nThe result is: %s\n",s);return 0;
}
- 正确答案: ‘\0’
- 正确答案: 0
- 正确答案: c
-
fun函数接受一个字符串s和一个字符c作为参数。 -
for循环遍历字符串s直到遇到字符串结束符\0。 -
在循环中,如果当前字符与目标字符
c相等,就执行以下操作:- 初始化变量
n为 0。 - 使用
while循环找到目标字符后的子串的长度,即n。 - 从字符串末尾开始,将原字符串中的字符向后移动一个位置,为插入字符
c空出位置。 - 在原字符位置插入字符
c。
更新循环变量i,以跳过刚刚插入的字符,避免重复处理。
- 初始化变量
-
main函数中声明一个字符串s并初始化为"baacda",然后接受用户输入的字符c。- 调用
fun函数对字符串进行处理。最后打印处理后的字符串。
- 调用
所以,如果用户输入字符 a,程序将在字符串中找到每个 a,并在其后插入一个额外的 a,最终输出结果为 “baaaacdaa”。
程序题 二(数组)
在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。给定程序MODI1.C中函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。
例如:数组中元素中的值依次为:39,-47,21,2,-8,15,0,则程序的运行结果为:19.250000。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
double fun ( int x[])
{____1____int c=0, i=0;while (x[i] != 0){if (x[i] > 0){sum += x[i]; c++;}i++;}____2____return sum;
}
int main()
{int x[1000];int i=0;printf( "\nPlease enter some data (end with 0): " );do{scanf("%d", &x[i]);}while (x[i++] != 0);printf("%f\n", fun ( x ));return 0;
}
- 正确答案: double sum=0;
- 正确答案: sum /= c;
-
函数 fun:
double fun(int x[]): 这是一个函数原型,接受一个整数数组x作为参数,返回一个双精度浮点数(double)表示正数的平均值。double sum = 0.0;: 在函数内部声明一个sum变量并初始化为0.0,用于存储正数的总和。int c = 0, i = 0;: 声明两个整数变量c和i,其中c用于计数正数的个数,i用于迭代数组元素。while (x[i] != 0): 进入一个while循环,循环条件是数组元素不等于0。这是因为输入的数组以0作为结束标志。if (x[i] > 0) { sum += x[i]; c++; }: 如果当前数组元素为正数,则将其加到sum中,并增加正数计数器c。i++;: 增加迭代器i,移动到下一个数组元素。sum /= c;: 计算正数的平均值,将总和sum除以正数的个数c。return sum;: 返回计算得到的正数平均值。
-
主函数
main:int x[1000];: 在主函数中声明一个大小为1000的整数数组x。int i = 0;: 声明整数变量i,用于迭代数组元素的索引。printf("\nPlease enter some data (end with 0): ");: 打印提示信息,要求用户输入数据,直到输入0为止。do { scanf("%d", &x[i]); } while (x[i++] != 0);: 使用do-while循环从键盘读取整数,将它们存储到数组中,直到输入0为止。注意,这里使用i++来实现读取下一个数组元素,并检查该元素是否为0来决定是否继续循环。printf("%f\n", fun(x));: 调用fun函数计算数组中正数的平均值,并使用printf打印结果。
程序题 三(基础)
编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。
S = 1 + 1 1 + 2 + 1 1 + 2 + 3 + … + 1 1 + 2 + 3 + … + n S = 1 + \frac{1}{1+2} + \frac{1}{1+2+3} + \ldots + \frac{1}{1+2+3+ \ldots + n} S=1+1+21+1+2+31+…+1+2+3+…+n1
例如:若n的值为11时,函数的值为:1.833333
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
float fun(int n)
{____1________2____for(____3____){____4____for(____5____)t+=j;____6____}return s;
}
main()
{int n;float s;printf("\nPlease enter N:");scanf("%d", &n);s = fun(n);printf("the result is: %f\n", s);
}
- 正确答案: int i, j, t;
- 正确答案: float s=0;
- 正确答案: i=1;i<=n;i++
- 正确答案: t=0;
- 正确答案: j=1;j<=i;j++
- 正确答案: s=s+1./t;
-
变量声明:
int i, j, t; float s = 0;在fun函数开始处,声明了三个整型变量i、j和t,以及一个浮点型变量s。这些变量用于循环和计算。 -
循环
-
外部循环:
for (i = 1; i <= n; i++),使用 for 循环,变量i从1开始递增,直到达到传入的n的值。 -
内部循环:
for (j = 1; j <= i; j++);在外部循环中,使用 for 循环,变量 j 从1开始递增,直到达到 i 的值。这个内部循环用于计算公式中的分母部分的和。- 内部循环中的累加:
t += j;在内部循环中,变量t用于累加j的值,即计算公式中的分母部分的和。
- 内部循环中的累加:
-
计算公式中的分数部分:
s += 1.0 / t;在每次外部循环结束时,通过将1除以 t 的值,得到公式中的分数部分,然后将其累加到变量s中。
-
-
返回最终结果:
return s;函数fun返回计算得到的s的值。 -
用户输入和输出:
int main() {// ...printf("\nPlease enter N:");scanf("%d", &n);s = fun(n);printf("The result is: %f\n", s);// ... }主函数负责接收用户输入的
n,调用fun函数计算结果,并输出最终的计算结果。
程序题 四(结构体)
给定程序BLANK1.C中,函数fun的功能是在数组中找出两科成绩之和最高的学生并返回其在数组中的下标。对所给函数int fun(STU*d,int n),主函数传给形参d的是学生数组名,而传给形参n的是该数组中学生的个数。
例如,若学生数组数据为:
2016500301李清水83 92
2016500336 刘世才85 94
2016500371王子晨88 88
则调用该函数后,程序输出为:2016500336刘世才85 94
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
typedef struct stu
{char ID[30];char name[20];int score[2];
} STU;
int fun(STU *d,int n)
{int i,m;/******found******/______(1)______;for(i=1;i<n;i++)/******found******/if(d[i].score[0]+d[i].score[1]>________(2)________)m=i;/******found******/______(3)______;
}void main()
{STU a[10]={ "2016500301","李清水",83,92,"2016500336","刘世才",85,94,"2016500371","王子晨",88,88};int i,n=3;i=fun(a,n);printf("%30s%20s%4d%4d",a[i].ID,a[i].name,a[i].score[0],a[i].score[1]);printf("\n");
}
- 正确答案: m=0
- 正确答案: d[m].score[0]+d[m].score[1]
- 正确答案: return m
-
结构体定义:
typedef struct stu {char ID[30];char name[20];int score[2]; } STU;定义了一个结构体 stu,用于存储学生的信息,包括学号(ID)、姓名(name)和两科成绩(score)。
-
函数定义:
int fun(STU *d, int n) {int i, m;/******found******/m = 0; // 初始化 m 为数组的第一个学生的下标for (i = 1; i < n; i++)/******found******/if (d[i].score[0] + d[i].score[1] > d[m].score[0]+d[m].score[1])m = i; // 更新 m 为当前学生的下标,如果其成绩之和更高/******found******/return m; // 返回最终找到的学生的下标 }函数 fun 接收一个指向学生数组的指针 d 和数组中学生的个数 n。函数通过遍历数组找到两科成绩之和最高的学生,并返回其在数组中的下标。
-
主函数中的调用和输出:
void main() {STU a[10] = { "2016500301", "李清水", 83, 92, "2016500336", "刘世才", 85, 94, "2016500371", "王子晨", 88, 88 };int i, n = 3;i = fun(a, n);printf("%30s%20s%4d%4d", a[i].ID, a[i].name, a[i].score[0], a[i].score[1]);printf("\n"); }在主函数中,定义了一个包含三个学生信息的数组 a,然后调用了 fun 函数,得到两科成绩之和最高的学生的下标,最后输出该学生的信息。
程序题 五(结构体)
给定程序MODI1.C中,函数void list(MYDATA *h)的功能是:列出带头结点单链表中所有没有删除标记的数据。调用这个函数时,传给形参h的是指向单链表头结点的指针。
例如,当10个结点的数据为1,2,3,4,5,6,7,8,9,10时,输出将是:3 4 6 7 8 9 10
其中,各个数据所对应的删除标记是由随机数产生的。
请改正函数list中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数和creat函数,不得增行或删行
#include<stdio.h>
#include<stdlib.h>
typedef struct dat
{char deleted; //是否删除:0-未删除,1-删除int data;struct dat* next;
} MYDATA;
void list(MYDATA *h)
{
/******found******/MYDATA p;p=h->next;while(p!=NULL){/******found******/if(p->data==0){printf("%d ",p->data);}
/******found******/p=next;}
}void creat(MYDATA *h,int *d,int n)
{MYDATA *p, *q;int i=0,del;q=h;while(n>0){p=( MYDATA *)malloc(sizeof(MYDATA));del=rand()%2;p->data=d[i];p->deleted=del;p->next=q->next;q->next=p;q=p;n--;i++;}
}
void main()
{MYDATA *head;int n=10,dd[]={1,2,3,4,5,6,7,8,9,10};head=(MYDATA *)malloc(sizeof(MYDATA));head->next=NULL;creat(head,dd,n);list(head);
}
- 正确答案: MYDATA *p;
- 正确答案: if(p->deleted==0)
- 正确答案: p=p->next;
-
函数定义:
void list(MYDATA *h){ /* ... */}函数list的目标是列出带头结点单链表中没有删除标记的数据。 -
局部变量声明:
MYDATA *p; p=h->next;在函数内部声明了一个MYDATA类型的结构指针变量p,并将其初始化为链表的第一个结点。 -
遍历链表:
while(p!=NULL){ /* ... */ }使用while循环遍历链表,访问每个结点的数据。 -
判断删除标记:
if(p->deleted==0) { printf("%d ",p->data); }在循环中,如果当前结点的数据没有删除标记,就输出该数据。 -
移动到下一个结点:
p=p->next;移动到链表中的下一个结点。这里应该使用p=p->next;来正确更新 p。 -
主函数中的调用和输出:
list(head);在主函数中调用list函数,输出链表中没有删除标记的数据。
程序题 六(基础)
请编写函数void fun(int *dp,int n,int upordown),其功能是,找出dp所指数组中的最小或最大值,并与其第1个元素交换。形参n为元素的个数,形参upordown为查找标志:值为0时找最小值;值为1时找最大值。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include <stdio.h>
#include <stdlib.h>
#define N 10
#pragma warning (disable:4996)
void NONO(FILE *fp, int pd[], int n);void fun (int *dp,int n,int upordown)
{int temp=0;int i=0;temp=*dp;if(upordown==0){for(i=1;i<n;i++){if(dp[i]<temp){dp[0]=dp[i];dp[i]=temp;temp=dp[0];}}}else if(/******found******/){for(/******found******/){if(/******found******/){/******found******//******found******//******found******/}}
}
*dp=temp;}void display(int pd[],int n)
{int i;for(i=0;i<n;i++)printf("%4d",pd[i]);printf("\n");
}
void main()
{int data[N],i,n=N;FILE *out ;out = fopen("out.dat","w") ;for(i=0;i<N;i++)data[i]=rand()%90+10;for(i=0;i<N-1;i++)fun(data+i,n-i,0);display(data,n);NONO(out, data, n);for(i=0;i<N;i++)data[i]=rand()%90+10;for(i=0;i<N-1;i++)fun(data+i,n-i,1);display(data,n);NONO(out, data, n);fclose(out);
}
void NONO(FILE *fp, int pd[], int n)
{int i;for(i=0;i<n;i++)fprintf(fp, "%4d", pd[i]);fprintf(fp, "\n");}
- 正确答案: upordown==1
- 正确答案: i=1;i<n;i++
- 正确答案: dp[i]>temp
- 正确答案: dp[0]=dp[i];
- 正确答案: dp[i]=temp;
- 正确答案: temp=dp[0];
-
函数定义:
void fun(int *dp, int n, int upordown) { /* ... */ }函数fun接收一个整型指针dp,表示数组的首地址,整数n表示数组元素的个数,整数upordown表示查找标志,值为0时找最小值,值为1时找最大值。 -
局部变量声明:
int temp = 0; int i = 0;在函数内部声明了两个整型变量temp和i,temp用于保存当前数组元素的值,i用于循环计数。 -
初始化 temp:
temp = *dp;将temp初始化为数组的第一个元素的值。 -
查找最小值的逻辑:
if (upordown == 0) {for (i = 1; i < n; i++){if (dp[i] < temp){dp[0] = dp[i];dp[i] = temp;temp = dp[0];}} }- 如果
upordown为0,表示查找最小值。在循环中,如果当前元素小于temp,则交换它们,并更新 temp 的值。
- 如果
-
查找最大值的逻辑:
else if (upordown == 1) {for (i = 1; i < n; i++){if (dp[i] > temp){dp[0] = dp[i];dp[i] = temp;temp = dp[0];}} }- 如果 upordown 为1,表示查找最大值。在循环中,如果当前元素大于 temp,则交换它们,并更新 temp 的值。
-
将最小或最大值赋给第一个元素:
*dp = temp;最终,将最小或最大值赋给数组的第一个元素。 -
主函数中的调用和输出:
for (i = 0; i < N - 1; i++)fun(data + i, n - i, 0);display(data, n);for (i = 0; i < N; i++)data[i] = rand() % 90 + 10;for (i = 0; i < N - 1; i++)fun(data + i, n - i, 1);display(data, n);- 主函数通过调用
fun函数两次,一次查找最小值,一次查找最大值,然后输出结果。这样可以看到数组中最小值和最大值的位置发生了交换。
- 主函数通过调用
相关文章:
【C语言】详解计算机二级c语言程序题
文章目录 前言资料相关程序题 一(字符串)程序题 二(数组)程序题 三(基础)程序题 四(结构体)程序题 五(结构体)程序题 六(基础) 前言 …...
限流算法
下面对常见的限流算法进行讨论。目前,常用的限流算法主要有三种:计数器法、滑动窗口算法、漏桶算法和令牌桶算法。下面分别介绍其原理。 1. 计数器法 计数器法是通过计数对到来的请求进行选择性处理。如系统限制一秒内最多有X个请求,则在该…...
备战蓝桥杯 Day10(背包dp)
01背包问题 1267:【例9.11】01背包问题 【题目描述】 一个旅行者有一个最多能装 M� 公斤的背包,现在有 n� 件物品,它们的重量分别是W1,W2,...,Wn�1,�2&#…...
Sora 使用教程,新手小白可用
Sora 使用教程,新手小白可用 参考文章:Sora 使用教程,OpenAI 的文生视频模型 为了在激烈的行业竞争中保持领先地位,OpenAI 在 2024 年 2 月 15 日发布了其革命性的文本至视频转换模型——Sora。这个先进的工具能够将文本描述转化…...
【洛谷千题详解】P1031 均分纸牌
目录 题目描述 思路点拨 AC代码 题目描述 题目网址:[NOIP2002 提高组] 均分纸牌 - 洛谷 有 N 堆纸牌,编号分别为 1,2,……,N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若干张纸牌,然后移动。 移牌规则为&a…...
基于文本提示和语义分割的快速抠图
基于文本提示和语义分割的快速抠图 1. 介绍2. 效果展示3. 安装模型4. 命令行调用5. 代码调用5.1 模型加载5.2 可视化函数定义5.3 图像语义分割 6. 参考资料7. 结语服务 1. 介绍 传统的图像语义分割模型通常固定类别进行分割,而基于文本提示的语义分割模型则具有更高…...
什么是媒体发稿?发稿媒体分类及发稿流程
传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体发稿是一种企业推广和宣传的手段,通过媒体渠道传递企业信息和形象。 媒体发稿的含义在于,当企业有新闻、事件或其他消息需要对外公布时,可以选择…...
安全测试自学手册之软件安全测试基础
安全测试的概念 定义:指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程。】 应用软件的安全性测试:软件自身设计中存在的安全隐患,并检查软件对非法入侵的防御能力。系统级别的安全性测试:确保只有具备系统平台访问权限…...
【LeetCode】升级打怪之路 Day 04:链表 part 2
今日题目: 24. 两两交换链表中的节点19. 删除链表的倒数第 N 个结点160. 相交链表142. 环形链表 II 目录 LeetCode 24. 两两交换链表中的节点 【易错】LeetCode 19. 删除链表的倒数第 N 个结点 【还行】LeetCode 160. 相交链表(两个链表是否相交…...
JAVA编程题系列——涵盖几乎所有java内容
自己定义一个类,有static属性和构造方法,有构造方法重载,有其他方法(方法有对String类型操作) public class MyClass {// 静态属性public static String staticProperty "Static Property";// 成员变量priv…...
【Android12】Monkey压力测试源码执行流程分析
Monkey压力测试源码执行流程分析 Monkey是Android提供的用于应用程序自动化测试、压力测试的测试工具。 其源码路径(Android12)位于 /development/cmds/monkey/部署形式为Java Binary # development/cmds/monkey/Android.bp // Copyright 2008 The Android Open Source Proj…...
Java架构师之路八、安全技术:Web安全、网络安全、系统安全、数据安全等
目录 Web安全: 网络安全: 系统安全: 数据安全: Java架构师之路七、大数据:Hadoop、Spark、Hive、HBase、Kafka等-CSDN博客Java架构师之路九、设计模式:常见的设计模式,如单例模式、工厂模式…...
Codeforces Round 240 (Div. 1) C. Mashmokh and Reverse Operation(分治+逆序对)
原题链接:C. Mashmokh and Reverse Operation 题目大意: 给出一个长度为 2 n 2^{n} 2n 的正整数数组 a a a ,再给出 m m m 次操作。 每次操作给出一个数字 q q q ,把数组分为 2 n − q 2^{n-q} 2n−q 个长度为 2 q 2^{q} 2…...
SpringBoot源码解读与原理分析(三十二)SpringBoot整合JDBC(一)JDBC组件的自动装配
文章目录 前言第10章 SpringBoot整合JDBC10.1 SpringBoot整合JDBC的项目搭建10.1.1 初始化数据库10.1.2 整合项目10.1.2.1 导入JDBC和MySQL驱动依赖10.1.2.2 配置数据源 10.1.3 编写业务代码10.1.3.1 编写与t_user表对应的实体类User10.1.3.2 编写Dao层代码10.1.3.3 编写Servic…...
petalinux_zynq7 驱动DAC以及ADC模块之五:nodejs+vue3实现web网页波形显示
前文: petalinux_zynq7 C语言驱动DAC以及ADC模块之一:建立IPhttps://blog.csdn.net/qq_27158179/article/details/136234296petalinux_zynq7 C语言驱动DAC以及ADC模块之二:petalinuxhttps://blog.csdn.net/qq_27158179/article/details/1362…...
Android java中内部类的使用
一.成员内部类 实验1:成员内部类 class Outer {private int a 10;class Inner {public void printInfo(){System.out.println("a "a);}}}public class InnerDemo {public static void main(String args[]) {Outer o new Outer();Outer.Inner i o.new…...
llm的inference(二)
文章目录 Tokenizer分词1.单词分词法2.单字符分词法3.子词分词法BPE(字节对编码,Byte Pair Encoding)WordPieceUnigram Language Model(ULM) embedding的本质推理时的一些指标参考链接 Tokenizer 在使用模型前,都需要将sequence过一遍Tokenizer…...
pytorch -- torch.nn.Module
基础 torch.nn 是 PyTorch 中用于构建神经网络的模块。nn.Module包含网络各层的定义及forward方法。 在用户自定义神经网络时,需要继承自nn.Module类。通过继承 nn.Module 类,您可以创建自己的神经网络模型,并定义模型的结构和操作。 torch.n…...
Microsoft Edge 越用越慢、超级卡顿?网页B站播放卡顿?
记录10个小妙招 Microsoft Edge 启动缓慢、菜单导航卡顿、浏览响应沉闷?这些情况可能是由于系统资源不足或浏览器没及时更新引起的。接下来,我们将介绍 10 种简单的方法,让 Edge 浏览器的速度重新起飞。 基础检查与问题解决 如果 Microsoft…...
XGB-9: 分类数据
从1.5版本开始,XGBoost Python包为公共测试提供了对分类数据的实验性支持。对于数值数据,切分条件被定义为 v a l u e < t h r e s h o l d value < threshold value<threshold ,而对于分类数据,切分的定义取决于是否使用…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
