南京大学2009笔试回忆版
查看(1064) 回复(0) |
|
lyh2006
|
发表于 2010-08-10 22:20
楼主
离散部分:
1、 |A|表示A中的元素个数,B={x|x∈P(A)且|x|为奇数},若|A|=n,求|B|。 2、 设f为A到A的映射, (1)、证明若A为有限集,f为A到A的单射当且仅当f是A到A的满射。 (2)、若A为无限集,举例说明上述结论不成立。 3、设图G,V={<i,j>|i<=m,j<=n,i,j∈N},m,n为大于1且m,n N,E={(i,j)与仅当有一个元素相同且另一个元素相差1的点相连}。证明:G为哈密顿图。 4、(G,#),(H,*)为群,对于所有的 <a,b>,<c,d>∈G H有<a,b>⊕<c,d> = <a#c,b*d>。 (1)、证明G ,⊕)为群。 (2)、Zp、Zq、Zpq分别为p、q和pq阶整数加群,证明:Zp⊕Zq同构于Zpq当且仅当p与q互素。 5、用一阶谓词系统证明: 所有的北极熊都是白色的,没有棕熊是白色的,所以北极熊不是棕熊。 编译部分: 1、 写出所有字符由a或b构成,且a与b的个数相等的上下文无关文法。 2、 已知一个int占用4个存储单元,bool占用2个存储单元,写出下面文法的翻译方案,其中包括变量证明和变量大小。 DecàTYPE D Dàid,D|id TYPEàint|bool 其中可以使用addIdentifer(id.lexval, id.type, address)把变量的值、类型和位置登记到符号表。 3、 写出下列表达式的四元式,并说明循环体包含几个基本块,在循环体中有哪些循环不变量,是否可以将这些循环不变量外提。 int x, y, a, b, c; x = a + b * c; while(a < b) { x = b * c; y = a + x; a = a + 1; } 4、 从字符串{ab}a{ab|ba}构造相应的NFA,然后将NFA确定化并最小化。 5、 文法G(E)为: E->E*E E->E+E E->number 证明文法G为二义性文法,给出与文法G等价的非二义性文法,且+与*的优先级满足先加后乘。 要求写一个整数集合的类,分别放在intset.h和intset.cpp中,以实现下列程序功能。 #include "intset.h" #include <iostream> using namespace std; int main() { IntSet s1, s2, s3, s4; int x; for(cin >> x; x != 0; cin >> x) s1.insert(x);//在s1中插入元素 for(cin >> x; x != 0; cin >> x) s2.insert(x);//在s2中插入元素 if(s1.IsEqual(s2))//比较s1与s2是否相等 cout << " s1 is equal s2 "; s3 = s3.union2(s1, s2);//求s1与s2的交 s4 = s4.incorporate2(s1, s2);//求s1与s2的并 cout << " s1:"; s1.print();//输出s1中的元素 cout << " s2:"; s2.print(); cout << " s3:"; s3.print(); cout << " s4:"; s4.print(); return 0; } |
回复话题 |
||
上传/修改头像 |
|
|