首页
留言板
朋友圈
关于
壁纸
推荐
EI导航
EI淘券
Search
1
一个好看的烟花源码
96 阅读
2
XMind ZEN 2020 v10.3.0 思维导图中文绿色版
74 阅读
3
华为太空人表盘
66 阅读
4
Typecho开启Gzip压缩加速网站
64 阅读
5
Dreamweaver8序列号
62 阅读
学习分享
开发
考研
嵌入式
网络资源
网站源码
精品软件
网站建设
创作设计
Search
EI
累计撰写
14
篇文章
累计收到
4
条评论
首页
栏目
学习分享
开发
考研
嵌入式
网络资源
网站源码
精品软件
网站建设
创作设计
页面
留言板
朋友圈
关于
壁纸
推荐
EI导航
EI淘券
搜索到
4
篇与
嵌入式
的结果
2021-03-14
Day4
【1】循环结构语句 1.for 基本结构: for(表达式1;表达式2;表达式3) { 语句块; } 表达式1:赋初值 表达式2:判断条件 表达式3:自增或自减 执行顺序: 先执行表达式1,然后判断表达式2是否成立,成立则执行语句块, 执行表达式3,再次判断表达式2,成立则执行语句块,依次循环。 直到表达式2不成立,则跳出循环。 嵌套结构: for(表达式1;表达式2;表达式3) { for(表达式4;表达式5;表达式6) { 语句块; } } 终端输入行数,打印图案: 例如:输入6 * ** *** **** ***** ****** char ch = ‘*’ printf(“%c”,ch) printf(“*”); scanf("%d",&n); for(i=0;i<n;i++) printf("*"); 外层循环控制行数,内层循环控制每行打印的个数。 终端输入行数,打印如下图案: 5 空格 星 ***** 0 5 **** 1 4 *** 2 3 ** 3 2 * 4 1 2.while 基本结构: while(表达式) { 语句块; } 表达式:判断条件 for(表达式1;表达式2;表达式3) { 语句块; } 改写while循环: 表达式1; while(表达式2) { 语句块; 表达式3; } 死循环:while(1)永真循环 for(;;) 练习:已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。 3.do...while【2】数组概念:一组具有顺序关系且类型相同的数据集合 特点:地址连续 定义格式: 存储类型 数据类型 数组名[元素个数] (auto) int a[10]; 数组名:满足标识符的命名规则 1.以数字、字母、下划线组成 2.首个字符必须是字母或下划线 3.不能与关键字重名 数组大小: 占字节数: 数据类型 * 元素个数 int a[10]; size = 40 char a[5]; size = 5 double a[8]; size = 64 sizeof(数据类型或变量名) = 所占字节数。 数组元素: int a[10] : a[0] - a[9] 十个元素 数组初始化: 全部初始化: 定义数组的同时进行赋值 int a[5] = {1,2,3,4,5}; 部分初始化: int a[5] = {1,2}; 部分初始化时,未被初始化的元素默认为0. 未初始化: int a[5]; 未初始化,数组元素为随机值。 数组清零: int a[5] = {0,0,0,0,0}; int a[5] = {0}; int a[5] = {}; 数组的输入输出: int a[5],i; for(i=0;i<5;i++) { scanf("%d",&a[i]); } for(i=0;i<5;i++) { printf("%d",a[i]); } 青年歌手大赛10个评委对选手进行打分,求选手得分。 评分规则为去掉一个最高分,去掉一个最低分,其余求平均值。 评委分数从终端输入,输出选手成绩即可。 整数相除,向下取整。 5 / 2 = 2 float a = 5/2; a = 2.000000 【3】冒泡排序5个数 5 4 3 2 1 从小到大第一趟:4 5 3 2 1 4 3 5 2 1 4 3 2 5 1 4 3 2 1 5 第二趟:3 4 2 1 5 3 2 4 1 5 3 2 1 4 5第三趟:2 3 1 4 5 2 1 3 4 5 第四趟:1 2 3 4 5 5个数 4趟 每趟比较次数依次递减 4行 每行星数依次递减 **** *** ** * 【4】二维数组概念:有行有列的数组 定义格式: 存储类型 数据类型 数组名[行数][列数] (auto) int a[2][3]; 数组初始化: 全部初始化: 定义数组的同时进行赋值 int a[2][3] = {1,2,3,4,5,6}; int a[2][3] = {{1,2,3},{4,5,6}}; a[0][0] = 1; a[0][1] = 2; a[0][2] = 3; a[1][0] = 4; a[1][1] = 5; a[1][2] = 6; 部分初始化: int a[2][3] = {1,2}; 部分初始化时,未被初始化的元素默认为0. 未初始化: int a[2][3]; 未初始化,数组元素为随机值。 二维数组的输入输出: int a[2][3],i,j; for(i=0;i<2;i++) { for(j=0;j<3;j++) { scanf("%d",&a[i][j]); } } for(i=0;i<2;i++) { for(j=0;j<3;j++) { printf("a[%d][%d] = %d\n",i,j,a[i][j]); } } 有个三行四列的二维数组,要求从终端进行输入,找到其最大最小值进行输出, 输出时打印其行号和列号。
2021年03月14日
52 阅读
0 评论
2 点赞
2021-03-13
一个C语言的时钟小程序
代码要求:输入年月日时分秒(例如:2021-3-12 11:30:00) 实现正确进位即可(注意考虑大小月、平年闰年等) #include<stdio.h> int main(int argc, const char *argv[]) { int year,month,day,hour,min,sec; scanf("%d %d %d %d %d %d",&year,&month,&day,&hour,&min,&sec); while(1) { sec++; sleep(1); if(sec>=60) { sec = 0; min++; if(min>=60) { min=0; hour++; if(hour>=24) { hour=0; day++; if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) { if (day>31) { day=1; month++; } } if(month==4||month==6||month==9||month==11) { if (day>30) { day=1; month++; } } else{ if((year%4==0&&year%100!=0)||(year&400==0)) { if (day>29) { day=1; month++; } } else { if (day>28) { day=1; month++; } } } if (month>12) { month=1; year++; } } } } printf("%d-%02d-%02d %02d:%02d:%02d\r",year,month,day,hour,min,sec); fflush(stdout); //刷新缓存区 } return 0; }
2021年03月13日
42 阅读
0 评论
1 点赞
2021-03-11
Day2
【1】简单编程步骤1)新建一个.c文件 touch hello.c 2)用vi编辑器打开文件 vi hello.c 3)编写程序: #include<stdio.h> //头文件 int main() //主函数 { printf("HelloKitty!\n"); //语句块 return 0; //返回值 } 4)保存并退出 :wq 5)编译 gcc hello.c 6)执行 ./a.out 【2】gcc编译过程1)预处理 展开头文件,删除注释,替换宏定义。 gcc -E hello.c -o hello.i 2)编译 检查语法错误,有错报错,没有错误则生成汇编文件。 gcc -S hello.i -o hello.s 3)汇编 将汇编语言生成机器能够识别的二进制文件即目标文件。 gcc -c hello.s -o hello.o 4)链接 链接库文件,生成指定的可执行文件。 gcc hello.o -o hello 生成指定的可执行文件名: gcc hello.c -o abc 【3】计算机数据表示1.数值型数据 二进制(BIN) 0 1 10 11 100 101 110 111 八进制(OCT) 0 - 7 10 - 17 20 - 27 77 100 十进制(DEC) 0 - 9 10 - 19 20 - 29 99 100 十六进制(HEX)0 - 9 a - f 10-1f 20-2f ff 100 十进制转二进制: 短除法:除2倒取余数 66 => 1000010 二进制转十进制: 二的次幂和 八进制转二进制: 421码 77 => 111 111 45 => 100 101 二进制转八进制: 001 101 010 => 152 十六进制转二进制: 8421码 0xab => 1010 1011 二进制转十六进制: 0110 1010 => 0x6a 2.非数值型数据 字符 :如何存储在计算机中? ASCII码:美国信息交换标准代码 ISO man手册查询:man ascii 【4】变量概念:在程序运行过程中其值发生变化的量 数据类型:在内存中占用字节数 存储类型:存储位置 auto、static、register、extern 分类: (32位操作系统) 字符型 char 1字节 短整型 short 2字节 整型 int 4字节 长整型 long 4字节 单精度浮点型 float 4字节 双精度浮点型 double 8字节 1字节 = 8位(二进制) 定义格式: [存储类型] [数据类型] [变量名] (auto) int a; 【5】常量概念:在程序运行过程中不发生变化的量 分类: 整型常量: 整数 1 2 3 4 100 字符型常量: 字符 ‘A’ ‘!’ '\x33' 转义字符 ‘3’ ‘\n’换行 ‘\r’回车 浮点型常量: 小数 3.1415926 字符串常量: “hello” "a" 指数常量: 3*10^5 -> 3e5 2*10^-3 -> 2e-3 标识常量: 宏定义 #define #define 宏名 常量或表达式 #define PI 3.1415926 【6】格式化输出函数 #include<stdio.h> int printf(const char *format, ...); 功能:按照指定格式进行输出 参数: format 格式 %d -- 整数(十进制) %ld -- long %o -- 八进制 %#o 07 014 %x -- 十六进制 %#x 0x12 %c -- 字符 %s -- 字符串 %f -- 小数 float %lf -- 小数 double %u -- 无符号数 %e -- 指数 %p -- 地址 &取地址符 &a a的地址 返回值:成功输出的字符的个数 【7】格式化输入函数 #include <stdio.h> int scanf(const char *format, ...); 功能:按照指定格式进行输入 参数: 同printf int a; scanf("%d",&a); 返回值:成功输入的数据个数 输入一个大写字母,输出一个小写字母。 例如: 输入 A 输出 a
2021年03月11日
21 阅读
0 评论
1 点赞
2021-03-10
Day1
【1】操作系统的简介内核: linux unix BSD NT 操作系统:Ubuntu Redhat Centos Deepin MacOS Linux内核: 1.严格意义上讲linux并非操作系统,而是操作系统的内核 2.Linux又称为类Unix操作系统。 3.1991年由林纳斯·托瓦兹完成开发。 4.linux免费、开源、自由传播。 5.linux市面上的发行版本:Ubuntu、CentOS、OpenSUSE、Redhat等。 Ubuntu操作系统: 1.以linux为内核的发行版操作系统。 2.界面友好,初学者易上手。 3.免费开源,每6个月发布一个新版本,用户可免费更新。 【2】终端terminal 命令行解释器 linux @ ubuntu : ~ $ 用户名 @ 系统名 :当前路径 命令提示符 查看当前用户名 whoami 查看系统名 hostname 查看当前绝对路径 pwd ~:家目录(当前用户主目录) /home/linux /:根目录 /home :存放所有用户的主目录 linux文件管理形式:倒置树形 【3】ls list列表 ls -a 查看隐藏文件 ls -R 遍历当前路径下的所有文件 ls -i 查看文件的inode号 ls -l 查看文件的详细信息 d rwxr-xr-- 5 linux linux 4096 Jan 14 15:54 ARM[文件类型] [文件权限] [硬链接数] [用户名] [组名] [文件大小] [最后修改时间] [文件名] linux下有7种文件类型: - 普通文件 d 目录文件(文件夹) l 链接文件 s 套接字文件 p 管道文件 b 块设备文件 c 字符设备文件 文件权限: rwx r-x r-- [当前用户的权限] [同组成员权限] [其他用户权限] 111 101 100 7 5 4 r : 可读权限 4 w : 可写权限 2 x : 可执行权限 1 - : 没有权限 0 修改权限:chmod chmod 权限值 文件名 当前用户可读可写可执行,组内成员仅可读,其他用户可读可写。 chmod 746 ARM 【4】cd change directory 改变路径 cd + 路径 : 进入到该路径下 绝对路径:从根目录开始索引 相对路径:相对于当前路径进行索引 . :当前路径 .. :上一级路径 cd .. :返回上一级路径 (..的inode和上一级路径的inode号相同) cd - :返回上一次改变路径的操作的路径下 进入家目录: cd /home/linux cd ~ cd 进入根目录: cd / 【5】新建新建目录文件 mkdir make directory mkdir 目录文件名 mkdir 不能创建同名文件(提示文件已存在) mkdir -m 权限值 目录文件名:创建指定权限的目录文件 mkdir -p a/b/c/d : 创建具有层次关系的目录文件 新建普通文件 touch touch 普通文件名(后缀) touch test.c touch 创建同名文件会修改文件的时间戳 touch 1.txt 2.c 3.jpg ... :同时创建多个文件 【6】删除rm remove删除 rm 普通文件名 : 删除普通文件 rm -r 目录文件名 : 删除目录文件 rm -f 强制删除 rm -rf 强制删除目录文件 rm *.c 删除所有的.c文件 sudo rm !(3.txt) -rf 删除当前路径下3.txt之外的所有文件 切换用户:su + 用户名 su root : 切换到超级用户下 sudo :在执行本条命令时获取超级用户管理权限 【7】复制cp copy复制 cp 指定文件 目标路径 : 将指定普通文件复制到目标路径下 cp -r 目录文件 目标路径 : 将指定目录文件复制到目标路径下 【8】移动和重命名mv move移动 mv 指定文件 目标路径 : 将指定普通文件移动到目标路径下 mv 原文件名 新文件名 : 重命名 mv 原文件名 路径/新文件名 : 移动并重命名 【9】常用快捷键 打开终端: ctrl + alt + t 打开新的终端默认在家目录下。 ctrl + shift + n 在已经打开终端的前提下打开新的终端,默认处在相同路径下。 关闭终端: ctrl + d 补全: Tab 放大终端: ctrl + shift + “+” 缩小终端: ctrl + “-” 查看历史命令: 上下键 清屏: clear ctrl + l 【10】vi编辑器 vi + 文件名 vi的三种工作模式: 命令行模式:复制、删除、剪切、撤销、恢复、光标移动... 底行模式 :保存、退出、分屏、设置、查找、替换... 插入模式 :编辑文本 三种工作模式的切换: 1)打开文件后处于命令行模式。 2)通过A、a、I、i、O、o可以切换到插入模式。 3)先按Esc返回到命令行模式,再通过shift + “:”切换到底行模式。 命令行模式: 单行复制 yy 多行复制 nyy (n为要复制的行数,向下计算n行) 粘贴 p 单行剪切/删除 dd 多行剪切/删除 ndd 撤销 u 恢复 ctrl + r 光标移动 G (光标移动到末行) gg (光标移动到首行) 0 (光标移动到当前行开头) $ (光标移动到当前行末尾) 底行模式: 指定行复制 :1,8y (复制1-8行的内容) 指定行删除/剪切 :1,8d (删除/剪切1-8行的内容) 保存 :w 退出 :q 保存并退出 :wq 强制操作 :! 查找 :/str (查找str这个字符串) 去高亮 :noh 分屏 :vsp 文件名 全部保存并退出 :wqa 替换 : 1,10 s/ strl / str2/g将1-10行的str1全部替换成str2 另存为 : w新文件名</span>
2021年03月10日
19 阅读
0 评论
2 点赞