C语言必做30道练习题
C语言练习30题(分支循环,数组,函数,递归,操作符)
目录
- 分支循环
- 1.闰年的判断
- 2.阅读代码,计算代码输出的结果
- 3.输入一个1~7的数字,打印对应的星期几
- 4.输入任意一个整数值,计算除3之后的余数
- 5.输入一个人的年龄
- 6.输入一个年龄,>= 18岁就输出:成年,否则就输出:未成年
- 7.输入一个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印偶数。
- 8.计算1~100之间3的倍数的数字之和
- 9.输入一个正整数,逆序打印这个整数的每一位
- 10.输入一个正整数,计算这个整数是几位数?
- 11.找出100~200之间的素数,并打印在屏幕上。
- 数组
- 12. 多个字符从两端移动,向中间汇聚
- 13. 二分查找
- 函数
- 14. 写一个函数判断一年是否是闰年。
- 15.函数判断素数
- 16.乘法口诀表
- 17.使用函数实现数组操作
- 18..求 1!+2!+3!+4!+...10! 的和
- 19.喝汽水问题
- 20.打印菱形
- 21.打印水仙花数
- 22.计算求和
- 23.计算n的阶乘(不考虑溢出),n的阶乘就是1~n的数字累积相乘。
- 24.输入一个整数m,按照顺序打印整数的每一位。
- 递归
- 25.求第n个斐波那契数
- 26.青蛙跳台阶问题
- 27. 汉诺塔问题
- 1.求次数
- 2.求步骤
- 28.递归实现n的k次方
- 29.计算一个数的每位之和(递归实现)
- 操作符
- 30.不能创建临时变量(第三个变量),实现两个整数的交换。
- 31.编写代码实现:求一个整数存储在内存中的二进制中1的个数。
- 32.二进制位置0或者置1
- 33.单身狗1
- 34.打印整数二进制的奇数位和偶数位
- 35.求两个数二进制中不同位的个数
- 总结
分支循环
1.闰年的判断
闰年判断的规则:
- 能被4整除并且不能被100整除是闰年
- 能被400整除是闰年
#include <stdio.h>
//代码1
int main()
{int year = 0;scanf("%d", &year);if(year%4==0 && year%100!=0)printf("是闰年\n");else if(year%400==0)printf("是闰年\n");elseprintf("不是闰年\n");return 0;
}
//代码2
int main()
{int year = 0;scanf("%d", &year);if((year%4==0 && year%100!=0) || (year%400==0))printf("是闰年\n");return 0;
}
2.阅读代码,计算代码输出的结果
#include <stdio.h>
int main()
{int i = 0,a=0,b=2,c =3,d=4;i = a++ && ++b && d++;//i = a++||++b||d++;printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);return 0;
}
运行结果
当
i=a++ || ++b || d++
运行结果
3.输入一个1~7的数字,打印对应的星期几
例如:
输⼊:1 输出:星期⼀
输⼊:2 输出:星期⼆
输⼊:3 输出:星期三
输⼊:4 输出:星期四
输⼊:5 输出:星期五
输⼊:6 输出:星期六
输⼊:7 输出:星期天
#include <stdio.h>
int main()
{int day = 0;printf("请输入星期几\n");scanf("%d",&day);switch (day){case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;case 3:printf("星期三\n");break;case 4:printf("星期四\n");break;case 5:printf("星期五\n");break;case 6:printf("星期六\n");break;case 7:printf("星期天\n");break;}return 0;
}
4.输入任意一个整数值,计算除3之后的余数
#include <stdio.h>
int main()
{int n = 0;printf("请输入n的值\n");scanf("%d", &n);if (n % 3 == 0)printf("整除,余数为0\n");else if (n % 3 == 1)printf("余数是1\n");elseprintf("余数是2\n");return 0;
}
5.输入一个人的年龄
如果年龄<18岁,打印"少年"
如果年龄在18岁⾄44岁打印"⻘年"
如果年龄在45岁⾄59岁打印"中老年"
如果年龄在60岁⾄89岁打印"老年"
如果90岁及以上打印"老寿星"
#include <stdio.h>
int main()
{int age = 0;printf("请输入年龄\n");scanf("%d", &age);if (age < 18)printf("少年\n");else if (age <= 44)printf("青年\n");else if (age <= 59)printf("中老年\n");else if (age <= 89)printf("老年\n");elseprintf("老寿星\n");return 0;
}
6.输入一个年龄,>= 18岁就输出:成年,否则就输出:未成年
#include <stdio.h>
int main()
{int age = 0;printf("请输入年龄\n");scanf("%d", &age);if (age >= 18)printf("成年\n");elseprintf("未成年\n");return 0;
}
7.输入一个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印偶数。
#include <stdio.h>
int main()
{int num = 0;printf("请输入数值\n");scanf("%d", &num);if (num % 2 == 1)printf("%d 是奇数\n", num);elseprintf("%d 是偶数\n", num);return 0;
}
8.计算1~100之间3的倍数的数字之和
#include <stdio.h>
int main()
{int i = 0;int sum = 0;for(i=1; i<=100; i++){if(i % 3 == 0)sum += i;}printf("%d\n", sum);return 0;
}
//⼩⼩的优化
//如果能直接产⽣3的倍数的数字就省去了多余的循环和判断
#include <stdio.h>
int main()
{int i = 0;int sum = 0;for(i=3; i<=100; i+=3){sum += i;}printf("%d\n", sum);return 0;
}
9.输入一个正整数,逆序打印这个整数的每一位
例如:
输⼊:1234,输出:4 3 2 1
输⼊:521,输出:1 2 5
#include <stdio.h>
int main()
{int n = 0;scanf("%d", &n);while(n){printf("%d ", n%10);n /= 10;}return 0;
}
10.输入一个正整数,计算这个整数是几位数?
例如:
输⼊:1234 输出:4
输⼊:12 输出:2
#include <stdio.h>
int main()
{int n = 0;scanf("%d", &n);int cnt = 0;do{cnt++;n = n / 10;} while (n);printf("%d\n", cnt);return 0;
}
11.找出100~200之间的素数,并打印在屏幕上。
注:素数又称质数,只能被1和本身整除的数字。
#include <stdio.h>
int main()
{int i = 0;//循环产⽣100~200的数字for(i=100; i<=200; i++){//判断i是否为素数//循环产⽣2~i-1之间的数字int j = 0;int flag = 1;//假设i是素数for(j=2; j<i; j++){if(i % j == 0){flag = 0;break;}}if(flag == 1)printf("%d ", i);}return 0;
}
数组
12. 多个字符从两端移动,向中间汇聚
编写代码,演示多个字符从两端移动,向中间汇聚
#include<stdio.h>
#include<stdlib.h>int main()
{char arr1[] = "hello wrold" ;char arr2[] = "***********" ;int left = 0;int right = strlen(arr1) - 1;int i = 0;while (left < right){Sleep(1000);//休眠1000毫秒arr2[left] = arr1[left];arr2[right] = arr1[right];printf("%s\n",arr2);left++;right--;}return 0;
}
13. 二分查找
在⼀个升序的数组中查找指定的数字n,很容易想到的方法就是遍历数组,
但是这种方法效率比较低。
比如我买了⼀双鞋,你好奇问我多少钱,我说不超过300元。
你还是好奇,你想知道到底多少,我就让你猜,你会怎么猜?
你会1,2,3,4…这样猜吗?显然很慢;一般你都会猜中间数字,比如:150,
然后看大了还是小了,这就是二分查找,也叫折半查找。
求中间元素的下标,使用mid = (left+right)/2 ,
如果left和right比较大的时候可能存在问题,可以使用下面的代码:
mid = left+(right-left)/2;
#include<stdio.h>int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };//升序的数组int left = 0;int right = sizeof(arr) / sizeof(arr[0]) - 1;int key = 3;//要找的数字int mid = 0;//中间值的下标int find = 0;while (left <= right){mid = (left + right) / 2;if (arr[mid] < key){left = mid + 1;}else if (arr[mid] > key){right = mid - 1;}else{find = 1;break;}}if (find == 1)printf("找到了,下标为%d\n", mid);return 0;
}
函数
14. 写一个函数判断一年是否是闰年。
#include<stdio.h>int is_leap_year(int y)
{if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)return 1;elsereturn 0;
}//测试函数
int main()
{int y;int input;int a;do//判断完是不是闰年后,可以接着判断,也可以选择退出{printf("请输入年份\n");scanf("%d", &y);input = is_leap_year(y);if (input == 1)printf("是闰年\n");if (input == 0)printf("不是闰年\n");printf("继续输入1,结束输入0\n");scanf("%d", &a);} while (a);return 0;
}
15.函数判断素数
#include<stdio.h>
#include<math.h>//要用sqrt函数int is_prime(int d)
{int i;for (i = 2; i < sqrt(d); i++){if (0 == d % i)return 0;}return 1;//无法整除满足条件
}
int main()
{int i;for(i = 100; i <= 200; i++)//打印100到200的素数{is_prime(i);if (is_prime(i)==1){printf("%d\n", i);}}return 0;
}
16.乘法口诀表
实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定
如:输入9,输出99口诀表,输出12,输出1212的乘法口诀表。
void PrintMulTable(int n)
{int i, j;for (i = 1; i <= n; ++i){for (j = 1; j <= i; ++j){printf("%d*%d=%2d ", i, j, i * j);}printf("\n");}}
//使用函数
int main()
{printf("hehe\n");int a = 12;PrintMulTable(a);return 0;
}
17.使用函数实现数组操作
创建一个整形数组,完成对数组的操作
1.实现函数init() 初始化数组为全0
2.实现print() 打印数组的每个元素
3.实现reverse() 函数完成数组元素的逆置。
要求:自己设计以上函数的参数,返回值。
void Int(int arr[], int sz, int set)
{int i = 0;for (i = 0; i < sz; i++){arr[i] = set;}
}
void Print(int arr[], int sz)
{int i = 0;for (i = 0; i < sz; i++){printf("%d ", arr[i]);}printf("\n");
}void Reverse(int arr[], int sz)
{int i = 0;int left = 0;int right = sz - 1;int tmp;while (left <= right){tmp = arr[right];arr[right] = arr[left];arr[left] = tmp;left++;right--;}}int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };int sz = sizeof(arr) / sizeof(arr[0]);printf("hehe\n");Print(arr, sz);Reverse(arr, sz);Print(arr, sz);Int(arr, sz, 0);Print(arr, sz);return 0;
}
18…求 1!+2!+3!+4!+…10! 的和
#include<stdio.h>int main()
{int n;printf("求1到n的阶乘\n");printf("请输入n\n");scanf("%d ", &n);int i, j;int sum = 0;printf("开始计算\n");for (i = 1; i <= n; i++){int ret = 1;for (j = 1; j <= i; j++){ret *= j;}sum += ret;}printf("%d\n", sum);return 0;
}
19.喝汽水问题
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水(编程实现)。
#include<stdio.h>int main()
{int empty;int money;int total;scanf("%d", &money);total = money;empty = money;while (empty > 1){total += empty / 2;empty = empty / 2 + empty % 2;}printf("total=%d\n", total);return 0;
}
20.打印菱形
用C语言在屏幕上输出以下图案:
#include<stdio.h>int main()
{int i, j;printf("请输入行数\n");int line;//(行数)scanf("%d", &line);int a;//(上半部分)int b;//(下半部分)b = line / 2;a = line-b ;for (i = 0 ; i < a; i++){for (j = 0; j < a-i-1 ; j++)//(找规律){printf(" ");}for (j = 0; j < 2*i+1 ; j++)//(等差递增){printf("*");}printf("\n");///(记得换行)}for (i = 0; i <b ; i++){for (j = 0; j <=i ; j++)//(正好与i的个数一样){printf(" ");}for (j = 0; j <2*(b-i)-1 ; j++)//(等差递减){printf("*");}printf("\n");}return 0;
}
21.打印水仙花数
求出0~100000之间的所有“水仙花数”并输出。
水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,
如:153=1^ 3+ 5 ^ 3+3^3,则153是一个“水仙花数”。
#include<stdio.h>
#include<math.h>int main()
{int i;for (i = 1; i < 99999; i++){int sum = 0;//每位数的次方和int count = 0;//位数int tmp = i;//存放水仙花数while (tmp != 0){tmp /= 10;count++;}tmp = i;while (tmp){sum += pow(tmp % 10, count);tmp /= 10;}if (sum == i){printf("%d是水仙花数\n", i);}}return 0;
}
22.计算求和
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,
例如:2+22+222+2222+22222
#include<stdio.h>int main()
{int i;int a;int n;int tmp=0;int sum=0;printf("请输入要求的数字和个数\n");scanf("%d %d", &a, &n);for (i = 0; i < n; i++){tmp = tmp * 10 + a;//后面的每个数就是前面一个数乘上10再加上这个数sum += tmp;}printf("%d\n", sum);return 0;
}
23.计算n的阶乘(不考虑溢出),n的阶乘就是1~n的数字累积相乘。
#include<stdio.h>int Fact(int n)
{if (n == 0)return 1;elsereturn n*Fact(n-1);}int main()
{printf("请输入要求的数字\n");int n = 0;scanf("%d", &n);Fact(n);int ret = Fact(n);printf("%d\n", ret);return;}
#include<stdio.h>int main()
{int n = 0;//(求n的阶乘)printf("请输入n\n");scanf("%d", &n);int i = 0;int sum = 0;sum = n;//存放阶乘int a = 0;a = n;for (i = 1; i < a; i++){sum *= (n - 1);n = n - 1;}printf("%d\n", sum);return 0;
}
24.输入一个整数m,按照顺序打印整数的每一位。
#include<stdio.h>void Print(int n)
{if (n > 9){Print(n / 10);}printf("%d ", n%10);
}int main()
{printf("请输入要打印的数字\n");int m = 0;scanf("%d", &m);Print(m);printf("\n");return 0;
}
递归
25.求第n个斐波那契数
递归和非递归分别实现求第n个斐波那契数
#include<stdio.h>int Fib(int n)
{if (n < 2){return n;}else{return Fib(n - 1) + Fib(n - 2);}
}int main()
{printf("请输入要求的是第几个斐波那契数\n");int n = 0;scanf("%d", &n);int ret;ret = Fib(n);printf("第%d个斐波那契数是%d\n",n, ret);return 0;
}
#include<stdio.h>int Fib(int n){int a = 0;int b = 1;int c = 0;int tmp = 0;while (n >= 2){c = a + b;a = b;b = c;n--;}return c;
}int main()
{printf("请输入要求的是第几个斐波那契数\n");int n = 0;scanf("%d", &n);int ret;if (n <= 2){ret = 1;}else{ret = Fib(n);}printf("第%d个斐波那契数是%d\n", n, ret);return 0;
}
26.青蛙跳台阶问题
一只青蛙一次可以跳一级台阶或两级台阶,问每级台阶有几种跳法
#include<stdio.h>
//观察可知,每级台阶的跳法为前两级台阶的跳法之和
int Jump(int n)
{int ret;if (n <= 2 ){ret = n;}else{ret = Jump(n - 1) + Jump(n - 2);}return ret;
}int main()
{printf("请输入青蛙要跳几级台阶\n");int n;scanf("%d", &n);int ret;ret = Jump(n);printf("青蛙跳%d台级阶有%d种跳法\n",n,ret);return 0;
}
27. 汉诺塔问题
汉诺塔问题:即在一个装置上有A,B,C三根杆。
在A杆自下而上、由大到小按顺序放置n个圆盘,
我们需要保存原有顺序把A杆上的圆盘全部移到C杆上。
操作过程中,每次只能移动一个圆盘,
并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,
操作过程中盘子可以置于A、B、C任一杆上。
1.求次数
#include<stdio.h>int hanoi_num(int n)
{if (n > 1){return 2 * hanoi_num(n - 1) + 1;}else{return 1;}
}
int main()
{int n;scanf("%d", &n);printf("次数为:%d", hanoi_num(n));return 0;
}
2.求步骤
#include<stdio.h>void hanoi_move(int n, char A, char B, char C)
//参数A,B,C分别为所在杆,中间杆,目标杆
{if (n > 1){//传入的参数为当前情况下的所在杆,中间杆,目标杆hanoi_move(n - 1, A, C, B);printf("%c -> %c\n", A, C);hanoi_move(n - 1, B, A, C);}else{printf("%c -> %c\n", A, C);}
}int main()
{int n;scanf("%d", &n);hanoi_move(n, 'A', 'B', 'C');return 0;
}
28.递归实现n的k次方
编写一个函数实现n的k次方,使用递归实现。
#include<stdio.h>int Pow(int n, int k )
{if (k == 0){return 1;}else{return n * Pow(n,k - 1);}
}int main()
{printf("请输入要求什么数的几次方\n");int n;scanf("%d", &n);int k;scanf("%d", &k);int ret;ret = Pow(n, k);printf("计算结果为:%d\n",ret);return 0;
29.计算一个数的每位之和(递归实现)
写一个递归函数DigitSum(n),输入一个非负整数,
返回组成它的数字之和
例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19
输入:1729,输出:19
#include<stdio.h>int DigitSum(int n)
{if (n <= 9){return n;}else{return DigitSum(n / 10) + DigitSum(n % 10);}
}int main()
{printf("请输入要计算的数字\n");int n;scanf("%d", &n);int ret;ret = DigitSum(n);printf("值为%d\n", ret);return 0;
}
操作符
30.不能创建临时变量(第三个变量),实现两个整数的交换。
#include<stdio.h>int main()
{int a;int b;printf("请输入要交换的两个数\n");scanf("%d %d", &a, &b);a = a ^ b;b = a ^ b;a = a ^ b;printf("a = %d b = %d", a, b);return 0;
}
31.编写代码实现:求一个整数存储在内存中的二进制中1的个数。
#include<stdio.h>int Calculate(int x)
{int count = 0;while (x){count++;x = x & (x - 1);}return count;
}int main()
{int ret = 0;printf("请输入要计算的数字\n");int x;scanf("%d", &x);ret = Calculate(x);printf("数字中二进制中的1的个数为%d\n", ret);return 0;
}
32.二进制位置0或者置1
#include<stdio.h>int main()
{int a = 13;//0000000000000000000001101//0000000000000000000011101 将第五位置1//0000000000000000000001101 再将第五位置0a = a | (1 << 4);printf("打印第五位置1后的值:%d\n",a);//29a = a & ~(1 << 4);printf("打印置为0的值:%d\n",a);return 0;
}
33.单身狗1
在一个整型数组中,只有一个数字出现一次,
其他数组都是成对出现的,请找出那个只出现一次的数字。
例如:
数组中有:1 2 3 4 5 1 2 3 4,只有5出现一次,
其他数字都出现2次,找出5
#include<stdio.h>int Find_single_dog(int arr[], int sz)
{int ret = 0;int i;for ( i = 0; i < sz; i++){ret ^= arr[i];}return ret;
}int main()
{int arr[9] = { 1,2,3,4,5,1,2,3,4 };int sz = sizeof(arr) /sizeof(arr[0]);int ret = Find_single_dog(arr,sz);printf("只出现一次的数字是%d\n", ret);return 0;
}
34.打印整数二进制的奇数位和偶数位
获取一个整数二进制序列中所有的偶数位和奇数位,
分别打印出二进制序列
#include<stdio.h>void Printbit(n)
{int i = 0;int j = 0;for (i = 31; i >= 1; i-=2){printf("%d ", (n >> i) & 1);}printf("\n");for (i = 30; i >= 0; i -= 2){printf("%d ",(n >> i) & 1);}printf("\n");
}int main()
{printf("请输入一个整数:\n");int n;scanf("%d", &n);Printbit(n);return 0;
}
35.求两个数二进制中不同位的个数
编程实现:
两个int(32位)整数m和n的二进制表达中,
有多少个位(bit)不同?
输入例子:
1999 2299
输出例子:7
#include<stdio.h>int main()
{int a, b;printf("请输入两个整数:\n");scanf("%d %d", &a, &b);int count = 0;int n = 32;int tmp;tmp = a ^ b;while (tmp){tmp = tmp & (tmp - 1);count++;}int ret = count;printf("有%d位不同\n",ret);return 0;
}
总结
归纳了30道在学习指针前的基础练习,希望反复练习,需掌握
相关文章:

C语言必做30道练习题
C语言练习30题(分支循环,数组,函数,递归,操作符) 目录 分支循环1.闰年的判断2.阅读代码,计算代码输出的结果3.输入一个1~7的数字,打印对应的星期几4.输入任意一个整数值,…...

Linux信号_信号的产生
信号概念 信号是进程之间事件异步通知的一种方式,属于软中断。 异步:在异步操作中,任务可以独立执行。一个任务的开始或完成不依赖于其他任务的状态。 同步:在同步操作中,任务之间的执行是相互依赖的。一个任务必须等待…...

数据库基础(7) . DML-基本操作
3.3.DML DML 是 “Data Manipulation Language”(数据操作语言)的缩写,在数据库管理系统(DBMS)中用来处理已存在的数据库中的数据。 它主要包含用于插入(INSERT)、更新(UPDATE&…...

windows运行ffmpeg的脚本报错:av_ts2str、av_ts2timestr、av_err2str => E0029 C4576
问题描述 我目前的环境是: 编辑器: Microsoft Visual Studio Community 2022 (64 位) 运行的脚本是ffmpeg自带的remux样例,只不过我想用c语言执行这个样例。在执行的过程中报错如下图: C4576 后跟初始值设定项列表的带圆括…...

[mysql]mysql的DML数据操作语言增删改,以及新特性计算列,阿里巴巴开发手册mysql相关
1DML数据操作语言,增加删除改数据 插入数据INSERT 插入添加数据,两种方法 方式1:VALUES添加数据 #准备工作 USE atguigudb; CREATE TABLE IF NOT EXISTS emp1( id INT, name VARCHAR(15), hire_data DATE, salary DOUBLE(10,2)); SELECT * FROM emp1 INSERT INTO em…...

Github 2024-11-07 Go开源项目日报 Top10
根据Github Trendings的统计,今日(2024-11-07统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10HTML项目1Kubernetes: 容器化应用程序管理系统 创建周期:3618 天开发语言:Go协议类型:Apache License 2.0Star数量:106913 个Fork数…...

【黑盒测试】等价类划分法及实例
本文主要介绍黑盒测试之等价类划分法,如什么是等价类划分法,以及如何划分,设计等价类表。以及关于三角形案例的等价类划分法。 文章目录 一、什么是等价类划分法 二、划分等价类和列出等价类表 三、确定等价类的原则 四、建立等价类表 …...

LeetCode17. 电话号码的字母组合(2024秋季每日一题 59)
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits “23” 输出:[“…...

SQLite数据库是什么?DB Browser for SQLite是什么?
SQLite是一个轻量级的嵌入式数据库,它是一个遵守ACID原则的关系型数据库管理系统。SQLite的主要特点是占用资源少、无需配置、支持多种操作系统和编程语言,并且具有高性能和跨平台特性。 SQLite的基本概念和特性 轻量级:SQLite的数据…...

核心概念解析Caffeine 缓存模型与策略
1. 简介 什么是 Caffeine Caffeine 是一个高性能的 Java 缓存库,专为提高内存缓存的效率和灵活性而设计。它由 Google 的 Guava Cache 项目启发,并提供了更高的性能和更丰富的功能集。Caffeine 以其卓越的缓存命中率和内存管理能力而广受欢迎ÿ…...

ubuntu 22.04 防火墙
Ubuntu(22.04)云主机SSH安全加固 https://blog.csdn.net/qq_44846097/article/details/141098092 ubuntu22.04防火墙策略 https://blog.csdn.net/sunyuhua_keyboard/article/details/139493464 Ubuntu 22.04 防火墙设置和开放端口命令 https://blog.c…...

【数据结构-合法括号字符串】力扣678. 有效的括号字符串
给你一个只包含三种字符的字符串,支持的字符类型分别是 ‘(’、‘)’ 和 ‘*’。请你检验这个字符串是否为有效字符串,如果是 有效 字符串返回 true 。 有效 字符串符合如下规则: 任何左括号 ‘(’ 必须有相应的右括号 ‘)’。 任何右括号 …...

ThreadX在STM32上的移植:F1,F4通用启动文件tx_initialize_low_level.s
在嵌入式系统开发中,实时操作系统(RTOS)的选择对于系统性能和稳定性至关重要。ThreadX是一种广泛使用的RTOS,它以其小巧、快速和可靠而闻名。在本文中,我们将探讨如何将ThreadX移植到STM32微控制器上,特别是…...

【算法】递归+深搜:814.二叉树剪枝
目录 1、题目链接 2、题目 3、解法(后序遍历) 4、代码 1、题目链接 814.二叉树剪枝(LeetCode) 2、题目 3、解法(后序遍历) 我们这次不使用宏观的观察法,而是从具体实现开始。 题目要求我们,去掉不含1的子树。 对于子树这个…...

spring Framework 特定条件下目录遍历漏洞(CVE-2024-38816)修复
spring Framework 特定条件下目录遍历漏洞(CVE-2024-38816)修复 漏洞描述 CVE-2024-38816: Path traversal vulnerability in functional web frameworks 通过功能性 Web 框架 WebMvc.fn 或 WebFlux.fn 提供静态资源的应用程序容易受到路径遍历攻击。攻…...

ESP32-C3 入门笔记03:VScode + flash_download_tool 下载烧录程序(ESP-IDF + PlatformIO)
ESP32-C3 支持多种烧录方式,主要包括以下几种: VS Code 串口烧录:使用 VS Code 配合 PlatformIO 或 ESP-IDF 插件进行串口烧录。串口连接通常使用 UART 接口,通过 USB 转串口芯片与电脑连接。步骤大致如下: 配置 VS Co…...

Node.js——fs模块-文件重命名和移动
1、在Node.js中,我们可以使用 rename 或 renameSync 来移动或重命名文件或文件夹 2、语法: fs.rename(oldPath,newPath,callback) fs.renameSync(oldPath,newPath) 参数说明: oldPath 文件当前的路径 newPath 文件新的路径 callback 操…...

vue2.0版本引入Element-ui问题解决
作者:fyupeng 技术专栏:☞ https://github.com/fyupeng 项目地址:☞ https://github.com/fyupeng/distributed-blog-system-api 留给读者 使用版本: vue:2.6.14 element-ui:2.15.14 一、问题及解决 1、安装后组件没有生效&#x…...

qt QTableView详解
1、概述 QTableView 是 Qt 框架中的一个高级视图类,用于以表格形式展示二维数据。它基于 QAbstractItemView,并与模型(通常是 QAbstractTableModel 或 QStandardItemModel)结合使用,以实现数据的展示和交互。QTableVi…...

将Notepad++添加到右键菜单【一招实现】
一键添加注册表 复制以下代码保存为 Notepad.reg,将红框内路径修改为自己电脑的“Notepad.exe路径”后,再双击运行即可。 Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\NotePad] "Notepad" "Icon""D:\\N…...

Nature Methods | 基于流形约束的RNA速度推断精准解析细胞周期动态调节规律
生信碱移 VeloCycle算法 VeloCycle:基于流形约束的RNA速度推断在细胞周期动态中的精准解析 今天给各位老铁们分享一篇于2024年10月31号发表在 Nature Methods [IF: 36.1] 的文章:"Statistical inference with a manifold-constrained RNA velocity…...

在离线环境中使用sealos工具快速部署一套高可用的k8s服务集群
文章目录 项目基础信息工具版本测试环境 下载资源文件下载sealos二进制命令文件下载k8s安装镜像和组件资源下载docker离线安装包下载Docker Registry容器镜像 NFS共享配置coredns服务的DNS解析配置安装配置sealos、k8s服务安装sealos工具导入k8s及相关组件镜像安装 K8s 集群部署…...

ReactPress系列—Next.js 的动态路由使用介绍
ReactPress Github项目地址:https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议,感谢Star。 Next.js 的动态路由使用介绍 Next.js 是一个流行的 React 框架,支持服务端渲染、静态站点生成和动态路由等功能,极大地简化…...

DevOps业务价值流:需求设计最佳实践
DevOps实践正推动着产品快速迭代与高质量交付,但需求设计作为产品开发的关键起点,往往被忽视。它不仅是收集与分析需求的过程,更是将需求转化为可实施产品特性的核心。本文深入探讨DevOps业务价值流中的需求设计,从调研、整理、原…...

A15基于Spring Boot的宠物爱心组织管理系统的设计与实现
🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…...

RC高通滤波器Bode图分析(传递函数零极点)
RC高通滤波器 我们使得R1K,C1uF;电容C的阻抗为Xc; 传递函数 H ( s ) u o u i R X C R R 1 s C R s R C 1 s R C (其中 s j ω ) H(s)\frac{u_{o} }{u_{i} } \frac{R }{X_{C}R} \frac{R }{\frac{1}{sC}R} \fra…...

SpeechT5 模型
微软开源的 SpeechT5 语音模型,主要包括以下功能 语音转文字:用于自动语音识别(ASR)。文字转语音:用于合成音频(TTS)。语音转语音:用于不同声音之间的转换或进行语音增强。 T5 网络…...

网站用户行为分析:方法、工具与实践
摘要:随着互联网发展,网站竞争激烈,用户行为分析对网站建设与运营至关重要。本文综合介绍了基于服务器日志和客户端收集用户行为数据的方法,包括各自优缺点及相关工具;阐述了网站用户分析的五大常规方法;以…...

医疗医药企业新闻稿怎么写?健康行业品牌宣传背书的报纸期刊杂志媒体有哪些
【本篇由 言同数字全球媒体 原创】在撰写医疗、医学和制药相关稿件时,遵循一定的结构和内容规范至关重要。以下是一些写作建议以及适合发表健康类稿件的报纸、杂志及新闻媒体的推荐。 一、稿件写作结构 标题 原则:简洁、明了,能够准确传达主…...

2024-11-06 问AI: [AI面试题] 人工智能如何用于欺诈检测和网络安全?
文心一言 人工智能在欺诈检测和网络安全领域的应用日益广泛,其强大的数据处理和分析能力为这一领域带来了革命性的变化。以下详细介绍人工智能在欺诈检测和网络安全中的具体应用: 一、欺诈检测 身份认证和访问控制: 通过验证用户的身份信息…...