一、不定项选择题(凭印象写的,没有顺序)(每题5分,共65分,13题):
1、define N 2
define NTI(n) N*n+n
Sum=N*NTI(N);
问Sum为多少?
答:
Sum = N*NTI(N)=N*N*N+N = 2*2*2+2=10
2、以下几个哪个优先级最高?
A.% B.<< C.忘了 D.<<=
B. <<最高
3、一个12人玩的游戏需要正好75分钟,有六个后备人员轮流替换从开始就参加玩游戏的人,也就是说所有参加游戏的人,包括后备人员,在这个游戏中都玩了同样长的时间。他们每人玩了多长时间?
A. 30分钟 B. 40分钟 C. 50分钟
D. 55分钟 E. 60分钟
答:游戏总耗时 12*75,总共18个人,那么每个人:900/18=50,选择C
4、在跑马场的跑道上,有A B C 三匹马,A在一分钟内能跑两圈,B能跑三圈,C能跑四圈。现将三匹马并排在起跑线上,准备向同一个方向起跑。请问:“经过几分钟,这三匹马又能并排地跑在起跑线上了?(选项忘了)
答:A每圈30秒,B每圈20秒,C每圈15秒,公倍数60秒,一分钟
5、有61个球队,两两比赛,胜者晋级,败者淘汰。如果淘汰后的队伍数是单数,则首支队伍轮空直接晋级,剩下的队伍继续进行淘汰赛,直至选出最后胜者为止,问一共需进行几场比赛?(选项忘了)
答:(1)一支队伍轮空,直接晋级,30场比赛
(2)31个队伍,一支队伍轮空,15场比赛,16强
(3)16进8 8场
(4)8进4 4场
(5)4进2 2场
(6)2进1 1场
故:30+15+8+4+2+1=60场
6、有关霍夫曼树和平衡树的选择题(定义什么的去看看,有个选项说霍夫曼树可应用于编码)
复习下哈夫曼树和平衡树
7、有一题关于获取mac地址的函数(题目给出一个函数的实现代码),考的是字符串的东西,还有sprintf函数
(下面是函数中运用sprintf函数的代码: sprintf(mac,"%02X-%02X-%02X-%02X-%02X-%02X",
Adapter.adapt.adapter_address[0],
Adapter.adapt.adapter_address[1],
Adapter.adapt.adapter_address[2],
Adapter.adapt.adapter_address[3],
Adapter.adapt.adapter_address[4],
Adapter.adapt.adapter_address[5]);)
有几行有标记,问你标记的这几行中哪几行有问题或隐患,给出选项要你选,是道多选题。
如果遇到这个临场发挥吧,不知道题目是什么。
8、还有一题找图形规律,很简单。
目前只能回忆这么多。
二、编程题:
1、给一个结构体(15分)
Struct NODE_S{
int data;
NODE_S *next;
NODE_S *preptr;
}
给一个头指针指向该结构体的节点的链表,写一函数判断该链表是否是双向循环链表。
答:
(1)判断是不是循环量表
设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇。(当然,fast先行头到尾部为NULL,则为无环链表)程序如下:
bool IsExitsLoop(slist *head)
{
slist *slow = head, *fast = head;
while ( fast && fast->next )
{
slow = slow->next;
fast = fast->next->next;
if ( slow == fast ) break;
}
return !(fast == NULL || fast->next == NULL);
}
(2)再反向遍历,如果也是循环链表,就是双向循环链表
2、给一个字符串,写一个函数返回该字符串的最长回文子串的长度,无回文子串则返回0。(20分)