C语言
文章平均质量分 52
C语言的一些知识点
Hidden.Blueee
这个作者很懒,什么都没留下…
展开
-
求最大连续bit数
求最大连续bit数链接:https://www.nowcoder.com/questionTerminal/4b1658fd8ffb4217bc3b7e85a38cfaf2来源:牛客网求一个byte数字对应的二进制数字中1的最大连续数。例如3的二进制为00000011,最大连续2个1。输入描述:输入一个byte数字输出描述:输出转成二进制之后连续1的个数示例1输入35输出21说明3的二进制表示是11,最多有2个连续的1。5的二进制表示是101,最多只有1原创 2021-05-16 12:44:10 · 184 阅读 · 0 评论 -
程序编译和运行的过程
程序编译过程组成一个程序的每个源文件通过编译器进行编译分别转换成目标文件每个目标文件由链接器链接在一起,形成一个单一的可执行程序链接器会引入标准C库中的被该程序用到的函数,也可以搜索程序员个人的程序库,将程序需要的函数链接到程序编译本身也分为几个阶段预编译(.i)预处理指令编译(.s)语法分析,词法分析,语义分析,符号汇总汇编(.o)形成符号表,汇编指定转换为二进制指令,生成可重定位目标文件链接合并段表,符号表的合并和符号表的重定位( gcc编译的选项分别是 -E对应 .i.原创 2021-03-12 12:01:07 · 691 阅读 · 1 评论 -
leetcode找出现一次的数字
文章目录简化版原题思路1.数组遍历异或2.按二进制位分组3.根据简化版思路解决问题完整代码简化版我们先来看这个问题的简化版: 一个数组中只有一个数字是出现一次,其他所有数字都出现了两次。 找出这一个数字。解决这个问题之前我们要了解异或的两个特点: 两个相同的数异或的结果是0; 所有不为0的数和0异或的结果是本身。这个问题就很简单了,只需要将数组中的所有数异或一遍就可以得到出现一次的数字了。eg:int a[]={1,1,2,2,3};异或结果:0011 转换为十进制就是原创 2021-03-12 10:52:54 · 146 阅读 · 0 评论 -
C语言中的二分查找(折半查找)(vs2013)
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。如果要查找的元素在表中,那么返回它的位置,如果元素不在表中,返回NULL。为什么说二分查找是一种效率较高的查找方法呢?举个例子,比如我们有3,6,9,11,12,15,19,20,22这九个数字。我随便选择其中的一个数字,假设是11,我们要从这九个数字中找到11。如果找到的数字是11,那就找到了,如果这九个数中没有11,那就找不到。假设从第一个开原创 2020-10-18 00:07:20 · 1443 阅读 · 13 评论 -
static的三个作用
static作用一、修饰局部变量-静态局部变量二、修饰全局变量-静态全局变量三、修饰函数-静态函数一、修饰局部变量-静态局部变量代码1:#include <stdio.h>void test(){ int i = 0; i++; printf("%d ", i);}int main(){ int i = 0; for (i = 0; i < 10; i++){ test(); } system("pause"); return 0;}代码2原创 2020-10-23 15:09:36 · 8208 阅读 · 4 评论 -
函数实现两个数交换(通过指针间接访问函数外部的变量)
函数实现两个数交换首先,我们来看看不使用函数,怎么实现两个数字的交换呢?#include <stdio.h>int main(){ int a = 50; int b = 100; int temp = a; a = b; b = temp; printf("a=%d b=%d\n", a, b); system("pause"); return 0;}结果:a和b成功的实现了交换。那么使用函数如何实现呢?很多人会觉得,只需要将上面交换数字的部分放到函数中原创 2020-10-26 12:53:26 · 1946 阅读 · 5 评论 -
用函数实现判断素数(以及改进思路)
素数在写判断素数这段代码之前,我们首先要了解一个概念什么是素数?素数,一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。(规定1既不是质数也不是合数)。通过概念,我们可以得到一些思路:1.如果输入数字等于1或者小于1,不是素数2.如果输入数字可以被2到它本身整除,不是素数。int IsPrime(int n){ if (n == 1 || n <1){ //输入数字<1或者=1,不是素数 return 0; } f原创 2020-10-28 15:17:20 · 19696 阅读 · 3 评论 -
斐波那契数列的两种方法(递归和循环)
斐波那契数列一、定义二、递归实现斐波那契数列三、循环实现斐波那契数列四、 学习递归算法的体会一、定义斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1,F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)原创 2020-10-28 21:21:33 · 14647 阅读 · 0 评论 -
冒泡排序的具体步骤(C语言数组作为函数参数)
冒泡排序一、冒泡排序原理二、步骤演示三、代码示例1、错误示例2、正确示例一、冒泡排序原理1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一个。4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。二、步骤演示以下面5个无序的数据为例:7 15 9 5 2 。第一趟:7 9 5 2 15原理同第一趟:第二趟:7 5 2原创 2020-11-02 20:02:51 · 3332 阅读 · 0 评论 -
青蛙跳台(递归和非递归实现)
青蛙跳台一、问题描述:二、问题分析:三、代码实现:1、递归实现:2、非递归实现:四、问题进阶:1、问题分析:2、代码实现:一、问题描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。二、问题分析:当n=1时,有一种跳法:1、跳1级。当n=2时,有两种跳法:1、跳1级,跳1级。2、跳2级。当n=3时,有三种跳法:1、跳1级,跳1级,跳1级。2、跳1级,跳2级。3、跳2级,跳1级。我们可以将n级台阶时的跳法看成是原创 2020-11-06 19:38:54 · 2072 阅读 · 4 评论 -
指针的基础语法
目录一、指针是什么1、内存2、内存的作用3、内存VS外存4、指针5、总结二、指针和指针类型1、指针定义方式和大小2、指针类型的意义(1)指针类型决定了对指针解引用能操作几个字节(2)指针类型决定了指针走一步有多大距离三、野指针1、成因(1)指针未初始化(2)指针越界访问四、指针运算1、指针+-整数2、指针-指针(1)没有意义的写法(2)有意义的写法(3)结论3、指针的关系运算(1)if (p != NULL)等价于if ( p )(2)if (p == NULL)等价于if ( !p )五、指针和数组1、数原创 2020-11-08 14:33:03 · 1945 阅读 · 6 评论 -
数据在内存中的存储(详细版)
数据在内存中的存储一、整型在内存中的存储1、字节序(1)小端字节序(2)大端字节序(3)写一个程序判断是否为大端字节序2、原码补码反码(1)补码(2)补码的意义二、浮点型在内存中的存储1、浮点型2、浮点数的比较一、整型在内存中的存储(32位系统)在VS2013中,使用调试->窗口->内存,来观察内存的具体情况。让我们通过内存窗口来看看整型在内存中的存储,定义一个整形变量int a= 10;。注意:可以在地址栏中使用&来找到目标变量的内存情况。a的地址:0x00EF原创 2020-11-12 17:08:57 · 6438 阅读 · 10 评论 -
指针和数组笔试题,进来做题!!!(C语言)
注意sizeof()括号中的参数类型strlen计算终止条件是:遇到’\0’当前系统是32还是64位C语言中数组转换成指针1.函数传参2.加减运算3.解引用4.比较操作计算字符串长度strlen不计算\0计算内存空间sizeof 计算\0strlen参数类型要求是const char*类型第一题#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ int a[]原创 2020-11-15 19:52:37 · 578 阅读 · 5 评论 -
结构体详解(C语言vs2013示例)
结构的基础知识结构式一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型变量。结构的声明struct tag { member-list member-list member-list ...} variable-list ;tag 是结构体标签。member-list 是标准的变量定义,比如 int i; 或者 float f,或者其他有效的变量定义。variable-list 结构变量,定义在结构的末尾,最后一个分号之前,您可以指定一个或原创 2020-11-21 20:38:50 · 1000 阅读 · 4 评论 -
C语言实现通讯录(简易版)
通讯录通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄。提供方法:新增联系人查找联系人删除联系人修改联系人查看所有联系人清空所有联系人以名字排序所有联系人定义联系人和通讯录定义联系人结构体表示一个联系人包含联系人姓名和电话typedef struct Person{ char name[1024]; char tel[1024];}Person;定义通讯录结构体表示整个通讯录, 管理所有联系人使用宏定义方便后续理解和修改包含联系人通讯原创 2020-11-22 16:14:51 · 14558 阅读 · 10 评论 -
文件操作详解(C语言)
什么原创 2020-12-12 10:17:35 · 372 阅读 · 0 评论