自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

原创 c语言:文件操作管理

顺序读写: fgetc/fputc 字符、 fgets/fputs 字符串、 fscanf/fprintf 格式化 读写。//打开,前一个是文件名,后一个是方式。w 文本只写 写文本 清空原有内容 创建新文件。随机读写: fseek (移动文件指针)、 ftell (获取当前位置)、 rewind 回到文件开头。⚠易错点: w / wb 打开立刻清空文件原有全部内容,一不小心覆盖数据。//获取当前光标位置。

2026-11-14 18:04:41 104

原创 c语言:文件操作题目整理

sscanf,sprintf它们是把不同类型的元素整合在一起,但是它对int的数字存储方式变了,它是把各个位数的数字单独取出来,编译为ASCLL,然后再存到计算机内部,不是以补码那样存的。先注意,-4是byte,向前移动4个byte,原来有20个byte,到达第16个byte,因为4个byte为1个int,所以val是5.二进制文件存放5个int(每个int占4字节), fseek(pf,12,SEEK_SET) ,光标指向第几个int?12. 文件存储5个int:1,2,3,4,5,每个int占4字节。

2026-11-14 17:25:08 83

原创 C语言数组章节 题型整理

题9: char a[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘h’,‘\0’};题5: int x[3][3]={1,2,3,4,5,6,7,8,9};题12: int a[3][4]={{1,2},{0},{4,6,8,10}};求a[1][2]、a[2][1]题1: int a[][3]={1,2,3,4,5,6,7};i=2(第2行:5,6,0),j=0,j=1: a[2][0]=5 , a[2][1]=6。

2026-11-13 17:06:56 156

原创 c语言:scanf前空格的使用场景,getchar()的作用以及它对消除缓存区的作用

2026-11-13 10:45:37 140

原创 C语言动态内存 + 柔性数组 + 数组名退化

B要两次malloc两次free,容易内存泄漏(结构体本身有一块内存,指针变量本生也有一块内存,两块内存要分别malloc和free)⚠️重点: free 只是归还内存给操作系统,不会把p本身清空,p依旧存旧地址 → 野指针//所以后面还要重新赋值NULL。对比: int *arr 是指针,占8字节(64位),需要两次malloc、两次free,内存不连续。注意:scanf的时候,只有arr不用&,arr[],arr[][]这些都要&题目:申请能存放5个int的堆内存,写入数据,释放。&arr是什么类型?

2026-11-12 13:24:29 317

原创 c语言:两道数组概念题

若使用一维数组名作函数实参,则以下正确的说法是。C. 在被调用函数中,不需要考虑形参数组的大小。B. 实参数组类型与形参数组类型可以不匹配。A. 必须在主调函数中说明此数组的大小。D. 实参数组名与形参数组名必须一致。以下选项中,不能正确赋值的是 ()题目2(单选,字符数组赋值)题目1(单选,数组传参)

2026-11-06 11:57:12 206

原创 c语言:struct对齐+位端+枚举+数组和结构体的区别+读取结构体的段位的写法

直接给环境,int的给32bit,char的给8bit,看看给的bit够不够装完元素的bit,如果装不完就直接补一个环境,原先剩下的bit位就不要了。房子本体(内存)永远在。// 4字节,对齐数=min(2,4)=2,放在偏移2,占用2,3,4,5。struct:独立多层公寓,每个成员单独一套房间,互不干扰,可以同时全部装修,全部完好。对齐数 = min (编译器默认对齐数,成员自身大小,每个成员单独计算,互补影响)先算每一个成员的对齐数(取 min),再在这批数字里面挑最大的,作为整体对齐标准。

2026-11-06 10:46:02 180

原创 c语言:qsort比较函数+结构体访问(*(int*)p)

用途:你可以逐个复制,自己敲代码练习,依次是:qsort排序int、qsort结构体按年龄、qsort结构体按名字、函数指针计算器。数组里面每一个元素,都是一个 int(*)(int,int) 类型的函数指针。代码3:qsort 结构体按name名字排序(strcmp)等价于 ((struct Stu*)p1)->age。strcmp(s1,s2) :按字典序比较字符串。printf(“结果=%d\n”, r);printf(“请输入两个操作数:”);printf(“请输入两个操作数:”);

2026-11-05 11:56:25 120

原创 C 语言 整型溢出、char、浮点数存储

char 相关。

2026-11-05 10:37:22 156

原创 c语言:原码和补码的用法

CPU拿到的就是补码,但是它输出的时候会把补码转回原码,打印成十进制数字给人看。如果题目给的是计算机用的补码,那你就要把补码转成原码自己算出来。1.原码是给人看的,计算机硬件不用原码进行计算和储存。计算机内存存放,CPU相加减全部用补码。2.人阅读,手写,理解正负数字用原码。你写代码:int a = -16;计算机内存存放整数用__补码__?方便人直观写出正负数字的是?

2026-11-04 13:09:44 164

原创 c语言:结构体的对齐与偏移和自引用与switch的格式和它的强制类型转化

2.规则:1.每个成员的偏移量,必须是该成员的整数倍,比如int 类型的元素,他的偏移量一定是0 4 8 12 这种4的倍数,如果不够,就要补空洞。内存对齐要求:成员存放的偏移量,必须是该成员类型大小的整数倍;这个是语法错误,但是他的强制类型转化是对的,把x弄成了整形。case后面必须是整形常量/常量表达式,不能写变量,不能写浮点数。2.结构体整体的大小,必须是结构体最大基础成员大小的整数倍。} //不一定要case完全对应,它考的只是格式不是逻辑。// int:4字节。结构体:1+3+4=8byte。

2026-11-04 11:23:01 142

原创 c语言:关于for循环顺序和两种题型

注意顺序问题:A是第一个,B是第二个,然后看D,最后看C。下者打印的是i,打印完才是加加;3.在printf中有两种情况。for等价于while循环。答案:9876 x=5。这里是先执行完打印才x–C是最后一个执行的。

2026-11-04 10:59:11 159

原创 欧几里得算法求最大公约数与求最小公倍数

对于求两个数的最大公约数,先找到较小的那一个数,然后用较大的取余较小的数,然后用较小数除以其余数,得到最大公约数。//把余数复制给较小数,不断循环这个过程,直到y==0为止,此时最大公约数是x。//把x带入公式就可以了。//把较小数赋值较大数。

2026-11-03 21:08:17 144

原创 c语言:存储类型

1.有4种储存类型:auto(自动),static(静态),extern(外部),register(寄存器)6.形参存储是动态分配,形参和实参互补干扰,它只是形参的实参化,本身不影响实参。auto是栈,static是静态区,auto无初始化,static初始化为0.4.函数内部的局部变量,不写存储类型,默认是auto。7.局部默认auto,函数默认extern。static锁死文件,static延长寿命。3.c语言的默认隐含类型是extern。5.auto不初始化是随机值。

2026-11-03 20:37:03 98

原创 字符函数与字符串函数&&整形提升&&指针辨析

dest:先看char* dest,这个是指针变量,简称指针(虽然它不是,但是大众口头是这样说的),那么它相当于房间号,外层的。}//要明白,num是要拷贝的byte数量,如果要从后往前打印,就要更换初始位置,所以要加num;memcmp:对数组的各个byte位的地址进行比较,如果大于返回1,小于返回-1,等于返回0。地址编号给计算机和我们自己看到的是反过来的,计算机给我们看和它自己存也是反过来的。例:如果最高位的数字是1,前面全部补1,但是如果前面是0,前面全部补0.char (*arr1);

2026-11-01 11:02:36 90

原创 创新题:关于炮台计数原理

有3门大炮,每门有21发,A炮每5秒发射,B炮每6秒发射,C炮每7秒发射,他们第一炮在同一时刻放出,问一共可以听到多少声炮声?第二种是用或且来统计:A||B||C就表示一共出现多少次,因为只要有一个就是真的,所以它就包含了重合的情况。有3种写法,第一种是创建局部变量,给每个时间戳进行标记,然后在最后一个循环中把时间戳全部统计;把A,B,C,AB,AC,BC,ABC全部的次数标识出来。//最多有140秒,用141就是为了防止越界。

2026-11-01 10:09:18 61

原创 C语言:指针题型总结

/*(a+0) 本来串的是第一行元素, a会退化成首元素地址。内存填充: a[3][2] = {1,3,5,0,0,0} //剩余的填充0进去。题型4:三级指针 char*** 多级指针链式解引用(你那个ENTER/NEW题)int a[3][2]={{0,1},{2,3},{4,5}};题型3:二维数组 + &aa+1 / *aa+1 区分(必考)❌ 误区:误以为 (0,1) 是一行两个元素(只有 {} 才是分组)题型6:结构体指针 + 指针步长(强制转换指针,步长由类型决定)

2026-10-22 16:05:52 154

原创 高数 函数极限笔记

若lim(x→x₀)f(x)=A,则存在M>0,δ>0,当0<|x-x₀|<δ,就有|f(x)|≤M。若lim(x→x₀)f(x)=A>0,则在x₀的某去心邻域内,f(x)>0。lim(x→x₀) f(x)=A 等价于 左极限 = 右极限 = A。定义:如果lim f(x)=0,则f(x)是该极限过程下的无穷小。唯一性:如果lim(x→x₀)f(x)=A存在,则极限值唯一。定义:在极限变化过程中,|f(x)|无限增大,叫做无穷大量。0<|x-x₀|:x不取x₀这个点,只讨论附近局部区域。

2026-10-19 19:04:21 106

原创 传智杯备赛代码整理(前4题)

另外还有个赛道:AIoT嵌入式系统创新大赛,这个是团队作品赛,不是写代码OJ,如果是这个赛道我就换嵌入式题目。题目描述:小A准备给n个人发橙子,第1个人1个,第2个人2个,第i个人i个。//注意数组是用下标的,所以关于数组的循环一定要看看会不会出界,一般起始位置从0开始,第二个小于。题目描述:计算机存储单位换算,1GB=1024MB,1MB=1024KB,1KB=1024B。题目描述:给定a、b,把b的正负号转移到a上,结果= b>0?输入n,再输入n个整数,输出数组里面最大值,推荐用指针遍历。

2026-10-19 18:58:20 209

原创 c语言:关于qsoet函数知识点

把数组首地址、元素大小和个数、回调函数的地址全部传给 qsort,从而让它可以自己进行排序比较,qsort 自己就会看差值的正负去排序。int qsort(arr, 10, 4, 比较函数的地址);

2026-10-18 14:16:16 48

原创 关于浮点数的比较以及cmp(回调函数)的正确写法

1.浮点数不可以直接用==去判断比较,会出现精度误差问题。然后把它强制转化指针,然后解引用取到里面的数。2.但是在qsort中,该比较写法是允许的。总结:浮点数不可以直接用==比较,但是可以。首先先放一个p1,但是不知道是什么类型。fabs(a-b)!要用作差取绝对值的方法。

2026-10-18 13:57:01 164

原创 c语言:指针(3)+冒泡排序

注意:arr、&arr[0]、&arr 它们打印出来的都是同一个地址。p存的是a的地址,str存的是hello \ 0。sizeof(arr) 得到整个数组的总字节数。If(fabs(a-b)<1e-7)来判断。公式:arr[i]==*(arr+i);##6.浮点数不可以直接a==b。##1. 数组和指针的关系。&arr 取整个数组的地址。前者本质是指针,后者是数组。1e-7表示10的负7次方。&arr+1跳过整个数组。##2.数组名会退化。后期用qsort简化。

2026-10-17 14:09:40 158

原创 c语言:数组指针和指针数组的书写模板

如果是把15个int全部复制,不仅拷贝量太大,而且容易占大量内存,容易栈溢出。比如 :arr[i][j]等价于 (*(arr+i)+j)int * arr[ 3];注意:int(*arr)[]这个是数组指针。但是在日常代码中,直接写数组的形式就可以了。数组名大部分情况都会退化为为指针。1.二维数组传参的3种书写模板。p+1还是看成指针加减的形式。arr[]会变成 (*p)例如 arr[3][5]3.为什么数组名会退化。这个是计算机设计的机制。只是考试要会辨别就行了。

2026-10-17 13:38:44 147

原创 c语音日历排版,printf

在sun前面有两个空位,所以sun在第二个字符,由于每个字母占一个字符,后面有加了2个空位,所以之后每一天都要多5个字符。1.printf有两种宽度写法:第一种是固定宽度。宽度是后面第一个数,第二个参数是要参与打印的。这种表示占n个字符宽度,右对齐,空位补空格。所以 宽度=2+5*weekdany。但是其余时候代码运行时它都是解引用。定义时它是说明数组存的是指针。

2026-10-16 12:20:57 169

原创 C语言分支结构练习题(华师版)

中等题:卡点在于后置++,第一个if不满足,但是后置++后第二个满足,很多人就直接踩坑进去了。后置–是先运算再–,所以它是先打印的,打印也是一种运算。else的二义性,C语言规定,C程序中的 else总是与 () 组成配对关系。若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 ()A它考的是break和穿透,break只是停掉当前的循环,但是外面的那个不会出去。,则执行下列程序后,变量i的正确结果是——。中等题:但是它的坑点在于if后面如果不用大括号,就只能接一个语句。

2026-10-15 21:24:45 158

原创 C语言常量、标识符、转义字符错题规则

核心: \ 开头的一整串转义序列,整体只代表【1个字符】坑:数字里面不能加逗号, 987,023 直接非法。转义:斜杠开头算1个,八进制0到7,十六进制a-f。整型:0八0x十六,八进制无八九,长整型末尾L。四、字符常量 & 转义字符(高频错题区)标识符:字母下划线开头,数线下划线字母。C语言常量、标识符、转义字符。一、标识符(变量名)规则。三、实型(浮点数)常量。浮点:e后必须是整数。

2026-10-14 10:26:07 163

原创 C语言运算符表达式作业错题整理

解析:后置自增 x++:先用原值参与计算,整个表达式算完,x才+1(先运算,x再加1,一定是x而不是表达式)解析: 它看的是优先级,*和/优先级相等,所以从左到右,不可以看成数学那种,必须一个一个往后算。口诀:算术最高(加减乘除),然后关系(大于小于等于),再逻辑(或与),(赋值,复合)最低。解析: || 逻辑短路:左边表达式为真,右侧完全不执行(非0为真,是真的就直接短路)然后 x += 2 ,x变成4,整个表达式结果是4。解析:逗号运算符,从左往右执行,整个表达式的值 = 最右侧表达式的值。

2026-10-14 10:05:26 223

原创 c语言:选择题概念

7. 逗号运算符 exp1,exp2 :从左往右算,整个表达式最终值=exp2的值,优先级最低(有时候前一个是不会影响后一个的,不要傻傻卡在一个没用的项)5. 赋值 = vs 等于 == :选择题最爱挖坑!正确写法#define SQUARE(x) ((x)*(x))第5章 循环 while / do while / for。//a本身仍然是int,a的值不变。第2章 数据类型、常量变量(超级多选择题坑)第8章 指针(选择题概念坑很多,初学难点)第3章 运算符与表达式【选择题重灾区】

2026-10-13 20:43:35 90

原创 C语言图像打印类(二重循环)题型

1.对角线打印:逻辑是先找到对角线的坐标,看它的行列和输入的值大小关系。一.底层逻辑:i表示行,j表示列,找星号坐标的关系式,if判断打印。4.\镜像反转(相当于把三角形和矩形反转了)打印在第一行,最后一行,第一列,最后一列。把条件换成(j<=n-i-1)还是先弄两个for循环,然后。等腰金字塔(n代表了多少行)2.矩形和正方形打印。5.把字母打印成数字。

2026-10-13 09:49:29 19

原创 c语言:对比szeof和strlen

在c语言中:char ASCLL字符(英文字母,数字,英语标点)算一个字节。如果题目问比较它们的字节大小,记得前者要算\0,后者不用算\0.1.szeof 是运算符,求【占用内存字节的大小】注意:一个数字,字母算一个字节,一个汉字算两个字节。需要头文件:#include<string.h>它算的变量/类型所占的总字节数,包括\0。它算的是\0前面的有效字符的个数。2.strlen是库函数。

2026-10-11 17:32:06 69

原创 高数数列极限

若对于任意给定的正数ε,总存在正整数N,当n大于N时,恒有 |xn - a| < ε,则称数列xn收敛于a。当 n > N 时,|(sinn)/n - 0| < ε 恒成立。1、如果a > 0,则存在N,当n > N 时,xn > 0。2、如果a < 0,则存在N,当n > N 时,xn < 0。当 n > N 时,恒有 |n/(n+1)-1| < ε。例题1:证明 lim(n→∞) n/(n+1) = 1。则存在N,当n > N 时,恒有 an > bn。证明:存在N,当n > N 时,an > bn。

2026-10-11 12:24:23 296

原创 论文格式笔记

逻辑可以根据是什么,为什么,怎么办去弄,是什么和为什么的正面可以放在一起。2.摘要:黑体小四标题,小四宋体正文(概括150字左右)//这个是写了什么。一二三级标题内部也可以分更多小点,但是都要用汉字去写。逻辑:是什么 辩证为什么(好坏分开说) 怎么办。3.关键词:3-5个,分号隔开,末尾无标点。9.参考文献:黑体小四标题+五号宋体内容。5.一级标题(是什么+为什么的好处)4.引言//这个是为什么要写。6.二级标题(为什么的坏处)1.标题:黑体,二号,居中。7.三级标题(怎么办)8.结语:一级标题格式。

2026-10-09 20:29:03 107

原创 高数第一章函数笔记(原稿手写+AI识别优化)

分式:分母不能等于0二次根号√u:u ≥ 0对数lnu:u > 0arcsinu、arccosu:u 在[-1,1]之间拓展子题型:已知f(x)定义域,求f(x²)、f(x²−1)定义域解题思路:已知 f(x) 的定义域:x∈D,求f(方框),要求方框整体∈D,解x的范围。例题:f(x)定义域x∈[0,2],求f(x²)定义域解:0 ≤ x² ≤ 2,推出 -√2 ≤ x ≤ √2⚠️易错坑:是方框整体放进D,不是x直接代入D。(整体思想)

2026-10-09 20:21:10 174

原创 反码,补码,原码

2.对于负整数:原码:符号位取1,后面取绝对值的原码。补码=原码取反+1 or (反码-1)后取反。这个就用短除法来弄就可以了,余数从下往上排。3. -128到127才有符号范围。有符号: 逻辑右移:左边补0。反码:除了符号位,0和1相互转化。| 有1就为1,全部为0就是0。存放,计算用补码,打印出来用原码。^ 异或 相同为0,不同为1。& 全部为1才为1,有0位0。三:左移:高位抛弃,低位补0。1.对于正整数:原码。公式:1.x^x=0。算数右移:补符号位1。

2026-10-08 16:44:19 203

原创 c语言错题1

但是对于int 来说,它是以补码来储存,计算,以原码来进行打印。(用补码是因为计算机底层只能进行加法,所以把符号位个忽略了)1.在c语言中,符合long的常量是以L,l结尾,看结尾的单位(123L,6l)这里i就是j的原值,但j自己会++,这里关系到后置加加的先运算后加加。6.c语言中一行不是只能写一条语句,用;对于char来说,以ASCLL码进行储存。3.合法表示符:只有字母,底横杠,数字;8.存在强制转类型和自动类型转化两种。强制转化用(),自动转化就从小到大。关键词不可以当标识符。

2026-10-08 16:16:03 209

原创 c语言:运算符、sizeof、逗号表达式、结构体

注意:char类型,[ ]里面的数字是字符长度的限度值,一个汉字2个byte,1个char占1个byte,一共可以放10个字,最多放19个数字和符号。等价于 (int c = a>b), a=b+10, a, b=a+1;printf(“书名:%s,价格:%.1f”, b.bookname, b.price);注意:如果去掉外层括号 int c = a>b, a=b+10, a, b=a+1;// s+9 运算时short提升为int(会往大的变),所以sizeof结果是4。

2026-10-08 09:42:06 192

原创 c语言:递归

1.定义:函数的自我调用,自己调用自己,每次调用都会逼近临结条件,知道达到条件为止。汉若塔:void hanoi(int n, start, temp, desd)hanoi(n-1,a,c,b);//把n-1个从a移到b,c辅助。//把n-1个从b移到c,a辅助。6.递归时函数自己调用自己,所以一定要设函数。比如:int func(int a)递归核心:终止条件 + 递推公式。2.递归的限制:有限制条件。

2026-10-07 16:03:38 184

原创 青蛙跳阶问题

到n阶的全部走法 = 到n-1阶所有走法 + 到n-2阶所有走法,边界单独定死,不要直接套用斐波那契的初始条件。重点:递推式子长得一样,但初始值不一样,所以数列本身和标准斐波那契不是一回事。标准斐波那契:F(1)=1,F(2)=1;青蛙跳:f(1)=1,f(2)=2。逆向推导:到n阶,最后一步可以从 n-1 / n-2 / …青蛙一次只能跳 1级 或 2级,求跳到第 n 级台阶一共有多少种跳法。缺点:不断重复计算相同的f(k),n大之后效率极低。如果每次跳的是偶数格,则n为奇数是都为0。

2026-10-06 14:12:38 189

原创 c语言:二分法的完整补充

都是不断缩小搜索区间,取中间值判断,舍弃一半不符合条件的区间。目标:在离散整数集合找满足条件的第一个/最后一个整数。二分法|整数二分 vs 浮点数(小数)二分 总结。目标:求连续区间内的一个近似值(平方根、方程解)差别在于循环终止条件、区间更新方式。

2026-10-06 14:03:33 211

原创 开发板点灯实验源码

* 程序加载起始地址,S5P6818内存起始 */// 定义GPIOE输出寄存器,物理地址 0xC001E000,控制引脚电平。// 定义GPIOE输出使能寄存器,物理地址 0xC001E004。// 配置GPIOE13引脚为输出模式:bit13置1,其余位不变。// volatile防止编译器把空循环直接优化删除。@ start.s 启动汇编,S5P6818裸机。// led.c S5P6818 裸机LED闪烁。// 裸机入口,汇编调用main。未初始化全局变量,清零 */已初始化全局变量 */

2026-10-04 20:05:38 225

C语言刷题训练营-课件-pdf.zip

C语言刷题训练营-课件-pdf.zip

2026-09-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除