时间:2011-12-24 23:53:52
第5套题
一、程序填空题
#include <stdio.h>
#include <stdlib.h>
#define N 8
typedef struct list
{ int data;
struct list *next;
} SLIST;
void fun( SLIST *h, int x)
{ SLIST *p, *q, *s;
s=(SLIST *)malloc(sizeof(SLIST));
/**********found**********/
s->data=___1___;
q=h;
p=h->next;
while(p!=NULL && x>p->data) {
/**********found**********/
q=___2___;
p=p->next;
}
s->next=p;
/**********found**********/
q->next=___3___;
}
SLIST *creatlist(int *a)
{ SLIST *h,*p,*q; int i;
h=p=(SLIST *)malloc(sizeof(SLIST));
for(i=0; i<N; 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("->%d",p->data); p=p->next; } while(p!=NULL);
printf("->Endn");
}
}
main()
{ SLIST *head; int x;
int a[N]={11,12,15,18,19,22,25,29};
head=creatlist(a);
printf("nThe list before inserting:n"); outlist(head);
printf("nEnter a number : "); scanf("%d",&x);
fun(head,x);
printf("nThe list after inserting:n"); outlist(head);
}
二、程序改错题
#include <stdio.h>
long fun (long num)
{
/************found************/
long k;
do
{ k*=num%10 ;
/************found************/
num=10 ;
} while(num) ;
return (k) ;
}
main( )
{ long n ;
printf("nPlease enter a number:") ; scanf("%ld",&n) ;
printf("n%ldn",fun(n)) ;
}
三、程序编写题
#include <stdio.h>
float fun ( float *a , int n )
{
}
main()
{ float score[30]={90.5, 72, 80, 61.5, 55}, aver;
void NONO ( );
aver = fun( score, 5 );
printf( "nAverage score is: %5.2fn", aver);
NONO ( );
}
void NONO ( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i, j ;
float aver, score[5] ;
fp = fopen("K:\k01\24010001\in.dat","r") ;
wf = fopen("K:\k01\24010001\out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
for(j = 0 ; j < 5 ; j++) fscanf(fp,"%f,",&score[j]) ;
aver = fun(score, 5) ;
fprintf(wf, "%5.2fn", aver) ;
}
fclose(fp) ;
fclose(wf) ;
}