1、C语言第五章部分上机作业解读1 /*编写函数int fun(int lim, int aaMAX),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数的个数。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */#include#include#define MAX 100int fun(int lim, int aaMAX)/*Begin*/*End*/ int main() FILE *wf; int limit,i,sum; int aaMAX; printf(输入一个整
2、数); scanf(%d,&limit); sum=fun(limit,aa); for(i=0;isum;i+) if(i%10=0&i!=0) /*每行输出10个数*/ printf(n ); printf(%5d ,aai); /*/ wf=fopen(debug2.out,w); sum=fun(15,aa); for(i=0;isum;i+) fprintf(wf,%dn,aai); fclose(wf);/*/return 0;2/*请编写函数fun,函数的功能是:求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 例如,若二维数组中的值为 1 3 5 7 9
3、 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0 则函数值为61。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:*/#include#include#define M 4#define N 5int fun( int a MN) /*Begin*/ /* End */void main() FILE *wf; int aaMN=1,3,5,7,9,2,9,9,9,4,6,9,9,9,8,1,3,5,7,10; int i, j, y; printf (The original data is :n
4、 ); for(i=0; iM;i+) for (j=0; jN;j+) printf(%6d ,aaij); printf(n ); y=fun(aa); printf(nThe sun: %dn ,y); printf(n );/*/ wf=fopen(debugout10.dat,w); fprintf (wf,%d,y); fclose(wf);/*/*编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用*作为结束输入的标志)。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试
5、题程序:*/#include#include#includevoid fun(char a81, int num, char max)/*Begin*/* End */void main() FILE *wf; char ss1081,ps81; char s381=abcd,deg,diegns,p81; int i=0,n; printf(输入若干个字符串:); gets(ssi); puts(ssi); while(!strcmp(ssi, *)=0) /*用4个星号作为结束输入的标志*/ i+; gets(ssi); puts(ssi); n=i; fun(ss,n,ps); prin
6、tf(nmax=%sn,ps);/*/ wf=fopen(debugout15.dat,w); fun(s,3,p); fprintf(wf,%s,p); fclose(wf);/*/*请编写一个函数fun,它的功能是:求出1到m(含m)之内能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。 例如,若传给m的值为50,则程序输出: 7 11 14 21 22 28 33 35 42 44 49 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */#include#include#define M
7、100int fun(int m, int a) /*Begin*/ /* End */void main() FILE *wf; int aaM,n,k; n=fun(50,aa); for(k=0;kn;k+) if(k+1)%20=0) /*每行输出20个数*/ printf(%4d,aak); printf(n); else printf(%4d,aak); printf(n);/*/ wf=fopen(debugout4.dat,w); for(k=0;kn;k+) fprintf(wf,%dn,aak); fclose(wf);/*/*请编写一个函数fun,它的功能是:将一个数字字
8、符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。例如,若输入字符串-1234,则函数把它转换为整数值-1234。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include #include long fun(char p) /*Begin*/ /* End */void main() FILE *wf; char s6; long n; printf(Enter a string:n); gets(s); n=fun(s); printf(%ldn,n);/*/ wf=fopen(debu
9、gout13.dat,w); fprintf (wf,%ld,fun(-1234); fclose(wf);/*/*请编写一个函数void fun(char ss),其功能是:将字符串ss中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入abc4EFg,则应输出aBc4EFg。 注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include #include void fun ( char ss) /*Begin*/ /* End */void main()char tt100
10、;FILE *out,*in;printf(Please enter an character string within 50 characters:n);gets(tt);printf(nnAfter changing,the stringn%s,tt);fun(tt);printf(nbecomesn %s,tt);/*/in=fopen(in14.dat,r);out=fopen(debugout14.dat,w);fgets(tt,16,in);strcat(tt,After changing the string);fun(tt);fprintf(out,%s,tt);fclose
11、(in);fclose(out);/*/*编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。例如,分别输入下面两个字符串: FirstString SecondString 则程序输出:FirstStringSecondString注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:*/#include#includevoid fun(char p1,char p2) /*Begin*/ /* End */void main() FILE *
12、wf,*in; char s180,s240; char p180=FirstString,p240=SecondString; 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,s2); printf(After invoking:n); printf(%sn,s1);/*/ in=fopen(in16.dat,r); wf=fopen(debugout16.dat,w); fscanf(in,%s %
13、s,p1,p2); fun(p1,p2); fprintf(wf,%s,p1); fclose(in); fclose(wf);/*/*请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。 例如,输入17,则应输出4 6 8 9 10 12 14 15 16。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: */#include#includeint fun(int m, int xx) /*Begin*/ /* End */void main() FILE *wf;
14、 int m, n, zz100; printf(nPlease enter an integer number between 10 and 100: ); scanf(%d,&n); m=fun(n,zz); printf(nnThere are %d non-prime numbers less than %d: ,m,n); for(n=0;nm;n+) printf(n %4d,zzn);/*/ wf=fopen(debugout7.dat,w); m=fun(30,zz); for(n=0;nm;n+) fprintf(wf,%dn,zzn); fclose(wf);/*/*请编写
15、一个函数 void fun(char tt,int pp),统计在tt字符串中a到z26个字母各自出现的次数,并依次放在pp所指数组中。例如,当输入字符串abcdefghabcdeabc后,程序的输出结果应该是:3 3 3 2 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include #include void fun(char tt,int pp ) /*Begin*/ /* End */void main(
16、) FILE *wf; char aa1000; int bb26, k; printf(nPlease enter a char string : ) ; scanf(%s,aa); fun(aa,bb); for (k=0 ;k26 ; k+) printf(%dn,bbk) ;/*/ wf=fopen(debugout02.dat,w); fun (abcdefgabcdeabc,bb) ; for (k=0 ;k26 ; k+) fprintf(wf,%dn,bbk) ; fclose(wf);/*/程序填空/*请补充函数fun,该函数的功能是:求一维数组xN的平均值,并对所得结果进行
17、四舍五入(保留两位小数)。例如,当x10=15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0,结果为:avg=15.030000。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序: */#include #include double fun(double x10) int i; long t; double avg=0.0; double sum=0.0; for(i=0;i10;i+)/*FILL*/ 1 ; avg=sum/10;/*FILL*/ avg= 2
18、 ;/*FILL*/ t= 3 ; avg=(double)t/100; return avg;void main() double avg,x10=15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0; int i; printf(nThe original data is :n); for(i=0;i10;i+) printf(%6.1f,xi); printf(nn); avg=fun(x); printf(average=%fnn,avg);/*请补充函数fun,该函数的功能是:整除x且是偶数的数,把这些数保存在数组bb中,并按从大到小的顺
19、序输出。例如当x=20时,依次输出:20 10 4 2。注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:*/#include void fun(int k,int bb) int i; int j=0;/*FILL*/ for( 1 ;i=0;i-) printf(%d ,bbi);int main() int k=1; int bb100; printf(nPlease input X=); scanf(%d,&k); fun(k,bb); return 0;/*请补充函数fun,该函数的功能是:整除x且是
20、偶数的数,把这些数保存在数组bb中,并按从大到小的顺序输出。例如当x=20时,依次输出:20 10 4 2。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:*/#include #include void fun(int k,int bb) int i; int j=0;/*FILL*/ for( 1 ;i=0;i-) printf(%d ,bbi);void main() int k=1; int bb100; printf(nPlease input X=); scanf(%d,&k); fun(k,bb)
21、;/*请补充main函数,该函数的功能是:从键盘输入一个字符串及一个指定字符,然后把这个字符及其后面的所有字符全部删除。 结果仍然保存在原串中。 例如,输入abcdef,指定字符为e,则输出abcd。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。 试题程序:*/#include #include #define N 80int main() int i=0; char strN; char ch; printf(n Input a string:n); gets(str); printf(n Input a ch
22、arator;n); scanf(%c, &ch); while(stri!=0) if(stri=ch)/*FILL*/ /*FILL*/ ; /*FILL*/ stri= ; printf(n* display string *n); puts(str); return 0;/*请补充函数fun,该函数的功能是:把一个整数转换成字符串,并倒序保存在字符数组str中。例如,当n=13572468时,str=86427531。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:*/#include #include #define N 80char strN;void fun(long int n) int i=0;/*FILL*/ while( 1 ) /*FILL*/ stri= 2 ; n/=10; i+; /*FILL*/ 3 ;void main() long int n=13572468; printf(* the origial data *n); printf(n=%ld,n); fun(n); printf(n%s,str);/*请补充main
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1