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.闰年的判断

闰年判断的规则:

  1. 能被4整除并且不能被100整除是闰年
  2. 能被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道在学习指针前的基础练习,希望反复练习,需掌握
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tp接口 入口文件 500 错误原因

一、描述 二、可能的原因 1、runtime目录没权限 2、关闭了Tp记录日志的功能 3、关闭debug调试模式 4、关闭了debug模式还是报错 一、描述 Thinkphp项目本地正常&#xff0c;上传到线上后静态文件访问正常&#xff0c;访问tp接口报500错误。 经调试发现&#xff0c;在php入…

思源笔记轻松连接本地Ollama大语言模型,开启AI写作新体验!

文章目录 前言1. 下载运行Ollama框架2. Ollama下载大语言模型3. 思源笔记设置连接Ollama4. 测试笔记智能辅助写作5. 安装Cpolar工具6. 配置Ollama公网地址7. 笔记设置远程连接Ollama8. 固定Ollama公网地址 前言 今天我们要聊聊如何通过cpolar内网穿透技术&#xff0c;把国产笔…

CAS 详解

Java 中 CAS 是如何实现的&#xff1f; 在 Java 中&#xff0c;实现 CAS&#xff08;Compare-And-Swap, 比较并交换&#xff09;操作的一个关键类是Unsafe。 Unsafe类位于sun.misc包下&#xff0c;是一个提供低级别、不安全操作的类。由于其强大的功能和潜在的危险性&#xf…

九识智能与徐工汽车达成战略合作,共绘商用车未来新蓝图

近日&#xff0c;九识智能与徐工汽车签署战略合作协议&#xff0c;标志着双方在智能驾驶技术与新能源商用车融合应用、联合生产及市场推广等方面迈入深度合作的新篇章&#xff0c;将共同引领智能驾驶技术商业化浪潮。 近年来&#xff0c;在国家智能化发展战略的引领下&#xff…

【vue2.7.16系列】手把手教你搭建后台系统__登录使用状态管理(15)

使用store进行登录信息管理 其实就是把登录放到vuex的actions中去执行&#xff0c;然后保存用户信息、权限等 在store/modules/account.js中添加如下代码&#xff1a; import { login, logout, getInfo, menusApi } from /api/account; // getExpiresTime import {getToken,s…

sql报错信息将字符串转换为 uniqueidentifier 时失败

报错信息&#xff1a; [42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]将字符串转换为 uniqueidentifier 时失败 出错行如下&#xff1a; 表A.SourceCode 表B.ID 出错原因&#xff1a; SourceCode是nvarchar,但ID是uniqueidentifier 数据库查询字段和类…

「Mac畅玩鸿蒙与硬件22」鸿蒙UI组件篇12 - Canvas 组件的动态进阶应用

在鸿蒙应用中&#xff0c;Canvas 组件可以实现丰富的动态效果&#xff0c;适合用于动画和实时更新的场景。本篇将介绍如何在 Canvas 中实现动画循环、动态进度条、旋转和缩放动画&#xff0c;以及性能优化策略。 关键词 Canvas 组件动态绘制动画效果动态进度条旋转和缩放性能优…

Python练习10

Python日常练习 题目&#xff1a; 编写程序&#xff0c;输出如下所示图案。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 要求&#xff1a; 使用for循环的方式完成 --------------------------------------------------------- 注意&#xff1a; …

【前端】html的8个常用标签

HTML html 超文本链接(标记)语言 H5 HTML v5 get/post/delete/put —— restful 网络规划 Web开发 结构样式动作 架构 装饰 交互&#xff08;动作&#xff09; 装饰做好了–> UI工程师 标签 文本相关 图片、图像、声音 导航 表格* 列表 表单标签* 布局标签 H5…

Java高效学习家教平台系统小程序源码

&#x1f4da; 家教平台系统&#xff1a;让孩子学习更高效的秘密武器 &#x1f680; &#x1f469;‍&#x1f3eb; 引言&#xff1a;家教新风尚&#xff0c;线上平台引领教育潮流 在这个信息爆炸的时代&#xff0c;家教平台系统如同雨后春笋般涌现&#xff0c;为孩子们的学习…

Qt多边形填充/不填充绘制

1 填充多边形绘制形式 void GraphicsPolygonItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) {Q_UNUSED(option);Q_UNUSED(widget);//painter->setPen(pen()); // 设置默认画笔//painter->setBrush(brush()); // 设置默…

OpenAI大事记;GPT到ChatGPT参数量进化

目录 OpenAI大事记 GPT到ChatGPT参数量进化 OpenAI大事记 GPT到ChatGPT参数量进化 ChatGPT是从初代 GPT逐渐演变而来的。在进化的过程中,GPT系列模型的参数数量呈指数级增长,从初代GPT的1.17亿个参数,到GPT-2的15 亿个参数,再到 GPT-3的1750 亿个参数。模型越来越大,训练…

一文了解Java序列化

Java 序列化&#xff08;Serialization&#xff09;是将对象的状态转换为字节流&#xff0c;以便将对象的状态保存到文件中或通过网络传输的过程。反序列化&#xff08;Deserialization&#xff09;则是将字节流恢复为原始对象。Java 序列化主要通过 Serializable 接口实现。 为…

vue解决跨域问题

1、在vue项目的根目录创建vue.config.js的文件 复制以下带代码 devServer: {proxy: {/api: {target: http://localhost:3000, // 目标服务器地址changeOrigin: true, // 是否改变源pathRewrite: {^/api: // 重写路径&#xff0c;例如将/api/user重写为/user}}}}2、将接口的地…

是时候用开源降低AI落地门槛了

过去三十多年&#xff0c;从Linux到KVM&#xff0c;从OpenStack到Kubernetes&#xff0c;IT领域众多关键技术都来自开源。开源技术不仅大幅降低了IT成本&#xff0c;也降低了企业技术创新的门槛。 那么&#xff0c;在生成式AI时代&#xff0c;开源能够为AI带来什么&#xff1f;…

基于SSM+VUE守护萌宠宠物网站JAVA|VUE|Springboot计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解

源代码数据库LW文档&#xff08;1万字以上&#xff09;开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统&#xff1a;Window操作系统 2、开发工具&#xff1a;IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…

Oh My Posh安装

nullSet up your terminalhttps://ohmyposh.dev/docs/installation/windows Git ee oh-my-posh: Windows上的oh-my-zsh&#xff0c;源地址 https://github.com/JanDeDobbeleer/oh-my-posh.git (gitee.com)https://gitee.com/efluent/oh-my-posh

基于Spring Boot+Vue的助农销售平台(协同过滤算法、限流算法、支付宝沙盒支付、实时聊天、图形化分析)

&#x1f388;系统亮点&#xff1a;协同过滤算法、节流算法、支付宝沙盒支付、图形化分析、实时聊天&#xff1b; 一.系统开发工具与环境搭建 1.系统设计开发工具 后端使用Java编程语言的Spring boot框架 项目架构&#xff1a;B/S架构 运行环境&#xff1a;win10/win11、jdk1…

Webserver(4.8)UDP、广播、组播

目录 UDP通信server.cclient.c 广播client.cserver.c 组播client.cserver.c UDP通信 server.c #include<arpa/inet.h> #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<string.h> int main(){//1.创建一个通信的socketint f…

大数据集群中实用的三个脚本文件解析与应用

目录 一、jps - cluster.sh 脚本文件 &#xff08;一&#xff09;背景与功能 &#xff08;二&#xff09;使用方法 二、集群文件分发脚本 xsync.sh &#xff08;一&#xff09;背景与问题 &#xff08;二&#xff09;功能与实现原理 &#xff08;三&#xff09;脚本编写…