<?xml version="1.0" encoding="utf-8"?><rss version="2.0">
<channel>
<title><![CDATA[程序员之家]]></title>
<link>http://blog.pfan.cn/home</link>
<description>编程爱好者博客</description>
<language>zh-cn</language>
			<item>
		<title><![CDATA[C语言中一个关于洗牌的问题]]></title>
		<link>http://blog.pfan.cn/home/5155.html</link>
		<description><![CDATA[#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include &lt;time.h&gt;void shuffle(int [][13]);void deal(const int [][13],const char *[],const char *[]);main(){&nbsp;&nbsp;&nbsp;&nbsp;const char *suit[4]={"Hearts","Diamonds","Clubs","Spades"};&nbsp;&nbsp;&nbsp;&nbsp;const char *face[13]={"1","2","3","4","5","6","7","8","9","10","J","Q","K"};&nbsp;&nbsp;&nbsp;&nbsp;int deck[4][13]={0}; // deck[4][13] 全是零&nbsp;&nbsp;&nbsp;&nbsp;srand(time(NULL));&nbsp;&nbsp;&nbsp;&nbsp;shuffle(deck);&nbsp;&nbsp;&nbsp;&nbsp;deal(deck,face,suit);&nbsp;&nbsp;&nbsp;&nbsp;return 0;}void shuffle(int wDeck[][13]){&nbsp;&nbsp;&nbsp;&nbsp;int card,row,column;&nbsp;&nbsp;&nbsp;&nbsp;for(card=1;card&lt;=52;card++)&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row=rand()%4;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;column=rand()%13;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(wDeck[row][column]!=0)// 不是零，表示已经赋值。wDeck[row][column]就是deck[4][13];//wDeck[row][column]是用参数传过来的&nbsp;]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-23 12:30:00</pubDate>
		</item>
				<item>
		<title><![CDATA[[转帖]成为java高手的八大条件]]></title>
		<link>http://blog.pfan.cn/home/4717.html</link>
		<description><![CDATA[世界上并没有成为高手的捷径，但一些基本原则是可以遵循的。&nbsp;&nbsp;1、扎实的基础&nbsp;&nbsp;　　数据结构、离散数学、编译原理，这些是所有计算机科学的基础，如果不掌握它们，很难写出高水平的程序。程序人人都会写，但当你发现写到一定程度很难再提高的时候，就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP，即使你再精通OOP，遇到一些基本算法的时候可能也会束手无策。因此多读一些计算机基础理论方面的书籍是非常有必要的。&nbsp;&nbsp;2、丰富的想像力&nbsp;&nbsp;　　不要拘泥于固定的思维方式，遇到问题的时候要多想几种解决问题的方案，试试别人从没想过的方法。丰富的想像力是建立在丰富的知识的基础上，除计算机以外，多涉猎其他的学科，比如天文、物理、数学等等。开阔的思维对程序员来说很重要。&nbsp;&nbsp;3、最简单的是最好的&nbsp;&nbsp;　　这也许是所有科学都遵循的一条准则，复杂的质能转换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式：E=mc2。简单的方法更容易被人理解，更容易实现，也更容易维护。遇到问题时要优先考虑最简单的方案，只有简单方案不能满足要求时再考虑复杂的方案。&nbsp;&nbsp;4、不钻牛角尖&nbsp;&nbsp;　　当你遇到障碍的时候，不妨暂时远离电脑，看看窗外的风景，听听轻音乐，和朋友聊聊天。当我遇到难题的时候会去玩游戏，当负责游戏的那部分大脑细胞极度亢奋的时候，负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候，我会发现那些难题现在竟然可以迎刃而解。&nbsp;&nbsp;　　5、对答案的渴求&nbsp;&nbsp;　　人类自然科学的发展史就是一个渴求得到答案的过程，即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念，一定要找到问题的答案，你才会付出精力去探索，即使最后没有得到答案，在过程中你也会学到很多东西。&nbsp;&nbsp;　　6、多与别人交流&nbsp;&nbsp;　　三人行必有我师，也许在一次和别人不经意的谈话中，就可以迸出灵感的火花。多上上网，看看别人对同一问题的看法，会给你很大的启发。&nbsp;&nbsp;　　7、良好的编程风格&nbsp;&nbsp;　　注意养成良好的习惯，代码的缩进编排，变量的命名规则要始终保持一致。大家都知道]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 17:18:00</pubDate>
		</item>
				<item>
		<title><![CDATA[c语言的编程风格]]></title>
		<link>http://blog.pfan.cn/home/4716.html</link>
		<description><![CDATA[第一章:缩进格式　　Tab是8个字符,于是缩进也是8个字符.有很多怪异的风格,他们将缩进格式定义为4个字符(设置为2个字符!)的深度,这就象试图将PI定义为3一样让人难以接受. 
　　理由是:缩进的大小是为了清楚的定义一个块的开始和结束.特别是当你已经在计算机前面呆了20多个小时了以后,你会发现一个大的缩进格式使得你对程序的理解更容易. 
　　现在,有一些人说,使用8个字符的缩进使得代码离右边很近,在80个字符宽度的终端屏幕上看程序很难受.回答是,但你的程序有3个以上的缩进的时候,你就应该修改你的程序. 　　总之,8个字符的缩进使得程序易读,还有一个附加的好处,就是它能在你将程序变得嵌套层数太多的时候给你警告.这个时候,你应该修改你的程序. 
第二章:大符号的位置　　另外一个C程序编程风格的问题是对大括号的处理.同缩进大小不同,几乎没有什么理由去选择一种而不选择另外一种风格,但有一种推荐的风格,它是Kernighan和Ritchie的经典的那本书带来的,它将开始的大括号放在一行的最后,而将结束大括号放在一行的第一位,如下所示: 
　　if (x is true) { we do y } 　　　　然而,还有一种特殊的情况:命名函数:开始的括号是放在下一行的第一位,如下:int function(int x) { body of function } 　　　　所有非正统的人会非难这种不一致性,但是,所有思维正常的人明白: (第一) K&amp;R是___对___的,(第二)如果K&amp;R不对,请参见第一条. (:-))......另外,函数也是特殊的,不一定非得一致. 
　　需要注意的是结束的括号在它所占的那一行是空的,__除了__它跟随着同一条语句的继续符号.如"while"在do-while循环中,或者"else"在if语句中.如下: 
　　do { body of do-loop } while (condition); 　　以及　　if (x == y) { .. } else if (x &gt; y) { ... } else { .... }
　　理由: K&amp;R. 　　　　另外,注意到这种大括号的放置方法减小了空行的数量,但却没有减少可读性.于是,在屏幕大小受到限制的时候,你就可以有更多的空行来写些注释了. 
第三章:命名系统]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 17:10:00</pubDate>
		</item>
				<item>
		<title><![CDATA[快速排序]]></title>
		<link>http://blog.pfan.cn/home/4715.html</link>
		<description><![CDATA[分而治之方法还可以用于实现另一种完全不同的排序方法，这种排序法称为快速排序（quick sort）。在这种方法中， n 个元素被分成三段（组）：左段l e f t，右段r i g h t和中段m i d d l e。中段仅包含一个元素。左段中各元素都小于等于中段元素，右段中各元素都大于等于中段元素。因此l e f t和r i g h t中的元素可以独立排序，并且不必对l e f t和r i g h t的排序结果进行合并。m i d d l e中的元素被称为支点( p i v o t )。图1 4 - 9中给出了快速排序的伪代码。/ /使用快速排序方法对a[ 0 :n- 1 ]排序从a[ 0 :n- 1 ]中选择一个元素作为m i d d l e，该元素为支点把余下的元素分割为两段left 和r i g h t，使得l e f t中的元素都小于等于支点，而right 中的元素都大于等于支点递归地使用快速排序方法对left 进行排序递归地使用快速排序方法对right 进行排序所得结果为l e f t + m i d d l e + r i g h t图14-9 快速排序的伪代码考察元素序列[ 4 , 8 , 3 , 7 , 1 , 5 , 6 , 2 ]。假设选择元素6作为支点，则6位于m i d d l e；4，3，1，5，2位于l e f t；8，7位于r i g h t。当left 排好序后，所得结果为1，2，3，4，5；当r i g h t排好序后，所得结果为7，8。把right 中的元素放在支点元素之后， l e f t中的元素放在支点元素之前，即可得到最终的结果[ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ]。把元素序列划分为l e f t、m i d d l e和r i g h t可以就地进行（见程序1 4 - 6）。在程序1 4 - 6中，支点总是取位置1中的元素。也可以采用其他选择方式来提高排序性能，本章稍后部分将给出这样一种选择。程序14-6 快速排序templatevoid QuickSort(T*a, int n){// 对a[0:n-1] 进行快速排序{// 要求a[n] 必需有最大关键值quickSort(a, 0, n-1);templatevoid quickSort(T a[], int l, int r){// 排序]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 17:06:00</pubDate>
		</item>
				<item>
		<title><![CDATA[怎么将数组中的n个元素倒放在原来的数组中？- -]]></title>
		<link>http://blog.pfan.cn/home/4714.html</link>
		<description><![CDATA[#include &lt;stdio.h&gt;
#define N 10
int&nbsp;&nbsp; main()
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double&nbsp;&nbsp; x[N]={1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.0,9.9}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp;&nbsp; i;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double&nbsp;&nbsp; *pf,*pt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void&nbsp; swap(double *, double *);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for&nbsp; ( pf=x, pt=&amp;x[N-1}; pf&lt;pt; ++pf,__pt)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; swap(pf,pt);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=0;i&lt;N;++i)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("\nx[%d]=%f,"i,x[i]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return(0);
}
void&nbsp;&nbsp; swap(&nbsp; double *px,&nbsp; double *py)
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 16:57:00</pubDate>
		</item>
				<item>
		<title><![CDATA[随机数的产生办法！- -]]></title>
		<link>http://blog.pfan.cn/home/4713.html</link>
		<description><![CDATA[在C语言有产生随机数的函数rand().它的函数声明放在了stdlib.h头文件里。rand恶意返回一个0~RANDMAX(32767) 之间的整随机数。
计算机产生的随机数序列都是伪随机数，即这个随机数序列有一个长度，因而会出现重复。每次程序执行rand时，所产生的随机数序列都是相同的。为了弥补这一不足，可以使用随机数序列函数srand，使rand产生不同的伪随机数序列。srand函数的参数称为随机数序列种子(seed)。即不同伪随机数序列种子，可以得到不同的伪随机数序列。所以为了让rand每次产生不同的伪随机数序列，每次要给srand以不同的参数种子。最好这个种子也是随机的。
一个办法是采用系统时间作为伪随机数序列种子，即：
srand((unsigned int) time (NULL));
在rand的前面加上上述语句，就可以产生出相当随机的随机数序列了。表达式是把时间转换成无符号的整数，作为rand函数的种子使用。
此外，还可以使用伪随机数初始化函数randomize来动态地产生伪随机数序列．
应当注意，srand和randomize的说明在头文件stdlib.h中，time说明在头文件time.h中]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 16:55:00</pubDate>
		</item>
				<item>
		<title><![CDATA[字符串处理的两道题，做做看！- -]]></title>
		<link>http://blog.pfan.cn/home/4712.html</link>
		<description><![CDATA[题一： 判断s1字符串中是否包含s2字符串。例如"china123"包含"na12"，但不包含"chn"
题二： 编写程序，使得任意输入一个字符串，将其中的最大字符放在字符串的第2个位置，将最小字符放在字符串的倒数第2个字符位置。这里的最大最小字符是依据字符的ascii码来说]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 16:55:00</pubDate>
		</item>
				<item>
		<title><![CDATA[不用串处理函数，实现字符串之间的复制- -]]></title>
		<link>http://blog.pfan.cn/home/4711.html</link>
		<description><![CDATA[我们知道，用strcpy函数可以实现字符串的复制，假如我们不用它呢？还有没有别的方法实现字符串的复制呢？有！比如：
用两个字符数组分别存放源字符串和目标字符串。复制时，一边读源字符串的字符，一边把该字符存入目标字符串。
这个过程可以在一个循环中实现，循环结束的条件是遇到源字符串末尾的字符串结束符。
想想该怎么编程？。。。。。自己动动手，再看后面的答案哦^_^
#include "stdio.h"
main()
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char&nbsp;&nbsp;&nbsp; s1[80],s2[80];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp; i;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("input string s2:\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gets(s2);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;s2[i]!='0';i++)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s1[i]=s2[i];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s1[i]='\0';
&nbsp;&nbsp;&nbsp;&n]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 16:54:00</pubDate>
		</item>
				<item>
		<title><![CDATA[九九乘法表的实现- -]]></title>
		<link>http://blog.pfan.cn/home/4710.html</link>
		<description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

九九乘法表实际是由若干个类似"i*j=k",的等式构成的
1*1=1
1*2=2&nbsp;&nbsp;&nbsp;&nbsp;2*2=4
1*3=3&nbsp;&nbsp;&nbsp; 2*3=6&nbsp;&nbsp;&nbsp;&nbsp; 3*3=9
1*9=9&nbsp;&nbsp;&nbsp; 2*9=18&nbsp;&nbsp;&nbsp; 3*9=27.......9*9=81
详细解答看全文!
&nbsp;
算法分析:(1)总共有9行,假设第j行,1&lt;=j&lt;=9,而i的范围为1&lt;=i&lt;=j, k=i*j
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (2) 设定两个变量i,j,并且用循环玫举i,j所有可能的值
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (3)&nbsp; 根据i,j不同的值,在循环体内输出等式
&nbsp;&nbsp;第(3)步中还要考虑到九九乘法表的格式,怎么换行的?
我们发现: 当j==i 时,在等式的右边输出'\n'换行符,否则,输出'\t'
程序段主要实现:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (j=1;j&lt;=9;j++)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 16:53:00</pubDate>
		</item>
				<item>
		<title><![CDATA[动手操练起来吧！看看下面的任务怎么完成？- -]]></title>
		<link>http://blog.pfan.cn/home/4709.html</link>
		<description><![CDATA[1。设计一个程序，对从键盘上输入的空格、大写字母、小写字母、数字进行统计。
2。给定一个数，并由键盘输入若干个数，找出与预先给定的数最接近的数，并指出它是由键盘输入的第几个数。
3。输入3个数，计算以这3个数为边长的三角形的面积。]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 16:53:00</pubDate>
		</item>
				<item>
		<title><![CDATA[[转]大学成为编程高手的二十二条军规！- -]]></title>
		<link>http://blog.pfan.cn/home/4708.html</link>
		<description><![CDATA[学习计算机编程怎么学？怎么学好？看看。。。（全文）
&nbsp;&nbsp;&nbsp;&nbsp; 1.大学生活丰富多彩，会令你一生都难忘，但难忘有很多种，你可以学了很多东西而难忘，也会因为什么都没学到而难忘！　　2.计算机专业是一个很枯燥的专业，但即来之、则安之，只要你努力学，也会发现其中的乐趣的。　　3.记住：万丈高楼平地起！基础很重要，尤其是专业基础课，只有打好基础才能学得更深。　　4.C语言是基础，很重要，如果你不学好C语言，那么什么高级语言你都学不好。　　5.C语言与C++语言是两回事。就像大熊猫和小熊猫一样，只是名字很像。　　6.请先学习专业课《数据结构》、《计算机组成原理》，不要刚开始就拿着一本VC在看，你连面向对象都搞不清楚，看VC没有任何用处。　　7.对编程有一定的认识后，就可以学习C++了。（是C++而不是VC，这两个也是两码事。C++是一门语言，而VC教程则是讲解如何使用ＭＦC类库，学习VC应建立在充分了解C++的基础之上。看VC的书，是学不了C++语言的。）　　8.学习编程的秘诀是：编程，编程，再编程；　　9.认真学习每一门专业课，那是你今后的饭碗。　　10.在学校的实验室就算你做错一万次程序都不会有人骂你，如果在公司你试试看！所以多去实验室上机，现在错得多了，毕业后就错得少了。　　11.从现在开始，在写程序时就要养成良好的习惯。　　12.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路。　　13.你会买好多参考书，那么请把书上的程序例子亲手输入到电脑上实践，即使配套光盘中有源代码。　　14.VC、C#、.NET这些东西都会过时，不会过时的是数据结构和优秀的算法！　　15.记住：书到用时方恨少。不要让这种事发生在你身上，在学校你有充足的时间和条件读书，多读书，如果有条件多读原版书，你要知道，当一个翻译者翻译一本书时，他会不知不觉把他的理念写进书中，那本书就会变得像鸡肋！　　16.我还是强调认真听专业课，因为有些课像《数据结构》、《编译原理》、《操作系统》等等，这种课老师讲一分钟能让你明白的内容，你自己看要看好几个月，有的甚至看了好几年都看不明白。&nbsp;　　17.抓住在学校里的各种实践的机会，要为自己积累经验，就业时经验比什么都有用。　　18.多去图书馆，每个学校的图书馆都有很多好书等你去看！　　19.编程不是技术活，而是体力]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 16:52:00</pubDate>
		</item>
				<item>
		<title><![CDATA[C语言运算符优先级顺口溜！-&amp;nbsp;]]></title>
		<link>http://blog.pfan.cn/home/4707.html</link>
		<description><![CDATA[[转]
C优先级顺口溜&nbsp;&nbsp; http://bbs.zol.com.cn/new/static_book2/139/852/139_7852.shtml
&nbsp;



醋坛酸味灌 味落跳福豆 共44个运算符 醋－初等，4个： ( ) [ ] -&gt; 指向结构体成员 . 结构体成员 坛－单目，9个： ! ~ ++ -- -负号 (类型) *指针 &amp;取地址 sizeof长度 酸－算术，5个： * / % + -减 味－位移，2个： &lt;&lt; &gt;&gt; 灌－关系，6个： &lt; &lt;= &gt; &gt;= == 等于 != 不等于 味－位逻，3个： &amp; 按位与 ^ 按位异或 | 按位或 落－逻辑，2个： &amp;&amp; 逻辑与 || 逻辑或 跳－条件，1个，三目： ? : 福－赋值，11个： = += -= *= /= %= &gt;&gt;= &lt;&lt;= &amp;= ^= |= 豆－逗号，1个： , 结合方向自右向左的只有三类：赋值、单目和三目 同一优先级的运算顺序由结合方向决定]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 16:43:00</pubDate>
		</item>
				<item>
		<title><![CDATA[微软副总裁李开复谈大学四年生活-&amp;nbsp;]]></title>
		<link>http://blog.pfan.cn/home/4706.html</link>
		<description><![CDATA[&nbsp; 今天，我回复了“开复学生网”开通以来的第1000个问题。关掉电脑后，始终有一封学生来信萦绕在我的脑海里，挥之不去：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 开复老师：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 就要毕业了。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 回头看自己所谓的大学生活，&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我想哭，不是因为离别，而是因为什么都没学到。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我不知，简历该怎么写，若是以往我会让它空白。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最大的收获也许是……对什么都没有的忍耐和适应……&nbsp;&nbsp;&nbsp;&nbsp; 这封来信道出了不少大三、大四学生的心声。大学期间，有许多学生放任自己、虚度光阴，还有许多学生始终也找不到正确的学习方向。当他们被第一次补考通知唤醒时，当他们收到第一封来自应聘企业的婉拒信时，这些学生才惊讶地发现，自己的前途是那么渺茫，一切努力似乎都为时已晚……这“第四封信”是写给那些希望早些从懵懂中清醒过来的大学生，那些从未贪睡并希望把握自己的前途和命运的大学生以及那些即将迈进大学门槛的未来大学生们的。在这封信中，我想对所有同学说:&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 大学是人一生中最为关键的阶段。从入学的第一天起，你就应当对大学四年有一个正确的认识和规划。为了在学习中享受到最大的快乐，为了在毕业时找到自己最喜爱的工作，每一个刚进入大学校园的人都应当掌握七项学习：学习自修之道、基础知识、实践贯通、兴趣培养、积极主动、掌控时间、为人处事。只要做好了这七点，大学生临到毕业时的最大收获就绝不会是“对什么都没有的忍耐和适应”，而应当是“对什么都可以有的自信和渴望”。只要做好了这七点，你就能成为一个有潜力、有思想、有价值、有前途的快乐的毕业生。&nbsp; 

大学：人生的关键
&nbsp;&nbsp; 大学是人生的关键阶段。这是因为，进入大学是你]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 16:42:00</pubDate>
		</item>
				<item>
		<title><![CDATA[同学们来看看，该程序是否正确？若不对，请改正。- -]]></title>
		<link>http://blog.pfan.cn/home/4705.html</link>
		<description><![CDATA[对于函数y=f(x)&nbsp;&nbsp;,&nbsp; x&gt;0时，y=1;x=0时，y=0;x&lt;0时，y=-1;
有人写出下面的程序，请指出该程序是否正确？若不对，请改正。(看全文）
void main()
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float x;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp; y=-1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("\nInput x:"); scanf("%f",&amp;x);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (x!=0)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (x&gt;0)&nbsp; y=1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else&nbsp; y=0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("x=%6.2f,y=%d\n",x,y);
}
&nbsp;
&nbsp;]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 16:38:00</pubDate>
		</item>
				<item>
		<title><![CDATA[C语言学习方法-----北京理工大学李凤霞教授等专家谈- -]]></title>
		<link>http://blog.pfan.cn/home/4704.html</link>
		<description><![CDATA[学习方法指导 
　　《C程序设计语言》教学目标　　* 掌握C语言的基本语法和规定。　　* 掌握程序设计基本算法和思路，开拓思路，　　* 提高上机操作能力，掌握上机调试程序的方法　　* 培养自学能力，强调自主学习。　　* 养成良好的程序设计习惯。
　　通过总结多年的教学经验，总结学生在学习过程中具有规律性的特点，可以发现，在本课程学习过程中学生经常出现下面这些问题：　　* 注重理论学习，忽视上机编程实践，造成"只能用笔在纸上编程"的奇怪现象。特别是一些女同学，一到机器前面就手忙脚乱，如果程序再出现错误，就更不知道该如何查找错误，如何排除错误了。　　*入门时自以为难度大，产生畏难情绪，总是怕，最后因为怕学不好而导致没有学好。　　*前期没有抓紧，希望通过突击完成课程学习。本课程要靠平时的积累，几乎不能靠临时突击，由于前面基础补扎实，到了后面已经无法弥补。　　*太注重学习语句的语法规定，忽视了对编程的思路和方法的训练。有些同学再学习结束的感觉就是：对每一个语句的语法和每一条规定都明白，就是面对实际问题的时候不知道该如何思考，该如何编程。　　*急于求成，总想编写综合性的程序，忽视基本概念，忽视基本功的训练和练习。在编写程序中发现问题，一追根源，全是概念或基础问题。
　　为了学好本课程，没有什么窍门，建议大家采用如下的"笨"方法：　　*认真听讲，积极思考，提高上课效率。教师上课讲述的都是课程的重点和难点，听好课程可以达到"事半功倍"的目的。　　*主动上机，多多实践，提高动手能力。通过上机实践来验证所学的理论，通过在机器上查找错误来巩固概念，通过提高上机能力来促进理论学习，开阔编程思路，提高反映速度，提高分析问题解决问题的能力，锻炼心理素质，提高心理承受能力。　　*学习初期重点掌握语言的语法和规定。这是基础。　　*后期重点掌握编程的思路和基本算法。这是重点。　　*学会自学，加强交流，及时答疑解惑。可以采用多种形式进行交流，可以是传统的面面进行答疑，也可以是利用网络通过邮件、BBS进行网上交流。不要将疑问积累到最后。　　*开阔眼界，打开思路，多看几本书。C语言的书非常多，各有自己的特色，要找到适合自己的参考数目]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 16:37:00</pubDate>
		</item>
				<item>
		<title><![CDATA[猜猜看，下面的程序将会输出什么结果？-&amp;nbsp;]]></title>
		<link>http://blog.pfan.cn/home/4703.html</link>
		<description><![CDATA[main()
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char b[3]="xyz";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char c='H';
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char&nbsp; a[10]="abcd\0123";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("b=%s\n",b);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("a=%s\n",a);
}
刚才的程序是字符串的输出，那下面的程序是有关字符串输入的，你们看看结果又是怎么样的呢？
main()
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char&nbsp;&nbsp; a[10],b[7]="abcde";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%s",a);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%s",a);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%s",&amp;b[1]);
}]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 16:35:00</pubDate>
		</item>
				<item>
		<title><![CDATA[怎么学好C语言之我见- -]]></title>
		<link>http://blog.pfan.cn/home/4702.html</link>
		<description><![CDATA[学了几周课了，大家感觉怎么样？有同学说：现在我看C语言题目然后看答案，能看懂，但是让我自个儿动手做起来，那难度比起做数学题还难！大家是不是会说"me too!"？呵呵 
&nbsp;&nbsp;&nbsp;&nbsp; 其实学东西是有个过程的。关键是习惯和兴趣。首先兴趣不必多说，兴趣是学习最好的老师！没兴趣即使别人再怎么讲得天花乱坠也没用。其次就是习惯。同学都是大一，刚来还有些不适应大学的学习氛围，没有养成良好的习惯。学编程，为什么能看懂，自己却作不出来呢？主要是因为你对程序语言的具体语法规则都认识了，并且明白了，所以能看懂答案。但是真正轮到自己来做，却不知如何下笔。这主要是因为编程习惯的问题。　　　　　　　看到一个题目首先不能拿起笔就开始写语句，。应该首先把这个题目看懂看明白，分析一下该题目需要完成些什么任务。然后，根据任务来画出详细的流程图。这个过程就是算法的设计。最后根据流程图的各大模块，用语句和基本程序结构去实现算法。
　　这样的话，就不容易造成最后的程序都是拼凑出来的语句块的现象，问题考虑的也可能不全面，语句随意度大。平常布置的作业量要能满足你编程，提高编程能力的效果是不可能的，尽量合理分配一下时间，多做做题目吧！只要你有心，没法上机的问题肯定能解决。你们说呢？
相信一句话：C语言不是看会，听会的，而是做会的！]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 16:34:00</pubDate>
		</item>
				<item>
		<title><![CDATA[C语言中“/”运算符是取整运算符吗？-&amp;nbsp;]]></title>
		<link>http://blog.pfan.cn/home/4701.html</link>
		<description><![CDATA[C语言如何取整？
除法运算符"/"双目运算具有左结合性。参与运算量均为整型时， 结果也为整型，舍去小数。如果运算量中有一个是实型，则结果为双精度实型。void main(){printf("%d,%d\n",10/3,-10/3);printf("%f,%f\n",10.0/3,-10.0/3);}　　双目运算具有左结合性。参与运算量均为整型时， 结果也为整型，舍去小数。如果运算量中有一个是实型，则结果为双精度实型。 
printf("%d,%d\n",10/3,-10/3);printf("%f,%f\n",10.0/3,-10.0/3);　　本例中，10/3，-10/3的结果均为整型，小数全部舍去。而10.0/3和-10.0/3由于有实数参与运算，因此结果也为实型。
你还知道哪些C语言的取整方法呢？看看全文
C语言有以下几种取整方法： &nbsp;&nbsp;&nbsp;&nbsp;1、直接赋值给整数变量。如： &nbsp;&nbsp;&nbsp;&nbsp;int i = 2.5; 或 i = (int) 2.5; &nbsp;&nbsp;&nbsp;&nbsp;这种方法采用的是舍去小数部分，可以用于你的问题。 &nbsp;&nbsp;&nbsp;&nbsp;2、C/C++中的整数除法运算符"/"本身就有取整功能(int / int)，而下面介绍的取整函数返回值是double。整数除法对正数的取整是舍去小数部分，但是整数除法对负数的取整结果和使用的C编译器有关。 &nbsp;&nbsp;&nbsp;&nbsp;3、使用floor函数。floor(x)返回的是x的整数部分。如： &nbsp;&nbsp;&nbsp;&nbsp;floor(2.5) = 2 &nbsp;&nbsp;&nbsp;&nbsp;floor(-2.5) = -3 &nbsp;&nbsp;&nbsp;&nbsp;4、使用ceil函数。ceil(x)返回的是不大于x的最小整数。如： &nbsp;&nbsp;&nbsp;&nbsp;ceil(2.5) = 2 &nbsp;&nbsp;&nbsp;&nbsp;ceil(-2.5) = -2 &nbsp;&nbsp;&nbsp;&nbsp;floor和ceil对于正数没有区别，但是对于负数结果不同。floor()是向负无穷大舍入，floor(]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 16:33:00</pubDate>
		</item>
				<item>
		<title><![CDATA[字符数据的输入与输出-&amp;nbsp;]]></title>
		<link>http://blog.pfan.cn/home/4700.html</link>
		<description><![CDATA[从键盘上输入若干字符,"#"为输入字符的结束标志。试把其中的小写字母转换成大写字母,其它字符不变,最后把处理结果输出到屏幕上。看看你想用什么办法解决呢？
算法一
用getchar输入字符，然后用循环结构判断输入字符是不是"#"，如果不是，判断当前字符是否属于小写字母，是的话把他转换为大写字母，不是则的话原样输出
这是算法之一，你能把它编程实现吗？把你的程序或其他实现方法写在"评论"里，我们一起来讨论哦！过两天我来公布答案！：）]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 16:30:00</pubDate>
		</item>
				<item>
		<title><![CDATA[彻底搞定C指针-——第五篇：函数参数的传递]]></title>
		<link>http://blog.pfan.cn/home/4699.html</link>
		<description><![CDATA[一． 三道考题开讲之前，我先请你做三道题目。（嘿嘿，得先把你的头脑搞昏才行……唉呀，谁扔我鸡蛋？）1. 考题一：程序代码如下：void Exchg1(int x, int y)&nbsp;&nbsp;{&nbsp;&nbsp;int tmp;&nbsp;&nbsp;tmp=x;&nbsp;&nbsp;x=y;&nbsp;&nbsp;y=tmp;&nbsp;&nbsp;printf(“x=%d,y=%d\n”,x,y)}void main(){&nbsp;&nbsp;int a=4,b=6;&nbsp;&nbsp;Exchg1 (a,b) ;&nbsp;&nbsp;printf(“a=%d,b=%d\n”,a,b)}输出的结果：x=____, y=____a=____, b=____问下划线的部分应是什么，请完成。2. 考题二：代码如下。Exchg2(int *px, int *py){&nbsp;&nbsp;int tmp=*px;&nbsp;&nbsp;*px=*py;&nbsp;&nbsp;&nbsp;*py=tmp;&nbsp;&nbsp;print(“*px=%d,*py=%d\n”,*px,*py);}main(){&nbsp;&nbsp;int a=4;&nbsp;&nbsp;int b=6;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exchg2(&amp;a,&amp;b);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print(“a=%d,b=%d\n”, a, b);}输出的结果为：*px=____, *py=____a=____, b=____问下划线的部分应是什么，请完成。3. 考题三：Exchg2(int &amp;x, int &amp;y){&nbsp;&nbsp;&nbsp;int tmp=x;&nbsp;&nbsp;&nbsp;x=y;&nbsp;&nbsp;&nbsp;y=tmp;&nbsp;&nbsp;print(“x=%d,y=%d\n”,x,y);}main(){&nbsp;&nbsp;int a=4;&nbsp;&nbsp;int b=6;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exchg2(a,b);&nbsp;&nbsp;&nbsp]]></description>
		<author><![CDATA[miracles]]></author>
		<pubDate>2005-09-13 16:26:00</pubDate>
		</item>
		</channel>
</rss>