编写自动测试c语言程序的shell脚本

目前经常用vim编写一些c语言程序,写好了程序一般都得进行一些测试,当然我们可以进行一些常规的手动测试。心里一想,如果能够用shell脚本编写一个能自动测试c语言程序就好了。 为了试一试这样的想法,找了一个c语言程序题目: [一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再...

2015-07-10 23:22:14

阅读数 1137

评论数 0

Linux系统下学习正则表达式的心得

一直对正则表达式云里雾里的,今天认真的看了《鸟哥的linux私房菜》一书并在网络上查询了相关方面的资料,现在对正则表达式有了一定的了解。 首先正则表达式指的是用特定的字符串来筛选符合一定要求的字符串,我们在Linux系统下经常用到的命令grep,这个命令时用来选取符合一定要求的字符串所在的一行,其...

2015-07-05 21:36:51

阅读数 200

评论数 0

使用MacBook air 11.6第一记

纠结了很长时间买到了我心仪的苹果笔记本电脑了,从之前在macbook pro和air之间的纠结发展到了后来的air11和air13之间的纠结,终于到了昨天我下了最后的决心,买了一台2015款的macbook air 11。当时在买11的时候还是在犹豫的,犹豫怕拆封了看到11.6寸的小屏幕时候会后悔...

2015-07-03 18:30:34

阅读数 344

评论数 0

IP地址的转换

今天遇到一个题目:将十进制的IP地址转化成二进制,然后将二进制串起来成为32的数,再按照十进制将这个数读出来。这个问题有种解决方案: 1. 可以用乘法操作; 2. 可以用移位操作; 3. 可以使用联合体定义解决; 下面我就移位操作和利用联合体来进行代码的编写: #include usi...

2014-12-24 14:45:22

阅读数 304

评论数 0

内存对齐总结

今天参加了入职前的小小的培训,培训中老师讲到了关于内存对齐的只是,以前接触过,但是没有深究,今天老师讲了,回来便查了查资料,下面便是我对内存对齐的理解。 内存对齐对于大部分的软件工程师来说都可以说是透明的,内存对齐应该是编译器去管理的,C语言的特点就是强大灵活,他允许你对内存进行操作。如果你想对...

2014-12-15 21:34:43

阅读数 304

评论数 0

windows下如何配置实现命令行编译c++程序

大家知道在linux下编译c++代码的那种命令式的编译方式,想不想在windows下实现这样的功能?今天我就使用了我的windows台式电脑和笔记本电脑实现了这样的命令式的c++代码的编译。 首先你需要的工具就是: 1. 一台windows下的电脑(当然是安装了c++编译器的电脑) 2. 下...

2014-12-03 15:36:24

阅读数 387

评论数 0

win7专业版激活方案

今天给我的台式机重装了win7系统,但是发现一个蛋疼的事情,就是不能正常激活win7系统了。 我主要使用了一下几种激活电脑的方式: 1. 使用以前的激活程序进行系统的激活; 2. 使用学校购买的正版系统进行激活,这也遇到了问题,出现密钥不能使用的情形; 3. 在网上搜索能用的win7正版的...

2014-11-24 15:07:49

阅读数 1057

评论数 0

最短路径——floyd算法

上一篇博文中讲了Dijkstra算法,这次博文要讲解的是floyd算法,其中Dijkstra算法是属于贪心算法,而floyd算法是动态规划的一个算法: 具体的算法如下: 其中一个矩阵是用来存放最短路径的,另外一个矩阵是用来存放前驱顶点的; #include using namespace ...

2014-09-25 09:54:16

阅读数 355

评论数 0

最短路径算法——迪杰斯特拉算法(Dijkstra)

图结构中应用的最多的就是最短路径的查找了,关于最短路径查找的算法主要有两种:迪杰斯特拉算法(Dijkstra)和Floyd算法。 其中迪杰斯特拉算法(Dijkstra)实现如下: 原理就是不断寻找当前的最优解: void main() { int V[Max][Max]={0,8,32,I...

2014-09-24 22:08:12

阅读数 470

评论数 0

关于子函数中用new动态申请的空间的思考

当我们的程序在运行时才能决定数组空间的大小的情况下,我们会经常使用new或者malloc来在堆空间中动态的申请一片空间,这是相当的方便和实用的。最近经常使用自己也发现了一些问题以及自己对这些问题的思考: void main() { int *B; cout<<*B; fun(&...

2014-09-13 15:30:35

阅读数 502

评论数 2

c++中函数模板的使用

在程序设计中,经常要使用到函数体相同的函数,如果我们要根据所使用的参数表不同来决定调用具体哪个函数时,我们经常使用的方式是进行函数重载,但是当我们的函数很多的时候会发现实现起来很不方便。所以c++提供了函数模板的概念,这和类模板实现起来的方式是类似的。 下面举个例子,我们经常要使用的冒泡排序算法,...

2014-09-13 11:41:12

阅读数 359

评论数 2

c++笔试复习

1. 请说出#define和const的区别,都有何优点?

2014-08-26 10:51:19

阅读数 138

评论数 0

字符串流的使用c++

坚持写博客——善于总结和记录学习的每一天 今天简单的复习了下c++的标准IO库,c++的IO操作和c的IO操作原理是不一样的,c++是使用的强大的类库实现了IO的操作,而c只是使用了简单的库函数实现了IO操作。这就带来了一些本质的区别,首先c的IO操作是不进行类型检查的,而c++的进行类型检查的...

2014-08-25 11:12:21

阅读数 221

评论数 0

排序二叉树的实现

在计算机科学中,二叉树是一种重要的非线性的数据结构。每个结点的度均小于等于2,通常子树称为左子树和右子树。而排序二叉树是二叉树中的一种,其满足:1. 如左子树不为空,那么左子树上的结点的值都小于其根上的值;2. 如右子树不为空,那么右子树上的结点的值都大于其根上的值; 3. 其子树也是一个排序二叉...

2014-07-28 16:37:27

阅读数 328

评论数 0

链表队列的实现

队列也是数据结构中比较重要的一种,和栈相反的是,队列是先进先出的,先进队列的可以先出队,跟平时我们排队是一样的。在允许多通道程序运行的计算机系统中,同时几个作业运行。凡是申请输出的作业都从队尾进入队列。 现在用链表实现队列,先定义一个链表结点: typedef struct QNode { ...

2014-07-26 22:01:40

阅读数 244

评论数 0

双向链表的实现

上一篇博文介绍了如何使用C语言实现单链表,这篇博文介绍下双向链表的实现。单链表中每个结点只有一个后驱,而双向链表中每个结点都有一个后驱和前驱(除了第一个结点只有一个后驱,最后一个结点只有一个前驱)。双向链表中每个结点具有一个数据域和两个指向前一个结点和后一个结点的指针域。代码的实现: 首先得创建...

2014-07-26 16:18:03

阅读数 315

评论数 0

单链表

线性表是数据结构中比较重要的一种结构。线性表可以用连续存储空间来表示,也可以用链表的形式表示。链式存储结构不要求在逻辑上相邻的元素在物理位置上也相邻,因此他在插入元素和删除元素上具有着得天独厚的优势,但是却失去了顺序存储中可随机存储的优点。 线性链表中每个元素被存放在一个叫做结点的地方,结点包含...

2014-07-24 21:17:24

阅读数 337

评论数 0

链表排序

链表是一种在物理存储上非连续,非顺序的存储结构,数据的逻辑关系是通过指针链接次序实现的,链表通过一系列结点组成,结点可以在运行时动态生成。每个结点由两部分组成:数据域和存储下一结点的指针域。链表是一种常见的数据结构。 要想进行链表排序,首先得建立一个单链表,程序代码是由一个数组转化而来,代码如下...

2014-07-21 23:54:53

阅读数 393

评论数 1

希尔排序算法——缩小增量法排序

希尔排序——1959年shell提出而得名,也称为缩小增量排序算法,它是直接插入排序的改进,效率比较高,适合于中小规模的排序。 具体的算法实现步骤为:首先得知道直接插入排序的算法,然后就是选择增量给原数列进行分组,对每个分得的小组进行直接插入排序便可,然后逐渐减小这个增量,依然进行新的分组的直接...

2014-07-21 16:15:49

阅读数 351

评论数 0

直接插入排序

直接插入排序是一种比较简单的排序方法,他的原理类似于我们玩牌的时候抓牌,手中的牌是按照一定的顺序排列的,然后摸到的牌先进行查找顺序,将牌插到应该插入的地方,直到最后一张牌的插入,那么手中的牌都是有序的。 数列的直接插入排序也是这样的,将第一个数看做是排列有序的数列,然后将后面的数依次插入到数列中...

2014-07-19 00:23:09

阅读数 518

评论数 1

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