- 博客(30)
- 收藏
- 关注
原创 C的温故而知新:The Last(C Primer Plus第十六、十七章)
想必是后面的内容超出大一课程规定的内容了,后面的文章数据惨的可怜。搜一下就能看见,好多人主张这本书后面几张可以不看。咋讲呢,对于这个观点来说,我本人是不认同的,我呢,粗略的看了看后两章的内容,可能对于初期学习确实作用不大,但是如果想有所提升的话,这两章的内容还是蛮重要的。第十六章讲述了C语言的预处理器和常用库文件。第十七章更是为我们介绍了高级的数据结构,不过毕竟数据结构后面还是会学的。因为现在已经九月份了,时间过得真的很快,我要开始下一步安排了,我们快速地将两章的内容过一遍。
2024-09-06 11:40:36
1407
1
原创 C Primer Plus第十五章编程练习,仅供参考
第十五章编程练习本章第一个编程练习的内容是让我们将二进制字符串转换为一个数值,传递字符串指针,逻辑并不复杂,完整程序代码以及运行结果如下:#include<stdio.h>#include<string.h>#include<math.h>int nfun(char * ptr);int main(void){ char * pbin = "01001001"; int number; number = nfun(pbin);
2024-08-29 15:59:59
621
原创 C的温故而知新:位操作(C Primer Plus第十五章)
这一章的篇幅不是很长,但既然能单独作为一章来讲的话,应该蛮重要的,但是我貌似没有总结出多少需要注意、加强记忆的东西,可见在JAVA的日常开发过程中基本不太遇见有关位操作的内容,所以我也就不晓得那块属于本章的重点内容了。不过,不要紧,先挑我感觉比较重要的内容去记录一下。首先,关于二进制与十进制,说大一点,还有八进制和十六进制,在之前都已经介绍过了,理解一下计算机只可以识别0、1就可以对这一些有关进制的内容有较好的理解。通常,一字节包含八位,C语言用字节来表示存储系统字符集所需的大小。
2024-08-27 22:05:13
792
原创 C Primer Plus第十四章编程练习,仅供参考
第一个问题让我们改写复习题5,创建一个函数去计算一年到某个月份的天数,在一个结构数组中去存储相关数据。完整程序代码以及运行结果如下:接下来,我们来看一下第二题的要求,获取输入的日、月和年,月份可以是三种格式,然后返回一年中到指定日子的总天数。这里就有一个问题了,输入了年份,那么平闰年要处理吗,题目里并没有明确的说明。我们简单的对其处理一下,完整程序代码以及运行结果如下:下面,我们来看一下第三题的要求,让我们修改程序清单14.2,然后按照几种顺序去输出图书信息。完整程序代码以及运行结果如下:接着,来看一
2024-08-25 19:16:29
1265
原创 C的温故而知新:结构和其他数据形式(C Primer Plus第十四章)
结构指针呢,执行起来比较快,而且只需要一个地址,缺点是无法保护数据,被调函数中的某些操作可能会意外的影响原来结构中的数据。在我们使用语言进行程序编程设计的时候,经常会出现很多复杂的数据,,每到这种时候,就需要创建很多的变量去存储各种各类的数据。*表示一个指针,()表示一个函数,[]表示一个数组,()和[]的优先级相同,且比*高,从左到右结合,所以不同的组合下会创建很多不同的复杂类型,还有接下来的指向函数的指针。此外,还有很多种结构的使用方式,匿名结构,在函数中使用结构数组,将结构内容保存到文件之中。
2024-08-21 15:46:24
1050
原创 C Primer Plus(中文版)第13章编程练习,仅供参考
第十三章编程练习对于文件的操作是程序开发过程中必不可少的。首先,来看一下第一题,对13.1程序进行修改,输入文件名,而不是命令行参数。完整程序代码以及运行结果如下:#include<stdio.h>#include<stdlib.h>int main(void){ int ch; FILE * fp; unsigned long count = 0; char name[44]; printf("请输入要打开的文件名:\n");
2024-08-18 11:35:35
739
原创 C的温故而知新:文件输入/输出(C Primer Plus第十三章)
fgetpos()函数和fsetpos()函数:fseek和ftell函数的潜在问题是将文件大小限制在long类型能表示的范围内,,为了处理较大的文件,新增的新定位函数,不使用long类型表示位置,使用一种新类型,fpos_t(文件定位类型)。fseek()函数:第一个参数指向待查找的文件,第二个参数是偏移量,long类型,正-前移、负-后移或0-保持不动,第三个参数是模式,确定起始点,有几个常用明示常量,SEEK_SET表示文件开始处,SEEK_CUR表示当前位置,SEEK_END表示文件末尾。
2024-08-13 17:05:03
981
原创 C Primer Plus第十二章编程练习
第二题的内容有点多,但是也就是看着比较唬人,它给了我们一个c文件,规定了几个参数以及输出的格式,要我们去补充其他的文件。首先,pe12-2a.h这个头文件我们要去写,接着,另外几个函数的具体实现我们要写到pe12-2a.c文件中,因为函数要在pe12-2b.c文件中使用,所以我们将函数原型放到头文件中。下面看一下第六题,生成一千个随机数,记录每个数字出现的次数,用不同的种子去实验,去更换静态变量next的值即可更换种子,完整程序代码以及运行结果如下。最后,把pe12-2b.c文件中的内容放到一个文件中。
2024-08-12 16:30:33
816
原创 C的温故而知新:存储类别、链接和内存管理(C Primer Plus第十二章)
寄存器变量:存储类别说明符register,幸运的话,可以将变量放到CPU寄存器中,访问和处理的速度更快,无法获得寄存器变量的地址,倘若不幸运,没有放到寄存器中,就会变成普通的自动变量,但是仍不能获取到地址。自动变量:一般创建变量,默认是自动变量,也可以显示使用关键字auto,块作用域,程序在进入该变量声明的块时变量存在,在退出该块时变量消失,原来占用的内存位置现在可以做为他用。快作用域的静态变量:在块中。free函数,接受的参数是之前malloc返回的地址,free函数释放malloc函数分配的地址。
2024-08-10 11:34:15
902
原创 C Primer Plus第十一章编程练习第十一题详解
说到这呢,我们其实还可以优化一下,因为程序是循环获取操作参数,有可能反复调用同一参数,我们可以再创建几个参数去记录此种格式是否已经被排序,另外将这几种格式的记录数组放置到几个小函数的外面,比如主函数中。首先,分析一下要求以及如何对其进行实现,读入十个字符串或者读到文件结尾结束,然后提供一个含有5个选项的菜单分别以四种格式去打印字符串列表,以及退出,循环展示菜单,分别按照对应的格式去打印不同格式的字符串序列。上面的函数简单的创建了一个菜单,只要循环调用该函数,就可以多次打印出这个菜单。
2024-08-08 18:02:11
1063
原创 C Primer Plus第十一章编程练习
说一些题外话,只是做这些简单的章节后的编程练习,就用了这么长的时间,可以说当时在学校的时候,天天做实验,写实验报告,还要兼顾好几门课。需要对本题说明的是,题目要求是十个字符串组成的字符串列表,但是我在测试程序的时候一直用的是3个,因为好输入,也好看要求的格式实现了吗,所以如果你想看一下十个的话,或者想试一下EOF的话,就自行试一下吧,反正我去比较的时候也不是按照行数去比较的,是按照当前程序输入了多少行字符串,理论上不会对程序有影响,如果后续还有问题的话,欢迎私信哦。接下来,来看一下第九题的要求。
2024-08-05 18:37:39
1236
原创 C的温故而知新:字符串和字符串函数(C Primer Plus第十一章)
该函数的第三个参数指明要读入的文件。scanf()函数:老朋友了,如果使用%s转换说明,会从第一个非空白字符作为字符串的开始,以下一个空白字符(空行、空格、制表符或换行符)作为字符串的结束(字符串不包括空白字符)如果指定了字段宽度,那么将读取到规定字符或者读到第一个空白字符停止(先满足的条件即是结束输入的条件)。put()函数:在显示字符串时会自动在末尾添加一个换行符,该函数在遇到空字符的时候停止输出,所以必须确保有空字符,否则它不知道在何处停止,它会一直打印后面内存中的内容,直到发现一个空字符为止。
2024-08-02 09:08:48
1105
原创 C Primer Plus第十章编程练习
接下来,我们来看第七题,拷贝二维数组的内容,我们直接用指针表示法来拷贝吧,因为使用数组表示法较为简单,然后也可以使用初始化定义数组,也可以通过键盘输入,得到的完整代码以及运行结果如下:(说明,打印拷贝数组的时候,外循环里面的换行符是后来加的,所以截图可能会不太对,因为运行之后,我看着不太舒服,又加了一个换行,不过懒得在执行一遍了)题目要求将一个数组中的数据翻倍,并且将先后的值分别展示一次,结果图相较于代码少两个换行符,因为运行之后效果格式不太好看,后加的,但是没有再运行一遍,无伤大雅。
2024-07-29 19:32:03
777
原创 C的温故而知新:指针和数组(C Primer Plus第十章)
初始化列表中的项数应该与数组的大小一致,如果少于数组元素个数的话,会将剩余的元素初始化为0,如果多的话,会报错。在数组这儿也是类似的,因为去操作数组的数据,我们默认传递的是地址,所以可能就会对数据造成不必要的修改,对此,我们可以在形参前面添加const去修饰它的值不可更改。
2024-07-27 10:45:15
752
原创 C Primer Plus第九章编程练习
对三个数值进行排序,也不是很复杂,就是有点绕,绕明白就好了,就是根据值对三个数据进行操作,我的写法应该是可以简略的,但是那样的话,代码的可读性就比较差了,咱目前也不在乎啥运行速度,就先这样吧,各位看上去还好懂一些。继续来看第九题,他让用递归函数把上面的改一下,哎,就是把求幂的循环拆开,我是懒得搞,就每一次把幂值减一,再调用自己,直到幂值减到0,跳出递归,好吧,感兴趣的自己搞一下吧。接下来,我们再看第八个问题,首先,我们要将程序清单6.20搬过来,然后对其进行修改,加一个计算负数幂的分支。
2024-07-25 21:33:09
503
原创 C Primer Plus第八章编程练习
首先,介于本人英语不好,只认识add是加法,所以查了一下其他的几个是什么意思,相必大家英语都比我好,所以我就不多说了。这部分呢,因为示例展示了输入不为数字的情况,所以我们按照格式对其进行了实现,也很好理解,数字的话放行,如果输入非数字,去展示并且再次获取输入。好,以上就是第八章编程练习的内容,难度适中,将前面讲述的内容与本章的内容进行结合,见得多了也就很好理解了。这个菜单展示应该都没有什么问题,接下来,按照输出的格式示例,我们要对选项代码进行获取,我们再搞一个函数去做这件事情。最后,我们来看一下第八题。
2024-07-24 11:02:19
403
原创 C的温故而知新(C Primer Plus第八、九章)
了解并学习单字符I/O:getchar()和putchar()函数,缓冲区的内容了解一下,知晓什么是缓冲输入,什么是无缓冲输入;缓冲还分为完全缓冲和行缓冲,每一种都有存在的意义,很好理解,这里就不多说了。文件是存储器中存储信息的区域。从概念上看,C程序处理的是流而不是直接处理文件,所谓流,是一个实际输入或输出映射的理想化数据流。无论操作系统实际使用何种方法检测文件结尾,在C语言中,用getchar()读取文件检测到文件结尾时将返回一个特殊的值,即EOF(end of file的缩写)。
2024-07-23 10:22:39
927
原创 C Primer Plus第七章编程练习补充
这个函数内容也很好理解,就是将题干中的内容按照格式进行一遍输出展示,然后接着往下看,程序循环运行,输入不同的工资等级要去做不同的事情,所以我们要做一个输入值筛选,我们再把这部分功能放到一个函数中,读完题目之后,我们一步步的来看,首先杂货店出售三种蔬菜,并且在添加运费之前,100元以上的订单有打折优惠,然后根据磅数计算运费和包装费,好,首先设置程序的入口,也就是输入不同的字母,相应不同的采购。然后,获取用户键入的类别值,判断数据的合法性,同样的,搞一个函数去做这件事情。好,接下来,看一下最后一个问题。
2024-07-21 10:54:07
946
原创 C的温故而知新:C控制语句-分支和跳转(C Primer Plus第七章)
循环辅助:continue 和break,上一章讲的三种循环都可以使用continue语句,执行到该语句时,会跳过本次迭代的剩余部分,并开始下一轮迭代,如果放在嵌套循环中的话,只会影响包含该语句的内层循环。break语句的话,执行后的效果为终止包含它的循环,并继续执行下一阶段。依照我的解法呢,我会将从2到这个输入值,暂且称之为i,循环一边,然后内部嵌套一个循环,将i与从2开始到i-1依次进行求模运算,然后如果求模结果出现0,证明i有除了1和本身的除数,所以不为素数,可以break循环。
2024-07-18 19:49:40
1105
原创 C的温故而知新:C控制语句-循环(C Primer Plus第六章)
讲道理,这一章的内容感觉需要总结的小点不多,和标题说的一样,主要讲的是循环嘛,两种入口循环,一种出口循环,需要我们根据实际情况灵活的选择适合的循环结构。对于循环的使用呢,对进入循环的条件把控是一个关键,涉及到真值问题。一般而言,在C语言中,所有非零值都视为真,只有0被视为假。死循环呢,也是有可能会见到的,条件设置不好的话就有可能会出现。再一个,就是循环的嵌套运用,后面的编程练习会遇到。好,重点说一下对于三种循环的选择。
2024-07-15 21:41:15
783
原创 C Primer Plus第四、五章编程练习
因为略过了那几个,所以我们分析一下最后这一个练习的思路哈,首先,题目要从键盘获取一个华氏温度,并且规定了该值的类型double,以及计算摄氏温度和开氏温度的函数,还有显示的精度,秉着听人劝,吃饱饭的思想,这些就按照规定的来嘛。代码格式啥的这里也就不说了,多练多看,常见了就自然而然的遵守了,好的,今天就到这里,明天我们继续进行第六章的学习。这几个练习呢,无非就是转换长度单位,循环求和、平方和,计算立方值求模运算,比较简单,因为赶进度呢,就先不做了。
2024-07-11 19:46:06
159
原创 C的温故而知新(C Primer Plus第四、五章)
老规矩,我们总结的依旧是新标准下的新内容,或者是比较常用的知识点。这几天呢,看的慢一些。所以写笔记也就慢一些,毕竟叭叭的敲这老些字也蛮累的。单纯的看一遍书,然后记录一遍,起到了读两遍的效果。
2024-07-10 11:36:03
344
原创 C的温故而知新(C Primer Plus第三章)
作为《C Primer Plus》第三章的内容,主要是讲的C语言的基本数据类型,说实话,挺绕的,对于有一定基础的我来说,看了半天,依旧是半知半解,做不到完全理解,因为自学嘛,相比于有老师教是蛮难搞的。此外,前文讲过,C语言通过函数原型机制检查函数调用时参数的个数和类型是否正确,但是,该机制对于printf()和scanf()是不起作用的,这两个函数的参数是可变的,如果程序的结果不理想或者出现意想不到的值,检查一下这两个函数的参数。章节后的编程练习,较简单的直接略过了,挑几个复杂一点的做一下。
2024-07-03 21:57:40
686
2
原创 C的温故而知新(C Primer Plus一、二章)
预处理加载头文件,stdio.h是编译器软件包的标准部分。 return 0;C程序包含一个或多个函数,函数是C程序的基本模块,main()函数可以理解为程序执行的入口,在{}中编写程序语句,int表示函数的返回值为int类型,void表示该函数没有参数,有返回值的函数必须有return语句,且在函数的最后返回处理后的值。//单行注释/*多行注释*/写注释是一个好习惯,毕竟在企业中,后续有可能会有同事去负责你之前开发的内容,你不能要求他能很好地理解你的编程思路。
2024-07-02 21:17:55
348
原创 I AM BACK
22年七月份,毕业后第一份工作,期间认识到了自己的不足,因为是一家小公司,小到啥情况呢,算上管理层、开发、人事、法务等等等等,三十几个人,其中百分之八十是应届生,这会导致啥情况就不说了,但是公司是允许日常工作之余学习的。在经过裁员风波之后,公司领导认为差不多合适了,但是接下来的一个月,依旧没有按时发放工资,于是在十月底,经过了之前的种种,迎来了最后的爆发,所有员工集体辞职,走诉讼程序,索要工资以及社保。但是既然离职了,这家公司肯定也是不太行的,毕竟离职率百分之两百嘛,哈哈,来一个新人,走俩,你敢信。
2024-07-01 16:14:38
386
原创 注解、IDEA快捷键,jdk、Maven环境配置,Java、MyBatis-Plus、Vue、端口等一些杂乱的知识点
注解、IDEA快捷键,jdk、Maven环境配置,Java、MyBatis-Plus、Vue、端口等一些杂乱的知识点
2022-08-04 11:22:14
179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人