FUNCTION loc(l:link;x:char):link; VAR p,q:link; BEGIN
p:=l^.next; £¨1£©_£»
WHILE p^.key<>x DO p:=p^.next;
IF p=l THEN [ new(q); q^.key:=x; q^.freq:=0 ]
ELSE {ÕÒµ½}
[ p^.freq:=p^.freq+1; q:=p; £¨2£©______£» WHILE q^.freq>p^.pre^.freq DO p:=p^.pre; IF p<>q THEN [ £¨3£©______ ] ]£»
IF £¨4£©_ THEN [q^.next:=p, q^.pre;=p^.pre; p^.pre^.next:=q; p^.pre:=q] return(q);
END;¡¾±±¾©¹¤Òµ´óѧ 1999 Îå (12·Ö)¡¿
29£®Ñ»·Á´±íaºÍbµÄ½áµãֵΪ×Öĸ£¬ÆäÖÐa±í·ÇµÝ¼õÓÐÐò£¬ÏÂÃæµÄ³ÌÐòÓû¹¹ÔìÒ»¸öµÝÔöÓÐÐòµÄÑ»·Á´±íc£¬ÆäÖнáµãµÄֵΪͬʱÔÚa£¬bÁ½Á´±íÖгöÏÖµÄ×Öĸ£¬ÇÒcÖÐ×Öĸ²»Öظ´£¬Çë²¹ÉϳÌÐòÖпÕȱµÄ²¿·Ö£¬²¢¹À¼ÆËã·¨µÄʱ¼ä¸´ÔÓ¶È¡££¨Éèa£¬bµÄ½áµãÊý·Ö±ðΪm£¬n£© TYPE
link=^node; node=RECORD
key:char; next:link END;
PROC jj(a,b:link; VAR c:link); VAR p,q,r,s:link; BEGIN
new(c);c^.next:=c; q:=a; p:=a^.next; WHILE p<>a DO [£¨1£©___£»
WHILE p^.key=p^.next^.key DO [q:=p; p=p^.next];£ûÌø¹ýÏàͬ×Öĸ£ý r:=b^.next ; £¨2£©_____;
WHILE r^.key <>p^.key DO r:=r^.next; IF r<>b THEN
[ s:=p; q^.next:=p^.next; £¨3£© ; s^.next:=c^.next; c^.next:=s; c:=s ] ELSE [ q:=p; p:=p^.next ] ]; c:=c^.next£»
END;
Ë㷨ʱ¼ä¸´ÔÓ¶ÈΪO£¨4£©___ ¡¾±±¾©¹¤Òµ´óѧ 2000 ËÄ (15·Ö)¡¿
30. ÒÔϳÌÐòµÄ¹¦ÄÜÊÇʵÏÖ´ø¸½¼ÓÍ·½áµãµÄµ¥Á´±íÊý¾Ý½áµãÄæÐòÁ¬½Ó£¬ÇëÌî¿ÕÍêÉÆÖ®¡£ void reverse(pointer h)
/* hΪ¸½¼ÓÍ·½áµãÖ¸Õ룻ÀàÐÍpointerͬËã·¨Éè¼ÆµÚ3Ìâ*/ { pointer p,q;
p=h->next; h->next=NULL; while((1)________)
{q=p; p=p->next; q->next=h->next; h->next=(2)________; } }¡¾Î÷ÄϽ»Í¨´óѧ 2000 Ò»¡¢9¡¿
31. ÏÂÃæÊÇÓÃcÓïÑÔ±àдµÄ¶Ô²»´øÍ·½áµãµÄµ¥Á´±í½øÐо͵ØÄæÖõÄËã·¨£¬¸ÃËã·¨ÓÃL·µ»ØÄæÖúóµÄÁ´±íµÄÍ·Ö¸Õ룬ÊÔÔÚ¿Õȱ´¦ÌîÈëÊʵ±µÄÓï¾ä¡£
void reverse£¨linklist &L£©{
p=null£»q=L£» while£¨q£¡=null£©
{ (1) ; q->next=p£»p=q£»(2)___ ; }
(3)_____;
}¡¾±±¾©Àí¹¤´óѧ 2001 ¾Å¡¢1 £¨6·Ö£©¡¿
32£®ÏÂÃæ³ÌÐò¶ÎÊÇÄæ×ªµ¥ÏòÑ»·Á´±íµÄ·½·¨£¬p0 ÊÇÔÁ´±íÍ·Ö¸Õë£¬Äæ×ªºóÁ´±íÍ·Ö¸ÕëÈÔΪp0¡£
£¨¿ÉÒÔ¸ù¾ÝÐèÒªÔö¼Ó±êʶ·û£© p:= p0; q0:=NIL;
WHILE £¨1£©________ DO
BEGIN £¨2£©________; £¨3£©________;£¨4£©______;£¨5£©________ END; p^.next:= q0; p0 ^.next:=p; p0:=p;¡¾ÖйúÈËÃñ´óѧ 2000 ¶þ¡¢1£¨4·Ö£©¡¿ 33£®Ò»¸öÎÞÍ·½áµãµÄÏßÐÔÁ´±í(²»Ñ»·)ÓÐÁ½¸öÓò¡£Êý¾ÝÓòdata£¬Ö¸ÕëÓò next£¬Á´Ê×head£¬ÏÂÃæËã·¨ÓÃread(num)¶ÁÈëÊý¾Ý£¬µ±numСÓÚ0ʱ£¬ÊäÈë½áÊø¡£½¨Á¢Ò»¸öÊý¾ÝÒÔµÝÔöÐò×é³ÉµÄÁ´±í¡£
PROC insert( head, x);
{ÔÚÁ´Ê×ΪheadµÄ±íÖа´µÝÔöÐò²åÈëx} new(r);r£Þ.data:=x; IF head=NIL
THEN[ head:=(1) _____; r£Þ.next:= (2)________ ] ELSE IF (3)___ THEN [r£Þ .next:=head; head:=r]
ELSE [p:=head;
WHILE (4)___ AND (p£Þ.next¡ÙNIL ) DO[q:=p;
(5)___ ];
IF (6)___ THEN [ q£Þ .next:=(7)___; r£Þ.next:=
(8)____; ]
ELSE [p£Þ.next:=(9)____; r£Þ.next:=
(10)___; ]
]
ENDP;
PROC creat(head);
head:= (11)______; read(num); WHILE num>0 DO
[ insert(head,num); read(num) ] ENDP;¡¾ÄϾ©Àí¹¤´óѧ 1999 Èý¡¢4£¨11·Ö£©¡¿
34. һԪϡÊè¶àÏîʽÒÔÑ»·µ¥Á´±í°´½µÃÝÅÅÁУ¬½áµãÓÐÈý¸öÓò£¬ÏµÊýÓòcoef £¬Ö¸ÊýÓòexpºÍÖ¸ÕëÓò next£»ÏÖ¶ÔÁ´±íÇóÒ»½×µ¼Êý £¬Á´±íµÄÍ·Ö¸ÕëΪha£¬Í·½áµãµÄexpÓòΪ ¨C1¡£
derivative(ha)
{ q=ha ; pa=ha->next;
while( (1)_______)
{ if ( (2)____) { ( (3)__); free(pa); pa= ( (4) _); }
else{ pa->coef ( (5) ___); pa->exp( (6)___); q=( (7) __);} pa=( (8)________); }
} ¡¾ÄϾ©Àí¹¤´óѧ 2000 Èý¡¢3£¨10·Ö£©¡¿
35.ÏÂÃæÊÇɾ³ýµ¥Á´±íLÖÐ×î´óÔªËØËùÔÚ½áµãµÄÀàPASCALÓïÑÔËã·¨£¬ÇëÔÚºáÏßÌîÉÏÄÚÈÝ£¬Íê³ÉÆä¹¦ÄÜ¡£
TYPE pointer =¡ünode£» node=RECORD
data:integer; next: pointer END;
PROCEDURE delmax (L:pointer); VAR p,q,r:pointer; m:integer; BEGIN
r:=L£» p:=L¡ü.next; IF p<>NIL THEN
[ m:=p¡ü.data; (1)________; p:=p¡ü.next;
WHILE p<>NIL DO
[ IF (2)________THEN [ (3)________ ; m:=p¡ü.data; ] (4)________; p:=p¡ü.next; ]
q:=r¡ü.next; (5)______; dispose(q);
]
END;¡¾±±¾©¿Æ¼¼´óѧ 1998 ¶þ¡¿
36£®¶Ôµ¥Á´±íÖÐÔªËØ°´²åÈë·½·¨ÅÅÐòµÄCÓïÑÔÃèÊöËã·¨ÈçÏ£¬ÆäÖÐLΪÁ´±íÍ·½áµãÖ¸Õë¡£ÇëÌî³äËã·¨Öбê³öµÄ¿Õ°×´¦£¬Íê³ÉÆä¹¦ÄÜ¡£ typedef struct node
{int data; struct node *next; }linknode,*link; void Insertsort(link L) { link p,q,r,u;
p=L->next; (1)______; while((2)________) { r=L; q=L->next;
while((3)________&& q->data<=p->data) {r=q; q=q->next;} u=p->next; (4)______; (5)______; p=u; }
}¡¾±±¾©¿Æ¼¼´óѧ 2001 ¶þ £¨10·Ö£©¡¿
37£®ÏÂÃæÊÇÒ»¸öÇóÁ½¸ö¼¯ºÏAºÍBÖ®²îC=A-BµÄ³ÌÐò£¬¼´µ±ÇÒ½öµ±eÊÇAµÄÒ»¸öÔªËØ£¬µ«²»ÊÇBÖеÄÒ»¸öÔªËØÊ±£¬e²ÅÊÇCÖеÄÒ»¸öÔªËØ¡£¼¯ºÏÓÃÓÐÐòÁ´±íʵÏÖ£¬³õʼʱ£¬A£¬B¼¯ºÏÖеÄÔªËØ°´µÝÔöÅÅÁУ¬CΪ¿Õ£»²Ù×÷Íê³ÉºóA£¬B±£³Ö²»±ä£¬CÖÐÔªËØ°´µÝÔöÅÅÁС£ÏÂÃæµÄº¯Êýappend(last,e)ÊǰÑֵΪeµÄнáµãÁ´½ÓÔÚÓÉÖ¸ÕëlastÖ¸ÏòµÄ½áµãµÄºóÃæ£¬²¢·µ»ØÐ½áµãµÄµØÖ·£»º¯Êýdifference(A,B)ʵÏÖ¼¯ºÏÔËËãA-B£¬²¢·µ»Ø±íʾ½á¹û¼¯ºÏCµÄÁ´±íµÄÊ×½áµã
µÄµØÖ·¡£ÔÚÖ´ÐÐA-BÔËËã֮ǰ£¬ÓÃÓÚ±íʾ½á¹û¼¯ºÏµÄÁ´±íÊ×ÏÈÔö¼ÓÒ»¸ö¸½¼ÓµÄ±íÍ·½áµã£¬ÒÔ±ãнáµãµÄÌí¼Ó£¬µ±A-BÔËËãÖ´ÐÐÍê±Ï£¬ÔÙɾ³ý²¢Êͷűíʾ½á¹û¼¯ºÏµÄÁ´±íµÄ±íÍ·½áµã¡£ ³ÌÐò(a)£¨±àÕßÂÔÈ¥Õâ¸öPASCAL³ÌÐò£© ³ÌÐò£¨b£©
typedef struct node{ int element; struct node *link; }NODE; NODE *A£¬*B£¬*C;
NODE *append (NODE *last,int e)
{ last->link=(NODE*) malloc (sizeof(NODE));
last->link->element=e; return(last->link); }
NODE *difference(NODE *A,NODE *B) {NODE *C,*last;
C=last=(NODE*) malloc (sizeof(NODE)); while (1)___
if (A->element
else if (2) ___ { A=A->link; B=B->link; } ELSE (3) ___ ; while (4) __
{ last=append(last,A->element); A=A->link; }
(5) ___; last=C; C=C->link; free (last); return (C); }
/*call form:C=difference(A,B);*/¡¾ÉϺ£´óѧ 2000 Ò»¡¢4 £¨10·Ö£©¡¿
ËÄ Ó¦ÓÃÌâ
1£®ÏßÐÔ±íÓÐÁ½ÖÖ´æ´¢½á¹¹£ºÒ»ÊÇ˳Ðò±í£¬¶þÊÇÁ´±í¡£ÊÔÎÊ£º
£¨1£©Èç¹ûÓÐ n¸öÏßÐÔ±íͬʱ²¢´æ£¬²¢ÇÒÔÚ´¦Àí¹ý³ÌÖи÷±íµÄ³¤¶È»á¶¯Ì¬±ä»¯£¬ÏßÐÔ±íµÄ×ÜÊýÒ²»á×Ô¶¯µØ¸Ä±ä¡£ÔÚ´ËÇé¿öÏ£¬Ó¦Ñ¡ÓÃÄÄÖÖ´æ´¢½á¹¹£¿ Ϊʲô£¿
£¨2£©ÈôÏßÐÔ±íµÄ×ÜÊý»ù±¾Îȶ¨£¬ÇÒºÜÉÙ½øÐвåÈëºÍɾ³ý£¬µ«ÒªÇóÒÔ×î¿ìµÄËÙ¶È´æÈ¡ÏßÐÔ±íÖеÄÔªËØ£¬ÄÇôӦ²ÉÓÃÄÄÖÖ´æ´¢½á¹¹£¿ÎªÊ²Ã´£¿¡¾Î÷°²µç×ӿƼ¼´óѧ 1999Èí¼þ ¶þ¡¢1 £¨5·Ö£©¡¿
2£®ÏßÐÔ±íµÄ˳Ðò´æ´¢½á¹¹¾ßÓÐÈý¸öÈõµã£ºÆäÒ»£¬ÔÚ×÷²åÈë»òɾ³ý²Ù×÷ʱ£¬ÐèÒÆ¶¯´óÁ¿ÔªËØ£»Æä¶þ£¬ÓÉÓÚÄÑÒÔ¹À¼Æ£¬±ØÐëÔ¤ÏÈ·ÖÅä½Ï´óµÄ¿Õ¼ä£¬ÍùÍùʹ´æ´¢¿Õ¼ä²»Äܵõ½³ä·ÖÀûÓã»ÆäÈý£¬±íµÄÈÝÁ¿ÄÑÒÔÀ©³ä¡£ÏßÐÔ±íµÄÁ´Ê½´æ´¢½á¹¹ÊÇ·ñÒ»¶¨¶¼Äܹ»¿Ë·þÉÏÊöÈý¸öÈõµã£¬ÊÔÌÖÂÛÖ®¡£¡¾ÖØÇì´óѧ 2000 ¶þ¡¢5¡¿ 3£®Èô½ÏƵ·±µØ¶ÔÒ»¸öÏßÐÔ±í½øÐвåÈëºÍɾ³ý²Ù×÷£¬¸ÃÏßÐÔ±íÒ˲ÉÓúÎÖÖ´æ´¢½á¹¹£¿ÎªÊ²Ã´£¿
¡¾±±¾©º½¿Õº½Ìì´óѧ 1998 Ò»¡¢2£¨4·Ö£©¡¿
4£®ÏßÐԽṹ°üÀ¨______¡¢______¡¢_______ºÍ_______¡£ÏßÐÔ±íµÄ´æ´¢½á¹¹·Ö³É______ºÍ______¡£ÇëÓÃÀàPASC£ÁLÓïÑÔÃèÊöÕâÁ½Öֽṹ¡£¡¾»ª±±¼ÆËã»úϵͳ¹¤³ÌÑо¿Ëù1999Ò»¡¢2£¨10·Ö£©¡¿
5£®ÏßÐÔ±í£¨a1£¬a2£¬?£¬an£©ÓÃ˳ÐòÓ³Éä±íʾʱ£¬aiºÍai+1£¨1<=i ¡¾¶«ÄÏ´óѧ 1996 Ò»¡¢1 £¨5·Ö£©¡¿ 6. ˵Ã÷ÔÚÏßÐÔ±íµÄÁ´Ê½´æ´¢½á¹¹ÖУ¬Í·Ö¸ÕëÓëÍ·½áµãÖ®¼äµÄ¸ù±¾Çø±ð£»Í·½áµãÓëÊ×Ôª½áµã