- 博客(19)
- 收藏
- 关注
原创 51(10.30)
ADDA(数模转换器):是单片机能够不仅在数字上控制亮灭,还能达到半亮半灭的效果。LED区:单片机主要通过L口来控制LED的亮灭,比如流水灯。:主要用来接收输入的按键数值,比如说按某个键产生什么功能。:如果运行中手动按这个按键,那么程序将会从头运行。无限模块:用来做无线鼠标,遥控器.....其中拨动杆可以可以将单片机取出或固定。:不要将单片机固定反了,有凹槽的在上。:读取时间显示在屏幕上,时钟闹钟等等。按键(独立按键与矩阵按键)一单片机简介(了解即可)10.用来插液晶屏的。
2024-10-30 21:37:29
336
原创 c语言语法(97-100)10.28 初级完结篇️
5.注意:枚举只是int类型,使用枚举的目的是将排比的句子或者名字和一起,不用单独写。(eg中的red为1,则yellow为2,green指定为5)用Num变量名放在大括号的最后来计数。可以指定值,没有指定的依次加1即可。
2024-10-28 16:42:31
387
原创 c语言语法(93-96)10.27
当比较的两个量s1,s2相等则返回0.若s1>s2则返回的值>0.若s1<s2则返回的值<0.即不相等就作减法。eg.结果分别是5和6(strlen不包括结尾的0,sizeof包括结尾的0)strcpy函数(把第二个参数的字符串拷贝到第一个字符串的空间里去)补:另写一个函数也可以实现strlen的效果。eg2.此时第一个为-32,第二个为32。1.用字符串函数时,要用字符串的头文件。补:自己写strcmp同等效果的函数。eg1.结果都是32。
2024-10-27 10:19:28
398
原创 c语言语法(84-92)10.26
理解:int a[]表示a是const的指针,再加个const表示数组的每个单元都是const,且必须通过初始化赋值,其他方式不可以对其进行赋值。若const在*前面表示不可以通过指针修改指向变量(*p不可变),const在*后面表示指针p不可变。理解:p可以指向别的,i也可以被赋予其他值,但是不可以通过*p来修改所指变量的值即*p不可以变。eg:如图:q=p是错误的,虽然大小相等,但是不同类型的指针是不能直接互相赋值的。理解:因为,i可以变,*q=i,所以*q可以改变;char*s是只读的,不可以修改;
2024-10-26 11:15:58
624
原创 c语言语法(80-83)10.19-10.20
函数参数表中将所需要返回的值加*指针化处理,然后调用函数函数时里面需要返回的值加&取地址,最后在外面printf即可。如何实现:f函数中打印出*p后,*p改为26,则原来的i也变为26,所以g函数打印出的k的值也随i的变化而变化(eg1.表示指针*p指向的是int,然后把i的地址给p(即p指向i)*p表示为int类型=地址变量的值(即&i=p,i=*p)所以上面那个和下面的都表示p是个指针,q是一个变量。返回多个值(函数则不能,只能返回一个)所以用指针来做。补:若想表达p,q都是指针,还要在p与q之间加*
2024-10-20 12:13:11
602
原创 c语言语法(76-79)10.19
由补充的可以将之前的统计数的代码,初始化数组时可以不用for来:但是有些编译器会报错。即从第一个数开始依次删掉其倍数,若已经被删掉了就不用看其倍数。eg.此代码中的10超过了有效下标9,所以无效会报错。若一个下标后面对应多个初始化值则分别在其后面下标对应。有效的下标范围:从0开始到数组的大小-1的范围。法一:先求出所有的素数然后再求比x小的素数。补:数组内部的特点:左值是读,右值是写。数组的大小,用sizeof。数组的下标:从0开始计数。
2024-10-19 11:57:44
340
原创 c语言语法(73-75)10.18
当int main执行到swap时,会进入swap函数空间中,但是int main中的a和b还是存在的,只是不在其作用域;eg1.本地变量可以定义在语句的块内,(其中的i只存在于括号内,在括号外则不存在,所以i++;(此eg中的a和b在括号的外面,但是括号内部打印a,仍然可以打印出来)eg3.5 但是在其块外部打印的a和b的值还是5和6,与块内定义的a无关。(大括号内定义的a与外部定义的a同名,则打印出a的值是0,而不是5)在外面定义的变量在内部仍然有效,而在内部定义的变量在外面无效。
2024-10-18 22:23:47
396
原创 c语言语法(70-72)10.17
1.引题:在我们写函数时,往往会把整个函数写在int main的上方,这是没有错的;如果我们把整个函数写在int main的下方,则会报错;c语言在调用函数时,若调用的函数类型与输入的值不匹配时,不会报错,这也是c语言的漏洞。若想实现把函数写在int main的下方,则需要在int main的上方写明函数体。eg.(输入的2.4是浮点数类型,而函数是int类型,输出的是2,不会报错)3.eg.其中函数原型中参数名可以不写(begin,end)2.答案是不能,主体中的a和b与函数中的a和b没有任何关系,
2024-10-17 22:53:48
374
原创 c语言语法(66-69)10.16
age(若age为0,则!答案:而不能4<x<6,因为会先判断4<x为0或者1,再用得到的结果0或者1来与<6进行判断,其都会为1。eg:即使函数中参数表没有任何的值,调用函数的时候也应该加上括号,是cheer(),而不是cheer。则此时i的结果为7,因为赋值运算符=的运算优先级高于逗号,所以只会用到i=3+4就不会往下算了。在没有学习函数之前,可能这样写代码:这样写的代码很多都重复了,质量不佳。若此时加了括号,则为一个整体,则只会把逗号右边的值给i=11。条件满足时的输出:条件不满足时的输出。
2024-10-16 23:30:46
549
原创 c语言语法(60-65)10.15
eg.其中若为蓝色里面的写法,只会转换a为int再/b,若想a/b后再转换类型则需要加括号。则不论输入的数字自己加不加空格输出都是正确的,会把空格过完后再读后面的数,但是如果代码中。则不论自己输入的时候加不加空格,最后输出的时候不会把空格读完后再读后面的,而是直接读空格。指的是把一个量的类型强制转换为另一个类型,通常是把大范围的类型转换为小类型。:(printf可以将小的自动转换为大的,而scanf不可以自动转换),每一个字符都对应一个整数类型的值(eg中的c为1,d为49)
2024-10-15 17:18:14
1074
原创 c语言语法(50-52;54-59)10.14
比int小的包括int(char,short)输入输出格式用%d,long long用%ld,unsigned用%u。上图表示没有加unsigned时的规则图,下图表示加了unsigned图时的规则图。:11111111是反码表示-1,实际二进制数表示255,00000000是0(以不同的格式来输入输出就会得到不同的值,与其在计算机内部是什么无关。若不想的输入的数表示反码,只表达二进制实际的含义,则可用。八进制的数字格式用%o,十六进制用%x。即以1开头的是负数,0开头的是正数。(1,2,4,4,8字节)
2024-10-14 21:41:37
473
原创 c语言语法(46-50)10.9-10.10
最佳代码:while b!=0的时候进入循环,然后当b==0时跳出循环,所以不用再加if b==0打印出最大公约数,直接循环外打印即可;然后开头也不需要判断b为0的情况,因为直接会跳到最后的打印。代码:第一个while是为了遍历i的每个数,第二个while是为了取出i的每一位数,第三个while是为了把i的每一个位数都做n次方计算最后加和。注意:以下代码与最佳代码都正确,但是以下代码可以不用写其两个if语句。代码:(上面那一个才是,下面是补充看不清的)2.法一:用枚举(效率不高)思路的eg:(t表示余数)
2024-10-10 17:04:41
289
原创 c语言语法(41-45) 10.8
理解:while那段是为了使mask的值根据输入的值而生成对应的mask(eg若输入三位数,mask为100......) 条件t>9是循环结束的时候,t/=10是去掉最右边的那一位,mask*=10是每一次循环mask都*10 然后把x mask输出方便后续运用。注意:我们知道break只能跳出它所在的循环,若想此代码只输出一种凑的结果,就都要用break,但是如果只是单纯的break就会导致前三个for直接退出循环,所以要用if配合条件break。为什么是x>9呢,循环结束的条件是9。
2024-10-08 21:08:03
568
原创 c语言语法(39-40)10.6
A for里面的三个分号对应的内容,第一个是初始动作(i=1),第二个是循环继续的条件(i<=n),第三个是循环每轮要做的动作(i++)2.for=while 当for(;) == while(条件)时,for与while等效。具体:将初始动作放外面,循环条件作为while的条件,循环要做的动作放while{}里面。3.三种循环分别为for while do...while。C 小套路(阶乘中的记录结果的变量factor则初始化为1)D 同时在算阶乘时,除了从1乘到n,还可以从n乘到1。
2024-10-07 00:04:48
295
原创 c语言语法(31-37) 10.4-10.5
(然后A等级是90-100,所以包括数字10和9,然后就可以把相同的输出对应case放一起然后再加break,不用分别加break),其他的正常加break即可。的存在相当于一个起始点(若控制表达式为1就从case1依次往下执行,为2就从case2依次往下执行) 直到遇到break就跳出,无。推荐写左边的代码,因为灵活(单一出口:只有一个printf),右边的写死了(多个printf)删除变为:(此代码不能判断0的个数为1)结果:(思路:用范围来判断是几位数,eg>999是四位数,>99是三位数....)
2024-10-05 23:48:07
981
原创 c语言基础(29-30) 10.3
思路:三个数a,b,c 先将a和b比,若a>b则把b去掉,将a和c进行比较(即嵌套if-else),若a<b则执行外层的else里面的,将b和c进行比较(即嵌套if-else)eg:当输入三个数判断大小时,就不能只用一个if-else,而是要用if-else嵌套。(eg此代码else虽然与第一个if对齐,但是还是与第二个if匹配):else总是与最近的那个if匹配eg:else与第二个if匹配。但是当if加了大括号则else不与最近的,而是与最开始的匹配。2.注:if else执行括号里面的。
2024-10-03 23:39:00
351
原创 c语言(3 day) 10.2 (25-28)
eg优先级 5>3==6>4(先算5>3为真1,再算6>4为真1,最后算1==1为真1)eg连续 6>5>4(先算6>5为真1,再算1>4为假0)左边的用的常规的if else,右边的是先将max=b,若a>b就输出a,a<b就按照原来的值b输出。单行注释:用//表示,多行注释:用/*开始,*/结束。2.关系运算结果:0和1 (为真结果为1,为假结果为0):条件为真则执行括号里面的,否则直接跳到大括号后面去。补:若为:没有else则不管你的钱够不够都会打印不够。eg.3>2则为真,8<1则为假。
2024-10-02 22:28:53
507
原创 c语言语法(10.1)(19-23)
思路:先分离出这三个数,按照百位十位个位分别记为a,b,c,然后c*100+b*10+a即可完成倒叙,然后不能写printf("%d%d%d",c,b,a")对007等不适用。若想交换两个数的值a=5,b=6变为a=6,b=5,直接写a=b,b=a是不可行的(因为a=b相当于a赋值为6,再b=a相当于b还是赋值为变换后的6)。,先将a中的5用中间变量c存起来,然后将b中的6放到空白的a中,最后将c中的5放到空白的b中。%和/ :%100/10(先得到12,再得到1)法二:/10得71再%10得1。
2024-10-01 22:25:36
379
原创 c语言语法(1day) 9.30(1-18)
1.运算符:eg.+ - 2.算子:常量或变 量 1.2.eg. a = b + 5(a,b,5是算子, =,+是运算符)%(取余):只能为两个整数,eg.6%4=2。:整数int printf("%d",...) scanf("%d",&...)
2024-09-30 22:28:08
418
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅