嵌入式课程设计——学习日志

日期: 2018-9-10

第一天:

一.今日任务:

熟悉linux系统的基本操作和相关的终端命令如:ls,cd,vim 文件,gcc 文件 -o one,./one,rm -rf 删除的文件,Esc,shift zz,并熟悉C语言的指针和结构体。

二.今日任务完成情况:

今日任务已按计划完成,上课代码全部正常运行,课后作业已完成。今日代码量:200。

三.今日开发中出现的问题汇总:

变量未声明就调用,因为之前一直写python代码,所以导致不声明就使用。对指针的访问与操作有些生疏,但多敲些代码后已理解。

四.今日未解决问题 :

有些问题没有思路,需要多练。

五.今日开发收获:

熟悉linux系统的基本操作终端命令如:
相关指令 作用
ls 列出当前文件夹下的文件名
cd /文件夹 进入指定文件
vim 文件名.c 进入此文件开始编写代码
Esc 退出写入状态
shift zz 回到终端
gcc 文件 名.c -o one 编译文件.c
./one 执行之前编译好的程序
rm -rf 删除的文件 删除文件
C语言相关数据类型在32位操作系统占用的字节数:
类型 存储大小
int 4个字节
short 2个字节
double 8个字节
long 4个字节
char 1个字节
float 4个字节

int* 4个字节
short* 4个字节
double* 4个字节
long* 4个字节
char* 4个字节
float* 4个字节
指针相关操作:
1.指针变量的声明:类型说明符 *指针变量名;
2.指针变量的初始化:指针变量名 = &变量名;
3.动态存储分配(野指针)需要释放内存。
注意:*p++ 相当于 *p 而 *++p 相当于 *(++p) 指向当前变量的下一个相邻的未知变量。
结构体相关操作
1.结构体总长度一定是最长成员的长度的整数倍
2.每个成员的偏移量一定是该成员长度的整数倍
3.指针操作结构体:p->结构体成员变量;

六.自我评价:

有良好的编程基础,但经常会打错变量名;上课按照老师的讲解能很好理解但还是不够快速的掌握老师上课提出的问题。需要课后多加练习。

七.课后作业:

//3.题目: 输入一个字符串,计算字符串中子串出现的次数

 #include<stdio.h>
int main()
{
     char child[10], parent[20], *p1, *p2;
     int sum = 0;
     printf("请输入父字符串\n");
     scanf("%s",parent);
     printf("请输入子字符串\n");
     scanf("%s",child);
     p1 = parent;
     p2 = child;
     while(*p1 != '\0')
     {
         if(*p1 == *p2)
         {
             while(*p2 != '\0' && *p1 == *p2)
             {
                 p1++;
                 p2++;
             }
         }
         else
             p1++;
         if(*p2 == '\0')
             sum++;
         p2 = child;
	}
    printf("子字符串出现的次数:%d\n",sum);
}

/4. 题目: 编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”,即将句子中的单词位置倒置,而不改变单词内部结构./

#include <string.h>
void change(char *str)
{
	char temp;
	char *p = str;
	char *start = str;
	char *end = str;

	while (*p != '\0')
	{
		p++;
		end++;
	}
	end = p - 1;
	p = str;
	while (*p != '\0')
	{
		while (start < end)
		{
			temp = *start;
			*start = *end;
			*end = temp;
			start++;
			end--;
		}
		p++;
	}
}

void change1(char *str)
{
	char *p = str;
	char *start = p;
	char *end = p;
	char temp;

	while (*p != '\0')
	{
		if (*p == ' ' || *p == '\0')
		{
			end = p - 1;
			while (start < end)
			{
				temp = *start;
				*start = *end;
				*end = temp;
				start++;
				end--;
			}
			start = end = p + 1;
		}
		p++;
	}
	end = p - 1;
	while (start < end)
	{
		temp = *start;
		*start = *end;
		*end = temp;
		start++;
		end--;
	}
}
int main()
{
	char str[100];
	printf("please input string:\n");
	gets(str);
	change(str);
	change1(str);
	printf("the result is :%s\n", str);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值