自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HanSion.Z

解决方法总比问题多

  • 博客(31)
  • 资源 (2)
  • 收藏
  • 关注

原创 浅谈编译原理

 一个源文件到可执行文件这中间编译器到底做了什么呢?请看下面:一个源文件(.c)在编译器经过编译和链接两个大的过程而生成可执行文件(.exe),而编译又分为分为三个阶段:预处理(预编译)、编译、汇编,这是一个翻译的过程。而可执行文件生成在运行环境可以直接运行。下面是程序编译的过程。●组成一个程序的每一个源文件通过编译过程生成目标代码。●每个目标文件由连接器捆绑在一起,形成一个单...

2018-04-24 21:32:15 2527 1

原创 经典面试题陷阱之无限循环

在vs环境下,请看下面的代码输出的结果是什么?#include<stdio.h>int main(){ int i = 0; int arr[10] = { 1,1,1,1,1,1,1,1,1,1 }; for (i = 0; i <= 12; i++) { arr[i] = 0; printf("hehe\n"); } return 0;}大家一看到...

2018-04-23 22:53:41 755

原创 全局变量、局部变量的异同

全局变量:在函数和大括号外部的变量, 称为全局变量  局部变量:在函数或者代码块(一对{}就是一个代码块)中的变量, 称为局部变量★下面我将用一个例子来说明两种变量的异同#include<stdio.h>#include<windows.h>int g_val = 2018;// 变量g_val为全局变量: // 作用域: 整个工程// 生命周期:从程序开始...

2018-04-23 20:30:06 1256

原创 模拟实现库函数strlen的三种方法

模拟实现库函数strlen★要想模拟实现strlen函数,我们首先要知道strlen函数的作用是什么?它的函数原型是什么?●strlen函数的作用仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串的开头,中间某个位置,甚至是某个不确定的内存区域)开始计数,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。●下面是在MSDN里strlen函数的原型:现在,开始模拟...

2018-04-23 18:27:54 977

原创 用C语言模拟实现库函数strcpy

模拟实现库函数strcpy要实现库函数strcpy,我们应该首先要知道strcpy函数的作用。★strcpy(s1,s2),strcpy函数的意思是:把字符串s2拷贝到s1中,连同字符串结束标志也一同拷贝。如果s2="good",那么内存合适的s1中存放的是good\0。下面是strcpy在库函数的原型:那么现在怎么模拟实现一个strcpy函数呢?char *strcpy(char *dest, ...

2018-04-22 21:16:04 608

原创 求两个数的最大公约数和最小公倍数

最大公约数和最小公倍数●最大公约数:两个数的公共约数中最大的那个,求最大公约数的办法有辗转相除法、更相减损法、穷举法。下面详细介绍着三种方法。●最小公倍数:两数的乘积除以最大公约数就是最小公倍数。①辗转相除法【算法设计】:【参考代码】:int common_facter(int x, int y){ int tmp = 0; while (x%y) { tmp = x%y; x =...

2018-04-21 19:07:09 1349

原创 冒泡排序

什么是冒泡排序?冒泡排序(Bubble Sort),是一种的比较简单的排序算法。它重复地遍历过要排序的数组,一次比较两个元素,如果他们的顺序错误就把他们两个交换。直到没有再需要交换,也就是说该数组已经排序完成。算法描述:1.确定要循环的趟数2.依次比较相邻的元素。如果第一个比第二个大,就交换他们两个。 3.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。第一次循环结束,最后的元素应该会...

2018-04-21 16:43:09 98

原创 怎么判断一个数是不是2的n次方

★一个数加入是2的n次方,那么这个数有什么特点?没错,它的二进制中有有一个1。例如:2^3=8 10002^2=4 01002^1=2 0010这样的话,我们只要可以求出二进制中有多少个1就可以判断这个数是不是2的n次方了。怎么求一个数二进制中1的个个数呢?请移步我的另一篇博客--->如何求一个整数的二进制中1的个数还有一种方法也可以判断一个数是不是2的n次方,一个数...

2018-04-21 13:16:40 2744

原创 const在C语言中的用法

在C语言中,const修饰的变量具有常属性,不可以修改它的值。例如:const int num=10;int const num=10;//变量num的值不可以被改变但是它又和变量有一些区别,例如:#define line 10const int num=10;虽然它们的值都是10,而且都不能改变,但是用在数组中就不一样了。例如:int arr[line]//line是常量,可以使用...

2018-04-21 12:55:12 7255

原创 扫雷游戏的简单实现

【项目介绍】:使用C语言二维数组和函数的基本知识,简单实现一个扫雷游戏。它基本功能是初始化雷区和展示区、用随机数布置雷区、判断排雷是否成功。本项目适合C语言初学者,有兴趣的朋友可以了解一下。【项目缺陷】:每次只能排一个雷,而不是向外扩展的一片雷。【项目扩展】:①第一次排雷一定不会炸到(吸引玩家)                        ②如果当前坐标不是雷,就向外扩展以当前坐标为中心的地方,...

2018-04-19 23:43:06 462

原创 三子棋游戏

【项目介绍】:使用C语言中二维数组和函数的基本知识简单实现一个三子棋游戏,这个游戏要实现的基本功能主要有初始化棋盘、棋盘的打印、玩家下棋、电脑下棋、判断输赢(三字连珠)。本项目非常适合C语言初学者,希望有兴趣的朋友可以一起学习。【代码框架】:①头文件(game.h)#ifndef _GAME_H_#define _GAME_H_#include<stdio.h>#include...

2018-04-19 22:54:26 1340

原创 第七届蓝桥杯C语言煤球数目题目

【问题描述】:煤球数目有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。【方法思路】:通过阅读题目,我们不难发现,假设第0层为0个煤球,以后的每一层都是上一层...

2018-04-17 17:50:44 1655

原创 【C语法陷阱】:怎样理解(*(void(*)())0)()

首先我们回忆一下C语言中变量是怎样声明的?任何C语言的变量声明都由两部分组成:类型、变量名(声明符)。例如:int a,b;接下来我们试着声明一个函数:float  g( );  这个声明的含义是g是一个返回值为浮点类型的函数。然后,我们在声明一个指针:float *pf;  这个声明的含义是pf是一个指向浮点数的指针★现在,我们分两步分析表达式(*(void(*)())0)().①假设变量fp是...

2018-04-17 17:23:05 473

原创 【C语法陷阱】:悬挂else引发的问题

★请看下面例子代码的输出结果是什么?#include<stdio.h>int main(){ int a = 5; int b = 2; if (a == 0) if (b == 0) a = a + b; else a = a - b; printf("a=%d", a); return 0;}这段代码我们的本意是当a等于0,判断b是否...

2018-04-16 16:41:40 1436

原创 Git的常用命令总结

★Git的常用命令总结●配置name和email$ git config --global user.name "your name"$ git config --global user.email "your email@example.com"//--global是全局参数,表示这个账户上所以的Git仓库都使用这个配置●配置别名$ git config --global alias.st ...

2018-04-15 15:52:30 114

原创 经典面试题之顺序表和链表的优缺点

★什么是顺序表?顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组连续地址的存储单元依次存储数据元素的线性结构。表中的任一元素的地址都可以通过这个公式得到:LOC(di)=LOC(d1)+(i-1)*L  1≤i≤n 其中,L是元素占用存储单元的长度。                              ★什么是链表?链表是一种链式存储的数据结构,用一组地址任意的存储单元存放线性表中...

2018-04-14 14:15:52 21007

原创 【C语言初阶】:数组在面试中的陷阱

★数组数组:是一组相同类型的集合,有一维数组,二维数组(矩阵),三维数组和字符数组。●一维数组一维数组的创建:直接上例子(int  arr1[10])。注:数组在创建的时候,[ ]中要给常量猜可以,不能使用变量。◆陷阱:const关键字修饰的变量在C语言中是具有常属性的变量,依然是一个变量,不可以放在数组的[ ]中;但是在C++中const修饰的变量是一个常量,可以放在数组的[ ]中。一维数组的初...

2018-04-13 23:32:29 568

原创 第五届蓝桥杯C语言猜年龄题目

★猜年龄【问题描述】:小明带着两个妹妹参加元宵灯会。别人问她们多大了,她们调皮地说:“我们俩的年龄之积是年龄之和的6倍”。小明又补充说:"她们可不是双胞胎,年龄差肯定也不超过8岁啊。"请你写出:小明较小的妹妹的年龄。注意:只写一个人的年龄数字,请通过浏览器提交答案。不要书写任何多余内容。【思路方法】:枚举两个妹妹的年龄(1-20比较合理),用一个两层循环联系他们的年龄,再用题目的条件判断,满足条件...

2018-04-12 16:50:23 3273 1

原创 2016年蓝桥杯省赛生日蜡烛题目

★生日蜡烛【问题描述】:某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了236根蜡烛。请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。【思路方法】:从他第一年开始举办生日party吹蜡烛数和以后每年吹的蜡烛数是一个等差数列,我们可以采用枚举(1-...

2018-04-12 16:15:09 3489 3

原创 Visual Stdio 2010以上版本的集成开发环境怎么把scanf_s换为scanf

【问题描述】:我们在使用vs2010以上的编译器时,经常会出现这样的错误。★它说让我们用scanf_s代替scanf,这是一种安全周期检测,版本较高的vs编译器认为scanf的使用存在安全隐患。因为在C语言和C++中字符串都是以‘\0’结束的,如果搜索不到‘\0’字符,很容易出现字符串越界的问题,为了避免这个问题,vs中才加上这个参数的。【解决办法】:方法一:在项目属性中---->配置属性-...

2018-04-10 22:50:54 2539

转载 原码, 反码, 补码 详解

★本文转载于博客园      作者:张子秋★原文链接:http://www.cnblogs.com/zhangziqiu/ ★个人觉得这篇文章真的不错,所以转载和大家一起共勉原码, 反码, 补码 详解本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希...

2018-04-10 20:01:33 192

原创 C语言编写代码实现,模拟用户登录情景,并且只能登录三次。

【问题描述】:用C语言编写代码实现,模拟用户登录情景,并且只能登录三次。只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。【参考代码】:#include<stdio.h>#include<windows.h>#include<string.h>int main(){ char password[20] = { 0 };...

2018-04-10 19:35:13 1061

原创 C语言编写一个代码,实现多个字符从两端移动向中间汇聚的功能

【功能演示】:逐行输出为以下效果【参考代码】:#include<stdio.h>#include<string.h>#include<windows.h>int main(){ char arr1[] = "Good good study day day up!"; char arr2[] = "##########################...

2018-04-09 23:26:39 280

原创 【C语言初阶】:有趣的猜数字小游戏

【游戏玩法】:选择1,进行游戏;选择0,退出游戏。游戏设计让你猜一个1~100之间的数,根据一步步指示,最终才对游戏设定多的数字。【参考代码】:#include<stdio.h>#include<stdlib.h>#include<time.h>void menu(){ printf("***************************\n");...

2018-04-08 22:50:53 424

原创 【经典面试题】:求一个整数存储在内存中的二进制中1的个数

用C语言编写代码实现:求一个整数存储在内存中的二进制中1的个数①方法1:对一个数先%2,然后在除以2,不断循环直到这个数为0,可以得到它的二进制中1的个数?例如,10的二进制为1010,我们试着亲自动手循环一下10%2=0,  10/2=5,  5%2=1, 5/2=2,  2%2=0,  2/2=1,  1%2=0。这样好像可以的到1的个数,我们先用代码实现一下。#include<stdi...

2018-04-08 22:00:04 1762 2

原创 浅浅谈编译原理

     ★从开始编写的源代码到最后出现的黑框上的运行结果,编译器到底做了什么呢?写了这么多的代码,那源代码是怎么样被编译器给执行的呢?下面让我们一起讨论一下吧!  这里我们先简单的了解一下程序的运行原理。大多数情况下,我们都会在Windows开发环境下进行开发,以C语言为例,它们会有这样的过程: ◆.c源文件——>预编译——>编译——>链接——>.exe可执行文件①预编译...

2018-04-08 19:53:57 430

原创 【C语言陷阱】:浮点型与零的比较

★请看下面的例子,输出结果是什么呢?#include<stdio.h>int main(){ double i=20; double j=i/7.0; if(j*7.0==i) printf("相等"); else printf("不相等"); return 0;}上边的例子输出结果是不相等。因为浮点数在内存...

2018-04-07 14:06:47 2868

原创 C语言中几个面试常见的关键字

①const关键字★在C语言中,const修饰一个标识符的时候,这个标识符依然是个变量,但是这个变量不能被直接修改,所以它具有常属性。请看下面的例子:#include<stdio.h>int main(){ int num1 = 0; const num2 = 0; num1 = 10; num2 = 10; return 0;}//n...

2018-04-06 15:11:40 437

原创 C语言之一个有趣的关机程序

★一个有趣的关机程序#include<stdio.h>int main(){char input[]={0};system("shutdown -s -t 60")//这是Windows系统下的一个关机命令flag:printf("你的电脑将在一分钟后关机,如果输入"我是猪",就会取消关机!\n请输入:");scanf("%s",input);if(0==strcm...

2018-04-06 12:44:02 11241 5

原创 C语言之转义字符的陷阱

★首先,让我们看一下面的代码运行结果是什么?#include<stdio.h>int main(){printf(“(Are you ok??)\n”);return 0;}●上边代码我们想要的运行结果是(Are you ok??),但是实际的结果却是(Are  you ok],为什么呢?三字母词:三字母词??>??<??)??(表示字符}{][◆由于三字母词的...

2018-04-05 18:07:20 1025

原创 【C语言初阶】:常用操作符总结

●常用表达式 ◆分类算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构体成员访问Ⅰ.算术操作符 +(加) 、 -(减)  、 *(乘) 、 /(除) 、 %(取余)注意:1.%的两个操作数都必须是整数,操作后返回整除之后的余数。2./操作符如果两个操作数都为整数,执行整数除法。但是只要有一个操作数为浮点数执行浮点数除法。Ⅱ.移位操作符&...

2018-04-03 22:56:51 184

剑指offer 解析

剑指 r offer 解析总结

2019-03-30

学习git资料

通过git原理介绍,适应协作开发模式,理解远端仓库和版本控制对项目的重要性 。理解项目管理,理解项目版本控制,熟练应用git工具 。该课件中大部分内容来自于网上的大神写的文章,希望大家多多前去学习。例如:廖雪峰大神 我们对其中的内容作了适度的更新,完善,使之更好的适应我们的同学。

2019-01-16

空空如也

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

TA关注的人

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