文档详情

C语言--上机附加题-附1-3答案.doc

发布:2022-08-02约6.2千字共11页下载文档
文本预览下载声明
C语言--上机附加题-附1-3答案 PAGE 七、附加题 附加题1 填空题 给定的程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的书用该中间数代替,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。 例如,有9个正整数: 1 5 7 23 87 5 8 21 45 按升序排列时的中间数为:8 处理后主函数中的输出的数列为: 8 8 8 23 87 8 8 21 45 请在程序的下划线处天如正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include stdio.h #define N 9 int fun(int x[]) { int i,j,k,t,mid,b[N]; for(i=0;iN;i++) b[i]=x[i]; for(i=0;i=N/2;i++) { k=i; for(j=i+1;jN;j++) if(b[k]b[j]) k=j; if(k != i ) { /**********found**********/ t=b[i]; b[i]=b[k]; b[k]=t; } } /**********found**********/ mid=b[N/2]; for(i=0; iN; i++) /**********found**********/ if(x[i] mid) x[i]=mid; return mid; } main() { int i, x[N]={1,5,7,23,87,5,8,21,45}; for(i=0; iN; i++) printf(%d ,x[i]); printf(\nThe mid data is: %d\n,fun(x)); #include stdio.h void NONO(); int fun(char *s) { int i=0,num=0; while(*(s+i)!=0) { if(*(s+i)=0*(s+i)=9)num++; i++; } return num; } main() { char *s=2def35adh25 3kjsdf 7/kj8655x; printf(%s\n,s); printf(%d\n,fun(s)); NONO(); } void NONO() {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i; char s[256]; fp = fopen(C:\\k01\\in.dat,r) ; wf = fopen(C:\\k01\\out.dat,w) ; for(i = 0 ; i 10 ; i++) { fgets(s, 255, fp); fprintf(wf, %d\n, fun(s)); } fclose(fp) ; fclose(wf) ; } 附加题2 填空题 给定程序的主函数中,已给出由结构体构成的链表结点a、b、c,各结点的数据域中均存入字符,函数fun()的作用是,将a、b、c三个结点链接成一个单向链表,并输出链表节点中的数据。 请在程序的下划线处天如正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include stdio.h typedef struct list { char data; struct list *next; } Q; void fun( Q *pa, Q *pb, Q *pc) { Q *p; /**********found**********/ pa-next=pb; pb-next=pc; p=pa; while( p ) { /**********found**********/ printf( %c,p-data); /**********found**********/ p=p-next; } printf(\n); } main() { Q a, b, c; a.data=E; b.data=F; c.data=G; c
显示全部
相似文档