|
一、16分 1、PROGRAM g0101 ( output ); var a,b :integer ; FUNCTION fc( x : integer ) : integer ; begin a:=b+x ; x=b-x ; fc:=a*x ; end ; FUNCTION fp ( VAR y :integer ) : integer ; begin y:=b+y ;fp=y-a ; end ; begin a=2; b=3; writeln('fc=' , fc(a) , ' fp= ' ,fp(b) ) ; writeln( 'a=' ,a , 'b=' b ) end;
2、PROGRAM g0102 (output ); var a,b,c:integer ; begin new(a); a^:=3; new(b); b^5:=5 ; a^:=a^+b^ ; c:=a; c^:=a^*b^; b^:=a^-c^ ; writeln( 'a=',a^,'b=b',b^,'c=',c^ ); end; 3、PROGRAM g0103 (output) ; const a=3 ; b=4 ;c=7 ; var x:=array[1..a] of integer ; y:=array[1..b] of integer ; z:=array[1..c] of integer ; i,j,k,h:integer ; PROCEDURE ssar ; var i,j,k:integer ; w:array[1..a]of integer ; begin for i:=1 to a do w[i]:=x[a+1-i]; i:=1 ;j:=1;k:=1; while (i<=a) and (j<=b) do begin if w[i] > y[i] then begin h:=w[i] ; i=i+1; end else begin h:=y[i] ; j:=j+1 ;end; z[k]:=h ; k:=k+1 ; end ; while i<=a do begin z[k]:=w[i] ;k:=k+1; i:=i+1 end; while j<=b do begin z[k]:=y[i] ;k:=k+1; j:=j+1 end; end; begin for i:=1 to a do x[i]:=i*2 ; for j:=1 to b do y[i]:=c-j ; ssar ; for i:=1 to c do write(z[i],''); writeln; end ;
4 PROGRAM g0104 (output); var a,b,c:integer; FUNCTION fg(x:integer ;var y,z:integer):integer ; begin z:=x*2; x:=z+1 ; y:=x+z ; fg :=y-1 ; end begin a:=1 ;b:=2;c:=1; writeln('fg=',fg(fg(a,b,c),b,c)) ; writeln('a=',a,'b=',b,'c=',c) ; end;
二、12分已知双连表中节点类型如下
Type dpoint = ^list ; list =RECORD data:integer; left ,right : dpointer ; end ;
如下过程将在双连表第i个节点(i>=0)之后插入一个元素,为x的结点,请在答案栏给出题目中______处应该添入的语句或表达式,使之完成上述功能。
PROCEDURE insert ( var head :dpointer ;i,x:integer); var s,p:dpointer ; j:integer; begin new(s) ;s^data:=x; if (i=0) then { 如果i=0,则将s结点插入到表头后返回} begin s^.right=head ;____1_____ head:=s ; end else begin p:=head; ____2____ {在双连表中查找第i 个节点,由p所指向} while ((p<>nil) and (j<i) do begin j:=j+1 ; _____3______ end ; if(p<>nil) then if (p^.right=nil) then begin p^.right:=s ; s^.right:=nil ; ____4___ end; else begin s^.right:=p^.right ; ___5____ p^.right:=s; ____6_____ end else writeln('can not find node '); end; end;
三、12分广义表是n(n>=0)个数据元素,a1,a2,……an的有限序列, 其中ai(1<=i<=n)或者是单个数据元素(原子),或仍然是一个广义表,广义表的结点具有不同的结构,即原子结点和子表结点,为了将两者统一,link域指向下一个结点,当其 tag为1时表示是子结点,其sublist为指向子表的指针。因此,广义表可采用如下结构存储: type glist=^gnode ; gonde=RECORD link:glist; case tag:0..1 of 0data:char); 1sublist:glist); end;
1、画出广义表((a,b),c)的存储结构; 2、写出计算一个广义表的原子结构个数的递归算法表示式; 3、编写实现上述算法的过程或函数程序。
四、10分写一个算法,利用[0。。1]上的随即函数计算圆周率n的近似值,首先说明你的算法,而后编写相应的过程或函数程序。
五、选择踢 (8分) 1、下列排序算法中,在每一趟都能选出一个元素放到其最终位置上,并且其时间性能受数据特性的影响的是________.
a 直接插入排序 b 快速排序 c 直接选择排序 d 堆排序
2、下列排序算法中,占用辅助空间最多是_______
a 归并排序 b 快速排序 c 希尔排序 d 堆排序
六、填空20分
1、一棵左子树为空的二叉数在先序线索化后,其中的空链域的个数为______
2、若以{4、5、6、7、8}做为叶子节点的权值构造哈夫曼树,则其带权路径长度是________ 3、在顺序存储的二叉树中,编号为i和j的两个结点处在同一层的条件是_______
剩下的省略………… 填空还有2题,都是基本题,七是作图题12分,给你一些中序、先序、后序的字母,让你画出,完整的二叉树。(给你的三个序列都是不完整的)
八是解答题10分,一道是给你一个图,要你找到,顶点1到其余各点的最短路径 还有一个二叉树的题目。
查看更多相关信息请到:福建考研论坛
09考研QQ群-- 1:厦大 ①57872015 ②56651247 2:福州大学(56651426) 3:福建师大(42551895)人满,未发言者每周四定期清理,一人最多加一个群,否则byebye!
|