其实这是一个近乎消遣的问题,但也是一个关于java基本运行原理的问题。当初学java时看的<Thinking in java>,已经自己总结过。一天在网上看到这方面的java题目,于是将之整理在我的blog上。
问题源自下面的”代码一”,问输出结果将是多少:
代码一:
//父类
public class Parent
{
public void test()
{
}
//父类构造器,调用test()方法
public Parent()
{
tes...
1. C中的内存分配
一个C程序占用的内存可分为以下几类:
(一) 栈
这是由编译器自动分配和释放的区域。主要存储函数的参数,函数的局部变量等。当一个函数开始执行时,该函数所需的实参,局部变量就推入栈中,该函数执行完毕后,之前进入栈中的参数和变量等也都出栈被释放掉。它的运行方式类似于数据结构中的栈。
(二) 堆
这是由程序员控
10个小孩排队买票问题,通过C语言递归解决。
问题:
有10个小孩到公园玩,门票是1元。其中5个小孩带的钱为1元,5个小孩带的钱为2元。售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱。
思考:
1. 首先这涉及到高中数学里的排列组合问题。也就是说,两个拿一元零钱的小孩,他们的位置互换,也算是一种新的排法。
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt
一个元素顺序进出栈的问题,求解共可能有多少种出栈序列。使用c语言进行递归解决。
问题:
有n个元素按顺序进栈,但是在进栈过程中任何时候任何一个元素都可以出栈。
问这样的情况下共可能形成多少种出栈序列。
解决:
根据元素的进出栈过程,可以抽象出一个中间状态。
这个状态就是: k个元素在等待进入栈
A个元素存放于栈中
&nbs
很久就在网上看到这道题,挺有趣,当初答案众多,自己设了4个未知数,列了3个方程才解出来,后来发现其实一个简单的比例就可以解决了~~
P.S.其实好老的题目~
题目:
一支长度为100米的队伍在行进,一个哨兵从队伍尾走到队伍头,又从队伍头走到队伍尾,这个过程中队伍前进了100米。队伍和哨兵的速度都是保持不变的。问这个过程中哨兵一共走了多少米(是路程不是位移~)?
思考:
<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font...
n个人报数的问题,可以使用c语言进行简单的递归实现。
问题描述:
n个人围成一个圈,编号为1~n,从第1号开始报数,报到3的倍数的人离开(即每数到第三个就离开),一直数下去,直到最后只剩下1人。求剩下的这个人的原始编号。
问题理解:
在将这个问题转化为编程解决的时候,需要考虑如下几个问题:
1. 使用数组来存放人。假设人的数目为count<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-fon
最近用c写密码学实验,收获了少许,感觉还有用。当然,有的东西可能大家都早用惯了~~~
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++有使用c操作文件时需要预先得到文件的长度,可以先打开文件,记录文件指针的位置,再使用fseek来定位到文件末尾,然后重新ftell文件指针的位置,二者相减则得到长度。不过c库函数里提供了一个现成的函数:#include <io.h>File *fp = fopen("...", "rb+");long fLength = filelength( fileno(fp) );其中fileno(...