嵌入式学习代码总结(一)

时间范围:2022年10月19日-2022年10月28日

2022年10月19日

#include<stdio.h>

int main()
{
	printf("hello world\n");
	return 0;
}
/*
    功能:在linux的终端中打印hello world
*/

2022年10月21日

#include<stdio.h>
#define hong(a,b)(a)*(b)
int main()
{
	int a=1,b=2,k=3;
	int sum=hong(a+b,b)*k;
	printf("sum=%ld\n",sum);
	return 0;
}
#include<stdio.h>
#define second(x,y,z,k) ((x)*(y)*(z)*(k))
int main()
{
	int x=365,y=24,z=60,k=60;
	int sum=second(x,y,z,k);
	printf("一年一共有%d秒\n",sum);
	return 0;
}
/*
    功能:在linux的终端上打印一年有多少秒
*/
#include<stdio.h>
int main()
{
	signed char a=243;
	printf("%d",a);
	return 0;
}
/*
    功能:体验回环法
*/
#include<stdio.h>
#define PI 3.1415
int main()
{
	float r=2;
	float s=PI*r*r;
	float c=2*PI*r;
	printf("s=%f,c=%f\n",s,c);
	return 0;
}
/*
    功能:计算圆形的面积
*/
#include<stdio.h>
int main()
{
	printf("sizeof(int)=%ld\n",sizeof(int));	
	printf("sizeof(short)=%ld\n",sizeof(short));
	printf("sizeof(char)=%ld\n",sizeof(char));
	printf("sizeof(float)=%ld\n",sizeof(float));
	printf("sizeof(double)=%ld\n",sizeof(double));
	printf("sizeof(long)=%ld\n",sizeof(long));
	printf("sizeof(long long)=%ld\n",sizeof(long long));
	return 0;
}
/*    
    功能:计算不同数据类型所占存储空间的大小
*/

2022年10月24日

#include<stdio.h>
int main()
{
	char ch=130;
	printf("%d\n",ch);
	return 0;
}
/*    
    功能:体验回环法
*/
#include<stdio.h>
int main()
{
	unsigned char ch=260;
	printf("%d\n",ch);
	return 0;
}
/*
    功能:体验回环法
*/
int a=10;
//	static int a=10;
#include<stdio.h>
extern int a;
int main()
{
	printf("a=%d\n",a);
	return 0;
}
#include<stdio.h>
int a=10;
int main()
{
	int i;
	for(i=0;i<5;i++)
	{
		//static int a=0;
		//static int a=0;
		//a++;
		//printf("a=%d\n",a);
	}
	printf("a=%d\n",a);
	return 0;
}
#include<stdio.h>
int a=10;
int main()
{
	int i;
	for(i=0;i<5;i++)
	{
		//static int a=0;
		int a=0;
		a++;
		printf("a=%d\n",a);
	}
	//printf("a=%d\n",a);
	return 0;
}
#include<stdio.h>
static int a=10;
int main()
{
	int i;
	for(i=0;i<5;i++)
	{
		//static int a=0;
		static int a=0;
		a++;
		printf("a=%d\n",a);
	}
	//printf("a=%d\n",a);
	return 0;
}
#include<stdio.h>
int a=10;
int main()
{
	int i;
	for(i=0;i<5;i++)
	{
		//static int a=0;
		int a=0;
		a++;
		printf("a=%d\n",a);
	}
	//printf("a=%d\n",a);
	return 0;
}
/*
    功能:体验static和extern的用法
*/
#include<stdio.h>
int main()
{
	int a=1,b=2,c=3;
	//a++;
	//printf("a=%d ",a);
	printf("a++=%d ",a++);
	//printf("b=%d ",b);
	//++b;
	printf("++b=%d ",++b);
	//printf("c=%d ",c);
	//printf("a=%d,b=%d,c=%d",a,b,c);
	return 0;
}
#include<stdio.h>
int main()
{
	int a=1,b=2,c=3;
	//b=++c;
	printf("b=%d,++c=%d ",b,++c);
	//a=c++;
	printf("a=%d,c++=%d ",a,c++);
	//b++;
	printf("b++=%d ",b++);
	//a=++b;
	printf("a=%d,++b=%d ",a,++b);
	return 0;
}
/*    
    功能:体验自增自减运算符的用法
*/
#include<stdio.h>
int main()
{
	int a=10;
	float b;
	b=(float)a;
	printf("b=%f\n",b);
	return 0;
}
#include<stdio.h>
int main()
{
	char a=2;
	printf("a=%f\n",a);
	return 0;
}
#include<stdio.h>
int main()
{
	float a=2;
	printf("a=%d\n",a);
	return 0;
}
#include<stdio.h>
int main()
{
	short a=2;
	printf("a=%f\n",a);
	return 0;
}
#include<stdio.h>
int main()
{
	float a=3;
	int b=2;
	double e=5;
	int f=3;
	printf("c=%d\n",a+b);
	printf("d=%lf\n",a+b);
	printf("e=%lf\n",e);
	printf("g=%lf",b+f);
	return 0;
}
/*
    功能:体验类型转换
*/
#include<stdio.h>
volatile int b;
int main()
{
	volatile int a=10;
	printf("%d\n",b);
	printf("%d\n",a);
	return 0;
}

#include<stdio.h>
main()
{
	int k=11;
	printf("k=%d,k=%o,k=%x",k,k,k);
}
#include<stdio.h>
main()
{
	int a=5;
	printf("%d\n",a++);
}
#include<stdio.h>
main()
{
	int x=10;
	printf("%d\n",x+=x-=x-x);
}

#include<stdio.h>
main()
{
	double x,y;
	x=1;
	printf("%lf\n",y=x+3/2);
}

2022年10月25日

#include<stdio.h>
int main()
{
	int a=2,b=2,c=0,d=0;
	c=a>1&&b++;
	d=a>1||b++;
	printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
	return 0;
}
/*
    功能:体验逻辑与和逻辑或运算符的用法
*/

2022年10月26日

#include<stdio.h>
/*
 *	九九乘法表
 *	作者:徐子宸
 *	班级:22101
 */
int main()
{
	int i,j;
	for(i=1;i<=9;i++)	//	外循环控制行
	{
		for(j=1;j<=i;j++)	//	内循环控制内容
		{
			printf("%d*%d=%d ",j,i,j*i);
		}
		printf("\n");
	}
	return 0;
}
/*
 *	我的分析过程
 *
 *	for(j=1;j<=i;j++)
 *	i={1,2,3,4,5,6,7,8,9}
 *
 *	j=1
 *	i=1
 *	j*i=1
 *
 *	j=1
 *	i=2
 *	j*i=2
 *	j=2
 *	i=2
 *	j*i=4
 *	
 *	j=1
 *	i=3
 *	j*i=3
 *	j=2
 *	i=3
 *	j*i=6
 *	j=3
 *	i=3
 *	j*i=9
 *
 *	j=1
 *	i=4
 *	j*i=4
 *	j=2
 *	i=4
 *	j*i=8
 *	j=3
 *	i=4
 *	j*i=12
 *	j=4
 *	i=4
 *	j*i=16
 *
 *	j=1
 *	i=5
 *	j*i=5
 *	j=2
 *	i=5
 *	j*i=10
 *	j=3
 *	i=5
 *	j*i=15
 *	j=4
 *	i=5
 *	j*i=20
 *	j=5
 *	i=5
 *	j*i=25
 *
 *	j=1
 *	i=6
 *	j*i=6
 *	j=2
 *	i=6
 *	j*i=12
 *	j=3
 *	i=6
 *	j*i=18
 *	j=4
 *	i=6
 *	j*i=24
 *	j=5
 *	i=6
 *	j*i=30
 *	j=6
 *	i=6
 *	j*i=36
 *	
 *	j=1
 *	i=7
 *	j*i=7
 *	j=2
 *	i=7
 *	j*i=14
 *	j=3
 *	i=7
 *	j*i=21
 *	j=4
 *	i=7
 *	j*i=28
 *	j=5
 *	i=7
 *	j*i=35
 *	j=6
 *	i=7
 *	j*i=42
 *	j=7
 *	i=7
 *	j*i=49
 *		
 *	j=1
 *	i=8
 *	j*i=8
 *	j=2
 *	i=8
 *	j*i=16
 *	j=3
 *	i=8
 *	j*i=24
 *	j=4
 *	i=8
 *	j*i=32
 *	j=5
 *	i=8
 *	j*i=40
 *	j=6
 *	i=8
 *	j*i=48
 *	j=7
 *	i=8
 *	j*i=56
 *	j=8
 *	i=8
 *	j*i=64
 *
 *	j=1
 *	i=9
 *	j*i=9
 *	j=2
 *	i=9
 *	j*i=18
 *	j=3
 *	i=9
 *	j*i=27
 *	j=4
 *	i=9
 *	j*i=36
 *	j=5
 *	i=9
 *	j*i=45
 *	j=6
 *	i=9
 *	j*i=54
 *	j=7
 *	i=9
 *	j*i=63
 *	j=8
 *	i=9
 *	j*i=72
 *	j=9
 *	i=9
 *	j*i=81
 *
 *	分析完毕
 *
 */
#include<stdio.h>
int main()
{
	int year=0,month=0,day=0,i=0;
	int sum=0;
	printf("请输入年月日:");
	scanf("%d%d%d",&year,&month,&day);
	for(i=1;i<=month;i++)
	{
		switch(i)
		{
			case 1:day+=0;break;
			case 2:day+=31;break;
			case 3:
			if(year%4==0&&year%100!=0||year%400==0)
			{
				day+=29;
			}
			else
			{
				day+=28;
			}
			break;
			case 4:day+=31;break;
			case 5:day+=30;break;
			case 6:day+=31;break;
			case 7:day+=30;break;
			case 8:day+=31;break;
			case 9:day+=31;break;
			case 10:day+=30;break;
			case 11:
			   day+=31;break;
			case 12:day+=30;break;
			default:("ERROR");
			}
	}
	sum+=day;
	printf("该日有%d天",sum);
	return 0;
}
/*
 *	某年的某一天是这一年的第多少天
 *	作者:徐子宸
 *	班级:22101
 */
#include<stdio.h>
int main()
{
	int year,month,day;
	printf("请输入年月日:");
	scanf("%d%d%d",&year,&month,&day);
	//int sum;
	switch(month)
	{
			  //break;
		case 12:day+=30;
		case 11:day+=31;
		case 10:day+=30;
		case 9:day+=31;
		case 8:day+=31;
		case 7:day+=30;
		case 6:day+=31;
		case 5:day+=30;
		case 4:day+=31;
		case 3:	if(year%4==0&&year%100!=0||year%400==0)
				{
					day+=29;
				}
				else
				{
					day+=28;
				}
			   //break;
		case 2:
			   day+=31;
		case 1:break;
		default:("ERROR");
				//break;
	}
	printf("这天是这一年的第%d天",day);
	return 0;
}
/*
 * 	思路分析
 *
 *	1,3,5,7,8,10,12月有31天
 *	4,6,9,11月有30天
 *	平年2月有29天,闰年2月有28天
 *	表示年份的数字能被4整除,还能被400整除,但不能被100整除的年是平年
 *	其余为ie闰年
 *
 *	分析完毕
 */

2022年10月27日

#include<stdio.h>
int main()
{
	int n=5;
	int arr[n]={0};
	n=8;
	int b[5];
	b={1,2,3,4,5};
	int c[5];
	c[1]={1,2,3,4,5};
}
#include<stdio.h>
int main()
{
	char str[30]={0};
	char atr[30]={0};
	scanf("%s",str);
	gets(atr);
	puts(str);
	puts(atr);
	return 0;
}
/*
 *	gets输入之前,先会查看缓冲区中
 *	是否有内容,有的话直接拿过来使
 *	用
 *
 * 	scanf是标准输入函数,每次直接
 * 	从键盘中获取
 *
 */
#include<stdio.h>
int main()
{
	char str[5]="hello";
	puts(str);
	return 0;
}
#include<stdio.h>
int main()
{
	char str[30]={0};
	char atr[30]={0};
	gets(str);
	gets(atr);
	puts(str);
	puts(atr);
	return 0;
}
#include<stdio.h>
int main()
{
	char str[30]={0};
	char atr[30]={0};
	scanf("%s",str);
	scanf("%s",atr);
	puts(str);
	puts(atr);
	return 0;
}
#include<stdio.h>
int main()
{
	char str[30]={0};
	char atr[30]={0};
	gets(str);
	scanf("%s",atr);
	puts(str);
	puts(atr);
	return 0;
}
/*
    功能:体验gets和scanf的区别
*/
#include<stdio.h>
int main()
{
	int arr[5];
	for(int i=0;i<5;i++)
	{
		scanf("%d",&arr[i]);
	}
	for(int j=0;j<5;j++)
	{
		printf("%d\n",arr[j]);
	}
	return 0;
}
/*
    功能:体验对数组的输入和输出
*/
/*
 *	功能:利用冒泡排序,求一组数据中的最大值和次大值
 *	作者:徐子宸
 *	班级:22101班
 */
#include<stdio.h>
int main()
{
	int a[5]={0};
	int i,j;
	int max1,max2;
	printf("请输入数据\n");
	for(i=0;i<5;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<5;i++)
	{
		for(j=0;j<5-i;j++)
		{
			if(a[j+1]<a[j])
			{
				int tmp=a[j];
				a[j]=a[j+1];
				a[j+1]=tmp;
				//max1=a[j+1];
				//max2=a[j];
			}
		}
		//max1=a[j+1];
		//max2=a[j];
	}
	printf("已完成排序\n");	
	for(i=0;i<5;i++)
	{
		printf("%d\n",a[i]);
	}
	printf("最大值为%d,次大值为%d",a[4],a[3]);
	//max1=a[j];
	//max2=a[j+1];
	return 0;
}
/*
 *	功能:不利用冒泡排序,求一组数据的最大值和次大值
 *	班级:22101
 *	姓名:徐子宸
 */
#include<stdio.h>
int main()
{
	int a[5]={0};
	int i;
	int max1,max2;
	int s=sizeof(a)/sizeof(int);
	printf("请输入数据:\n");
	for(i=0;i<5;i++)
	{
		scanf("%d",&a[i]);
	}
	digui(a,0,s-1);
	printf("快速排序后的数据打印如下:\n");
	for(i=0;i<5;i++)
	{
		printf("%d\n",a[i]);
	}
	printf("最大值为%d,次大值为%d\n",a[4],a[3]);
	return 0;
}
int quicksort(int a[],int i,int j)
{
	int k=a[i];	//	临时保存基准元素
	while(i<j)	
	{
		while(i<j&&a[j]>=k)	//	若待查找的元素比基准元素大,则查找元素的指针向前移动
		{
			j--;
		}
		if(i<j)	//	若待查找的元素比基准元素小,则与基准元素交换
		{
			a[i]=a[j];
		}
		while(i<j&&a[i]<=k)	//	若待查找的元素比基准元素小,则查找元素的指针向后移动
		{
			i++;
		}
		if(i<j)	//	若待查找的元素比基准元素大,则与基准元素交换
		{
			a[j]=a[i];
		}
	}
	a[i]=k;
	return i;
}
int digui(int a[],int i,int  j)
{
	if(i<j)
	{
		int quick=quicksort(a,i,j);
		digui(a,i,quick-1);	//	比基准元素小的部分继续调用快速排序
		digui(a,quick+1,j);//	比基准元素大的部分继续调用快速排序
	}
	return 0;
}
/*
 *	思路分析
 *
 *	使用快速排序
 *	若输入 2 9 1 7 8
 *	则进行这样排序
 *	第一步的基准元素为2
 *	开始排序
 *	1 2 9 7 8
 *	数据被分成两部分
 *	以2为分界
 *	第二步的基准元素为9
 *	开始排序
 *	1 2 8 7 9
 *	数据被分成两部分
 *	以8为分界
 *	第三步的基准元素为8
 *	开始排序
 *	1 2 7 8 9
 *	排序完成
 *	已经找出最大值和次大值
 *
 *	分析完毕
 *
 */
#include<stdio.h>
int main()
{
	int arr[5]={0};
	int max=arr[0];
	int sec;
	int i;
	printf("请输入数据\n");
	for(i=0;i<5;i++)
	{
		scanf("%d",&arr[i]);
	}
	for(i=0;i<(sizeof(arr)/sizeof(arr[0]));i++)
	{
		if(max==arr[i])
		{
			continue;
		}
		else if(max<arr[i])
		{
			sec=max;
			max=arr[i];
		}
		else if(sec<arr[i])
		{
			sec=arr[i];
		}
	}
	printf("最大值为%d\n",max);
	printf("次大值为%d\n",sec);
	return 0;
}
/*
 *	思路分析
 *
 *	arr[]={5,8,8,9,9}
 *	max=5
 *	max==arr[i]
 *	5==5
 *	continue
 *	max<arr[i]
 *	5<8
 *  sec=5
 *  max=8
 *  sec<arr[i]
 *  5<8
 *  sec=8
 *  max<arr[i]
 *  8<9
 *	sec=8
 *	max=9
 *  
 *  分析完毕
 */


#include<stdio.h>
int main()
{
	int a[5]={0};
	int i,j;
	printf("请输入待排序的数\n");
	for(i=0;i<5;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<5;i++)
	{
		for(j=0;j<5-i;j++)
		{
			if(a[j]>a[j+1])
			{
				int tmp=a[j];
				a[j]=a[j+1];
				a[j+1]=tmp;
			}
		}
	}
	printf("已完成排序\n");
	for(i=0;i<5;i++)
	{
		printf("%d\n",a[i]);
	}
	return 0;
}
#include<stdio.h>
int main()
{
	int arr[5];
	printf("%ld %ld",sizeof(int[5]),sizeof(arr));
	int brr[6];
	printf("%ld %ld",sizeof(int[6]),sizeof(brr));
	return 0;
}

2022年10月28日

/*
 *	作者:徐子宸
 *	班级:22101
 *	功能:实现杨辉三角
 *	来源:根据朱鸿飞老师的讲解自己改写
 *	日期:20221028
 *
 */
#include<stdio.h>
int main()
{
	int a[8][8]={0};
	for(int i=0;i<8;i++)
	{
		for(int j=0;j<=i;j++)
		{
			if(j==0)
			{
				a[i][j]=1;
			}
			else if(i==j)
			{
				a[i][j]=1;
			}
			else
			{
				a[i][j]=a[i-1][j-1]+a[i-1][j];
			}
		}
	}
	for(int i=0;i<8;i++)
	{
		for(int j=0;j<=i;j++)
		{
			printf("%d  ",a[i][j]);
		}
		printf("\n");
	}
	return 0;
}
#include<stdio.h>
int main()
{
	int a[2][3]={0};
	for(int i=0;i<2;i++)
	{
		for(int j=0;j<3;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}	
	for(int i=0;i<2;i++)
	{
		for(int j=0;j<3;j++)
		{
			printf("%d\n",a[i][j]);
		}
	}
	return 0;

}
/*    
    功能:实现二维数组的输入和输出
*/
 
#include<stdio.h>
int main()
{
	int a[5]={0};
	int i,j;
	printf("请输入待排序的数\n");
	for(i=0;i<5;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<5;i++)
	{
		for(j=0;j<5-i;j++)
		{
			if(a[j]>a[j+1])
			{
				int tmp=a[j];
				a[j]=a[j+1];
				a[j+1]=tmp;
			}
		}
	}
	printf("已完成排序\n");
	for(i=0;i<5;i++)
	{
		printf("%d\n",a[i]);
	}
	return 0;
}
/*
    功能:实现冒泡排序
*/
#include<stdio.h>
/*
 * 作者:徐子宸
 * 来源:自己
 * 功能:实现字符串的连接
 * 有问题
 *
 */
int main()
{
	char str[100]={"xuzichen"};
	char atr[100]={"china"};
	int i,j;
	if(str[i]!='\0'&&atr[j]!='\0')
	{
		while(str[i]!='\0')
		{
			atr[j]=str[i]++;
			i++;
			j++;
		}
		
	}
	atr[j]='\0';
	puts(str);
	puts(atr);
	return 0;
}
#include<stdio.h>
/*
 *	姓名:徐子宸
 *	班级:22101
 *	功能:实现字符串的连接
 *	解题方法:敲上几十种不同的有关系的程序甚至更多有关系的程序,也许就可以知道怎么敲程序
 */
int main()
{
	char str[100]="china";
	char atr[100]="country";
	int i=0,temp=0;
	for(i=0;i<6;i++)
	{
		str[temp]=atr[i];
		if(str[i]!='\0')
		{
			temp++;
		}
		i++;
	}
	str[i]='\0';
	puts(str);
	//str[i]='\0';
}
a#include<stdio.h>
int main()
{
	char str1[100]={0};
	char str2[100]={0};
	int i=0,j=0;
	//scanf("%s",str1);
	//scanf("%s",str2);
	gets(str1);
	gets(str2);
	/*while(str1[i]!='\0')
	{
		//int i;
		i++;
	}*/
	for(int i=0;str1[i]!='\0';i++);
	for(int i=0,j=0;str2[j]!='\0';i++,j++)
	{
		str1(i++)=str2(j++);
	}
	/*while(str2[j]!='\0')
	{
		//int i,j;
		str1[i++]=str2[j++];
	}*/
	str1[i]='\0';
	puts(str1);
	return 0;
}
/*
 *	作者:徐子宸
 *	班级:22101
 *	功能:实现字符串的连接
 *	来源:根据高助教的指导改写
 *
 */
#include<stdio.h>
int main()
{
	char str1[100];
	char str2[100];
	int i=0;
	int j=0;
	printf("请输入字符串1\n");
	gets(str1);
	printf("请输入字符串2\n");
	gets(str2);
	do
	{
		i++;
	}
	while(str1[i]!='\0');
	do
	{
		str1[i++]=str2[j++];
	}
	while(str2[j]!='\0');
	str1[i]='\0';
	printf("连接后的字符串为\n");
	puts(str1);
	return 0;

}
/*
 *	作者:徐子宸
 *	班级:22101
 *	功能:实现字符串的连接
 *	来源:根据高助教的指导改写
 *
 */
#include<stdio.h>
//#include<string.h>
int main()
{
	char str1[100];
	char str2[100];
	char str3[100];
	char str4[100];
	int i=0;
	//static int i=0;
	int j=0;
	int k=0;
	//int m=0;
	printf("请输入字符串1\n");
	gets(str1);
	printf("请输入字符串2\n");
	gets(str2);
	do
	{
		i++;
	}
	while(str1[i]!='\0');
	do
	{
		str1[i++]=str2[j++];
	}
	while(str2[j]!='\0');
	str1[i]='\0';
	printf("首次连接后的字符串为\n");
	puts(str1);
	//str4==str1;
	//puts(str4);
	//strcpy(str4,str1);
	do
	{
		str4[i]=str1[i];
		i++;
	}
	while(str1[i]!='\0');
	str4[i]='\0';
	printf("将此字符串复制一份得到\n");
	puts(str4);

	/*printf("请输入字符串3\n");
	gets(str3);
	do
	{
		k++;
	}
	while(str3[k]!='\0');
	do
	{
		
		str4[i++]=str3[k++];
	}
	while(str3[k]!='\0');
	str4[i]='\0';
	printf("再次连接后的字符串为\n");
	puts(str4);*/
	return 0;
}
/*
 *	拓展:将字符串2连接到字符串1后面,再将新生成的字符串复制一份
 *	未成功
 *
 */
/*
 *	作者:徐子宸
 *	班级:22101
 *	功能:实现字符串的连接
 *	来源:根据高助教的指导改写
 *
 */
#include<stdio.h>
#include<string.h>
int main()
{
	char str1[100];
	char str2[100];
	char str3[100];
	char str4[100];
	int i=0;
	//static int i=0;
	int j=0;
	int k=0;
	//int m=0;
	printf("请输入字符串1\n");
	gets(str1);
	printf("请输入字符串2\n");
	gets(str2);
	do
	{
		i++;
	}
	while(str1[i]!='\0');
	do
	{
		str1[i++]=str2[j++];
	}
	while(str2[j]!='\0');
	str1[i]='\0';
	printf("首次连接后的字符串为\n");
	puts(str1);
	//str4==str1;
	//puts(str4);
	strcpy(str4,str1);
	/*do
	{
		str4[i]=str1[i];
		i++;
	}
	while(str1[i]!='\0');
	str4[i]='\0';*/
	printf("将此字符串复制一份得到\n");
	puts(str4);

	printf("请输入字符串3\n");
	gets(str3);
	printf("字符串3为\n");
	puts(str3);
	/*do
	{
		k++;
	}
	while(str3[k]!='\0');
	do
	{
		
		str4[i++]=str3[k++];
	}
	while(str3[k]!='\0');
	str4[i]='\0';*/
	printf("再次连接后的字符串为\n");
	//puts(str4);
	
	strcat(str4,str3);
	puts(str4);
	return 0;
}
/*
 *	拓展:将字符串2连接到字符串1后面,再将新生成的字符串复制一份
 *	再输入字符串3,将字符串3连接到新复制的字符串后面
 *	问题:感觉不用到库函数不会写
 *
 */
/*
 *	作者:徐子宸
 *	班级:22101
 *	功能:实现字符串的连接
 *	来源:根据高助教的指导改写
 *
 */
#include<stdio.h>
#include<string.h>
int main()
{
	char str1[100];
	char str2[100];
	char str3[100];
	char str4[100];
	int i=0;
	//static int i=0;
	int j=0;
	int k=0;
	int m=0;
	printf("请输入字符串1\n");
	gets(str1);
	printf("请输入字符串2\n");
	gets(str2);
	do
	{
		i++;
	}
	while(str1[i]!='\0');
	do
	{
		str1[i++]=str2[j++];
	}
	while(str2[j]!='\0');
	str1[i]='\0';
	printf("首次连接后的字符串为\n");
	puts(str1);
	//str4==str1;
	//puts(str4);
	strcpy(str4,str1);
	/*do
	{
		str4[i]=str1[i];
		i++;
	}
	while(str1[i]!='\0');
	str4[i]='\0';*/
	printf("将此字符串复制一份得到\n");
	puts(str4);

	printf("请输入字符串3\n");
	gets(str3);
	printf("字符串3为\n");
	puts(str3);
	do
	{
		m++;
	}
	while(str4[m]!='\0');
	do
	{
		
		str4[m++]=str3[k++];
	}
	while(str3[k]!='\0');
	str4[m]='\0';
	printf("再次连接后的字符串为\n");
	//puts(str4);
	
	//strcat(str4,str3);
	puts(str4);
	return 0;
}
/*
 *	拓展:将字符串2连接到字符串1后面,再将新生成的字符串复制一份
 *	再输入字符串3,将字符串3连接到新复制的字符串后面
 *	问题:感觉不用到库函数不会写
 *
 */

#include<stdio.h>
/*
 *	作者:徐子宸
 *	来源:自己
 *	功能:实现字符串的拷贝
 *	有问题
 *
 */
int main()
{
	char str[30]={"hello"};
	char atr[20]={"helloworld"};
	int i=0,j=0;
	while(str[i]!='\0'&&atr[j]!='\0')
	{
		str[i]=atr[j];
		i++;
		j++;
	}
	atr[j]='\0';
	puts(str);
	return 0;
}
#include<stdio.h>
/*
 *	作者:徐子宸
 *	来源:22091班上课笔记
 *	功能:实现字符串的拷贝
 *
 *
 *
 */
int main()
{
	char str[100]={"china"};
	char atr[100]={"people"};
	int i=0;
	while(atr[i]!='\0')
	{
		str[i]=atr[i];
		i++;
	}
	atr[i]='\0';
	puts(str);
	return 0;
}
/*
 *	作者:徐子宸
 *	班级:22101
 *	来源:根据CSDN网站中的相关信息改写
 *	功能:实现对字符串的排序
 *
 */
#include<stdio.h>
#include<string.h>
int main()
{
	char str[5][10]={'\0'};
	char temp[10];
	printf("请输入5个不同的字符串\n");
	for(int i=0;i<5;i++)
	{
		scanf("%s",str[i]);
	}
	printf("字符串输入完毕\n");
	for(int i=0;i<5-1;i++)
	{
		int k=i;
		for(int j=i+1;j<5;j++)
		{
			if(strcmp(str[k],str[j])>0)
			{
				k=j;
				if(k!=i)
				{
					strcpy(temp,str[i]);
					strcpy(str[i],str[k]);
					strcpy(str[k],temp);
				}
			}
		}
	}
	printf("已完成对字符串的排序\n");
	for(int i=0;i<5;i++)
	{
		printf("%s\n",str[i]);
	}
	return 0;
}
/*
 *	思路分析:
 *
 *	输入字符:
 *	aa
 *	bb
 *	cc
 *	ee
 *	dd
 *	字符串输入完毕
 *	运行此循环,用于对字符串进行排序
 *	
	for(int i=0;i<5-1;i++)	
	{
		int k=i;
		for(int j=i+1;j<5;j++)
		{
			if(strcmp(str[k],str[j])>0)
			{
				k=j;
				if(k!=i)
				{
					strcpy(temp,str[i]);
					strcpy(str[i],str[k]);
					strcpy(str[k],temp);
				}
			}
		}
	}

 *	i={0,1,2,3}
 *	str[0]=aa
 *	str[1]=bb
 *	str[2]=cc
 *	str[3]=ee
 *	str[4]=dd
 *
 *	k={0,1,2,3}
 *	str[0]=aa
 *	str[1]=bb
 *	str[2]=cc
 *	str[3]=ee
 *	str[4]=dd
 *
 *	j={1,2,3,4}
 *	str[0]=aa
 *	str[1]=bb
 *	str[2]=cc
 *	str[3]=ee
 *	str[4]=dd
 *
 *	strcmp(str[0],str[1])>0
 *	strcmp(aa,bb)>0
 *	k=j
 *	str[k]=aa
 *	str[j]=bb
 *	str[k]=str[j]
 *	str[k]=bb
 *	str[i]=bb
 *	k!=i
 *	不进行两两交换
 *
 *	strcmp(str[1],str[2])>0
 *	strcmp(bb,cc)>0
 *	k=j
 *	str[k]=bb
 *	str[j]=cc
 *	str[k]=str[j]
 *	str[k]=bb
 *	str[i]=bb
 *	k!=i
 *	不进行两两交换
 *
 *	strcmp(str[2],str[3])>0
 *	strcmp(cc,ee)>0
 *	k=j
 *	str[k]=cc
*	str[j]=ee
*	str[k]=str[j]
*	str[k]=ee
*	str[i]=ee
*	k!=i
*	不进行两两交换
*
 *	strcmp(str[3],str[4])<0
 *	strcmp(ee,dd)<0
 *	k=j
 *	str[k]=ee
 *	str[j]=dd
 *	str[k]=str[j]
 *	str[k]=dd
 *	str[i]=ee
 *	k!=i
 *	进行两两交换
 *
 *	字符串的最终排序为
 *	aa
 *	bb
 *	cc
 *	dd
 *	ee
 *
 *	分析完毕
 *
 */

已完成总结

请自行运行调试代码,此文章只做参考

作者:徐子宸

班级:西安华清远见嵌入式22101班

日期:2022年10月29日

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习嵌入Linux内核是一个需要循序渐进的过程。首先需要了解Linux内核的基础知识,可以参考《深入理解Linux内核》这本书。这本书非常经典,通过对内核源码的学习,可以帮助你更好地理解Linux内核的工作原理和机制。 在学习过程中,可以按照以下学习路线进行: 1. 学习Linux基础知识:了解Linux操作系统的基本原理和概念,包括进程管理、内存管理、文件系统等。 2. 学习C语言编程:作为Linux内核的开发语言,掌握C语言编程是必不可少的。可以通过学习C语言的语法和特性来提高自己的编程能力。 3. 研究Linux内核源码:深入理解Linux内核需要对其源码进行研究。可以选择一些经典的书籍,如《深入理解Linux内核》,并结合实际的内核代码进行学习。 4. 参与开源项目:参与开源项目是提高自己对Linux内核理解的一个很好的方。可以选择一些感兴趣的项目,并贡献自己的代码或者参与讨论,与其他开发者一起学习和成长。 总结来说,嵌入Linux内核的学习需要从基础知识到深入研究内核源码,并通过实践和参与开源项目来提高自己的技能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [关于如何快速学好,学懂Linux内核。内含学习路线](https://blog.csdn.net/m0_74282605/article/details/127999926)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [嵌入Linux入门指南(一)——学习路线篇](https://blog.csdn.net/weixin_51627076/article/details/122588888)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值