资源描述:
《本试卷共8道题,考生需解答5道题,其中试题1~试题3是必答题,试题....doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、本试卷共8道题,考生需解答5道题,其中试题1~试题3是必答题,试题4和试题5两题任选1道题,试题6至试题8三题任选1道解答。对于任选题,如果解答的试题数超过1道,则题号小的1道题解答有效。每题15分,满分75分。 试题一(15分,每空3分) 阅读以下说明和流程图,将应填入__(n)__处的字句写在答题纸的对应栏内。 [说明] 已知头指针分别为La和Lb的有序单链表,其数据元素都是按值非递减排列。现要归并La和Lb得到单链表Lc,使得Lc中的元素按值非递减排列。程序流程图如下所示。 试题二(15分,每空3分) 阅
2、读以下函数说明和C语言函数,将应填入___(n)___处的字句写在答题纸的对应栏内。 [程序2.1说明] 已知一个排好序的数组,现输入一个数,要求按原来的顺序规律,将它插入到数组中。 [程序2.1] #include #defineN100 voidmain() { floata[N=1],x; inti,p; printf("输入已经排好序的数列:"); for(i=0;i scanf(%f",&a[i]); printf("输入要插入的数:"); scanf("%f",&x); for(i
3、=0,p=N;i if(x { ___(1)___ break; } for(i=N-1;i>=p;i--) ___(2)___ ___(3)___ for(i=0;i<=N;i++) printf("%ft",a[i]); } [程序2.2说明] 本程序用变量count统计文件中字符的个数。[NextPage] [程序2.2] #include #include voidmain() { FILE*fp; longcount=0; if((fp=fopen("letter.tx
4、t","r"))==NULL) { printf("cannotopenfile"); exit(0); } while(!feof(fp)) { ___(4)___ count++; } printf("count=%d",count); ___(5)___ } 试题三(15分,每空3分) 阅读以下说明和C语言程序,将应填入___(n)___处的字句写在答题纸的对应栏内。 [说明] Fibonacci数列 列A={11,2,3,5,8,…}有如下性质: a0=a1=1 ai=
5、ai-1+ai-2i>1 对于给定的n,另外有一个由n个元素组成的数列xn,该数列中各元素的值为: xi=ai/ai+1i=0,1,…,n 现要求对xn中的元素按升序进行排序,然后以分数形式输出排序后的xn。例如n=5时, 排序前的xn={1/1,1/2,2/3,3/5,5/8},排序后的xn={1/2,3/5,5/8,2/3,1/1}。程序中函数 make()首先生成排序前的xn,然后调用函数sort()进行排序,最后输出所求结果。 [程序] #include #include #include st
6、ructfact { longm,n; }; voidsort(intn,structfact*p) { inta; longs,t,u,v; structfact*q,*end; for(end=p+(n-1),a=1;a;end--) for(a=0,q=p;q { s=q->m; t=q->n; u=(q+1)->m; v=(q+1)->n; if(___(1)___) { q->m=u; ___(2)___ ___(3)___ (q+1)->n=t; a=1; } }
7、 } voidmake(intn) { inti; longa,b,c; structfact*x,*y; x=(structfact*)malloc(sizeof(structfact)*n); x->m=1; x->n=1; for(a=1,b=1,i=2;i<=n;i++) { ___(4)___ a=b; b=c; (x+(i-1))->m=a; (x+(i-1))->n=b; } ___(5)___ printf("x%d={/",n,x->m,x->n); for(y
8、=x+1;y printf(",/",y->m,y->n); printf("}"); free(x); } voidmain() { intn; printf("inputn:"); scanf("%d",&n); make(n); }[NextPage] 试题四(15