二级c语言题库编程题_第1页
二级c语言题库编程题_第2页
二级c语言题库编程题_第3页
二级c语言题库编程题_第4页
二级c语言题库编程题_第5页
已阅读5页,还剩172页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.请编写函数 fun,其功能是:找出 2×M 整型二维数组中最大元素的值,并将此值返回调用函数。注意:部分源程序在文件 PROG1.C 中。改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#include <stdio.h> #define M 4int fun (int aM)main( )int arr2M=5,8,3,45,76,-4,12,82 ;void NONO ();printf("max =%dn", fun(arr) ; NONO( ) ;void NONO ()/* 本函数用于打开文

2、件,输入数据,调用函数,输出数据,关闭文件。FILE *wf ;int arrM=5,8,3,90,76,-4,12,82 ;*/wf = fopen("out.dat","w") ;fprintf(wf, "max=%dn", fun(arr) ; fclose(wf) ;【参考】int fun (int aM)int i,j,max=a00; for(i=0;i<2;i+)for(j=0;j<M;j+) if(max<aij)max=aij; return max;2.编写函数 fun,其功能是:根据以下公式求的

3、值(要求精度 0.0005,即某项小于 0.0005时停止迭代)。程序运行后,若输入精度 0.0005,则程序应输出为 3.14。注意:部分源程序在文件 PROG1.C 中。改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#include <stdio.h> #include <math.h>doublefun ( doubleeps)main( ) doublex;void NONO (); printf("Input eps:") ;scanf("%lf",&x); pr

4、intf("neps = %lf, PI=%lfn", x, fun(x);NONO();void NONO ()/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。FILE *fp, *wf ; int i ;double x ;*/fp = fopen("in.dat","r") ;wf = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i+) fscanf(fp, "%lf", &x) ;fprint

5、f(wf, "%lfn", fun(x) ;fclose(fp) ; fclose(wf) ;【参考】doublefun ( doubleeps)double s=1.0,s1=1.0; int n=1;/*当某项大于精度要求时,继续求下一项*/while(s1>=eps)/*求多项式的每一项*/s1=s1*n/(2*n+1);/*求和*/s=s+s1;n+;return 2*s;3.编写函数 fun,其功能是:求出 1 到 1000 之间能被 7 或 11 整除,但不能同时被 7 和11 整除的所有整数,并将其放在 a 所指的数组中,通过 n 返回这些数的个数。注意

6、:部分原程序在文件 PROG1.C 中。改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#include <stdio.h>voidfun (int *a, int *n)main( )int aa1000, n, k ; void NONO ();fun ( aa, &n ) ;for ( k = 0 ; k < n ; k+ )if(k + 1) % 10 = 0) printf("n") ;else printf("%5d", aak) ; NONO( );void NONO

7、 ( )/* 本函数用于打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。*/int aa1000, n, k ; FILE *fp ;fp = fopen("out.dat","w") ; fun ( aa, &n ) ;for ( k = 0 ; k < n ; k+ )if(k + 1) % 10 = 0) fprintf(fp, "n") ;else fprintf(fp, "%5d", aak) ; fclose(fp) ;【参考】voidfun (int *a, int *n

8、)int i,j=0;for(i=1;i<=1000;i+)/*求 1 到 1000 之内能被 7 或 11 整除、但不能同时被 7和 11 整除的所有整数,并放入数组 a 中*/if(i%7=0|i%11=0)&&i%77!=0) aj+=i;*n=j;28.编写函数 fun,其功能是:将 1 到 m 之间(含 m)能被 7 或 11 整除的所有整数放在数组 a 中,并通过 n 返回这些数的个数。例如,若传给 m 的值为 50,则程序输出:711142122283335424449注意:部分源程序在文件 PROG1.C 中。改动主函数 main 和其它函数的任何内容,仅

9、在函数 fun 的花括号中填入你编写的若干语句。#include <stdio.h> #define M 100voidfun ( intm, int *a , int *n )main( )int aaM, n, k; void NONO (); fun ( 50, aa, &n );for ( k = 0; k < n; k+ ) if(k+1)%20=0) printf("n");else printf( "%4d", aak ); printf("n") ;NONO( );void NONO ( )/

10、* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。FILE *fp, *wf ;int i, n, j, k, aaM, sum ;*/fp = fopen("in.dat","r") ;wf = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i+) fscanf(fp, "%d,", &j) ; fun(j, aa, &n) ;sum = 0 ;for(k = 0 ; k < n ; k+) sum+=aak

11、;fprintf(wf, "%dn", sum) ;fclose(fp) ; fclose(wf) ;【参考】voidfun ( intm, int *a , int *n )int i,j=0; for(i=1;i<=m;i+)if(i%7=0|i%11=0) /*求出 1 到m(含m)之内能被 7 或 11 整除的所有整数放在数组 a 中*/aj+=i;*n=j; /*返回这些数的个数*/4.规定输入的字符串中只包含字母和*号。编写函数 fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用 C 语言提供的字符串函数。例如,字符串中的内容为:*A*BC*D

12、EF*G*,删除后字符串中的内容应当是:ABCDEFG。注意:部分源程序在文件 PROG1.C 中。改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干的语句。#include <stdio.h> voidfun( char *a )main()chars81; void NONO ();printf("Enter a string:n");gets(s); fun( s );printf("The string after deleted:n");puts(s); NONO();void NONO()/

13、* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE *in, *out ; int i ; char s81 ;in = fopen("in.dat","r") ;out = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i+) fscanf(in, "%s", s) ; fun(s) ;fprintf(out, "%sn", s) ;fclose(in) ; fclose(out) ;【参考】void

14、fun( char *a )int i,j=0; for(i=0;ai!='0'i+)if(ai!='*')aj+=ai;/*若不是要删除的字符'*'则留下*/aj='0'5.编写函数 fun,其功能是:实现两个字符串的连接(不要使用库函数 strcat),即把 p2所指的字符串连接到 p1 所指的字符串的后面。例如,分别输入下面两个字符串:FirstStringSecondString程序输出:FirstStringSecondString注意:部分源程序在文件 PROG1.C 中。改动主函数 main 和其它函数中的任何内容,

15、仅在函数 fun 的花括号中填入你编写的若干语句。#include <stdio.h>void fun(char p1, char p2)main()char s180, s240 ;void NONO ();printf("Enter s1 and s2:n") ; scanf("%s%s", s1, s2) ; printf("s1=%sn", s1) ; printf("s2=%sn", s2) ;printf("Invoke fun(s1,s2):n") ;fun(s1, s

16、2) ;printf("After invoking:n") ; printf("%sn", s1) ;NONO() ;void NONO ()/* 本函数用于打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。*/int i ;FILE *rf, *wf ;char s180, s240 ;rf = fopen("in.dat","r") ;wf = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i+) fscan

17、f(rf, "%s", s1) ;fscanf(rf, "%s", s2) ; fun(s1, s2) ;fprintf(wf, "%sn", s1) ;fclose(rf) ; fclose(wf) ;【参考】void fun(char p1, char p2)int i,j;for(i=0;p1i!='0'i+);for(j=0;p2j!='0'j+)p1i+=p2j;p1i='0'6.某学生的由学号、8 门课程成绩和平均分组成,学号和 8 门课程的成绩已在主函数中给出,请编写函数

18、fun,其功能是:求出该学生的平均分,并放入中。的 ave 成员例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为 78.875。注意:部分源程序在文件 PROG1.C 中。改动主函数 main 和其它函数中的任何内容,仅在函数 fun 部位中填入你编写的若干语句。#include <stdio.h>#define typedefcharNstruct8num10;doublesN; doubleave; STREC;voidfun(STREC *a)main()STRECs="GA005",85.5,76,69

19、.5,85,91,72,64.5,87.5;inti;void NONO (); fun( &s );printf("The %s's student data:n", s.num);for(i=0;i<N; i+) printf("%4.1fn",s.si);printf("nave=%7.3fn",s.ave);NONO();void NONO()/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE *out ;int i,j ; STREC s10 = "GA005&qu

20、ot;,85.5,76,69.5,85,91,72,64.5,87.5,"GA001",82.5,66,76.5,76,89,76,46.5,78.5,"GA002",72.5,56,66.5,66,79,68,46.5,58.5,"GA003",92.5,76,86.5,86,99,86,56.5,88.5,"GA004",82,66.5,46.5,56,76,75,76.5,63.5,"GA006",75.5,74,71.5,85,81,79,64.5,71.5,"GA007&qu

21、ot;,92.5,61,72.5,84,79,75,66.5,72.5,"GA008",72.5,86,73.5,80,69,63,76.5,53.5,"GA009",66.5,71,74.5,70,61,82,86.5,58.5,"GA010",76,66.5,75.5,60,76,71,96.5,93.5,;out = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i+) fun(&si) ;fprintf(out, "%7.

22、3fn", si.ave) ;fclose(out) ;【参考】oidfun(STREC *a)double ave=0.0; int i; for(i=0;i<N;i+)a->ave=a->ave+a->si;/*求各门成绩的总和*/a->ave/=N;/*求平均分*/7.N 名学生的成绩已在主函数中放入一个节点的链表结构中,h 指向链表的点。请编写函数 fun,其功能是:求出平均分,并由函数值返回。例如,若学生的成绩是:8576698591726487,则平均分应当是:78.625。注意:部分源程序在文件 PROG1.C 中。改动主函数 main 和

23、其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#include <stdio.h>#include <stdlib.h>#defineN8structslistdoubles;struct slist*next;typedefstruct slistSTREC; doublefun( STREC *h)STREC * creat( double *s) STREC*h,*p,*q;inti=0;h=p=(STREC*)malloc(sizeof(STREC);p->s=0; while(i<N) q=(STREC*)malloc(s

24、izeof(STREC); q->s=si; i+;p->next=q; p=q;p->next=0; returnh;outlist( STREC *h) STREC*p;p=h->next; printf("head"); do printf("->%4.1f",p->s);p=p->next; while(p!=0);printf("nn");main()doublesN=85,76,69,85,91,72,64,87,ave;void NONO (); STREC*h;h=creat(

25、 s );ave=fun( h );outlist(h);printf("ave= %6.3fn",ave);NONO();void NONO()/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。FILE *in, *out ;int i,j ; doublesN,ave; STREC *h ;in = fopen("in.dat","r") ;out = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i+) for(j=0 ; j

26、 < N; j+) fscanf(in, "%lf,", &sj) ; h=creat( s );ave=fun( h );fprintf(out, "%6.3lfn", ave) ;fclose(in) ; fclose(out) ;*/【参考】doublefun( STREC *hdouble ave=0.0; STREC *p=h->next; while(p!=NULL)ave=ave+p->s; p=p->next;return ave/N;)8.编写函数 fun,其功能是:将所有大于 1 小于整数 m 的非存入

27、 xx 所指数组中,非的个数通过 k 返回。例如,若输入 17,则应输出:46891012141516。注意:部分源程序在文件 PROG1.C 中。改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#include <stdio.h>void fun( int m, int *k, int xx )main()int m, n, zz100; void NONO ();printf( "nPlease enter an integer number between 10 and 100: " ); scanf(&qu

28、ot;%d", &n );fun( n, &m, zz );printf( "nnThere are %d non-pri for( n = 0; n < m; n+ )printf( "n%4d", zzn );NONO();mbers less than %d:", m, n );void NONO()/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */int m, n, zz100; FILE *rf, *wf ;rf = fopen("in.dat",&quo

29、t;r") ;wf = fopen("out.dat","w") ;fscanf( rf, "%d", &n );fun( n, &m, zz );fprintf(wf, "%dn%dn", m, n ); for( n = 0; n < m; n+ )fprintf(wf, "%dn", zzn ); fclose(rf) ;fclose(wf) ;【参考】void fun( int m, int *k, int xx )int i,j,n=0;for(i=4;

30、i<m;i+)/*找出大于 1 小于整数 m 的非*/for(j=2;j<i;j+) if(i%j=0) break;if(j<i) xxn+=i;*k=n;/*返回非的个数*/9.编写函数 fun,其功能是:求 ss 所指字符串中指定字符的个数,并返回此值。例如,若输入字符串 123412132,输入字符为 1,则输出 3。注意:部分源程序在文件 PROG1.C 中。改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#include <stdio.h>#include <string.h> #define

31、M 81int fun(char *ss, char c)main()charaM, ch; void NONO ();printf("nPlease enter a string:"); gets(a); printf("nPlease enter a char:"); ch = getchar(); printf("nThe number of the char is: %dn", fun(a, ch); NONO ( );void NONO ( )/* 本函数用于打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。*

32、/int i ;FILE *rf, *wf ;char aM, bM, ch ;rf = fopen("in.dat","r") ;wf = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i+) fscanf(rf, "%s", a) ;fscanf(rf, "%s", b) ; ch = *b ;fprintf(wf, "%c=%dn", ch, fun(a, ch) ;fclose(rf) ; fclos

33、e(wf) ;【参考】int fun(char *ss, char c)int i=0;for(;*ss!='0'ss+) if(*ss=c)i+;/*求出 ss 所指字符串中指定字符的个数*/return i;10.编写函数 fun,其功能是:计算 n 门课程的平均分,结果作为函数值返回。例如:若有 5 门课程的成绩是:90.5,72,80,61.5,55,则函数的值为:71.80。注意:部分源程序在文件 PROG1.C 中。改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中的填入你编写的若干语句。#include <stdio.h>flo

34、atfun ( float*a ,intn )main() float score30=90.5, 72, 80, 61.5, 55, aver; void NONO ();aver = fun( score, 5 );printf( "nAverage scoreis: %5.2fn", aver); NONO ( );void NONO ( )/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE *fp, *wf ; int i, j ;float aver, score5 ;fp = fopen("in.dat",&quo

35、t;r") ;wf = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i+) for(j = 0 ; j < 5 ; j+) fscanf(fp,"%f,",&scorej) ; aver = fun(score, 5) ;fprintf(wf, "%5.2fn", aver) ;fclose(fp) ; fclose(wf) ;【参考】floatfun ( float*a ,intn )int i;float av=0.0;for(i=0;

36、i<n;i+) /*求分数的总和*/av=av+ai;return(av/n);/*返回平均值*/11.学生的由学号和成绩组成,N 名学生的数据已放入主函数中的结构体数组 s 中,请编写函数 fun,其功能是:把分数最高的学生数据放在 b 所指的数组中。注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。注意:部分源程序在文件 PROG1.C 中。改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#include <stdio.h>#define typedefchar int STREC;Nstruct16num10

37、;s;intfun( STREC*a, STREC *b )main()STRECsN="GA05",85,"GA03",76,"GA02",69,"GA04",85,"GA01",91,"GA07",72,"GA08",64,"GA06",87,"GA015",85,"GA013",91,"GA012",64,"GA014",91,"GA011&

38、quot;,77,"GA017",64,"GA018",64,"GA016",72; STREChN;inti,n;FILE *out ; n=fun( s,h );printf("The %d highest score :n",n); for(i=0;i<n; i+)printf("%s%4dn",hi.num,hi.s); printf("n");out = fopen("out.dat","w") ;fprintf(out

39、, "%dn",n); for(i=0;i<n; i+)fprintf(out, "%4dn",hi.s);fclose(out);【参考】intfun( STREC*a, STREC *b )int i,j=0,max=a0.s;/*找出最大值*/for(i=0;i<N;i+) if(max<ai.s) max=ai.s;for(i=0;i<N;i+)if(max=ai.s) bj+=ai;/*找出成绩与 max 相等的学生的,存入结构体 b 中*/return j;/*返回最高成绩的学生人数*/35.学生由学号和成绩组成,N

40、名学生的数据已放入主函数中的结构体数组中,请编写函数 fun,其功能是:把分数最低的学生数据放入 b 所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生人数。注意:部分源程序在文件 PROG1.C 中。改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#include <stdio.h>#define typedefchar int STREC;Nstruct16num10;s;intfun( STREC*a, STREC *b )main()STRECsN="GA05",85,"GA0

41、3",76,"GA02",69,"GA04",85,"GA01",91,"GA07",72,"GA08",64,"GA06",87,"GA015",85,"GA013",91,"GA012",64,"GA014",91,"GA011",91,"GA017",64,"GA018",64,"GA016",72;

42、STREChN;inti,n;FILE *out ; n=fun( s,h );printf("The %d lowest score :n",n); for(i=0;i<n; i+)printf("%s%4dn",hi.num,hi.s);printf("n");out = fopen("out.dat","w") ;fprintf(out, "%dn",n); for(i=0;i<n; i+)fprintf(out, "%4dn",hi.s

43、);fclose(out);【参考】intfun( STREC*a, STREC *b )int i,j=0,min=a0.s; for(i=0;i<N;i+)if(min>ai.s)min=ai.s;/*找出最小值*/for(i=0;i<N;i+) if(min=ai.s)bj+=ai;/*找出成绩与 min 相等的学生的return j;,存入结构体 b 中*/12.规定输入的字符串中只包含字母和*号。请编写函数 fun,其功能是:除了字符串前导的*号之外,将串中其它*号全部删除。在编写函数时,不得使用 C 语言提供的字符串函数。例如,字符串中的内容为:*A*BC*DEF

44、*G*,删除后,字符串中的内容应当是:*ABCDEFG。注意:部分源程序在文件 PROG1.C 中。改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#include <stdio.h> voidfun( char *a )/* 以下代码int i=0,k;参考 */while(ai='*') i+;k=i;while(ai!='0')/* 以下程序段实现非*字符前移*/ak='0'main()chars81;void NONO (); printf("Enter a strin

45、g:n");gets(s); fun( s );printf("The string after deleted:n");puts(s); NONO();void NONO ()/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。FILE *in, *out ; int i ; char s81 ;in = fopen("in.dat","r") ;out = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i+) fscan

46、f(in, "%s", s) ;fun(s) ;*/fprintf(out, "%sn", s) ;fclose(in) ; fclose(out) ;【参考】voidfun( char *a )int i=0; char *p=a;while(*p&&*p='*')ai=*p; i+; p+;while(*p)if(*p!='*')ai=*p;i+; p+; ai='0'13.编写函数 void fun(char *tt,int pp),统计在 tt 所指的字符串中'a'到

47、'z'26 个小写字母各自出现的次数,并依次放在 pp 所指的数组中。例如,当输入字符串 abcdefgabcdeabc 后,程序的输出结果应该是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0注意:部分源程序在文件 PROG1.C 中。改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#include <stdio.h>#include <string.h>void fun(char *tt, int pp)main( ) char aa1000 ;

48、int bb26, k ; void NONO ( );printf( "nPlease enterfun(aa, bb ) ;a char string:" ) ; scanf("%s", aa) ;for ( k = 0 ; k < 26 ; k+ ) printf ("%d ", bbk) ; printf( "n" ) ;NONO ( ) ;void NONO ( )/* 本函数用于打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。*/char aa1000 ; int bb26, k,

49、 i ; FILE *rf, *wf ;rf = fopen("in.dat","r") ;wf = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i+) fscanf(rf, "%s", aa) ; fun(aa, bb) ;for ( k = 0 ; k < 26 ; k+ ) fprintf (wf, "%d ", bbk) ; fprintf(wf, "n" ) ;fclose(rf) ; fc

50、lose(wf) ;【参考】void fun(char *tt, int pp)int i;for(i=0;i<26;i+)ppi=0;/*初始化 pp 数组各元素为 0*/for(;*tt!='0'tt+) if(*tt>='a'&&*tt<='z')pp*tt-'a'+;14.规定输入的字符串中只包含字母和*号。请编写函数 fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。例如,字符串中的内容为:*A*BC*DEF*G*,删除后,字符串中的内容应当是:*A*BC*DEF*G。

51、在编写函数时,不得使用 C 语言提供的字符串函数。注意:部分源程序在文件 PROG1.C 中。改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#include <stdio.h> voidfun( char *a )main()chars81;void NONO (); printf("Enter a string:n");gets(s); fun( s );printf("The string after deleted:n");puts(s); NONO();void NONO ()/* 本

52、函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。FILE *in, *out ; int i ; char s81 ;in = fopen("in.dat","r") ;out = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i+) fscanf(in, "%s", s) ; fun(s) ;fprintf(out, "%sn", s) ;fclose(in) ; fclose(out) ;*/【参考】voidfun

53、( char *a )while(*a!='0') a+;a-;/*指针 a 指向字符串的尾部*/while(*a='*')a-;/*指针 a 指向最后一个字母*/*(a+1)='0'/*在字符串最后加上结束标志符*/15.编写函数 fun,其功能是:比较字符串的长度,(不得使用 C 语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符长度相同,则返回第一个字符串。例如,输入<CR>shanghai<CR>(<CR>为回车键),函数将返回 shanghai。注意:部分源程序在文件 PROG1.C 中

54、。改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#include <stdio.h>char*fun ( char *s,char *t)main ( ) char a20,b20; void NONO ();printf("Input 1th string:"); gets( a);printf("Input 2th string:");gets( b);printf("%sn",fun (a, b); NONO ();void NONO ( )/* 本函数用于打开文件,

55、输入数据,调用函数,输出数据,关闭文件。*/FILE *fp, *wf; int i ;char a20, b20;fp = fopen("in.dat","r");wf = fopen("out.dat","w"); for(i = 0 ; i < 10 ; i+) fscanf(fp, "%s %s", a, b);fprintf(wf, "%sn", fun(a, b);fclose(fp); fclose(wf);【参考】char*fun ( char *s,c

56、har *t)int i,j;for(i=0;si!= '0'i+);/*求字符串的长度*/for(j=0;tj!= '0'j+);if(i<=j) /*比较两个字符串的长度*/return t;/*函数返回较长的字符串,若两个字符串长度相等,则返回第 1 个字符串*/elsereturn s;16.学生的由学号成绩组成,N 名学生的数据已放入主函数中的结构体数组 s 中,请编写函数 fun,其功能是:函数返回该学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置1,作为函数值返回。(用 于字符串比较的函数是 s

57、trcmp)。注意:部分源程序在文件 PROG1.C 中。改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#include <stdio.h> #include <string.h>#define typedefchar int STREC;Nstruct16num10;s;STRECfun( STREC*a, char *b )main()STRECsN="GA005",85,"GA003",76,"GA002",69,"GA004",85,

58、"GA001",91,"GA007",72,"GA008",64,"GA006",87,"GA015",85,"GA013",91,"GA012",64,"GA014",91,"GA011",77,"GA017",64,"GA018",64,"GA016",72; STRECh;charm10;inti;FILE *out ;printf("The

59、 original data:n"); for(i=0; i<N; i+)if(i%4=0) printf("n");printf("%s %3d",si.num,si.s);printf("nnEnter the number:");gets(m); h=fun( s,m );printf("The data :"); printf("n%s%4dn",h.num,h.s); printf("n");out = fopen("out.dat&quo

60、t;,"w") ; h=fun(s,"GA013");fprintf(out,"%s%4dn",h.num,h.s);fclose(out);【参考】STRECfun( STREC*a, char *b )int i;STREC str="0",-1; /*若没找到指定的学号,在结构体变量中给学号置空串,给成绩置1*/for(i=0;i<N;i+)if(strcmp(ai.num,b)=0) /*找到指定学号的学生数据*/strai;str=ai;return str; /*返回学生*/17.编写函数 fun,其功能是:将两个两位数的正整数 a、b 合并成一个整数放在 c 中。合并的方式是:将 a 数的十位和个位数依次放在 c 数的十位和千位上,b 数的十位和个位数依次放在 c 数的百位和个位上。例如,当 a45,b12 时,调用该函数后,c5142。注意:部分源程序在文件 PROG1.C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论