C#初级教程(7)——初级期末检测

news2025/2/23 18:53:50

练习 1:计算圆的周长和面积

改编题目:编写一个 C# 程序,让用户输入圆的半径,然后计算并输出该圆的周长和面积,结果保留两位小数。

using System;

class CircleCalculation
{
    static void Main()
    {
        const double pi = 3.14;
        Console.Write("请输入圆的半径:");
        int n = int.Parse(Console.ReadLine());
        double circumference = 2 * pi * n;
        double area = pi * n * n;
        Console.WriteLine($"半径为 {n} 的圆的周长为:{circumference:F2}");
        Console.WriteLine($"半径为 {n} 的圆的面积为:{area:F2}");
    }
}

练习 2:两个变量值交换(两种方法)

改编题目:编写一个 C# 程序,实现两个整数变量值的交换,分别使用临时变量和不使用临时变量两种方法,并输出交换后的结果

using System;

class VariableSwap
{
    static void Main()
    {
        // 方法一:使用临时变量
        int a = 8, b = 19;
        int temp = a;
        a = b;
        b = temp;
        Console.WriteLine($"使用临时变量交换后,a={a}, b={b}");

        // 方法二:不使用临时变量
        a = 8;
        b = 19;
        a = a + b;
        b = a - b;
        a = a - b;
        Console.WriteLine($"不使用临时变量交换后,a={a}, b={b}");
    }
}

练习 3:输入 3 个数,从小到大输出

改编题目:编写一个 C# 程序,让用户输入 3 个整数,然后将这 3 个数从小到大排序并输出。

using System;

class SortThreeNumbers
{
    static void Main()
    {
        Console.Write("请您输入 3 个整数,用空格区分开:");
        string[] input = Console.ReadLine().Split(' ');
        int a = int.Parse(input[0]);
        int b = int.Parse(input[1]);
        int c = int.Parse(input[2]);

        if (a > b)
        {
            int temp = a;
            a = b;
            b = temp;
        }
        if (a > c)
        {
            int temp = a;
            a = c;
            c = temp;
        }
        if (b > c)
        {
            int temp = b;
            b = c;
            c = temp;
        }

        Console.WriteLine($"从小到大排序为:{a} {b} {c}");
    }
}

练习 4:根据学生成绩输出等级

改编题目:编写一个 C# 程序,让用户输入一个 0 - 100 之间的学生成绩,根据成绩输出对应的等级(60 分以下为不及格,60 - 69 为合格,70 - 79 为良,80 - 89 为优,90 以上为超神)。

using System;

class GradeEvaluation
{
    static void Main()
    {
        Console.Write("请输入学生成绩(0 - 100):");
        int score = int.Parse(Console.ReadLine());

        if (score < 60)
        {
            Console.WriteLine("不及格");
        }
        else if (score >= 60 && score <= 69)
        {
            Console.WriteLine("合格");
        }
        else if (score >= 70 && score <= 79)
        {
            Console.WriteLine("良");
        }
        else if (score >= 80 && score <= 89)
        {
            Console.WriteLine("优");
        }
        else
        {
            Console.WriteLine("超神");
        }
    }
}

练习 5:求 0 - 100 之间所有偶数和奇数的和

改编题目:编写一个 C# 程序,计算 0 - 100 之间所有偶数的和以及所有奇数的和,并分别输出结果。

using System;

class EvenOddSum
{
    static void Main()
    {
        int evenSum = 0;
        int oddSum = 0;

        for (int i = 0; i <= 100; i++)
        {
            if (i % 2 == 0)
            {
                evenSum += i;
            }
            else
            {
                oddSum += i;
            }
        }

        Console.WriteLine("0 - 100 之间所有偶数的和为:" + evenSum);
        Console.WriteLine("0 - 100 之间所有奇数的和为:" + oddSum);
    }
}

练习 6:求 10 的阶乘

改编题目:编写一个 C# 程序,计算 10 的阶乘并输出结果。

using System;

class FactorialCalculation
{
    static void Main()
    {
        int result = 1;
        for (int i = 1; i <= 10; i++)
        {
            result *= i;
        }
        Console.WriteLine("10 的阶乘为:" + result);
    }
}

练习 7:反向输出数字

改编题目:编写一个 C# 程序,让用户输入一个整数,然后将该整数反向输出。

using System;

class ReverseNumber
{
    static void Main()
    {
        Console.Write("请输入一个整数:");
        int num = int.Parse(Console.ReadLine());
        int reversed = 0;
        while (num != 0)
        {
            reversed = reversed * 10 + num % 10;
            num /= 10;
        }
        Console.WriteLine("反向输出的数字为:" + reversed);
    }
}

练习 8:输出指定形状

改编题目:编写一个 C# 程序,在屏幕上输出如下形状:

*
**
***
****
*****
******
using System;

class ShapeOutput1
{
    static void Main()
    {
        for (int i = 1; i <= 6; i++)
        {
            for (int j = 0; j < i; j++)
            {
                Console.Write("*");
            }
            Console.WriteLine();
        }
    }
}

练习 10:单循环输出指定形状

改编题目:编写一个 C# 程序,使用单循环在屏幕上输出如下形状:

*
**
***
****
*****
******
using System;

class ShapeOutputSingleLoop
{
    static void Main()
    {
        string stars = "";
        for (int i = 1; i <= 6; i++)
        {
            stars += "*";
            Console.WriteLine(stars);
        }
    }
}

练习 11:输出指定对称形状

改编题目:编写一个 C# 程序,在屏幕上输出如下形状:

*
***
*****
*******
*********
*******
*****
***
*
using System;

class SymmetricShapeOutput
{
    static void Main()
    {
        int maxStars = 9;
        for (int i = 1; i <= maxStars; i += 2)
        {
            for (int j = 0; j < (maxStars - i) / 2; j++)
            {
                Console.Write(" ");
            }
            for (int k = 0; k < i; k++)
            {
                Console.Write("*");
            }
            Console.WriteLine();
        }
        for (int i = maxStars - 2; i >= 1; i -= 2)
        {
            for (int j = 0; j < (maxStars - i) / 2; j++)
            {
                Console.Write(" ");
            }
            for (int k = 0; k < i; k++)
            {
                Console.Write("*");
            }
            Console.WriteLine();
        }
    }
}

练习 12:打印 9 * 9 乘法表

改编题目:编写一个 C# 程序,打印 9 * 9 乘法表。

using System;

class MultiplicationTable
{
    static void Main()
    {
        for (int i = 1; i <= 9; i++)
        {
            for (int j = 1; j <= i; j++)
            {
                Console.Write($"{j} * {i} = {i * j}\t");
            }
            Console.WriteLine();
        }
    }
}

练习 13:找出 100 到 999 之间的水仙花数(两种方法)

改编题目:编写一个 C# 程序,找出 100 到 999 之间的所有水仙花数,分别使用单循环和嵌套循环两种方法。

using System;

class NarcissisticNumbersSingleLoop
{
    static void Main()
    {
        for (int num = 100; num < 1000; num++)
        {
            int hundreds = num / 100;
            int tens = (num / 10) % 10;
            int units = num % 10;
            if (hundreds * hundreds * hundreds + tens * tens * tens + units * units * units == num)
            {
                Console.WriteLine(num);
            }
        }
    }
}

C# 代码(嵌套循环)

using System;

class NarcissisticNumbersNestedLoop
{
    static void Main()
    {
        for (int i = 1; i <= 9; i++)
        {
            for (int j = 0; j <= 9; j++)
            {
                for (int k = 0; k <= 9; k++)
                {
                    int num = i * 100 + j * 10 + k;
                    if (i * i * i + j * j * j + k * k * k == num)
                    {
                        Console.WriteLine(num);
                    }
                }
            }
        }
    }
}

练习 14:组成不重复的三位数

改编题目:编写一个 C# 程序,使用 1、2、3、4 四个数字,找出能组成多少个不相同且无重复数字的三位数,并输出这些三位数。

using System;

class ThreeDigitNumbers
{
    static void Main()
    {
        int count = 0;
        for (int i = 1; i <= 4; i++)
        {
            for (int j = 1; j <= 4; j++)
            {
                if (j == i) continue;
                for (int k = 1; k <= 4; k++)
                {
                    if (k == i || k == j) continue;
                    int num = i * 100 + j * 10 + k;
                    Console.WriteLine(num);
                    count++;
                }
            }
        }
        Console.WriteLine("能组成的不相同且无重复数字的三位数共有:" + count + " 个");
    }
}

练习 15:歌星大赛打分计算平均分

改编题目:编写一个 C# 程序,模拟歌星大赛打分过程。假设有 100 个评委给选手打分,分值在 1 - 100 之间,去掉一个最高分和一个最低分后,计算剩余 98 个分数的平均分作为选手的最后得分。

using System;

class SingerCompetitionScore
{
    static void Main()
    {
        Random random = new Random();
        int[] scores = new int[100];
        for (int i = 0; i < 100; i++)
        {
            scores[i] = random.Next(1, 101);
        }

        int maxScore = scores[0];
        int minScore = scores[0];
        int totalScore = 0;

        foreach (int score in scores)
        {
            if (score > maxScore) maxScore = score;
            if (score < minScore) minScore = score;
            totalScore += score;
        }

        totalScore = totalScore - maxScore - minScore;
        double averageScore = (double)totalScore / 98;

        Console.WriteLine("选手的最后得分是:" + averageScore);
    }
}

练习 16:可乐兑换问题

改编题目:已知 3 个可乐瓶可以换一瓶可乐,现在有 364 瓶可乐,编写一个 C# 程序,计算一共可以喝多少瓶可乐,最后剩下几个空瓶。

using System;

class ColaExchange
{
    static void Main()
    {
        int totalCola = 364;
        int emptyBottles = 364;

        while (emptyBottles >= 3)
        {
            int exchangedCola = emptyBottles / 3;
            totalCola += exchangedCola;
            emptyBottles = emptyBottles % 3 + exchangedCola;
        }

        Console.WriteLine("一共可以喝 " + totalCola + " 瓶可乐,剩下 " + emptyBottles + " 个空瓶。");
    }
}

练习 17:兔子繁殖问题

改编题目:有一对兔子,从出生后第 3 个月起,每个月都生一对兔子;小兔子长到第三个月后,每个月又生一对兔子。假如兔子都不死,编写一个 C# 程序,计算第 1 到第 20 个月里,每个月的兔子总数。

using System;

class RabbitReproduction
{
    static void Main()
    {
        int[] rabbits = new int[20];
        rabbits[0] = 1;
        rabbits[1] = 1;

        for (int i = 2; i < 20; i++)
        {
            rabbits[i] = rabbits[i - 1] + rabbits[i - 2];
        }

        for (int i = 0; i < 20; i++)
        {
            Console.WriteLine($"第 {i + 1} 个月的兔子总数为:{rabbits[i]} 对");
        }
    }
}

练习 18:百钱百鸡问题

改编题目:编写一个 C# 程序,解决百钱百鸡问题。已知公鸡 5 元一只,母鸡 3 元一只,小鸡 1 元 3 只,现在有 100 元钱要买 100 只鸡,找出所有可能的购买方案并输出。
C# 代码

using System;

class HundredMoneyHundredChickens
{
    static void Main()
    {
        for (int rooster = 0; rooster <= 20; rooster++)
        {
            for (int hen = 0; hen <= 33; hen++)
            {
                int chick = 100 - rooster - hen;
                if (chick % 3 == 0 && rooster * 5 + hen * 3 + chick / 3 == 100)
                {
                    Console.WriteLine($"公鸡:{rooster} 只,母鸡:{hen} 只,小鸡:{chick} 只");
                }
            }
        }
    }
}

练习 19:输出一个 120 - 245 之间的随机数

改编题目:编写一个 C# 程序,模拟抽奖活动,每次运行程序时,从 120 到 245 这个区间内随机抽取一个幸运号码并输出。
using System;

class RandomNumberInRange
{
    static void Main()
    {
        Random random = new Random();
        int luckyNumber = random.Next(120, 246);
        Console.WriteLine($"本次抽奖的幸运号码是: {luckyNumber}");
    }
}

练习 20:猜数字游戏

设计一个 C# 程序实现猜数字游戏。程序会随机生成一个 0 到 50 之间的整数,玩家需要猜测这个数字。每次猜测后,程序会提示玩家猜大了、猜小了还是猜对了,直到玩家猜对为止。同时,记录玩家猜测的次数并在猜对后输出。

using System;

class GuessTheNumberGame
{
    static void Main()
    {
        Random random = new Random();
        int secretNumber = random.Next(0, 51);
        int guess;
        int attempts = 0;

        Console.WriteLine("我心里想了一个 0 到 50 之间的数字,你可以开始猜啦!");

        do
        {
            Console.Write("请输入你猜测的数字: ");
            guess = int.Parse(Console.ReadLine());
            attempts++;

            if (guess < secretNumber)
            {
                Console.WriteLine($"你猜小了,这个数字比 {guess} 大。");
            }
            else if (guess > secretNumber)
            {
                Console.WriteLine($"你猜大了,这个数字比 {guess} 小。");
            }
            else
            {
                Console.WriteLine($"恭喜你,猜对了!这个数字就是 {secretNumber}。你一共用了 {attempts} 次猜测。");
            }
        } while (guess != secretNumber);
    }
}

练习 21:初始化数组并倒序输出

改编题目:编写一个 C# 程序,创建一个包含 10 个元素的整数数组,使用随机数为数组元素赋值(范围为 1 - 100),然后将数组元素倒序排列并输出。
using System;

class ReverseRandomArray
{
    static void Main()
    {
        int[] array = new int[10];
        Random random = new Random();

        // 用随机数初始化数组
        for (int i = 0; i < array.Length; i++)
        {
            array[i] = random.Next(1, 101);
        }

        // 倒序数组
        Array.Reverse(array);

        // 输出倒序后的数组
        Console.WriteLine("倒序后的数组元素为:");
        foreach (int num in array)
        {
            Console.Write(num + " ");
        }
        Console.WriteLine();
    }
}

练习 22:初始化数组并乱序输出(两种方法)

改编题目:在 C# 中,创建一个包含 10 个元素的数组,元素值为 0 到 10,然后使用两种不同的方法将数组元素打乱顺序并输出。
using System;

class ShuffleArray
{
    static void Main()
    {
        int[] array = new int[10];
        for (int i = 0; i < array.Length; i++)
        {
            array[i] = i;
        }

        // 方法一:使用 Random 类交换元素
        int[] shuffledArray1 = (int[])array.Clone();
        Random random = new Random();
        for (int i = shuffledArray1.Length - 1; i > 0; i--)
        {
            int j = random.Next(i + 1);
            int temp = shuffledArray1[i];
            shuffledArray1[i] = shuffledArray1[j];
            shuffledArray1[j] = temp;
        }

        Console.WriteLine("方法一乱序后的数组:");
        foreach (int num in shuffledArray1)
        {
            Console.Write(num + " ");
        }
        Console.WriteLine();

        // 方法二:使用 List 和 Random 类
        System.Collections.Generic.List<int> list = new System.Collections.Generic.List<int>(array);
        int[] shuffledArray2 = new int[list.Count];
        for (int i = 0; i < shuffledArray2.Length; i++)
        {
            int index = random.Next(list.Count);
            shuffledArray2[i] = list[index];
            list.RemoveAt(index);
        }

        Console.WriteLine("方法二乱序后的数组:");
        foreach (int num in shuffledArray2)
        {
            Console.Write(num + " ");
        }
        Console.WriteLine();
    }
}

练习 23:一维数组奇数偶数分区

改编题目:编写一个 C# 程序,创建一个包含 20 个元素的一维数组,使用随机数(范围 1 - 100)初始化数组。然后将数组中的奇数元素移到数组左边,偶数元素移到数组右边,并输出分区后的数组。
using System;

class OddEvenPartition
{
    static void Main()
    {
        int[] array = new int[20];
        Random random = new Random();

        // 用随机数初始化数组
        for (int i = 0; i < array.Length; i++)
        {
            array[i] = random.Next(1, 101);
        }

        // 分区操作
        int left = 0;
        int right = array.Length - 1;
        while (left < right)
        {
            while (left < right && array[left] % 2 != 0)
            {
                left++;
            }
            while (left < right && array[right] % 2 == 0)
            {
                right--;
            }
            if (left < right)
            {
                int temp = array[left];
                array[left] = array[right];
                array[right] = temp;
            }
        }

        // 输出分区后的数组
        Console.WriteLine("分区后的数组:");
        foreach (int num in array)
        {
            Console.Write(num + " ");
        }
        Console.WriteLine();
    }
}

练习 24:数组排序(选择、冒泡、插入)

改编题目:编写一个 C# 程序,创建一个包含 10 个随机整数(范围 1 - 100)的数组,分别使用选择排序、冒泡排序和插入排序算法对数组进行排序,并输出排序后的数组。
using System;

class ArraySorting
{
    static void Main()
    {
        int[] array = new int[10];
        Random random = new Random();

        // 用随机数初始化数组
        for (int i = 0; i < array.Length; i++)
        {
            array[i] = random.Next(1, 101);
        }

        // 选择排序
        int[] selectionSorted = (int[])array.Clone();
        for (int i = 0; i < selectionSorted.Length - 1; i++)
        {
            int minIndex = i;
            for (int j = i + 1; j < selectionSorted.Length; j++)
            {
                if (selectionSorted[j] < selectionSorted[minIndex])
                {
                    minIndex = j;
                }
            }
            int temp = selectionSorted[i];
            selectionSorted[i] = selectionSorted[minIndex];
            selectionSorted[minIndex] = temp;
        }

        Console.WriteLine("选择排序后的数组:");
        foreach (int num in selectionSorted)
        {
            Console.Write(num + " ");
        }
        Console.WriteLine();

        // 冒泡排序
        int[] bubbleSorted = (int[])array.Clone();
        for (int i = 0; i < bubbleSorted.Length - 1; i++)
        {
            for (int j = 0; j < bubbleSorted.Length - i - 1; j++)
            {
                if (bubbleSorted[j] > bubbleSorted[j + 1])
                {
                    int temp = bubbleSorted[j];
                    bubbleSorted[j] = bubbleSorted[j + 1];
                    bubbleSorted[j + 1] = temp;
                }
            }
        }

        Console.WriteLine("冒泡排序后的数组:");
        foreach (int num in bubbleSorted)
        {
            Console.Write(num + " ");
        }
        Console.WriteLine();

        // 插入排序
        int[] insertionSorted = (int[])array.Clone();
        for (int i = 1; i < insertionSorted.Length; i++)
        {
            int key = insertionSorted[i];
            int j = i - 1;
            while (j >= 0 && insertionSorted[j] > key)
            {
                insertionSorted[j + 1] = insertionSorted[j];
                j--;
            }
            insertionSorted[j + 1] = key;
        }

        Console.WriteLine("插入排序后的数组:");
        foreach (int num in insertionSorted)
        {
            Console.Write(num + " ");
        }
        Console.WriteLine();
    }
}

练习 25:二维数组(2 * 3)赋值(两种方法,单循环、嵌套循环)

改编题目:编写一个 C# 程序,创建一个 2 行 3 列的二维整数数组,分别使用单循环和嵌套循环的方法为数组元素赋值,赋值规则为从 1 开始依次递增,并输出数组元素。
using System;

class TwoDimensionalArrayAssignment
{
    static void Main()
    {
        int[,] array = new int[2, 3];

        // 方法一:单循环赋值
        int index = 1;
        for (int i = 0; i < array.GetLength(0); i++)
        {
            for (int j = 0; j < array.GetLength(1); j++)
            {
                array[i, j] = index++;
            }
        }

        Console.WriteLine("单循环赋值后的数组:");
        for (int i = 0; i < array.GetLength(0); i++)
        {
            for (int j = 0; j < array.GetLength(1); j++)
            {
                Console.Write(array[i, j] + " ");
            }
            Console.WriteLine();
        }

        // 方法二:嵌套循环赋值
        index = 1;
        for (int i = 0; i < array.GetLength(0); i++)
        {
            for (int j = 0; j < array.GetLength(1); j++)
            {
                array[i, j] = index++;
            }
        }

        Console.WriteLine("嵌套循环赋值后的数组:");
        for (int i = 0; i < array.GetLength(0); i++)
        {
            for (int j = 0; j < array.GetLength(1); j++)
            {
                Console.Write(array[i, j] + " ");
            }
            Console.WriteLine();
        }
    }
}

练习 26:数组内容拷贝

改编题目:编写一个 C# 程序,有一个 2 行 3 列的二维数组 arr1,其元素值为 {{1, 2, 3}, {4, 5, 6}},将该数组的元素按顺序拷贝到一个 3 行 2 列的二维数组 arr2 中,并输出 arr2 的元素。
using System;

class ArrayCopying
{
    static void Main()
    {
        int[,] arr1 = { { 1, 2, 3 }, { 4, 5, 6 } };
        int[,] arr2 = new int[3, 2];

        int row = 0;
        int col = 0;
        for (int i = 0; i < arr1.GetLength(0); i++)
        {
            for (int j = 0; j < arr1.GetLength(1); j++)
            {
                arr2[row, col] = arr1[i, j];
                col++;
                if (col == arr2.GetLength(1))
                {
                    col = 0;
                    row++;
                }
            }
        }

        Console.WriteLine("拷贝后的数组 arr2:");
        for (int i = 0; i < arr2.GetLength(0); i++)
        {
            for (int j = 0; j < arr2.GetLength(1); j++)
            {
                Console.Write(arr2[i, j] + " ");
            }
            Console.WriteLine();
        }
    }
}

练习 28:初始化特定数组(两种方法)

改编题目:在 C# 中,使用两种不同的方法初始化一个 9 行 9 列的二维数组,数组元素按照如下规律排列:
1 1 1 1 1 1 1 1 1
1 2 2 2 2 2 2 2 1
1 2 3 3 3 3 3 2 1
1 2 3 4 4 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 4 4 3 2 1
1 2 3 3 3 3 3 2 1
1 2 2 2 2 2 2 2 1
1 1 1 1 1 1 1 1 1
using System;

class SpecialArrayInitialization
{
    static void Main()
    {
        int[,] array = new int[9, 9];

        // 方法一:嵌套循环手动赋值
        for (int i = 0; i < 9; i++)
        {
            for (int j = 0; j < 9; j++)
            {
                int min = Math.Min(i, j);
                min = Math.Min(min, 8 - i);
                min = Math.Min(min, 8 - j);
                array[i, j] = min + 1;
            }
        }

        Console.WriteLine("方法一初始化后的数组:");
        for (int i = 0; i < 9; i++)
        {
            for (int j = 0; j < 9; j++)
            {
                Console.Write(array[i, j] + " ");
            }
            Console.WriteLine();
        }

        // 方法二:分层赋值
        int[,] array2 = new int[9, 9];
        for (int layer = 0; layer < 5; layer++)
        {
            for (int i = layer; i < 9 - layer; i++)
            {
                for (int j = layer; j < 9 - layer; j++)
                {
                    array2[i, j] = layer + 1;
                }
            }
        }

        Console.WriteLine("方法二初始化后的数组:");
        for (int i = 0; i < 9; i++)
        {
            for (int j = 0; j < 9; j++)
            {
                Console.Write(array2[i, j] + " ");
            }
            Console.WriteLine();
        }
    }
}

练习 29:输出杨辉三角(二维数组法)n 层

改编题目

编写一个 C# 程序,让用户输入一个正整数 n,然后使用二维数组的方法输出 n 层的杨辉三角。

using System;

class PascalTriangle
{
    static void Main()
    {
        Console.Write("请输入要输出的杨辉三角的层数: ");
        int n = int.Parse(Console.ReadLine());
        int[,] triangle = new int[n, n];

        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j <= i; j++)
            {
                if (j == 0 || j == i)
                {
                    triangle[i, j] = 1;
                }
                else
                {
                    triangle[i, j] = triangle[i - 1, j - 1] + triangle[i - 1, j];
                }
            }
        }

        Console.WriteLine("杨辉三角:");
        for (int i = 0; i < n; i++)
        {
            for (int k = 0; k < n - i - 1; k++)
            {
                Console.Write("  ");
            }
            for (int j = 0; j <= i; j++)
            {
                Console.Write(triangle[i, j].ToString().PadLeft(4));
            }
            Console.WriteLine();

结语:C#初级教程到此结束,感谢努力进步的你,愿你学习之路一路繁花

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RT-Thread+STM32L475VET6——TF 卡文件系统

文章目录 前言一、板载资源二、具体步骤1.打开CubeMX进行USB配置1.1 使用外部高速时钟&#xff0c;并修改时钟树1.2 打开SPI1&#xff0c;参数默认即可(SPI根据自己需求调整&#xff09;1.3 打开串口&#xff0c;参数默认1.4 生成工程 2.配置SPI2.1 打开SPI驱动2.2 声明使用SPI…

[论文解析]OmniRe: Omni Urban Scene Reconstruction

OmniRe: Omni Urban Scene Reconstruction 论文地址&#xff1a;https://arxiv.org/abs/2408.16760 代码地址&#xff1a;https://github.com/ziyc/drivestudio 项目地址&#xff1a;https://ziyc.github.io/omnire/ 论文解读 总结 这篇论文代表了一种重建的方向&#xff0…

【微服务优化】ELK日志聚合与查询性能提升实战指南

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…

Docker实战-使用docker compose搭建博客

docker run 部署 创建blog网络 [rootk8s-master ~]# docker network create blog 8f533a5a1ec65eae3f98c0ae5a76014a3ab1bf3c087ad952cdc100cc7a658948 [rootk8s-master ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 8f533a5a1ec6 blog bridge …

【JT/T 808协议】808 协议开发笔记 ② ( 终端注册 | 终端注册应答 | 字符编码转换网站 )

文章目录 一、消息头 数据1、消息头拼接2、消息 ID 字段3、消息体属性 字段4、终端手机号 字段5、终端流水号 字段 二、消息体 数据三、校验码计算四、最终计算结果五、终端注册应答1、分解终端应答数据2、终端应答 消息体 数据 六、字符编码转换网站 一、消息头 数据 1、消息头…

51单片机学习之旅——定时器

打开软件 1与其它等于其它&#xff0c;0与其它等于0 1或其它等于1&#xff0c;0或其它等于其它 TMODTMOD&0xF0;//0xF01111 0000进行与操作&#xff0c;高四位保持&#xff0c;低四位清零&#xff0c;高四位定时器1&#xff0c;低四位定时器0 TMODTMOD|0x01;//0x010000 0…

hot100_139. 单词拆分

hot100_139. 单词拆分 思路 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 示例 1&#xff1a; 输入:…

SQLMesh 系列教程7- 详解 seed 模型

SQLMesh 是一个强大的数据建模和管道管理工具&#xff0c;允许用户通过 SQL 语句定义数据模型并进行版本控制。Seed 模型是 SQLMesh 中的一种特殊模型&#xff0c;主要用于初始化和填充基础数据集。它通常包含静态数据&#xff0c;如参考数据和配置数据&#xff0c;旨在为后续的…

windows11那些事

一.windows11简介 Windows11是‌微软公司于2021年发布的桌面端操作系统&#xff0c;它带来了许多新的功能和改进&#xff0c;旨在提升用户体验和工作效率。以下是一些关于Windows 11的基础知识和使用技巧&#xff1a; ‌‌通用搜索&#xff1a;通过任务栏上的搜索或按Windows…

VividTalk:南京大学、阿里巴巴等机构联合研发的开源3D说话人生成框架

目录 一、前言二、项目概述三、技术架构四、优势特点五、性能评估六、应用场景七、结论与展望 一、前言 在当今人工智能飞速发展的时代&#xff0c;人机交互的方式正不断创新和优化。VividTalk作为南京大学、阿里巴巴、字节跳动和南开大学联合开发的一项开创性技术&#xff0c…

pyside6学习专栏(三):自定义QLabel标签扩展类QLabelEx

标签是界面设计中最常用的控件&#xff0c;本文演示了如何基于PySide6的QLabex控件类扩展定义QLabelEX类&#xff0c;以实现更少的编码完成各种图像、彩色文本、动画的加载和显示&#xff0c;丰富界面显示 本示例演示了QLabel和其扩展类QLabelEx分别显示文本、图像、动画的使用…

后“智驾平权”时代,谁为安全冗余和体验升级“买单”

线控底盘&#xff0c;正在成为新势力争夺下一个技术普及红利的新赛点。 尤其是进入2025年&#xff0c;比亚迪、长安等一线传统自主品牌率先开启高阶智驾的普及战&#xff0c;加上此前已经普及的智能座舱&#xff0c;舱驾智能的「科技平权」进一步加速行业启动「线控底盘」上车窗…

springboot408-基于Java的樱洵宾馆住宿管理系统(源码+数据库+纯前后端分离+部署讲解等)

&#x1f495;&#x1f495;作者&#xff1a; 爱笑学姐 &#x1f495;&#x1f495;个人简介&#xff1a;十年Java&#xff0c;Python美女程序员一枚&#xff0c;精通计算机专业前后端各类框架。 &#x1f495;&#x1f495;各类成品Java毕设 。javaweb&#xff0c;ssm&#xf…

EasyRTC:基于WebRTC与P2P技术,开启智能硬件音视频交互的全新时代

在数字化浪潮的席卷下&#xff0c;智能硬件已成为我们日常生活的重要组成部分&#xff0c;从智能家居到智能穿戴&#xff0c;从工业物联网到远程协作&#xff0c;设备间的互联互通已成为不可或缺的趋势。然而&#xff0c;高效、低延迟且稳定的音视频交互一直是智能硬件领域亟待…

鸿蒙NEXT应用App测试-通用测试

注意&#xff1a;大家记得学完通用测试记得再学鸿蒙专项测试 https://blog.csdn.net/weixin_51166786/article/details/145768653 注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章…

transfmer学习认识

整体架构 1.自注意机制 1.1.softmax 在机器学习和深度学习中&#xff0c;softmax 函数是一个常用的激活函数&#xff0c;用于将一个向量转换为一个概率分布。softmax 函数的公式如下&#xff1a; ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/35c158988402498ba6…

人工智能(AI)的不同维度分类

人工智能(AI)的分类 对机器学习进行分类的方式多种多样&#xff0c;可以根据算法的特性、学习方式、任务类型等不同维度进行分类这些分类都不是互斥的&#xff1a; 1、按数据模态不同:图像&#xff0c;文本&#xff0c;语音&#xff0c;多态等 2、按目标函数不同:判别式模型…

三、linux字符驱动详解

在上一节完成NFS开发环境的搭建后&#xff0c;本节将探讨Linux字符设备驱动的开发。字符设备驱动作为Linux内核的重要组成部分&#xff0c;主要负责管理与字符设备&#xff08;如串口、键盘等&#xff09;的交互&#xff0c;并为用户空间程序提供统一的读写操作接口。 驱动代码…

谈谈 ES 6.8 到 7.10 的功能变迁(1)- 性能优化篇

前言 ES 7.10 可能是现在比较常见的 ES 版本。但是对于一些相迭代比较慢的早期业务系统来说&#xff0c;ES 6.8 是一个名副其实的“钉子户”。 借着工作内升级调研的任务东风&#xff0c;我整理从 ES 6.8 到 ES 7.10 ELastic 重点列出的新增功能和优化内容。将分为 6 个篇幅给…

我用Ai学Android Jetpack Compose之LinearProgressIndicator

本篇&#xff0c;我们来学习LinearProgressIndicator&#xff0c;答案来自 通义千问 Q:我想学习LinearProgressIndicator&#xff0c;麻烦你介绍一下 当然可以&#xff01;LinearProgressIndicator 是 Jetpack Compose 中的一个组件&#xff0c;用于显示线性进度条。它非常适…