自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【详识C语言】程序环境和预处理

_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__//文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义这些预定义符号都是语言内置的。#define reg register //为 register这个关键字,创建一个简短的名字;) //用更形象的符号来替换一种实现case //在写case语句的时候自动把 break写上。

2024-03-06 23:57:18 838 1

原创 【详识C语言】C语言文件操作

磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。

2024-03-06 21:26:42 1049

原创 【详识C语言】动态内存管理

这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。返回值的类型是 void* ,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己 来决定。如果参数 size 为0,malloc的行为是标准是未定义的,取决于编译器。free函数用来释放动态开辟的内存。如果参数 ptr 指向的空间不是动态开辟的,那free函数的行为是未定义的。

2024-03-06 20:52:34 1038

原创 【详识C语言】自定义类型之三:联合

联合也是一种特殊的自定义类型这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。//联合类型的声明 union Un {char c;int i;//联合变量的定义//计算连个变量的大小。

2024-03-06 20:29:50 421

原创 【详识C语言】自定义类型之二:枚举

enum Day//星期Mon,Tues,Wed,Thur,Fri,Sat,Sunenum Sex//性别MALE,FEMALE,SECRET };enum Color//颜色 {RED,GREEN,BLUE以上定义的enum Dayenum Sexenum Color都是枚举类型。{}中的内容是枚举类型的可能取值,也叫枚举常量。这些可能取值都是有值的,默认从0开始,一次递增1,当然在定义的时候也可以赋初值。enum Color//颜色RED=1,GREEN=2,

2024-03-06 20:25:25 358

原创 【详识C语言】自定义类型之一:结构体

有了结构体类型,那如何定义变量,其实很简单。int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋初值。struct Stu //类型声明//名字int age;//年龄//初始化int data;//结构体嵌套初始化//结构体嵌套初始化位段的声明和结构是类似的,有两个不同:1.位段的成员必须是int、unsigned int 或signed int2.位段的成员名后边有一个冒号和一个数字。struct A {

2024-03-06 17:14:14 1229

原创 【详识JAVA语言】认识异常

程序先执行 try 中的代码如果 try 中的代码出现异常, 就会结束 try 中的代码, 看和 catch 中的异常类型是否匹配.如果找到匹配的异常类型, 就会执行 catch 中的代码如果没有找到匹配的异常类型, 就会将异常向上传递到上层调用者. 无论是否找到匹配的异常类型, finally 中的代码都会被执行到(在该方法结束之前执行).如果上层调用者也没有处理的了异常, 就继续向上传递.一直到 main 方法也没有合适的代码处理异常, 就会交给 JVM 来进行处理, 此时程序就会异常终止.

2024-03-05 23:13:12 991

原创 【详识JAVA语言】String类oj练习

1. 第一个只出现一次的字符 2.最后一个单词的长度 3. 检测字符串是否为回文

2024-03-05 18:10:05 428

原创 【详识JAVA语言】String类2

由于String的不可更改特性,为了方便字符串的修改,Java中又提供StringBuilder和StringBuffer类。这两个类大 部分功能是相同的,这里介绍 StringBuilder常用的一些方法。方法说明在尾部追加,相当于String的+=,可以追加:boolean、char、char[]、 double、float、int、long、Object、String、StringBuff的变量获取index位置的字符获取字符串的长度获取底层保存字符串空间总的大小扩容。

2024-03-05 18:00:42 892

原创 【详识JAVA语言】String 类1

在C语言中已经涉及到字符串了,但是在C语言中要表示字符串只能使用字符数组或者字符指针,可以使用标准库提 供的字符串系列函数完成大部分操作,但是这种将数据和操作数据方法分离开的方式不符合面相对象的思想,而字 符串应用又非常广泛,因此Java语言专门提供了String类。在开发和校招笔试中,字符串也是常客,比如:字符串转整形数字字符串相加而且在面试中也频繁被问到,比如:String、StringBuff和StringBulider之间的区别等。String类提供的构造方式非常多,常用的就以下三种:【注意】

2024-03-05 17:36:38 1100

原创 【详识JAVA语言】Java图形化界面-JOptionPane

使用JOptionPane方法输出多行。showMessageDialog,将新的行字符'\n'插入用作第二个参数的字符串中。•如果省略最后一行(System.exit(0)),即使单击输出窗口中的OK按钮,程序也不会结束。JOptionPane.showInputDialog可用于输入任何数字类型。JOptionPane类产生用于获取输入或显示输出的窗口。要将输入值从字符串转换为整数,请使用integer类中的。•如果输入格式不正确,程序将崩溃。包含多行输出的对话框窗口。•总是标记任何输出。

2024-03-05 16:28:26 551

原创 C语言指针详解进阶2

数组是一个存放相同类型数据的存储空间,那我们已经学习了指针数组,比如:那要把函数的地址存到一个数组中,那这个数组就叫,那函数指针的数组如何定义呢?答案是:parr1parr1先和[]结合,说明parr1是数组,数组的内容是什么呢?是int (*)()类型的函数指针。函数指针数组是一个数组,每个元素都是一个函数指针。函数指针指向函数的内存地址,可以用来动态地调用函数。通过定义一个函数指针数组,可以将多个不同的函数作为数组的元素,便于根据需要选择并调用特定的函数。

2024-03-05 15:03:14 368

原创 【详识JAVA语言】抽象类和接口

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果 一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 通过上述例子可以看出:接口就是公共的行为规范标准,大家在实现时,只要符合规范标准,就可以通用。在Java中,接口可以看成是:多个类的公共规范,是一种引用数据类型。

2024-03-03 21:23:53 1007 1

原创 【详识JAVA语言】面向对象程序三大特性之三:多态

多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。在java中要实现多态,必须要满足如下几个条件,缺一不可:1. 必须在继承体系下2. 子类必须要对父类中方法进行重写3. 通过父类的引用调用重写的方法多态体现:在代码运行时,当传递不同类对象时,会调用对应类中的方法。

2024-03-03 20:23:29 946 1

原创 【详识JAVA语言】面向对象程序三大特性之二:继承

成员方法没有同名时,在子类方法中或者通过子类对象访问方法时,则优先访问自己的,自己没有时 再到父类中找,如果父类中也没有则报错。上述图示中,Dog和Cat都继承了Animal类,其中:Animal类称为父类/基类或超类,Dog和Cat可以称为Animal的 子类/派生类,继承之后,子类可以复用父类中成员,子类在实现时只需关心自己新增加的成员即可。从继承概念中可以看出继承最大的作用就是:实现代码复用,还有就是来实现多态(后序讲)。继承的语法在Java中如果要表示类之间的继承关系,需要借助exte

2024-03-03 18:06:44 1059 1

原创 【详识JAVA语言】面向对象程序三大特性之一:封装

1. 在文件的最上方加上一个 package 语句指定该代码在哪个包中.2. 包名需要尽量指定成唯一的名字, 通常会用公司的域名的颠倒形式(例如 com.bit.demo1).3. 包名要和代码路径相匹配. 例如创建 com.bit.demo1 的包, 那么会存在一个对应的路径com/bit/demo1 来存储代码.4. 如果一个类没有 package 语句, 则该类被放到一个默认包中.

2024-03-03 17:06:40 1120 1

原创 【详识JAVA语言】类和对象

Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序,更符合人 们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。面相对象程序设计关注的是对象,而对象是现实生活中的实体,比如:洗衣机。但是洗衣机计算机并不认识,需要开发人员告诉给计算机什么是洗衣机。该过程称为对洗衣机对象(实体)进行抽象(对一个复杂事物的重新认知)

2024-03-03 16:00:00 917

原创 【详识JAVA语言】数组练习

可以看到, 针对一个长度为 10000 个元素的数组查找, 二分查找只需要循环 14 次就能完成查找. 随着数组元素个数越多, 二分的优势就越大.思路 设定两个下标, 分别指向第一个元素和最后一个元素. 交换两个位置的元素. 然后让前一个下标自增, 后一个下标自减, 循环继续即可.1. 将数组中相邻元素从前往后依次进行比较,如果前一个元素比后一个元素大,则交换,一趟下来后最大元素 就在数组的末尾。给定一个数组, 再给定一个元素, 找出该元素在数组中的位置.给定一个数组, 将里面的元素逆序排列.

2024-03-03 11:58:29 332

原创 【详识JAVA语言】数组的应用场景

所谓的 "引用" 本质上只是存了一个地址. Java 将数组设定成引用类型, 这样的话后续进行数组参数传参, 其实 只是将数组的地址传入到函数形参中. 这样可以避免对整个数组的拷贝(数组可能比较长, 那么拷贝开销就会很大).

2024-03-03 11:40:31 386 1

原创 【详识JAVA语言】数组的定义与使用

数组:可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。比如现实中的车库:在java中,包含6个整形类型元素的数组,就相当于上图中连在一起的6个车位,从上图中可以看到:1. 数组中存放的元素其类型相同2. 数组的空间是连在一起的3. 每个空间有自己的编号,其实位置的编号为0,即数组的下标。那在程序中如何创建数组呢?

2024-03-03 11:34:14 816

原创 【数学建模竞赛】超赞作图网站分享Apache ECharts

Apache ECharts(之前称为百度 ECharts)是一个开源的 JavaScript 可视化库,用于创建交互式和可定制的图表和图形。它提供了多种图表类型,包括折线图、柱状图、散点图、饼图等等。ECharts 是由 Apache Software Foundation 开发的,并且采用 Apache License 2.0 许可。

2024-03-01 16:28:21 892

原创 【详识JAVA语言】递归

一个方法在执行过程中调用自身, 就称为 "递归".递归相当于数学上的 "数学归纳法", 有一个起始条件, 然后有一个递推公式.例如, 我们求 N!起始条件: N = 1 的时候, N! 为 1. 这个起始条件相当于递归的结束条件.递归公式: 求 N! , 直接不好求, 可以把问题转换成 N! => N * (N-1)!

2024-03-01 15:58:42 814

原创 【详识JAVA语言】方法签名

在同一个作用域中不能定义两个相同名称的标识符。比如:方法中不能定义两个名字一样的变量,那为什么类中就可以定义方法名相同的方法呢?方法签名即:经过编译器编译修改过之后方法最终的名字。具体方式:方法全路径名+参数列表+返回值类型,构成方法完整的名字。

2024-03-01 15:40:30 349

原创 【详识JAVA语言】方法重载

/ 编译出错 Test.java:13: 错误: 不兼容的类型: 从double转换到int可能会有损失。// 编译出错 Test.java:13: 错误: 已在类 Test中定义了方法 add(int,int)在自然语言中,一个词语如果有多重含义,那么就说该词语被重载了,具体代表什么含义需要结合具体的场景。在Java中,如果多个方法的名字相同,参数列表不同,则称该几种方法被重载了。2. 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同)在Java中方法也是可以重载的。

2024-03-01 15:29:23 347

原创 【详识JAVA语言】交换两个整型变量

可以看到,在swap函数交换之后,形参x和y的值发生了改变,但是main方法中a和b还是交换之前的值,即没有交 换成功。

2024-03-01 15:10:40 338

原创 【详识JAVA语言】方法的使用

方法就是一个代码片段. 类似于 C 语言中的 "函数"。方法存在的意义(不要背, 重在体会):1. 是能够模块化的组织代码(当代码规模比较复杂的时候).2. 做到代码被重复使用, 一份代码可以在多个位置使用.3. 让代码更好理解更简单.4. 直接调用现有方法开发, 不必重复造轮子.System.out.println(year+"年是闰年");}else{System.out.println(year+"年不是闰年");那方法该如何来定义呢?// 方法定义。

2024-03-01 15:03:35 892

原创 【详识JAVA语言】轻量级开发工具:BlueJ

BlueJ是一个免费的、开源的Java开发环境,专为初学者设计。它由英国肯特大学开发,已被全球数百万学生和教育工作者使用。

2024-03-01 11:51:08 1250

原创 【详识JAVA语言】猜数字游戏

系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字.如果输入的数字和随机数相等, 则提示 "猜对了" .如果输入的数字比该随机数小, 提示 "低 了",如果输入的数字比该随机数大, 提示 "高了" ,

2024-03-01 11:25:04 334

原创 【详识JAVA语言】输入输出

println 输出的内容自带 \n,print 不带 \nprintf 的格式化输出方式和 C 语言的 printf 是基本一致的. hasNextInt()方法是判断控制台接收是否为数字,当你在控制台输入一个字符的时候,hasNextInt()判断你输入这个字符是不是数字,而不是接收值,当(if/while)判断通过之后执行接收,也就是你输入的那个字符,所以说hasNextInt()只起到判断作用而不是接收数据。

2024-03-01 11:19:05 339

原创 【详识JAVA语言】逻辑控制

早上8:00起床--->洗漱--->吃早饭--->上课--->吃午饭--->上课--->运动--->吃完饭--->玩手机--->睡觉每天的生活貌似都是这么规律,顺序的做着每件事,前途一片渺茫~~~: 我幡然醒悟,不好好学习可能要卖红薯,奋发图强可能离梦想会更近,于是我选择学习Java,从此:早上6:00起床--->看书敲代码--->上课+看编程书籍--->吃午饭--->刷题--->上课+看书--->吃晚饭--->总结--->看科技新闻--->睡觉。

2024-03-01 11:04:17 1123

原创 【详识JAVA语言】运算符

上述 + 和< 等就是运算符,即:对操作数进行操作时的符号,不同运算符操作的含义不同。作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下:算术运算符(+ - * /)、关系运算符(< > ==)、逻辑运算符、位运算符、移位运算符以及条件运算符等。

2024-02-29 23:34:56 869

原创 【详识JAVA语言】数据类型与变量

字节是计算机中表示空间大小的基本单位.计算机使用二进制表示数据. 我们认为 8 个二进制位(bit) 为一个字节(Byte). 我们平时的计算机为 8GB 内存, 意思是 8G 个字节.其中 1KB = 1024 Byte, 1MB = 1024 KB, 1GB = 1024 MB.所以 8GB 相当于 80 多亿个字节.

2024-02-29 15:41:48 389

原创 【初识JAVA语言】

Java 语言源于 1991 年 4 月,Sun 公司 James Gosling博士 领导的绿色计划(Green Project) 开始启动,此计划最初的目标是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。这个就是Java的 前身: Oak (得名与Java创始人James Gosling办公室外的一棵橡树),但由于这些智能化家电的市场需求没有预期 的高,Sun公司放弃了该项计划。随着1995年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改 造了Oak,于

2024-02-29 14:49:59 922

原创 [字符串和内存函数]错误信息报告函数strerror详解

strerror是一个C库函数,用于将转换为对的错误信息字符串。它接受一个整数参数errno,返回一个指向错误信息字符串的指针。errno是一个全局变量,可以直接使用。它在C语言中用于表示发生错误时的错误码。它是一个整数,通常被定义为指向一个extern int类型的宏。当函数或系统调用发生错误时,它会被设置为相应的错误码,以便程序可以根据错误码进行适当的错误处理。

2023-09-17 12:08:31 1377 6

原创 [字符串和内存函数]strcmp和strncmp以及memcmp的区别

memcmp函数用于比较两个内存区域的内容。这个函数通过比较两个内存区域的字节进行操作,并返回一个整数值来表示比较结果。如果返回值小于0,表示第一个内存区域小于第二个;如果返回值大于0,表示第一个内存区域大于第二个;如果返回值等于0,表示两个内存区域相等。memcmp函数比较的是字节序列,不仅可以用来比较字符串,也可以用来比较其他类型的数据。strncmp是strcmp的一种变体函数,它除了比较两个字符串的内容外,还可以指定比较的长度。它接受三个参数,分别是要比较的两个字符串和要比较的长度。

2023-09-17 11:39:09 1242 3

原创 [字符串和内存函数]strcat和strncat的区别

​strcat和strncat是C语言中的字符串连接函数。strcat函数用于将源字符串追加到目标字符串的末尾,直到遇到源字符串的结束符'\0'。它的声明如下:strncat函数也用于将源字符串追加到目标字符串的末尾,但它会限制连接的字符数量。它的声明如下:区别如下- strcat没有字符数量限制,会将整个源字符串添加到目标字符串的末尾。- strncat有一个额外的参数n,表示最多连接n个字符。如果源字符串的长度小于n,那么将整个源字符串添加到目标字符串的末尾。

2023-09-17 11:12:25 1183

原创 [字符串和内存函数]strcpy和strncpy的区别

strcpy和strncpy都是C语言中的字符串拷贝函数,用于将一个字符串复制到另一个字符串数组中。它们的区别在于如下几个方面:参数个数:strcpy只接受两个参数,即目标字符串和源字符串,而strncpy接受三个参数,分别是目标字符串、源字符串和要拷贝的最大字符数。拷贝长度:strcpy会将源字符串中的所有字符都拷贝到目标字符串中,直到遇到空字符’\0’为止。而strncpy会拷贝指定长度的字符到目标字符串中,无论是否遇到空字符。字符串结束标志:strcpy会自动在目标字符串的末尾添加空字符’

2023-09-17 10:50:34 1180 1

原创 [字符串和内存函数]strcat字符串函数的详解和模拟

strcat函数是C语言中用于将一个字符串追加到另一个字符串末尾的函数。其函数原型如下:其中,`dest`是目标字符串,`src`是要追加的字符串。函数将src中的内容追加到dest的末尾,并返回指向dest的指针。使用strcat函数时,需要确保dest字符串有足够的空间来容纳追加的字符串,否则会导致内存越界错误。例如,下面的代码演示了如何使用strcat函数将两个字符串拼接在一起:输出结果为: Hello World。

2023-09-17 10:28:34 77

原创 [字符串和内存函数]strcmp字符串函数的详解和模拟

strcmp函数是一个用于比较两个字符串的C标准库函数。strcmp函数会比较str1和str2两个字符串的字符序列,并返回一个整数值来表示它们之间的大小关系。返回值的含义如下:- 如果str1和str2相等,返回0。- 如果str1小于str2,返回一个负数。- 如果str1大于str2,返回一个正数。输出结果为: str1小于str2。

2023-09-17 10:05:01 104

原创 【数学建模竞赛】优化类赛题常用算法解析

确定问题的目标,是最大化还是最小化一个特定的目标函数。确定问题的约束条件,这些条件限制了可行解的范围。

2023-09-06 17:50:12 1746 3

空空如也

空空如也

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

TA关注的人

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