程序填空题(6)

2019-05-24 13:54

int fun(char *fname ) if(p.num[0]==0) { FILE *fp; int i,n; float x; printf(\ if((fp=fopen(fname, \ else for(i=1;i<=10;i++) { printf(\/**********found**********/ printf(\ %d-%d-%d\\n\fprintf(___1___,\ } printf(\!\\n\} /**********found**********/

1.给定程序中,函数fun的功能是:求出形参ss所指 ___2___;

字符串数组中最长字符串的长度,其余字符串左边用字 printf(\

/**********found**********/ 符*补齐,使其与最长的字符串等长。字符串数组中共有 if((fp=fopen(___3___,\M个字符串,且串长

#define M 5

{ printf(\%f\\n\#define N 20 fscanf(fp,\

void fun(char (*ss)[N]) fclose(fp);

{ int i, j, k=0, n, m, len; return 1;

} for(i=0; i

if(len>n) {

}

/**********found**********/

n=len; ___1___=i;} } //kk 第一空:fp 第二空:fclose(fp) 第三空:fname

for(i=0; i

if (i!=k) { m=n;

112.人员的记录由编号和出生年、月、日组成,N名 len=strlen(ss[i]); 人员的数据已在主函数中存入结构体数组std中,且编

号唯一。函数fun的功能是:找出指定编号人员的数据,/**********found**********/

作为函数返回值,由主函数输出,若指定编号不存在, for(j=___2___; j>=0; j--) //len

ss[i][m--]=ss[i][j]; 返回数据中的编号为空串。

#define N 8 for(j=0; j

main(){char ss[M][N]={\/**********found**********/

\___1___fun(STU*std,char*num) //STU cchongqing\

printf(\{ int i; STU a={\

for (i=0; i

for(i=0; i

return (___3___); //std[i]

printf(\ return a;

}

main() { STU std[N]={ {\1},{\

{\66\

{\ STU p; char n[10]=\ p=fun(std,n);

26

2. 给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长

/**********found**********/ int fun(char (*ss) ___1___, int *n) //[N] { int i, k=0, len=0; for(i=0; i

/**********found**********/

if(i==0) *n=___2___; //len if(len>*n) {

/**********found**********/

___3___; //*n=len k=i; } } return(k);} main()

{ char ss[M][N]={\\cchongqing\

printf(\ for(i=0;i

printf(\leng longest string is : %d\\n\printf(\3.函数fun的功能是:把形参a所指数组中最大值放在a[0]中,接着求出a所指数组中最小值放在a[1]中;再把a所指数组元素中的次大值放在a[2]中,把a数组元素中次小值放在a[3]中;其余依次类推。例如:若a所指数组中的数组最初排列为:1、4、2、3、9、6、5、8、7,则按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5.形参n中存放a所指数组中数据的个数。 #define N 9

/**********found**********/

void fun(int ___1___, int n) //*a { int i, j, max, min, px, pn, t; /**********found**********/

for (i=0; i

/**********found**********/

for (j=___3___; j

{ max = a[j]; px = j; } if (min > a[j])

{ min = a[j]; pn = j; }} if (px != i)

{ t = a[i]; a[i] = max;

a[px] = t;

if (pn == i) pn= px; }

if (pn != i+1)

{ t = a[i+1]; a[i+1] = min; a[pn] = t; }}} main()

{ int b[N]={1,4,2,3,9,6,5,8,7}, i; printf(\

for (i=0; i

printf(\for (i=0; i

4. (7)给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制过程中,把复制的内容

27

输出到终端屏幕.主函数中源文件中入在变量sfname k ,目标文件名放在变量tfname中。

int fun(char *source, char *target) { FILE *fs,*ft; char ch; /**********found**********/

if((fs=fopen(source, ___1___))==NULL) //”r’ return 0;

if((ft=fopen(target, \ return 0;

printf(\ ch=fgetc(fs);

/**********found**********/

while(!feof(___2___)) // fs { putchar( ch );

/**********found**********/

fputc(ch,___3___); //ft ch=fgetc(fs); } fclose(fs); fclose(ft); printf(\

main(){char sfname[20] =\tfname[20]=\

FILE *myf; int i; char c; myf=fopen(sfname,\

printf(\ for(i=1; i<30; i++)

{c='A'+rand()%;fprintf(myf,\printf(\

fclose(myf);printf(\ if (fun(sfname, tfname))

printf(\ else printf(\

5. 用筛选法可得到2~n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非0数,并从数表中删去该数的所表倍数;依次类推,直到所找的下一个数等于n为止。这样会得一个序列:2,3,5,7,11,13,17,19,23??函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。

int fun(int n)

{ int a[10000], i,j, count=0; for (i=2; i<=n; i++) a[i] = i; i = 2; while (i

for (j=a[i]*2; j<=n; j+=___1___) a[j] = 0; i++; /**********found**********/ while (___2___==0) i++; }

printf(\ for (i=2; i<=n; i++) /**********found**********/ if (a[i]!=___3___)

{count++;

printf( count?\ return count;}

main(){ int n=20, r;r = fun(n);

printf(\第一空:a[i] 第二空:a[i] 第三空0

6.函数fun的功能是:从三个形参a,b,c中找出中间的那个数,作为函数值返回。例如:当a=3,b=5,c=4时,中数为4。

int fun(int a, int b, int c) { int t;

/**********found**********/

t = (a>b) ? (b>c? b :(a>c?c:___1___)) : ((a>c)?___2___ : ((b>c)?c:___3___)); return t;}

main(){ int a1=3, a2=5, a3=4, r; r = fun(a1, a2, a3);

printf(\第一空:a 第二空:a 第三空:b 7. 函数fun的功能是:计算

x2xnf(x)?1?x????

2!n!xn?10?6。若x=2.5,函数值为:12.182494。 直到n!double fun(double x) { double f, t; int n; /**********found**********/ f = 1.0+___1___; t = x; n = 1; do {

n++;

/**********found**********/ t *= x/___2___; /**********found**********/ f += ___3___;

} while (fabs(t) >= 1e-6); return f;}

main(){ double x, y; x=2.5; y = fun(x);

printf(\

printf(\第一空:x 第二空:n 第三空:t

8. 给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。ss所指字符串数组中共有M个字符串,且串长

void fun(char (*ss)[N])

{ int i, j, k, n[M]; char t[N]; for(i=0; i

28

for(i=0; i

/**********found**********/ for(j=___1___; jn[j]) ___2___; if(k!=i)

{ strcpy(t,ss[i]); strcpy(ss[i],ss[k]); /**********found**********/ strcpy(ss[k],___3___); n[k]=n[i]; } }} main()

{ char ss[M][N]={\\ int i;

printf(\ for(i=0; i

printf(\ for(i=0; i

第一空:i+1 第二空:k=j 第三空:t

9. 函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把形参a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3];其余以此类推。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7;则按规则移动后,数据排列为:1、9、2、8、3、7、4、6、5。形参n中存放a所指数组中数据的个数。

#define N 9

void fun(int a[], int n)

{ int i,j, max, min, px, pn, t; for (i=0; i

{/**********found**********/ max = min = ___1___; px = pn = i;

for (j=i+1; j

{ max = a[j]; px = j; } /**********found**********/ if (min>___3___)

{ min = a[j]; pn = j; } } if (pn != i)

{ t = a[i]; a[i] = min; a[pn] = t; if (px == i) px =pn; } if (px != i+1)

{ t = a[i+1]; a[i+1] = max; a[px] = t; } }}

main()

{ int b[N]={9,1,4,2,3,6,5,8,7}, i; printf(\

for (i=0; i

printf(\ for (i=0; i

第一空:a[i] 第二空:a[j] 第三空:a[j]

10. 给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。 typedef struct { char name[10]; int age; }STD;

STD fun(STD std[], int n) { STD max; int i; /**********found**********/ max= ___1___;

for(i=1; i

/**********found**********/

if(max.age<___2___) max=std[i]; return max;} main( )

{ STD std[5]={\

\ STD max; max=fun(std,5); printf(\/**********found**********/

printf(\ ___3___,max.age);}

第一空:*std 第二空:std[i].age 第三空:max.name 11.给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:defadhkjsdf3537。 void fun(char *s) { int i, j=0, k=0; char t1[80], t2[80]; for(i=0; s[i]!='\\0'; i++) if(s[i]>='0' && s[i]<='9'){ /**********found**********/

t2[j]=s[i]; ___1___; } else t1[k++]=s[i]; t2[j]=0; t1[k]=0;

/**********found**********/ for(i=0; i

for(i=0; i<___3___; i++) s[k+i]=t2[i];} main()

29

{ char s[80]=\ printf(\ fun(s);

printf(\第一空:j++; 第二空:s[i]=t1[i];第三空:j 12. 函数fun的功能是:把形参a所指数组中的奇数原顺序依次放到a[0]、a[1]、a[2]、??中,把偶数从数组中删除,奇数个数通过函数值返回。例如:若a所指数组中数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后a所指数组中数据为:9、1、3、5、7,返回值为5。

#define N 9

int fun(int a[], int n) { int i,j; j = 0;

for (i=0; i

/**********found**********/ if (a[i]%2==___1___){ /**********found**********/ a[j] = a[i]; ___2___; } /**********found**********/ return ___3___;} main()

{ int b[N]={9,1,4,2,3,6,5,8,7}, i, n; printf(\ for (i=0; i

printf(\ printf(\ for (i=0; i

printf(\第一空:1 第二空:j++ 第三空j

13. 给定程序中,函数fun的功能是:对形参s所指字符串下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。

void fun(char *s, char *p) { int i, j, n, x, t; n=0;

for(i=0; s[i]!='\\0'; i++) n++; for(i=1; i

/**********found**********/

for(j=___2___+2 ; js[j]) t=j; if(t!=i)

{ x=s[i]; s[i]=s[t]; s[t]=x; }}

for(i=1,j=0; i

/**********found**********/ p[j]=___3___;} main()

{ char s[80]=\ printf(\ fun(s,p);

printf(\第一空:t=i 第二空:i 第三空 0

14. 给定函数int MySearch(char *str,char *s)的功能是:统计字符串s在字符串str中出现的次数。例如,若输入字符串”12 123 12345”和”23”,则应输出2(表示字符串”23”在字符串”12 123 12345”中出现了两次)。若输入字符串”33333”和”33”,则应输出4(表示字符串”33”在字符串”33333”出现了四次)。 int MySearch( char* str, char* s ){ char* p; int n =0;

for( ; *str; )

/***************found***************/

if( ( p = strstr( str, s ) ) != ___1___ ) { n++; str=p+1; } else

/***************found***************/ ___2___;

/***************found***************/ return( ___3___ );} main()

{ char str1[81], str2[21];

printf(\ gets(str1);

printf(\ gets(str2);

printf( \times\\n\第一空:NULL 第二空:*str=0 第三空:n

char string[81], x; clrscr();

printf(\ gets(string);

printf(\ scanf(\

printf( \deleting %d '%c'(s), the string becomes:\\n%s\\n\x), x, string);}

第一空:j++ 第二空:0 第三空:k

16. 给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据从小到大顺序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点仍保持从小到大顺序排序。 #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));

15. 给定函数 char *MyDelete(char *str,char c)的功

for(i=0; i

能是:在字符串str中删除变量c中的字符,有几个删几

{ q=(SLIST *)malloc(sizeof(SLIST));

个,并返回所删字符的个数。例如,若输入字符串”ab abc

q->data=a[i]; p->next=q; p=q;

bcdef”和字符’b’,则应输出字符串”a ac cdef”和

}

3(表示删了3个字符’b’)。

p->next=0;

int MyDelete( char* str, char c )

return h;}

{ int i, j=0, k=0;

void outlist(SLIST *h)

for( i = 0; str[i]; i++ )

{ SLIST *p;

if( str[i] != c )

p=h->next;

/***************found**************/

if (p==NULL)

{ str[ j ]= str[i]; ___1___; }

printf(\

else

else

k++;

{ printf(\

/***************found**************/

do{printf(\

str[j]=___2___ ;

while(p!=NULL);

/***************found**************/

printf(\

return( ___3___ );}

main()

main(){

30


程序填空题(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:八年级上册思品复习主要知识点(精品)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: