04年复试试题1.写出程序输出结果int testNum(int Number,int radius){it maxpower,leftpower,rightpower,leftNum,rightNum;leftpower=0;rightpower=radius;while(Number/rightpower>radius)leftpower*=radius;while(leftpower>rightpower){leftNum=(Number/lleftpower)%radius;rightNum=Number/radius;if(leftNum!=rightNum)return 0;leftpower=leftpower/radius;rightpower=rightpower*radius;}return 1;}main(){int Number,resut1,result2;printf(“the number is :”);for(Number=700;Number<=730;Number++){result1=testNum(Number,10);result2 =testNum(Number,2);}if(result1=1&result2=1)printf(“%d”,Number);}2.程序 填空。此程序主要完成的功能是把一个整数W分解成不多于N个整数的和,切这些整数只能取自数组b[](程序实在想不起来了,只记得程序是用递归完成的,总 共有5个空,我认为不难)3,编写一段函数,满足以下要求:将字符串S1中出现的所有S2都替换成S3,并且都不损害字符串S1,函数原型为:char exchange(char S1,CHAR S2,CHAR S3)4.请说明信号量的结构和取各种数值时的意义5.请描述P操作和V操作的执行过程,以及用P,V原语解决死锁问题时有哪些需要注意的问题。6.请描 述进程的几中状态,以及各种状态之间的转换关系7.根据你所熟悉的操作系统,如DOS或UNIX为例,谈谈它是怎样实现层次文件目录结构的8.证明对于集 合A,B,C,如果有A交B=A交C,并且有A’交B=A’交C,其中A‘为A的补集,则一定有B=C;9.证明。一个连通的切每个顶点的度数都为偶数的 图一定没有割边。10.设代数系统(G,*)为一个半群,切有左单位单元e,对于任意一个X,君有X’,使得X’*X=E。证明:对于任意的A,B,C, 如果有B*A=B*C,则一定有A=C11.根据以知前提,证明结论。前提: P— >(Q->S),一| R V P,Q结论:R-〉S以上的题目均为回忆题目,但是可以保证从第3题开始完全跟原题一样,第一个程序题不会有太大问题,地一提答案是:the number is :717。第2个程序提实在想不起来了。