- 博客(42)
- 收藏
- 关注
原创 STM32学习2
OLED(Organic Light Emitting Diode):有机发光二极管OLED显示屏:性能优异的新型显示屏,具有功耗低、相应速度快、宽视角、轻薄柔韧等特点0.96寸OLED模块:小巧玲珑、占用接口少、简单易用,是电子设计中非常常见的显示屏模块供电:3~5.5V,通信协议:I2C/SPI,分辨率:128*644针脚:I2C 7针脚:SPI。
2025-04-18 14:36:25
871
原创 二、作业
n表示第二行第一个升序序列中数字的个数,m表示第三行第二个升序序列中数字的个数。输出为一行,输出长度为n+m的升序序列,即长度为n的升序序列和长度为m的升序序列中的元素重新进行升序序列排列合并。版本1:通过另一个数组,进行筛选,第一次找奇数,第二次找偶数,第三次拷贝。来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。≤1000 , 序列中的值满足 0≤val≤30000 0≤。数据范围: 1≤n,m≤1000 1≤。
2024-08-09 18:21:24
568
原创 一、数据的存储
前面我们已经学习了基本的内置类型:char //字符数据类型 1个字节short //短整型 2个字节int //整形 4个字节long //长整型 4/8个字节long long //更长的整形 8个字节float //单精度浮点数 4个字节double //双精度浮点数 8个字节4 / 8 >=4//C语言有没有字符串类型?
2024-08-07 18:19:40
932
原创 二十三、阶段测评
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。| - 按(2进制)位或,就是a的补码与b的补码按位或(有1为1,两个都为0才为0)D. 后缀自增比间接访问优先级高,先是p++,然后(*p),最后p++。3/2 两边都是整数,所以得到的就是整数,3/2=1;A.(*p)先执行,然后+=1;局部变量优先,但是没有返回值,所以只用全局变量的a。用a*1,*2,*3... 然后整除b。输出描述:输出A和B的最小公倍数。j=1, i++,则i=2。
2024-07-30 08:59:37
723
原创 二十二、作业
求Sn=a+aa+aaa+aaaa+aaaaa的前五项之和,其中a是一个数字。喝汽水,一瓶汽水1元,2个空可以换一瓶汽水,给20元,可以买多少瓶汽水。水仙花数是指一个n位数,其各位数字的n次方之和恰好等于该数本身。写一个函数打印arr数组的内容,不使用数组下标,使用指针。任何一个变量/表达式,都有2个属性,值属性和类型属性。例如153=1^3+5^3+3^3,153是水仙花树。例如 2+22+222+2222+22222。写一个函数,可以逆序字符串的内容。类型属性:double。值属性:a的真实地址。
2024-07-28 22:48:10
540
原创 二十、作业
sizeof这个操作符计算返回的结果是size_t类型的,是无符号整形的,-1会转为一个非常大的数。KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的X形图案。输入描述:多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。输出描述:针对每组输入,输出为一行,一个整数,表示这一年这个月有多少天。输入描述:多组输入,一行有两个整数,分别表示年份和月份,用空格分隔。局部变量,是放在栈区,不初始化,默认值是随机值。
2024-07-26 22:52:51
500
原创 十九、结构体
函数传参的时候,参数是需要压栈的。如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的下降。结构体变量访问成员结构变量的成员是通过点操作符(.)访问的。结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。p1和p2是使用struct Peo结构体类型创建的2个变量,一般不用。有时候我们得到的不是一个结构体变量,而是指向一个结构体的指针。结构的成员可以是标量、数组、指针,甚至是其他结构体。结构体传参的时候,要传结构体的地址。.操作符和->操作符。
2024-07-26 13:20:52
632
原创 十八、指针
在32位的机器上,地址是32个0或者1组成二进制序列,那地址就得用4个字节的空间来存储,所以一个指针变量的大小就应该是4个字节。那如果在64位机器上,如果有64个地址线,那一个指针变量的大小是8个字节,才能存放一个地址。允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与指向第一个元素之前的那个内存位置的指针进行比较。a将地址串到*p但是,return &a,之后a就销毁了,但是地址传到*p,*p在去访问这个地址时,不能使用这块空间。
2024-07-25 23:02:34
2033
原创 十七、作业
变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于自身,则是一个Lily Number。有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后的序列,序列中未被删除数字的前后位置没有发生改变。输出描述:针对每组输入,输出单独占一行,判断输入字符是否为字母,输出内容详见输出样例。输出描述:针对每组输入,输出单独占一行,输出字母的对应形式。
2024-07-23 10:18:46
889
原创 十六、操作符详解
注释:同上,操作符的优先级只能决定自减--的运算在+的运算的前面,但是我们并没有办法得知,+操作符的左操作数的获取在右操作数之前还是之后求值,所以结果是不可预测的,是有歧义的。:表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度一般就是int的字节长度,同时也是CPU的通用寄存器的长度。注释:代码1在计算的时候,由于*比+的优先级高,只能保证,*的计算是比+早,但是优先级并不能决定第三个*比第一个+早执行。如果两者的优先级相同,取决于他们的结合性。
2024-07-20 22:11:44
1615
原创 十五、扫雷
因为字符1 ASCII码是49 ,字符0 ASCII码是48。'1' - '0' -->1 字符1减字符1等于数字1。'0' - '0' -->0 字符0减字符0等于数字0。
2024-07-17 08:35:13
341
原创 十四、作业
例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19。将数组A中的内容和数组B中的内容进行交换。:将参数字符串中的字符反向排列,不是逆序打印。编写一个函数实现n的k次方,使用递归实现。unsigned 无符号类型,即非负数。要求:自己设计以上函数的参数,返回值。不能使用C函数库中的字符串操作函数。输入:1729,输出:19。
2024-07-15 18:14:03
552
原创 十二、数组
C语言本身是不做数组下标的越界检查,编译器也不一定报错,但是编译器不报错,并不意味着程序就是正确的, 所以程序员写代码时,最好自己做越界的检查。1.sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节。所以数组的下标如果小于0,或者大于n-1,就是数组越界访问了,超出了数组合法空间的访问。数组的下规定是从0开始的,如果数组有n个元素,最后一个元素的下标就是n-1。2.&数组名,这里的数组名表示整个数组,取出的是整个数组的地址。冒泡排序的核心思想:两个相邻的元素进行比较。
2024-07-08 18:01:20
740
原创 十一、作业
计算1/1-1/2+1/3-1/4+1/5 ……+ 1/99 - 1/100 的值,打印出结果。编写程序数一下 1到 100 的所有整数中出现多少个数字9。要求:找到了就打印数字所在的下标,找不到则输出:找不到。写一个代码打印1-100之间所有3的倍数的数字。编写代码在一个整形有序数组中查找具体的某个数。打印1000年到2000年之间的闰年。写代码将三个整数数按从大到小输出。给定两个数,求这两个数的最大公约数。最小公倍数=a*b/最大公约数。在屏幕上输出9*9乘法口诀表。%-2d - 左对齐。
2024-07-07 16:58:05
542
原创 十、函数递归
什么是递归?程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的 一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。递归策略:只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的主要思考方式在于:把大事化小递归的两个必要条件 :存在限制条件,当满足这个限制条件的时候,递归便不再继续。每次递归调用之后越来越接近这个限制条件。
2024-07-05 17:02:16
502
原创 九、函数的声明和定义
include "add.h" - 头文件的包含,其实就是把头文件的内容拷贝过来。编译文件,在代码文件下Debug文件里有一个add.lib,就是静态库。2. 函数的声明一般出现在函数的使用之前。这种分文件的书写形式,在三字棋和扫雷的时候,再来分模块来写。如何将写的.c文件编译成静态库,静态库将代码变成二进制。我们只需要在主函数main的上门加上函数的声明即可。函数的定义是指函数的具体实现,交待函数的功能实现。定义的函数在主函数是能运行,但是有一个警告。3. 函数的声明一般要放在头文件中的。
2024-07-04 22:24:15
540
原创 八、函数的嵌套调用和链式访问
函数和函数之间可以根据实际的需求进行组合的,也就是互相调用的。函数不写返回值的时候,默认返回类型是int。把一个函数的返回值作为另外一个函数的参数。函数可以嵌套调用,但是不能嵌套定义。函数地位是平等的,不能函数嵌套函数。printf的返回值是字符打印的个数。
2024-07-03 15:40:59
473
原创 七、函数练习
int binary_search(int arr[],int k,int sz)//形参arr看上去是数组,本质是指针变量。数组传参实际上传递的是数组首元素的地址,而不是整个数组,所以在函数内部计算一个函数参数部分的数组的元素个数的不靠谱的。形式参数和实际参数的名字可以相同,也可以不同。a和b中一定有一个数字是<=sqrt(m)bool类型的头文件stdbool.h。也可以直接返回0 1。bool 表示真,假。
2024-07-03 11:34:41
699
原创 六、函数
如果库函数能干所有的事情,那还要程序员干什么?所有更加重要的是自定义函数。自定义函数和库函数一样,有函数名,返回值类型和函数参数。但是不一样的是这些都是我们自己来设计。这给程序员一个很大的发挥空间。我们举一个例子: 写一个函数可以找出两个整数中的最大值。//函数定义x : y);int b = 0;//函数调用return 0;再举个例子: 写一个函数可以交换两个整形变量的内容。地址完全不相同。传值不传地址用指针找到地址,建立联系//a。
2024-07-02 17:35:04
1573
原创 五、goto语句
C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。从理论上 goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。多层循环这种情况使用break是达不到目的的。它只能从最内层循环退出到上一层的循环。但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。尽量少的使用goto语句。goto语句也可以用其他代替,当前程序用循环即可。
2024-07-01 20:29:40
363
原创 四、分支和循环语句练习-2
5.编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则 提示登录成,如果三次均输入错误,则退出程序。4.编写代码,演示多个字符从两端移动,向中间汇聚。
2024-07-01 18:05:08
379
原创 二、循环语句-while,for,do while
scanf和getchar公用一个输入缓冲区,当输入的密码123456\进入输入缓冲区,scanf取走了123456给到了password,getchar直接取走了\n,就输出No了。while和for continue的区别,for是跳过continue后面的代码,跳到调整部分i++;scanf取走了abcd,getchar拿走了空格,下面的ret取走了直接不等于Y,直接No。continue是跳过本次循环后面的代码,直接去判断部分,进行下一次循环的判断。a一直=5,一直在循环,跳过了后面的打印和++,
2024-06-29 20:01:07
722
原创 一、if语句和switch语句
C语言是【结构化】的程序设计语言,有顺序结构,选择结构,循环结构。选择结构 if,switch。循环结构 for,while,do while。
2024-06-27 18:03:53
345
原创 十五、结构体
结构体对象访问他里面的对象用的是 .操作符。结构体是把一些单一类型组合在一起的做法。用ps.name,他会自动转化位->。左边是结构体指针变量->成员名。结构体struct。结构体对象.成员名。用指针这样比较啰嗦。
2024-06-26 19:34:53
187
原创 十四、指针
内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的。所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。//这里的*是:解引用操作符,意思就是通过p中存放的地址,找到p所指向的对象,*p就是p指向的对象。指针变量是用来存放地址的,一个指针变量的大小取决于一个地址存放的时候需要多大的空间。*说明p是指针变量。内存单元,有编号,编号就是地址,而地址也被称为指针。
2024-06-26 16:05:52
291
原创 十三、#define定义常量和宏
标准的:#define ADD(x,y) ((x)+(y))arr[NUM]={0};define定义宏,宏是有参数的。#define 定义符号。
2024-06-26 10:40:40
478
原创 十二、常用关键字
内置类型:char,shout,int,long,float,double,signed(有符号的),unsigned(无符号的),一个函数本来的具有外部链接属性的,但是被static修饰的时候,外部链接属性就变成了内部链接属性,其他源文件(.c)就无法使用了。分支语句: if else,switch,case,default,goto(跳转语句),类型:enum(枚举),struct(结构体),union(联合体/共用体),循环: for ,while,do while,break,continue。
2024-06-26 10:24:19
776
原创 十一、操作符
/( )就是函数调用操作符,Add,2,3都是( )的操作数。除号的两端都是整数的时候,执行的是整数除法,如果两端只要有应该浮点数就是执行浮点数的除法。逗号表达式的特点就是从左向右依次计算,整个表达式的结果是最后一个表达式的结果。//[ ]就是下标引用操作符,arr和3就是操作数。sizeof是操作符,所以名字的括号可以省略,类型的括号不可省。if (a=3)//a=3,if判断为真,打印hhh。==用于判断相等的,此时3不等于10,所以判断为假。整个表达式的结果是最后一个表达式的结果。
2024-06-25 13:18:21
458
原创 十、数组
下面一组数据,都是有序号的 0 1 2 3 4 5 6 7 8 9。C语言中给了数组的定义:一组相同类型元素的集合。arr[8],访问的就是第9个元素18。要存储1-10的数字,怎么存储?如何展示数组的所有值?
2024-06-24 15:44:02
254
原创 八、选择语句和循环语句
三种循环的方式:while语句-讲解;for语句(后期讲);do ... while语句(后期讲)。C语言实现选择:if else 或者 switch语句。
2024-06-24 15:01:18
333
原创 七、注释
C++风格的注释 ://xxxxxxxx 可以注释一行也可以注释多行。C语言风格的注释 :/*xxxxxx*/ 一次可以注释多行。4.面试的时候写上必要的注释,可以方便面试官读懂你的代码。3.写代码的时候写注释,是帮助自己,也是帮助别人。第一种注释方式,C语言注释风格:/* */第二种注释方式,C++注释风格://在后续代码中,要自行写注释。2.对复杂的代码进行解释。1.注释可以梳理思路。缺陷:不能嵌套注释。
2024-06-23 22:15:10
306
原创 六、字符串+转义字符
如果不知道后面字符的大小,前面[ ]可以不写数字,会根据后面字符串的内容,自动确认需要几个空间。arr2 a b c d e f 打印时,f之后没有停止,一直找到\0才能停止。字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。\t是水平制表符,打印不出来路径 ,此时使用\\。
2024-06-23 18:06:40
851
原创 五、常量概念
C语言中的常量分为以下以下几种: 1.字面常量 2.const 修饰的常变量 3.#define 定义的标识符常量4.枚举常量。在C语言中,const修饰的a,本质的变量,但是不能直接被修改,有常量的属性。枚举常量的默认是从0开始,依次向下递增1的。不用const修饰的变量,可以更改。3.#define 定义的标识符常量。const修饰的变量不能更改了。2.const 修饰的常变量。一般符号、枚举常量等要大写。
2024-06-23 14:19:48
263
原创 四、变量的作用域和生命周期
作用域:这个变量在哪里可以使用,哪里就是他的作用域。若引用其他文件的符号,需要加声明,extern。下图错误:a只作用在最内部的{ }里。下图此时a作用整个main函数。全部变量的作用域是整个工程。2.局部变量的作用域。3.全局变量的作用域。
2024-06-23 09:09:23
281
原创 三、变量和常量的概念
在VS的安装路径下有一个文件:newc++file.cpp的文件,在VS工程中创建新的.c或者.cpp文件的时候,都是拷贝new++file.app这个文件。分析错误信息:分析C4996错误,翻译:此函数或变量可能不安全,考虑使用scanf_s。如果不想使用编译器提示的scanf_s,解决办法:在代码的第一行定义_CRT SECURE_NO WARNINGS 后面加1或0或不写都可以。提示:scanf_s这个函数是VS编译器自己提供的函数,非标准C提供的函数,那就只有VS编译器认识,其他编译器不认识!
2024-06-22 22:55:30
308
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人