C语言第五章部分上机作业解读.docx
- 文档编号:29450925
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:32
- 大小:21.24KB
C语言第五章部分上机作业解读.docx
《C语言第五章部分上机作业解读.docx》由会员分享,可在线阅读,更多相关《C语言第五章部分上机作业解读.docx(32页珍藏版)》请在冰豆网上搜索。
C语言第五章部分上机作业解读
1/*编写函数intfun(intlim,intaa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,
该函数返回所求出的素数的个数。
注意:
部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
*/
#include
#include
#defineMAX100
intfun(intlim,intaa[MAX])
{
/**********Begin**********/
/**********End**********/
}
intmain()
{
FILE*wf;
intlimit,i,sum;
intaa[MAX];
printf("输入一个整数");
scanf("%d",&limit);
sum=fun(limit,aa);
for(i=0;i { if(i%10==0&&i! =0)/*每行输出10个数*/ printf("\n"); printf("%5d",aa[i]); } /******************************/ wf=fopen("debug\\2.out","w"); sum=fun(15,aa); for(i=0;i fprintf(wf,"%d\n",aa[i]); fclose(wf); /*****************************/ return0; } 2/*请编写函数fun,函数的功能是: 求出二维数组周边元素之和,作为函数值返回。 二维数组中的值在主函数中赋予。 例如,若二维数组中的值为 13579 29994 69998 13570 则函数值为61。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include #defineM4 #defineN5 intfun(inta[M][N]) { /***************Begin************/ /***************End************/ } voidmain() { FILE*wf; intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,10}}; inti,j,y; printf("Theoriginaldatais: \n"); for(i=0;i {for(j=0;j printf("%6d",aa[i][j]); printf("\n"); } y=fun(aa); printf("\nThesun: %d\n",y); printf("\n"); /******************************/ wf=fopen("debug\\out10.dat","w"); fprintf(wf,"%d",y); fclose(wf); /*****************************/ } /*编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include #include voidfun(chara[][81],intnum,charmax[]) { /***************Begin************/ /***************End************/ } voidmain() { FILE*wf; charss[10][81],ps[81]; chars[3][81]={"abcd","deg","diegns"},p[81]; inti=0,n; printf("输入若干个字符串: "); gets(ss[i]); puts(ss[i]); while(! strcmp(ss[i],"****")==0)/*用4个星号作为结束输入的标志*/ { i++; gets(ss[i]); puts(ss[i]); } n=i; fun(ss,n,ps); printf("\nmax=%s\n",ps); /******************************/ wf=fopen("debug\\out15.dat","w"); fun(s,3,p); fprintf(wf,"%s",p); fclose(wf); /*****************************/ } /*请编写一个函数fun,它的功能是: 求出1到m(含m)之内能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。 例如,若传给m的值为50,则程序输出: 711142122283335424449 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include #defineM100 intfun(intm,inta[]) { /***************Begin************/ /***************End************/ } voidmain() { FILE*wf; intaa[M],n,k; n=fun(50,aa); for(k=0;k if((k+1)%20==0)/*每行输出20个数*/ {printf("%4d",aa[k]); printf("\n"); } else printf("%4d",aa[k]); printf("\n"); /******************************/ wf=fopen("debug\\out4.dat","w"); for(k=0;k fprintf(wf,"%d\n",aa[k]); fclose(wf); /*****************************/ } /*请编写一个函数fun,它的功能是: 将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。 例如,若输入字符串"-1234",则函数把它转换为整数值-1234。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include longfun(charp[]) { /***************Begin************/ /***************End************/ } voidmain() { FILE*wf; chars[6]; longn; printf("Enterastring: \n"); gets(s); n=fun(s); printf("%ld\n",n); /******************************/ wf=fopen("debug\\out13.dat","w"); fprintf(wf,"%ld",fun("-1234")); fclose(wf); /*****************************/ } /*请编写一个函数voidfun(charss[]),其功能是: 将字符串ss中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 例如,若输入abc4EFg,则应输出aBc4EFg。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include voidfun(charss[]) { /***************Begin************/ /***************End************/ } voidmain() { chartt[100]; FILE*out,*in; printf("Pleaseenterancharacterstringwithin50characters: \n"); gets(tt); printf("\n\nAfterchanging,thestring\n%s",tt); fun(tt); printf("\nbecomes\n%s",tt); /******************************/ in=fopen("in14.dat","r"); out=fopen("debug\\out14.dat","w"); fgets(tt,16,in); strcat(tt,"Afterchangingthestring"); fun(tt); fprintf(out,"%s",tt); fclose(in); fclose(out); /******************************/ } /*编写一个函数fun,它的功能是: 实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。 例如,分别输入下面两个字符串: FirstString SecondString 则程序输出: FirstStringSecondString 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include voidfun(charp1[],charp2[]) { /***************Begin************/ /***************End************/ } voidmain() { FILE*wf,*in; chars1[80],s2[40]; charp1[80]="FirstString",p2[40]="SecondString"; printf("Enters1ands2: \n"); scanf("%s%s",s1,s2); printf("s1=%s\n",s1); printf("s2=%s\n",s2); printf("Invokefun(s1,s2): \n"); fun(s1,s2); printf("Afterinvoking: \n"); printf("%s\n",s1); /******************************/ in=fopen("in16.dat","r"); wf=fopen("debug\\out16.dat","w"); fscanf(in,"%s%s",p1,p2); fun(p1,p2); fprintf(wf,"%s",p1); fclose(in); fclose(wf); /*****************************/ } /*请编写函数fun,其功能是: 将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。 例如,输入17,则应输出46891012141516。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include intfun(intm,intxx[]) { /***************Begin************/ /***************End************/ } voidmain() { FILE*wf; intm,n,zz[100]; printf("\nPleaseenteranintegernumberbetween10and100: "); scanf("%d",&n); m=fun(n,zz); printf("\n\nThereare%dnon-primenumberslessthan%d: ",m,n); for(n=0;n printf("\n%4d",zz[n]); /******************************/ wf=fopen("debug\\out7.dat","w"); m=fun(30,zz); for(n=0;n fprintf(wf,"%d\n",zz[n]); fclose(wf); /*****************************/ } /*请编写一个函数voidfun(chartt[],intpp[]),统计在tt字符串中"a"到"z"26个字母各自出现的次数, 并依次放在pp所指数组中。 例如,当输入字符串abcdefghabcdeabc后, 程序的输出结果应该是: 333221110000000000000000000 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include voidfun(chartt[],intpp[]) { /***************Begin************/ /***************End************/ } voidmain() { FILE*wf; charaa[1000]; intbb[26],k; printf("\nPleaseenteracharstring: "); scanf("%s",aa); fun(aa,bb); for(k=0;k<26;k++) printf("%d\n",bb[k]); /******************************/ wf=fopen("debug\\out02.dat","w"); fun("abcdefgabcdeabc",bb); for(k=0;k<26;k++) fprintf(wf,"%d\n",bb[k]); fclose(wf); /*****************************/ } 程序填空 /*请补充函数fun,该函数的功能是: 求一维数组x[N]的平均值,并对所得结果进行四舍五入(保留两位小数)。 例如,当x[10]={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 doublefun(doublex[10]) { inti; longt; doubleavg=0.0; doublesum=0.0; for(i=0;i<10;i++) /**********FILL**********/ [1]; avg=sum/10; /**********FILL**********/ avg=[2]; /**********FILL**********/ t=[3]; avg=(double)t/100; returnavg; } voidmain() { doubleavg,x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0}; inti; printf("\nTheoriginaldatais: \n"); for(i=0;i<10;i++) printf("%6.1f",x[i]); printf("\n\n"); avg=fun(x); printf("average=%f\n\n",avg); } /*请补充函数fun,该函数的功能是: 整除x且是偶数的数,把这些数保存在数组bb中,并按从大到小的顺序输出。 例如当x=20时,依次输出: 201042。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: */ #include voidfun(intk,intbb[]) { inti; intj=0; /**********FILL**********/ for([1];i<=k;i++) { /**********FILL**********/ if([2]) bb[j++]=i; } printf("\n\n"); /**********FILL**********/ for(i=[3];i>=0;i--) printf("%d",bb[i]); } intmain() { intk=1; intbb[100]; printf("\nPleaseinputX="); scanf("%d",&k); fun(k,bb); return0; } /*请补充函数fun,该函数的功能是: 整除x且是偶数的数,把这些数保存在数组bb中,并按从大到小的顺序输出。 例如当x=20时,依次输出: 201042。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: */ #include #include voidfun(intk,intbb[]) { inti; intj=0; /**********FILL**********/ for([1];i<=k;i++) { /**********FILL**********/ if([2]) bb[j++]=i; } printf("\n\n"); /**********FILL**********/ for(i=[3];i>=0;i--) printf("%d",bb[i]); } voidmain() { intk=1; intbb[100]; printf("\nPleaseinputX="); scanf("%d",&k); fun(k,bb); } /*请补充main函数,该函数的功能是: 从键盘输入一个字符串及一个指定字符,然后把这个字符及其后面的所有字符全部删除。 结果仍然保存在原串中。 例如,输入"abcdef",指定字符为"e",则输出"abcd"。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。 试题程序: */ #include #include #defineN80 intmain() { inti=0; charstr[N]; charch; printf("\nInputastring: \n"); gets(str); printf("\nInputacharator;\n"); scanf("%c",&ch); while(str[i]! ='\0') { if(str[i]==ch) /**********FILL**********/ /**********FILL**********/ ; } /**********FILL**********/ str[i]=; printf("\n***displaystring***\n"); puts(str); return0; } /*请补充函数fun,该函数的功能是: 把一个整数转换成字符串,并倒序保存在字符数组str中。 例如,当n=13572468时,str="86427531"。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: */ #include #include #defineN80 charstr[N]; voidfun(longintn) { inti=0; /**********FILL**********/ while([1]) { /**********FILL**********/ str[i]=[2]; n/=10; i++; } /**********FILL**********/ [3]; } voidmain() { longintn=13572468; printf("***theorigialdata***\n"); printf("n=%ld",n); fun(n); printf("\n%s",str); } /*请补充main
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第五 部分 上机 作业 解读