第101套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 9int fun(int x[]){ int i,j,k,t,mid,b[N];for(i=0;i<N;i++) b[i]=x[i];for(i=0;i<=N/2;i++){ k=i;for(j=i+1;j<N;j++) if(b[k]>b[j]) k=j;if(k != i ){/**********found**********/t=b[i]; b[i]=___1___; b[k]=t;}} /**********found**********/mid=b[___2___];for(i=0; i<N; i++)/**********found**********/if(x[i] ___3___ mid) x[i]=mid;return mid;}main(){ int i, x[N]={1,5,7,23,87,5,8,21,45};for(i=0; i<N; i++) printf("%d ",x[i]);printf("\nThe mid data is: %d\n",fun(x));for(i=0; i<N; i++) printf("%d ",x[i]);printf("\n");}2、程序改错给定程序MODI1.C中,fun函数的功能是:删除b所指数组中小于10的数据。
主函数中输出删除后数组中余下的数据。
#include <stdio.h>#include <stdlib.h>#define N 20int fun( int *b ){/**********found**********/ int t[N] ,i, numfor(i=0; i<N; i++)if(b[i]>=10)/**********found**********/t[++num]=b[i];/**********found**********/ for(i=0; i<nun; i++)b[i]=t[i];return( num );}main(){ int a[N],i,num;printf("a数组中的数据:\n");for(i=0;i<N ;i++) {a[i]=rand()%21; printf("%4d",a[i]);}printf("\n");num=fun(a);for(i=0;i<num ;i++) printf("%4d",a[i]);printf("\n");}3、程序设计请编写函数fun,其功能是:统计s所指字符串中的数字字符个数,并作为函数值返回。
例如,s所指字符串中的内容是:2def35adh25 3kjsdf 7/kj8655x,函数fun返回值为:11#include <stdio.h>void NONO();int fun(char *s){}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("in.dat","r") ;wf = fopen("out.dat","w") ;for(i = 0 ; i < 10 ; i++) {fgets(s, 255, fp);fprintf(wf, "%d\n", fun(s));}fclose(fp) ;fclose(wf) ;}第102套题1、程序填空函数fun的功能是:输出a所指数组中的前n个数据,要求每行输出5个数。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
#include <stdio.h>#include <stdlib.h>void fun( int *a, int n ){ int i;for(i=0; i<n; i++){/**********found**********/ if( ___1___==0 )/**********found**********/printf("___2___"); /**********found**********/printf("%d ",___3___);}}main(){ int a[100]={0}, i,n;n=22;for(i=0; i<n;i++) a[i]=rand()%21;fun( a, n);printf("\n");}2、程序改错给定程序MODI1.C中,fun函数的功能是:在任意给定的N个正整数中,从左到右依次逐个取三个数作为一组,按值大小找出该组数的中值,用该中值替换与该组数对应的原三个数中的中间位置的数。
处理后原数列中首尾2个数不变。
处理后数列在主函数中输出。
例如,有10个正整数如下:初始数列为:6 5 7 23 18 5 8 21 45 38第1组数为:6 5 7 中值为:6 替换后的数列为:6 6 7 23 18 5 8 21 45 38第2组数为:5 7 23 中值为:7 替换后的数列为:6 6 7 23 18 5 8 21 45 38第3组数为:7 23 18 中值为:18 替换后的数列为:6 6 7 18 18 5 8 21 45 38第4组数为:23 18 5 中值为:18 替换后的数列为:6 6 7 18 18 5 8 21 45 38第5组数为:18 5 8 中值为:8 替换后的数列为:6 6 7 18 18 8 8 21 45 38 第6组数为:5 8 21 中值为:8 替换后的数列为:6 6 7 18 18 8 8 21 45 38 第7组数为:8 21 45 中值为:21 替换后的数列为:6 6 7 18 18 8 8 21 45 38 第8组数为:21 45 38 中值为:38 替换后的数列为:6 6 7 18 18 8 8 21 38 38最终结果为:6 6 7 18 18 8 8 21 38 38 请改正程序中指定部位的错误,使它能得出正确的结果。
#include <stdio.h>#define N 10int findmid(int a, int b, int c){ int t;t = (a>b)?(b>c?b:(a>c?c:a)):((a>c)?a:((b>c)?c:b)); /**********found**********/return b;}void fun(int x[]){ int i,a,b,c,t[N];/**********found**********/for(i=0;i<N;i++) t[i]=x[i]for(i=0;i<N-2;i++){ a=t[i];b=t[i+1];c=t[i+2];/**********found**********/t[i+1]=findmid(a,b,c);}}main(){ int i, x[N]={6,5,7,23,18,5,8,21,45,38};for(i=0; i<N; i++) printf("%d ",x[i]);printf("\n");fun(x);for(i=0; i<N; i++) printf("%d ",x[i]);printf("\n");}3、程序设计请编写函数fun,函数的功能是查找x在s所指数组中下标的位置,并作为函数值返回,若x不存在,则返回-1。
#include <stdio.h>#include <stdlib.h>#define N 15void NONO();int fun( int *s, int x){}main(){ int a[N]={ 29,13,5,22,10,9,3,18,22,25,14,15,2,7,2 7},i,x,index;printf("a数组中的数据:\n");for(i=0; i<N; i++) printf("%4d",a[i]); printf("\n");printf("给x输入待查找的数: "); scanf("%d",&x);index=fun( a, x );printf("index=%d\n",index);NONO();}void NONO(){/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/FILE *fp, *wf ;int i, j, a[10], x, index;fp = fopen("in.dat","r") ;wf = fopen("out.dat","w") ;for(i = 0 ; i < 10 ; i++) {for(j = 0 ; j < 10 ; j++) {fscanf(fp, "%d ", &a[j]);}fscanf(fp, "%d", &x);index = fun(a, x);fprintf(wf, "%d\n", index);}fclose(fp);fclose(wf); }第103套1、程序填空给定程序的主函数中,已给出由结构体构成的链表结点a、b、c,各结点的数据域中均存入字符,函数fun()的作用是:将a、b、c三个结点链接成一个单向链表,并输出链表结点中的数据。