第 1 頁:填空題 |
第 2 頁:改錯題 |
第 3 頁:程序題 |
>>>考試吧考后首發(fā)2013年3月計算 機等考試題答案
一、填空題:給定程序中,函數(shù)fun的功能是:在帶有頭結(jié)點的單向鏈表中,查找數(shù)據(jù)域中值為ch的結(jié)點。找到后通過函數(shù)值返回該結(jié)點在鏈表中所處的順序號;若不存在值為ch的結(jié)點,函數(shù)返回0值。
請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。
注意:源程序存放在考生文件夾的BLANK1.C中。
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
給定源程序:
#include
#include
#define N 8
typedef struct list
{int data;
struct list *next;
} SLIST;
SLIST *creatlist(char *);
void outlist(SLIST *);
int fun(SLIST *h, char ch)
{SLIST *p; int n=0;
p=h->next;
/**********found**********/
while(p!=___1___)
{n++;
/**********found**********/
if (p->data==ch) return ___2___;
else p=p->next;
}
return 0;
}
main()
{SLIST *head; int k; char ch;
char a[N]={'m','p','g','a','w','x','r','d'};
head=creatlist(a);
outlist(head);
printf("Enter a letter:");
scanf("%c",&ch);
/**********found**********/
k=fun(___3___);
if (k==0) printf("\nNot found!\n");
else printf("The sequence number is : %d\n",k);
}
SLIST *creatlist(char *a)
{SLIST *h,*p,*q; int i;
h=p=(SLIST *)malloc(sizeof(SLIST));
for(i=0; i {q=(SLIST *)malloc(sizeof(SLIST)); q->data=a[i]; p->next=q; p=q; } p->next=0; return h; } void outlist(SLIST *h) {SLIST *p; p=h->next; if (p==NULL) printf("\nThe list is NULL!\n"); else {printf("\nHead"); do {printf("->%c",p->data); p=p->next;} while(p!=NULL); printf("->End\n"); } } 解題答案: /**********第一空**********/ while(p!=0) /**********第二空**********/ if (p->data==ch) return n; /**********第三空**********/ k=fun(head,ch); ******************************************
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |