2013年10月10日

某笔试题目--修复回文

摘要: 最近校园招聘又开始了,有一些读研的大学同学问我一些笔试时遇到的面试题目,今天有一题感觉挺有意思,就写了一下。在此跟大家分享一下。题目如下: 所谓回文,就是正序和倒序遍历结果一样的字符串,比如'aba', 'abcdedcba'。实现一个方法pal(),输入一个字符串,打印出以这个字符串为前缀的一个回文。比如输入'abc',pal()方法打印出'abcdcba'或'abcba';输入'abcb',可以输出'abcbcba'或'abcba'。如果可能,输出尽量短的结果。 阅读全文

posted @ 2013-10-10 23:23 泡泡腾 阅读(1198) 评论(4) 推荐(0) 编辑

2012年12月9日

C程序设计语言学习笔记(二)

摘要: 最近在通过《C程序设计语言》重新系统学习C语言,学习了关于函数的部分。今天学习的体会就是:代码写出来后,需要反复斟酌修改,才能使之成为精品。下面贴出关于逆波兰计算器的相关代码,包含练习题4-3的修改。#include<stdio.h>#include<stdlib.h>#include<ctype.h>#define MAXOP 100#define NUMBER '0'#define BUFSIZE 100#define MAXVAL 100int sp = 0;double val[MAXVAL];char buf[BUFSIZE];in 阅读全文

posted @ 2012-12-09 22:40 泡泡腾 阅读(209) 评论(0) 推荐(0) 编辑

2012年12月8日

C程序设计语言学习笔记(一)

摘要: 最近在通过《C程序设计语言》 重新系统学习C语言,书中第三章中的部分习题记录下来。读国外出版的教材与国内的教材,感触比较大的就是,国外教材的讲解通俗易懂,而练习题相对复杂,需要学生自己思考钻研才能比较完善的做出来。而国内的教材很多都晦涩难懂,且习题很水,比较不能激发学生自己的思考能力。废话不说,大致代码如下,主要是一些数字和字符串的转换代码#include<stdio.h>#include<string.h>/*反转字符串*/void reverse(char s[]){ int i,l; char c; for(i = 0,l = strlen(s) - 1;i &l 阅读全文

posted @ 2012-12-08 15:47 泡泡腾 阅读(235) 评论(0) 推荐(0) 编辑

2012年12月6日

C语言中,一个星号引发的错误

摘要: 首先介绍一下产品及问题背景。我们做的后台程序是编译成可执行程序供Tuxedo中间件调用。整个程序使用的是C语言,编译生成可执行程序使用makefile的方式,其中供Tuxedo调用的可执行程序是使用Tuxedo提供的buildserver将中间文件(.obj或.o)文件链接生成。所以需要我们手工使用编译器将源代码编译成中间文件。在windows环境下,我们使用VC6.0提供的编译链接程序cl.exe。 由于客户工期较紧且等不到我们程序发版,所以就临时发放了一份测试版本的程序。发放程序时向客户提供了供Tuxedo调用的可执行程序,还提供了打乱后的源代码(将程序中注释去掉,并扰乱程序排版... 阅读全文

posted @ 2012-12-06 22:44 泡泡腾 阅读(2285) 评论(24) 推荐(1) 编辑

2012年12月4日

C语言位操作

摘要: 介绍C语言中的六种基本位操作,与、或、左移、右移、异或和取反,并举例说明使用方法。 阅读全文

posted @ 2012-12-04 01:15 泡泡腾 阅读(1210) 评论(4) 推荐(1) 编辑

2012年6月20日

C语言解决哲学家就餐问题

摘要: 问题描述 以下问题描述摘自维基百科:http://zh.wikipedia.org/wiki/%E5%93%B2%E5%AD%A6%E5%AE%B6%E5%B0%B1%E9%A4%90%E9%97%AE%E9%A2%98 哲学家就餐问题可以这样表述,假设有五位哲学家围坐在一张圆形餐桌旁,做以下两件事情之一:吃饭,或者思考。吃东西的时候,他们就停止思考,思考的时候也停止吃东西。餐桌中间有一大碗意大利面,每两个哲学家之间有一只餐叉。因为用一只餐叉很难吃到意大利面,所以假设哲学家必须用两只餐叉吃东西。他们只能使用自己左右手边的那两只餐叉。哲学家就餐问题有时也用米饭和筷子而不是意大利面和... 阅读全文

posted @ 2012-06-20 12:09 泡泡腾 阅读(6750) 评论(1) 推荐(1) 编辑

2012年6月6日

C语言排序系列之归并排序(2)

摘要: 归并排序的基本思想是:首先对待排序数组前 n/ 2排序,再对后n / 2排序,然后对两部分进行合并 流程:1、若n= 1,返回 2、对前n / 2排序 对后n / 2 排序 3、合并 时间复杂度为:O(nlgn),推导方法见http://v.163.com/special/opencourse/algorithms.html麻省理工学院开放课 --算法导论(国外的教学真的比国内的好很多) /*归并排序: 时间复杂度:O(nlgn)*/#include<stdio.h>#include<stdlib.h>#include<string.h>void ... 阅读全文

posted @ 2012-06-06 23:48 泡泡腾 阅读(251) 评论(0) 推荐(0) 编辑

C语言排序系列之插入排序(1)

摘要: 插入排序是最简单最粗暴的排序方式,其基本思想是:对于已经有序的前i-1个数字,将第i个数字插入至合适位置 时间复杂度为:O(n^2) /*插入排序 时间复杂度:O(n^2)*/#include<stdio.h>void Swap(int *a,int *b){ int temp; temp = *a; *a = *b; *b = temp;}void InsertSort(int data[],int length){ int i = 0; int j = 0; for(i = 1;i < length;++i) { for... 阅读全文

posted @ 2012-06-06 23:43 泡泡腾 阅读(309) 评论(0) 推荐(0) 编辑

2012年5月31日

多线程--生产者消费者问题

摘要: 最近在学习多线程,自己尝试写了下生产者消费者问题, 思路: 1、使用两个信号量表示缓冲区中可以取的数据个数和可以放数据的位子个数 2、生产者和消费者的存取数据时,使用关键段达到缓冲区互斥访问的目的 代码记录如下: //生产者消费者问题#include<stdio.h>#include<process.h>#include<Windows.h>#define PRODUCE_NUM 1 //生产者数量#define CUST_NUM 2 //消费者数量#define BUFFER_LENGTH 8 //缓冲区长度#def... 阅读全文

posted @ 2012-05-31 17:10 泡泡腾 阅读(429) 评论(0) 推荐(1) 编辑

2012年5月26日

C语言求解数独

摘要: 平时喜欢玩数独游戏,昨日突发想用程序自动求解。思路是回溯法,不断试探。程序代码如下: 1 #include<stdio.h> 2 3 /* 4 {0,0,4,6,0,2,0,9,1}, 5 {2,1,0,9,8,4,0,5,6}, 6 {9,0,0,0,7,1,4,2,0}, 7 {1,2,5,0,6,0,3,4,7}, 8 {4,7,6,0,0,0,9,8,5}, 9 {8,3,9,0,4,0,1,6,2}, 10 {0,9,1,2,5,0,0,0,4}, 11 {5,8,0,4,1,6,0,3,9}, 12 {6,4,0,3,0,7,5,0,0}}; 13 */ 14 ... 阅读全文

posted @ 2012-05-26 15:45 泡泡腾 阅读(1317) 评论(0) 推荐(5) 编辑

导航