自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【数据结构初阶】顺序表

前言前言线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表的数据在存储的时候是成一条线性相互紧邻存放的。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...线性表在逻辑上是线性结构,是连续的一条直线。但是在物理结构上(内存)并不一定是连续的。线性表在物理上存储时,通常以数组和链式结构的形式存储。顺序表是在物理上是线性连续的,链表是不连续的。

2022-10-25 23:02:27 2205 51

原创 【数据结构初阶】时间复杂度和空间复杂度

数据结构初阶用C语言实现。

2022-10-24 21:16:36 1242 21

原创 【C语言】解题训练

这里算术转换没有意义,-3放进a里,-3和2进行相加的时候,肯定会把int a进行强转,算术转换为unsigned int,但只是看它的类型不同了,但里面放的还是-3的补码。可以得知,看给定的数落在哪两个斐波那契数中间,需要知道给定的数靠近哪一个斐波那契数,即看给定的数和左右两个数差的绝对值谁小,打印的结果就是小的那个绝对值就是最终的步数。y移、p移、p移、a移、h移,不移空格,而是在此处先放0,然后放2,放%,此时处理完空格了,移e,移r,移A,遇到空格,放0,然后放2,放%,再移e,移W。

2022-10-23 09:15:52 2624 37

原创 【C语言】解题训练

若是一个32位的数字,把所有偶数位都保留下来,则就可以让这个数字&10101010 10101010 10101010 10101010,就可以把原来数字上的偶数位保留,奇数位为0,实现了去掉奇数位;exit(0)的功能比return(0)的功能强大,return(0)只能结束函数,还可以执行其他函数代码,而只要调用exit(0)则整个程序就结束了。假设起始地址为0x100,则由此得c的地址是0x100;若传的是空字符串,不进入循环,返回n为0的值,那么返回的这个0是数字0还是空字符串0,形成歧义。

2022-10-22 15:49:27 1156 7

原创 【C语言】解题训练

5^6 = 011是3,因为这两个数字不相同,所以这两个数字对应的二进制位肯定有不同位,异或的特点是相异为1,则看5异或6的结果这个数字哪一位为1,如果发现的二进制序列的最低位是1(只用找1个就可以),则所有数字中二进制序列中最低位为1的放一组,二进制序列中最低位为0的放一组,此时5和6必然放在不同的组中。5和4相比,4小,则4放进crr中,5和6相比,5小,5被放入crr中;把所有数字异或在一起,1和1异或是0,2和2异或是0,3和3异或是0,4和4异或是0,0和5异或结果是5,此时可以找到。

2022-10-21 23:20:14 783 18

原创 程序环境和预处理

写出test.c这样的文件,为什么就可以运行产生想要的结果如加,减、乘、除等?其实一个C语言程序test.c最终会编译(编译器经过复杂的处理)成test.exe这样的文件,该文件是可执行文件,这个文件才会运行产生我们想要的效果。那么一个.c代码的文件到底是怎么产生.exe这样的可执行程序呢?这些动作又有什么意义呢?此博文探索的就是程序的整个编译过程——程序的环境和预处理。预处理阶段有些符号是可以直接使用的,C语言本身就定义了一些符号,这些符号是预定义符号。

2022-10-20 14:40:38 748 28

原创 使用C语言操作文件

C语言原生的对于文件的操作是相对较少的,一般是在它上面再封装一层函数,使其使用起来更方便简单。磁盘(是C盘,也称硬盘)上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。

2022-10-17 23:07:53 1517 43

原创 动态内存管理

动态内存分配所涉及的内存在哪里开辟呢?在内存中有栈区,堆区,静态区,在栈区中可以放局部变量,函数的形式参数,临时变量(数据)的空间都是在栈区开辟的;静态变量和全局变量是在静态区开辟的,堆区是用来动态内存分配的,就是在堆区申请的空间觉得小了可以大,觉得大了可以小。即动态内存分配所申请的空间都在堆区中,而动态内存分配所涉及到的函数是malloc,calloc,realloc,free。怎么进行动态内存分配呢?

2022-10-15 22:51:35 893 69

原创 自定义类型:结构体,枚举,联合

内置类型自定义类型内置类型有:内置类型是C语言本身就具有的类型,可以直接拿来使用,除了这些类型之外C语言还有自定义类型,自定义类型是自己所创造的一种类型。自定义类型有:结构体、枚举、联合体,数组。有了类型就可以创建变量,即有了结构体类型就可以创建结构体变量。struct Point//锁定点{int x;//结构体成员x:横坐标int y;//结构体成员y:纵坐标}p1;//定义结构体变量p1//这里声明类型的同时定义了结构体变量p1。

2022-10-13 22:48:40 762 35

原创 写一个通讯录

通讯录的基本实现:1、可以存放1000个人的信息2、人的信息:名字,年龄,电话,住址,性别3、增加联系人4、删除联系人5、查找联系人6、修改联系人7、排序(名字/年龄)8、显示联系人(打印)

2022-10-12 22:51:16 793 32

原创 字符函数和字符串函数

C语言中对字符和字符串有很多处理,但是C语言本身没有字符串类型,字符串通常放在常量字符串中或者字符数组中。字符串常量适用于那些对它不做修改的字符串函数。

2022-10-11 20:46:48 1026 46

原创 指针笔试题

a作为二维数组的数组名表示的是第一行的地址,但指向的也是数组的起始位置。p = a,则p指向的也是数组的起始位置,p认为它指向的数组是4个元素,所以p+1会跳过4个整型(跳过4个元素的数组),找到p+4的位置后,指向p+4,因为p认为它指向是4个元素的数组,所以*(p+4)就是向后访问4整型,就是4个元素的数组,此时*(p+4)相当于4个整型的数组名,数组名又表示数组首元素地址,所以*(p+4)就是指向的起始位置的地址,所以*(p+4)+2就是该4个整型的数组中的下标为2的地址;

2022-10-09 17:46:53 833 40

原创 指针和数组笔试题解析

前言回顾:数组名的理解:数组名是数组首元素的地址,但是有2个例外:1、sizeof(数组名),这里的数组名是表示整个数组,计算的是整个数组的大小,单位是字节。2、&数组名,这里的数组名也表示整个数组,取出的是整个数组的地址。除上面中的2种特殊情况外,所有的数组名都是数组首元素的地址。指针的大小:32位平台,(X86环境),指针大小是4个字节;64位平台,(X64环境),指针大小是8个字节。

2022-10-08 22:50:27 259 4

原创 对指针的进阶认识

数组指针是指针。因为:字符指针:char * pc;pc是指向字符的指针(变量);整形指针: int * pint;pint是指向整形的指针(变量);浮点型指针: float * pf;pf是指向浮点型的指针(变量);那数组指针应该是:指向数组的指针。下面代码哪个是数组指针?p1——p1和[ ]先结合,说明p1是一个数组,有10个元素,每个元素的类型是int*,说明p1是存放指针的数组,所以是指针数组。

2022-10-07 23:03:31 672 2

原创 计算一元二次方程

从键盘输入a, b, c的值,编程计算并输出一元二次方程ax^2 + bx + c = 0的根,当a = 0时,输出“Not quadratic equation”,当a ≠ 0时,根据△ = b2 - 4*a*c的三种情况计算并输出方程的根。多组输入,一行,包含三个浮点数a, b, c,以一个空格分隔,表示一元二次方程ax^2 + bx + c = 0的系数。注意:浮点型的数字不能直接0比较,因为浮点数在内存中不能精确保存,需要指定一个精度,在这个精度范围内判断是否是0。,其中x1

2022-10-06 09:01:14 2782

原创 获得月份天数

KiKi想获得某年某月有多少天,请帮他编程实现。输入年份和月份,计算这一年这个月有多少天。针对每组输入,输出为一行,一个整数,表示这一年这个月有多少天。多组输入,一行有两个整数,分别表示年份和月份,用空格分隔。

2022-10-06 08:11:26 123

原创 公务员面试

注意:min是从100开始的,若输入的数比min小就更新替换掉原来的min值;还有原因是:若min是从0开始的则输入的数没有任何数小于它,就没有任何意义了。-1在内存中存储的是11111111111111111111111111111111,~-1=0(对-1取反就是0)0为假就停止循环。公务员面试现场打分。有7位考官,从键盘输入若干组成绩,每组7个分数(百分制),去掉一个最高分和一个最低分,输出每组的平均成绩。每一行,输入7个整数(0~100),代表7个成绩,用空格分隔。(注:本题有多组输入)

2022-10-05 21:29:21 260

原创 带空格直角三角形图案

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的带空格直角三角形图案。多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。针对每行输入,输出用“*”组成的对应长度的直角三角形,每个“*”后面有一个空格。

2022-10-05 19:58:47 262

原创 空心三角形图案

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”三角形图案。多组输入,一个整数(3~20),表示输出的行数,也表示组成三角形边的“*”的数量。针对每行输入,输出用“*”组成的“空心”三角形,每个“*”后面有一个空格。

2022-10-05 19:18:36 418

原创 2的n次方计算

不使用累计乘法的基础上,通过移位运算(

2022-10-05 18:53:37 257

原创 序列中删除指定数字

有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后的序列,序列中未被删除数字的前后位置没有发生改变。数据范围:序列长度和序列中的值都满足 1 \le n \le 501≤n≤50。第二行输入N个整数,输入用空格分隔的N个整数。第一行输入一个整数(0≤N≤50)。输出为一行,删除指定数字之后的序列。第三行输入想要进行删除的一个整数。

2022-10-05 14:08:29 67

原创 C语言矩阵转置

KiKi有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答。

2022-10-05 12:11:45 341 1

原创 小乐乐与序列

第一行包含一个正整数n,表示老师给出的序列有n个数。接下来有n行,每行一个正整数k,为序列中每一个元素的值。(1 ≤ n ≤ 105,1 ≤ k ≤ n)老师给了小乐乐一个正整数序列,要求小乐乐把这个序列去重后按从小到大排序。但是老师给出的序列太长了,小乐乐没办法耐心的去重并排序,请你帮助他。局部数组放在栈区对栈区空间耗费严重,可以把数组定义在全局中使数组放在静态存储区。这种算法不能放负数,空间浪费严重,但是效率高,用时间换取空间。算法:按照下标(下标本身是有序的)存放数据——既去重又排序。

2022-10-05 10:56:10 59

原创 小乐乐走台阶

当有n个台阶时,小乐乐第一步走一个台阶时剩下还有n-1个台阶要走;第一步走两个台阶,剩下还有n-2个台阶要走。小乐乐上课需要走n阶台阶,因为他腿比较长,所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法?小乐乐第一步走一个台阶,剩下n-1个台阶还有f(n-1)中种走法;小乐乐第一步走两个台阶,剩下n-2个台阶还有f(2-1)中种走法;则小乐乐走n个台阶总共有f(n-1)+f(n-2)种走法。输入描述:输入包含一个整数n (1 ≤ n ≤ 30)输出描述:输出一个整数,即小乐乐可以走的方法数。

2022-10-05 09:57:49 304

原创 小乐乐改数字

完整题目:小乐乐喜欢数字,尤其喜欢0和1。他现在得到了一个数,想把每位的数变成0或1。如果某一位是奇数,就把它变成1,如果是偶数,那么就把它变成0。请你回答他最后得到的数是多少。

2022-10-05 09:38:58 81

原创 C语言猜名次

比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。方法:判断表达式加起来求和法。A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;

2022-10-05 07:04:42 206

原创 C语言猜凶手

日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。假设凶手是A,至少有3个人(A、B、C)说了假话,所以凶手一定不是A;假设凶手是B,则已经有2个人(B、C)说了假话,所以凶手一定不是B;假设凶手是C,A是真话,B是真话,C假话,D真话——完全有可能。现在请根据这些信息,写一个程序来确定到底谁是凶手。思路就是假设凶手是谁,看谁符合“

2022-10-04 23:09:13 226

原创 在屏幕上打印杨辉三角

【代码】在屏幕上打印杨辉三角。

2022-10-04 22:32:13 50

原创 调整奇数偶数顺序

输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。

2022-10-04 20:49:34 55

原创 喝汽水问题

喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水(编程实现)。10元——可以喝19瓶;20元——可以喝39瓶;6元——可以喝11瓶;

2022-10-04 19:10:19 120

原创 使用C语言打印菱形

【代码】打印菱形。

2022-10-04 18:11:22 252

原创 打印水仙花数

水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。求出0~100000之间的所有“水仙花数”并输出。

2022-10-04 15:24:20 74

原创 计算求和:Sn=a+aa+aaa+aaaa+aaaaa的前5项之和

计算求和:Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222。

2022-10-04 14:33:30 172

原创 字符串逆序

这里是求字符串长度,用strlen()函数,不是sizeof,sizeof是用来求变量所占空间大小的!混淆和易错点:用sizeof求字符串长度。

2022-10-04 14:02:59 1304

原创 写一个函数打印arr数组的内容,不使用数组下标,使用指针

【代码】写一个函数打印arr数组的内容,不使用数组下标,使用指针。

2022-10-04 13:04:19 152

原创 深度剖析数据在内存中的存储

基本的内置类型:char //字符数据类型short //短整型int //整形long //长整型long long //更长的整形float //单精度浮点数double //双精度浮点数C语言有没有字符串类型?类型的意义:1. 使用这个类型开辟内存空间的大小(大小决定了使用范围)2. 如何看待内存空间的视角。

2022-10-04 00:01:15 256

原创 将一句话的单词进行倒置

【代码】将一句话的单词进行倒置。

2022-10-03 23:26:25 156

原创 实用调试技巧

第一次被发现的导致计算机错误的飞蛾,也是第一个计算机程序错误。F9创建断点和取消断点。断点——程序执行到断点处就会主动停下来。断点的重要作用——可以在程序的任意位置设置断点。这样就可以使得程序在想要的位置随意停止执行,继而一步步执行下去。F5虽然是开始调试,但是通常使用F5跳到想要的断点处(经常用来直接跳到下一个断点处)。F5可以从一个断点处直接一步跳到下一个断点处(前提是有两个断点后,把上一个断点区先后按F5就可以直接跳到下一个断点即使上一个断点后有循环操作也会直接一步跳过)。

2022-10-01 23:38:10 721

原创 函数调用过程解析——函数栈帧的创建和销毁

——内功修炼之法

2022-09-29 21:28:18 299

原创 初始结构体

有了结构体类型(如struct Stu),那如何定义结构体变量呢?};int main(){struct Stu s = { "zhangsan",20,"男","19",95.5f };return 0;}//zhangsan 20 男 19 95.5struct S{int a;char c;double d;};struct Stu{//这里结构体里包含一个结构体int age;};int main()

2022-09-29 17:13:35 400

空空如也

空空如也

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

TA关注的人

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