程序设计题汇总.docx
《程序设计题汇总.docx》由会员分享,可在线阅读,更多相关《程序设计题汇总.docx(24页珍藏版)》请在冰豆网上搜索。
程序设计题汇总
1【程序设计】
功能:
将tt数组中的小写字母都改为对应的大写字母,其它字符删除。
例如:
a4bdsk88*,结果:
ABDSK
voidTestFunc();
#include
voidfun(chartt[])
{/*********Begin**********/
inti,j=0;
for(i=0;tt[i];i++)
if(('a'<=tt[i])&&(tt[i]<='z'))
tt[j++]=tt[i]-32;
tt[j]=0;
/**********End**********/}
main()
{chartt[81];
printf("\nPleaseenterastring:
");
gets(tt);
fun(tt);
printf("\nTheresultstringis:
\n%s",tt);
TestFunc();}
voidTestFunc()
{ILE*IN,*OUT;
chars[100];
IN=fopen("in.dat","r");
if(IN==NULL)
{printf("ReadFILEError");}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{printf("WriteFILEError");
fgets(s,100,IN);
fun(s);
fprintf(OUT,"%s",s);
fclose(IN);
fclose(OUT)}
2【程序设计】
删除bb[]数组中所有值为y的元素,函数返回值为删除y后剩余数据的个数。
数组元素中的值和y的值由函数通过键盘输入。
#include"stdio.h"
#include"conio.h"
#defineM20
intfun(intbb[],intn,inty)
{inti,k=0;
for(i=0;i{if(bb[i]!=y)bb[k++]=bb[i];}returnk;/**********End**********}}voidmain(){intaa[M],n,y,k;voidTestFunc();printf("\n请输入n:");scanf("%d",&n);printf("\n请输入%d个正整数:\n",n);for(k=0;kscanf("%d",&aa[k]);printf("输入的源数据为:\n");for(k=0;kprintf("%5d",aa[k]);printf("\n请输入要删除的数:");scanf("%d",&y);n=fun(aa,n,y);printf("删除%d之后数据为:\n",y);for(k=0;kprintf("%4d",aa[k]);printf("\n");TestFunc();}voidTestFunc(){FILE*IN,*OUT;intn;inti[10];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(n=0;n<10;n++){fscanf(IN,"%d",&i[n]);}n=fun(i,n,3);for(o=0;o{fprintf(OUT,"%d\n",i[o]);}fclose(IN);fclose(OUT);}3【程序设计】功能:对任意输入的x,用下式计算并输出y的值。-1x<0y=0x=01x>0#include"stdio.h"intfun(intn){/*********Begin**********//**********End**********/}voidmain(){voidTestFunc();intx,y;printf("enterx:");scanf("%d",&x);y=fun(x);printf("x=%d,y=%d\n",x,y);TestFunc()}voidTestFunc(){FILE*IN,*OUT;inti;intiIN;longintiOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%ld\n",iOUT);}fclose(IN);fclose(OUT);}4【程序设计】功能:从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。例如:7是素数,8不是素数。请编写fun函数。素数是仅能被1和自身整除的数。#include"stdio.h"#include"math.h"intfun(intn){inti;intj;j=1;for(i=2;i{if(n%i==0)j=0;}returnj;}voidmain(){voidTestFunc();intm,flag;printf("inputaninteger:");scanf("%d",&m);flag=fun(m);if(flag)printf("%disaprime.\n",m);elseprintf("%disnotaprime.\n",m);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("5.in","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("5.out","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<10;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}5【程序设计】请写一函数fun,该函数的功能是:把数组a中的数按从大到小的顺序排列。数组的值从主函中输入,排序结果也在主函数中输出。部分源程序如下:#include#defineN10voidfun(inta[],intn){inti,j,t;for(i=0;i{for(j=0;j{if(a[j]{t=a[j];a[j]=a[j+1];a[j+1]=t;}}}}voidmain(){inti=0;inta[N]={45,34,78,38,87,98,23,67,76,56};FILE*OUT;fun(a,10);printf("\n排序后的结果为:\n");for(i=0;i<=9;i++)printf("%5d",a[i]);printf("\n");if((OUT=fopen("out.dat","w"))==NULL)printf("写入文件失败!");for(i=0;i<=9;i++)fprintf(OUT,"%d\n",a[i]);fclose(OUT);}6【程序设计】功能:将主函数中输入的字符串反序存放。例如:输入字符串"abcdefg",则应输出"gfedcba"。#include"stdio.h"#include"string.h"#include"conio.h"#defineN81voidfun(charstr[],intn){inti,j;charc;for(i=0,j=n-1;i{c=str[i];str[i]=str[j];str[j]=c;}}voidmain(){voidTestFunc();chars[N];intl;printf("inputastring:");gets(s);l=strlen(s);fun(s,l);printf("Thenewstringis:");puts(s);TestFunc();}voidTestFunc(){FILE*IN,*OUT;charsIN[20],*sOUT;intiLENGTH;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iLENGTH=strlen(sIN);sOUT=sIN;fun(sIN,iLENGTH);fprintf(OUT,"%s\n",sOUT);fclose(IN);fclose(OUT);}7【程序设计】功能:实现两个整数的交换。例如:给a和b分别输入:60和65,输出为:a=65b=60#include"stdio.h"#include"conio.h"voidfun(int*a,int*b){intt;t=*a;*a=*b;*b=t;}main(){inta,b;voidTestFunc();printf("Entera,b:");scanf("%d%d",&a,&b);fun(&a,&b);printf("a=%db=%d\n",a,b);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inta,b,n;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(n=0;n<5;n++){fscanf(IN,"%d%d",&a,&b);fun(&a,&b);fprintf(OUT,"a=%db=%d\n",a,b);}fclose(IN);fclose(OUT);}8【程序设计】功能:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如:当a=45,b=12。调用该函数后,c=2415。#include"stdio.h"longfun(inta,intb){longc;inti,j,k,t;i=a/10;j=a%10;k=b/10;t=b%10;c=t*1000+100*i+10*k+j;returnc;voidmain(){inta,b;longc;voidNONO();printf("Inputa,b:");scanf("%d%d",&a,&b);c=fun(a,b);printf("Theresultis:%ld\n",c);NONO();}voidNONO(){FILE*rf,*wf;inti,a,b;longc;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}fclose(rf);fclose(wf);0【程序设计】功能:输入一个字符串,过滤此串只保留串中的字母字符,并统计新生成串中包含的字母个数。例如:输入的字符串为ab234$df4,新生成的串为abdf。#include"stdio.h"#include"conio.h"#defineN80voidmain(){charstr[N];intfun(charptr[]);voidTestFunc();ints;printf("inputastring:");gets(str);printf("Theoriginalstringis:");puts(str);s=fun(str);printf("Thenewstringis:");puts(str);printf("Thereare%dcharinthenewstring.",s);TestFunc();}intfun(charptr[]){/*********Begin**********/inti,j;for(i=0,j=0;ptr[i]!='\0';i++)if(ptr[i]<='z'&&ptr[i]>='a'||ptr[i]<='Z'&&ptr[i]>='A'){ptr[j]=ptr[i];j++;}ptr[j]='\0';return(j);voidTestFunc(){FILE*IN,*OUT;charsIN[N];intiOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iOUT=fun(sIN);fprintf(OUT,"%d%s\n",iOUT,sIN);fclose(IN);fclose(OUT);11【程序设计】功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。注意:n的值不大于1000。例如:n的值为855时,应输出704。#include”stdio.h”intfun(intn){ints=0,i;for(i=2;iif(n%i==0)s=s+i;returns;voidmain(){voidTestFunc();printf("s=%d\n",fun(855));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}12【程序设计】、题目:用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。#include"stdlib.h"#include"stdio.h"#defineNintsum(inta[][N]){/*********Begin**********/inti,j,k=0;for(i=0;ifor(j=N-1-i;jk=k+a[i][j];return(k);/**********End**********/}voidmain(){inta[N][N],i,j;voidTestFunc();for(i=0;i{for(j=0;j{a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数printf("%3d",a[i][j]);}printf("\n");}printf("===================\n");printf("sum=%5d\n",sum(a));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intm,n;inti[3][3];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(m=0;m<3;m++)for(n=0;n<3;n++)fscanf(IN,"%d",&i[m][n]);o=sum(i);fprintf(OUT,"%d\n",o);fclose(IN);fclose(OUT);13【程序设计】题目:用while语句求1~n的累计和。注意:请在Begin和End注释行之间填写代码,所有注释语句都不能删除。#includevoidTestFunc();intfun(intn){/*********Begin**********/inti=1,sum=0;while(i<=n){sum=sum+i;i++;}returnsum;/**********End**********/}voidmain(){intsum=0;sum=fun(100);printf("sum=%d\n",sum);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inti;intiIN,iOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}14【程序设计】--------------------------------------------------功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函输出。#include"stdio.h"intfun(intx[],intn){intmin,i;min=x[0];for(i=1;iif(x[i]returnmin;/**********End**********/}voidmain(){voidTestFunc();inta[10],i,min;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");min=fun(a,10);printf("%d\n",min);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen("4.in","r");if(IN=
{
if(bb[i]!
=y)
bb[k++]=bb[i];
}
returnk;
/**********End**********}}
voidmain()
{intaa[M],n,y,k;
printf("\n请输入n:
");scanf("%d",&n);
printf("\n请输入%d个正整数:
\n",n);
for(k=0;kscanf("%d",&aa[k]);printf("输入的源数据为:\n");for(k=0;kprintf("%5d",aa[k]);printf("\n请输入要删除的数:");scanf("%d",&y);n=fun(aa,n,y);printf("删除%d之后数据为:\n",y);for(k=0;kprintf("%4d",aa[k]);printf("\n");TestFunc();}voidTestFunc(){FILE*IN,*OUT;intn;inti[10];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(n=0;n<10;n++){fscanf(IN,"%d",&i[n]);}n=fun(i,n,3);for(o=0;o{fprintf(OUT,"%d\n",i[o]);}fclose(IN);fclose(OUT);}3【程序设计】功能:对任意输入的x,用下式计算并输出y的值。-1x<0y=0x=01x>0#include"stdio.h"intfun(intn){/*********Begin**********//**********End**********/}voidmain(){voidTestFunc();intx,y;printf("enterx:");scanf("%d",&x);y=fun(x);printf("x=%d,y=%d\n",x,y);TestFunc()}voidTestFunc(){FILE*IN,*OUT;inti;intiIN;longintiOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%ld\n",iOUT);}fclose(IN);fclose(OUT);}4【程序设计】功能:从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。例如:7是素数,8不是素数。请编写fun函数。素数是仅能被1和自身整除的数。#include"stdio.h"#include"math.h"intfun(intn){inti;intj;j=1;for(i=2;i{if(n%i==0)j=0;}returnj;}voidmain(){voidTestFunc();intm,flag;printf("inputaninteger:");scanf("%d",&m);flag=fun(m);if(flag)printf("%disaprime.\n",m);elseprintf("%disnotaprime.\n",m);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("5.in","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("5.out","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<10;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}5【程序设计】请写一函数fun,该函数的功能是:把数组a中的数按从大到小的顺序排列。数组的值从主函中输入,排序结果也在主函数中输出。部分源程序如下:#include#defineN10voidfun(inta[],intn){inti,j,t;for(i=0;i{for(j=0;j{if(a[j]{t=a[j];a[j]=a[j+1];a[j+1]=t;}}}}voidmain(){inti=0;inta[N]={45,34,78,38,87,98,23,67,76,56};FILE*OUT;fun(a,10);printf("\n排序后的结果为:\n");for(i=0;i<=9;i++)printf("%5d",a[i]);printf("\n");if((OUT=fopen("out.dat","w"))==NULL)printf("写入文件失败!");for(i=0;i<=9;i++)fprintf(OUT,"%d\n",a[i]);fclose(OUT);}6【程序设计】功能:将主函数中输入的字符串反序存放。例如:输入字符串"abcdefg",则应输出"gfedcba"。#include"stdio.h"#include"string.h"#include"conio.h"#defineN81voidfun(charstr[],intn){inti,j;charc;for(i=0,j=n-1;i{c=str[i];str[i]=str[j];str[j]=c;}}voidmain(){voidTestFunc();chars[N];intl;printf("inputastring:");gets(s);l=strlen(s);fun(s,l);printf("Thenewstringis:");puts(s);TestFunc();}voidTestFunc(){FILE*IN,*OUT;charsIN[20],*sOUT;intiLENGTH;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iLENGTH=strlen(sIN);sOUT=sIN;fun(sIN,iLENGTH);fprintf(OUT,"%s\n",sOUT);fclose(IN);fclose(OUT);}7【程序设计】功能:实现两个整数的交换。例如:给a和b分别输入:60和65,输出为:a=65b=60#include"stdio.h"#include"conio.h"voidfun(int*a,int*b){intt;t=*a;*a=*b;*b=t;}main(){inta,b;voidTestFunc();printf("Entera,b:");scanf("%d%d",&a,&b);fun(&a,&b);printf("a=%db=%d\n",a,b);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inta,b,n;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(n=0;n<5;n++){fscanf(IN,"%d%d",&a,&b);fun(&a,&b);fprintf(OUT,"a=%db=%d\n",a,b);}fclose(IN);fclose(OUT);}8【程序设计】功能:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如:当a=45,b=12。调用该函数后,c=2415。#include"stdio.h"longfun(inta,intb){longc;inti,j,k,t;i=a/10;j=a%10;k=b/10;t=b%10;c=t*1000+100*i+10*k+j;returnc;voidmain(){inta,b;longc;voidNONO();printf("Inputa,b:");scanf("%d%d",&a,&b);c=fun(a,b);printf("Theresultis:%ld\n",c);NONO();}voidNONO(){FILE*rf,*wf;inti,a,b;longc;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}fclose(rf);fclose(wf);0【程序设计】功能:输入一个字符串,过滤此串只保留串中的字母字符,并统计新生成串中包含的字母个数。例如:输入的字符串为ab234$df4,新生成的串为abdf。#include"stdio.h"#include"conio.h"#defineN80voidmain(){charstr[N];intfun(charptr[]);voidTestFunc();ints;printf("inputastring:");gets(str);printf("Theoriginalstringis:");puts(str);s=fun(str);printf("Thenewstringis:");puts(str);printf("Thereare%dcharinthenewstring.",s);TestFunc();}intfun(charptr[]){/*********Begin**********/inti,j;for(i=0,j=0;ptr[i]!='\0';i++)if(ptr[i]<='z'&&ptr[i]>='a'||ptr[i]<='Z'&&ptr[i]>='A'){ptr[j]=ptr[i];j++;}ptr[j]='\0';return(j);voidTestFunc(){FILE*IN,*OUT;charsIN[N];intiOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iOUT=fun(sIN);fprintf(OUT,"%d%s\n",iOUT,sIN);fclose(IN);fclose(OUT);11【程序设计】功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。注意:n的值不大于1000。例如:n的值为855时,应输出704。#include”stdio.h”intfun(intn){ints=0,i;for(i=2;iif(n%i==0)s=s+i;returns;voidmain(){voidTestFunc();printf("s=%d\n",fun(855));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}12【程序设计】、题目:用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。#include"stdlib.h"#include"stdio.h"#defineNintsum(inta[][N]){/*********Begin**********/inti,j,k=0;for(i=0;ifor(j=N-1-i;jk=k+a[i][j];return(k);/**********End**********/}voidmain(){inta[N][N],i,j;voidTestFunc();for(i=0;i{for(j=0;j{a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数printf("%3d",a[i][j]);}printf("\n");}printf("===================\n");printf("sum=%5d\n",sum(a));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intm,n;inti[3][3];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(m=0;m<3;m++)for(n=0;n<3;n++)fscanf(IN,"%d",&i[m][n]);o=sum(i);fprintf(OUT,"%d\n",o);fclose(IN);fclose(OUT);13【程序设计】题目:用while语句求1~n的累计和。注意:请在Begin和End注释行之间填写代码,所有注释语句都不能删除。#includevoidTestFunc();intfun(intn){/*********Begin**********/inti=1,sum=0;while(i<=n){sum=sum+i;i++;}returnsum;/**********End**********/}voidmain(){intsum=0;sum=fun(100);printf("sum=%d\n",sum);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inti;intiIN,iOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}14【程序设计】--------------------------------------------------功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函输出。#include"stdio.h"intfun(intx[],intn){intmin,i;min=x[0];for(i=1;iif(x[i]returnmin;/**********End**********/}voidmain(){voidTestFunc();inta[10],i,min;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");min=fun(a,10);printf("%d\n",min);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen("4.in","r");if(IN=
scanf("%d",&aa[k]);
printf("输入的源数据为:
\n");
for(k=0;kprintf("%5d",aa[k]);printf("\n请输入要删除的数:");scanf("%d",&y);n=fun(aa,n,y);printf("删除%d之后数据为:\n",y);for(k=0;kprintf("%4d",aa[k]);printf("\n");TestFunc();}voidTestFunc(){FILE*IN,*OUT;intn;inti[10];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(n=0;n<10;n++){fscanf(IN,"%d",&i[n]);}n=fun(i,n,3);for(o=0;o{fprintf(OUT,"%d\n",i[o]);}fclose(IN);fclose(OUT);}3【程序设计】功能:对任意输入的x,用下式计算并输出y的值。-1x<0y=0x=01x>0#include"stdio.h"intfun(intn){/*********Begin**********//**********End**********/}voidmain(){voidTestFunc();intx,y;printf("enterx:");scanf("%d",&x);y=fun(x);printf("x=%d,y=%d\n",x,y);TestFunc()}voidTestFunc(){FILE*IN,*OUT;inti;intiIN;longintiOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%ld\n",iOUT);}fclose(IN);fclose(OUT);}4【程序设计】功能:从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。例如:7是素数,8不是素数。请编写fun函数。素数是仅能被1和自身整除的数。#include"stdio.h"#include"math.h"intfun(intn){inti;intj;j=1;for(i=2;i{if(n%i==0)j=0;}returnj;}voidmain(){voidTestFunc();intm,flag;printf("inputaninteger:");scanf("%d",&m);flag=fun(m);if(flag)printf("%disaprime.\n",m);elseprintf("%disnotaprime.\n",m);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("5.in","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("5.out","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<10;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}5【程序设计】请写一函数fun,该函数的功能是:把数组a中的数按从大到小的顺序排列。数组的值从主函中输入,排序结果也在主函数中输出。部分源程序如下:#include#defineN10voidfun(inta[],intn){inti,j,t;for(i=0;i{for(j=0;j{if(a[j]{t=a[j];a[j]=a[j+1];a[j+1]=t;}}}}voidmain(){inti=0;inta[N]={45,34,78,38,87,98,23,67,76,56};FILE*OUT;fun(a,10);printf("\n排序后的结果为:\n");for(i=0;i<=9;i++)printf("%5d",a[i]);printf("\n");if((OUT=fopen("out.dat","w"))==NULL)printf("写入文件失败!");for(i=0;i<=9;i++)fprintf(OUT,"%d\n",a[i]);fclose(OUT);}6【程序设计】功能:将主函数中输入的字符串反序存放。例如:输入字符串"abcdefg",则应输出"gfedcba"。#include"stdio.h"#include"string.h"#include"conio.h"#defineN81voidfun(charstr[],intn){inti,j;charc;for(i=0,j=n-1;i{c=str[i];str[i]=str[j];str[j]=c;}}voidmain(){voidTestFunc();chars[N];intl;printf("inputastring:");gets(s);l=strlen(s);fun(s,l);printf("Thenewstringis:");puts(s);TestFunc();}voidTestFunc(){FILE*IN,*OUT;charsIN[20],*sOUT;intiLENGTH;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iLENGTH=strlen(sIN);sOUT=sIN;fun(sIN,iLENGTH);fprintf(OUT,"%s\n",sOUT);fclose(IN);fclose(OUT);}7【程序设计】功能:实现两个整数的交换。例如:给a和b分别输入:60和65,输出为:a=65b=60#include"stdio.h"#include"conio.h"voidfun(int*a,int*b){intt;t=*a;*a=*b;*b=t;}main(){inta,b;voidTestFunc();printf("Entera,b:");scanf("%d%d",&a,&b);fun(&a,&b);printf("a=%db=%d\n",a,b);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inta,b,n;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(n=0;n<5;n++){fscanf(IN,"%d%d",&a,&b);fun(&a,&b);fprintf(OUT,"a=%db=%d\n",a,b);}fclose(IN);fclose(OUT);}8【程序设计】功能:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如:当a=45,b=12。调用该函数后,c=2415。#include"stdio.h"longfun(inta,intb){longc;inti,j,k,t;i=a/10;j=a%10;k=b/10;t=b%10;c=t*1000+100*i+10*k+j;returnc;voidmain(){inta,b;longc;voidNONO();printf("Inputa,b:");scanf("%d%d",&a,&b);c=fun(a,b);printf("Theresultis:%ld\n",c);NONO();}voidNONO(){FILE*rf,*wf;inti,a,b;longc;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}fclose(rf);fclose(wf);0【程序设计】功能:输入一个字符串,过滤此串只保留串中的字母字符,并统计新生成串中包含的字母个数。例如:输入的字符串为ab234$df4,新生成的串为abdf。#include"stdio.h"#include"conio.h"#defineN80voidmain(){charstr[N];intfun(charptr[]);voidTestFunc();ints;printf("inputastring:");gets(str);printf("Theoriginalstringis:");puts(str);s=fun(str);printf("Thenewstringis:");puts(str);printf("Thereare%dcharinthenewstring.",s);TestFunc();}intfun(charptr[]){/*********Begin**********/inti,j;for(i=0,j=0;ptr[i]!='\0';i++)if(ptr[i]<='z'&&ptr[i]>='a'||ptr[i]<='Z'&&ptr[i]>='A'){ptr[j]=ptr[i];j++;}ptr[j]='\0';return(j);voidTestFunc(){FILE*IN,*OUT;charsIN[N];intiOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iOUT=fun(sIN);fprintf(OUT,"%d%s\n",iOUT,sIN);fclose(IN);fclose(OUT);11【程序设计】功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。注意:n的值不大于1000。例如:n的值为855时,应输出704。#include”stdio.h”intfun(intn){ints=0,i;for(i=2;iif(n%i==0)s=s+i;returns;voidmain(){voidTestFunc();printf("s=%d\n",fun(855));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}12【程序设计】、题目:用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。#include"stdlib.h"#include"stdio.h"#defineNintsum(inta[][N]){/*********Begin**********/inti,j,k=0;for(i=0;ifor(j=N-1-i;jk=k+a[i][j];return(k);/**********End**********/}voidmain(){inta[N][N],i,j;voidTestFunc();for(i=0;i{for(j=0;j{a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数printf("%3d",a[i][j]);}printf("\n");}printf("===================\n");printf("sum=%5d\n",sum(a));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intm,n;inti[3][3];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(m=0;m<3;m++)for(n=0;n<3;n++)fscanf(IN,"%d",&i[m][n]);o=sum(i);fprintf(OUT,"%d\n",o);fclose(IN);fclose(OUT);13【程序设计】题目:用while语句求1~n的累计和。注意:请在Begin和End注释行之间填写代码,所有注释语句都不能删除。#includevoidTestFunc();intfun(intn){/*********Begin**********/inti=1,sum=0;while(i<=n){sum=sum+i;i++;}returnsum;/**********End**********/}voidmain(){intsum=0;sum=fun(100);printf("sum=%d\n",sum);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inti;intiIN,iOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}14【程序设计】--------------------------------------------------功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函输出。#include"stdio.h"intfun(intx[],intn){intmin,i;min=x[0];for(i=1;iif(x[i]returnmin;/**********End**********/}voidmain(){voidTestFunc();inta[10],i,min;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");min=fun(a,10);printf("%d\n",min);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen("4.in","r");if(IN=
printf("%5d",aa[k]);
printf("\n请输入要删除的数:
");scanf("%d",&y);
n=fun(aa,n,y);
printf("删除%d之后数据为:
\n",y);
for(k=0;kprintf("%4d",aa[k]);printf("\n");TestFunc();}voidTestFunc(){FILE*IN,*OUT;intn;inti[10];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(n=0;n<10;n++){fscanf(IN,"%d",&i[n]);}n=fun(i,n,3);for(o=0;o{fprintf(OUT,"%d\n",i[o]);}fclose(IN);fclose(OUT);}3【程序设计】功能:对任意输入的x,用下式计算并输出y的值。-1x<0y=0x=01x>0#include"stdio.h"intfun(intn){/*********Begin**********//**********End**********/}voidmain(){voidTestFunc();intx,y;printf("enterx:");scanf("%d",&x);y=fun(x);printf("x=%d,y=%d\n",x,y);TestFunc()}voidTestFunc(){FILE*IN,*OUT;inti;intiIN;longintiOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%ld\n",iOUT);}fclose(IN);fclose(OUT);}4【程序设计】功能:从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。例如:7是素数,8不是素数。请编写fun函数。素数是仅能被1和自身整除的数。#include"stdio.h"#include"math.h"intfun(intn){inti;intj;j=1;for(i=2;i{if(n%i==0)j=0;}returnj;}voidmain(){voidTestFunc();intm,flag;printf("inputaninteger:");scanf("%d",&m);flag=fun(m);if(flag)printf("%disaprime.\n",m);elseprintf("%disnotaprime.\n",m);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("5.in","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("5.out","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<10;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}5【程序设计】请写一函数fun,该函数的功能是:把数组a中的数按从大到小的顺序排列。数组的值从主函中输入,排序结果也在主函数中输出。部分源程序如下:#include#defineN10voidfun(inta[],intn){inti,j,t;for(i=0;i{for(j=0;j{if(a[j]{t=a[j];a[j]=a[j+1];a[j+1]=t;}}}}voidmain(){inti=0;inta[N]={45,34,78,38,87,98,23,67,76,56};FILE*OUT;fun(a,10);printf("\n排序后的结果为:\n");for(i=0;i<=9;i++)printf("%5d",a[i]);printf("\n");if((OUT=fopen("out.dat","w"))==NULL)printf("写入文件失败!");for(i=0;i<=9;i++)fprintf(OUT,"%d\n",a[i]);fclose(OUT);}6【程序设计】功能:将主函数中输入的字符串反序存放。例如:输入字符串"abcdefg",则应输出"gfedcba"。#include"stdio.h"#include"string.h"#include"conio.h"#defineN81voidfun(charstr[],intn){inti,j;charc;for(i=0,j=n-1;i{c=str[i];str[i]=str[j];str[j]=c;}}voidmain(){voidTestFunc();chars[N];intl;printf("inputastring:");gets(s);l=strlen(s);fun(s,l);printf("Thenewstringis:");puts(s);TestFunc();}voidTestFunc(){FILE*IN,*OUT;charsIN[20],*sOUT;intiLENGTH;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iLENGTH=strlen(sIN);sOUT=sIN;fun(sIN,iLENGTH);fprintf(OUT,"%s\n",sOUT);fclose(IN);fclose(OUT);}7【程序设计】功能:实现两个整数的交换。例如:给a和b分别输入:60和65,输出为:a=65b=60#include"stdio.h"#include"conio.h"voidfun(int*a,int*b){intt;t=*a;*a=*b;*b=t;}main(){inta,b;voidTestFunc();printf("Entera,b:");scanf("%d%d",&a,&b);fun(&a,&b);printf("a=%db=%d\n",a,b);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inta,b,n;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(n=0;n<5;n++){fscanf(IN,"%d%d",&a,&b);fun(&a,&b);fprintf(OUT,"a=%db=%d\n",a,b);}fclose(IN);fclose(OUT);}8【程序设计】功能:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如:当a=45,b=12。调用该函数后,c=2415。#include"stdio.h"longfun(inta,intb){longc;inti,j,k,t;i=a/10;j=a%10;k=b/10;t=b%10;c=t*1000+100*i+10*k+j;returnc;voidmain(){inta,b;longc;voidNONO();printf("Inputa,b:");scanf("%d%d",&a,&b);c=fun(a,b);printf("Theresultis:%ld\n",c);NONO();}voidNONO(){FILE*rf,*wf;inti,a,b;longc;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}fclose(rf);fclose(wf);0【程序设计】功能:输入一个字符串,过滤此串只保留串中的字母字符,并统计新生成串中包含的字母个数。例如:输入的字符串为ab234$df4,新生成的串为abdf。#include"stdio.h"#include"conio.h"#defineN80voidmain(){charstr[N];intfun(charptr[]);voidTestFunc();ints;printf("inputastring:");gets(str);printf("Theoriginalstringis:");puts(str);s=fun(str);printf("Thenewstringis:");puts(str);printf("Thereare%dcharinthenewstring.",s);TestFunc();}intfun(charptr[]){/*********Begin**********/inti,j;for(i=0,j=0;ptr[i]!='\0';i++)if(ptr[i]<='z'&&ptr[i]>='a'||ptr[i]<='Z'&&ptr[i]>='A'){ptr[j]=ptr[i];j++;}ptr[j]='\0';return(j);voidTestFunc(){FILE*IN,*OUT;charsIN[N];intiOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iOUT=fun(sIN);fprintf(OUT,"%d%s\n",iOUT,sIN);fclose(IN);fclose(OUT);11【程序设计】功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。注意:n的值不大于1000。例如:n的值为855时,应输出704。#include”stdio.h”intfun(intn){ints=0,i;for(i=2;iif(n%i==0)s=s+i;returns;voidmain(){voidTestFunc();printf("s=%d\n",fun(855));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}12【程序设计】、题目:用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。#include"stdlib.h"#include"stdio.h"#defineNintsum(inta[][N]){/*********Begin**********/inti,j,k=0;for(i=0;ifor(j=N-1-i;jk=k+a[i][j];return(k);/**********End**********/}voidmain(){inta[N][N],i,j;voidTestFunc();for(i=0;i{for(j=0;j{a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数printf("%3d",a[i][j]);}printf("\n");}printf("===================\n");printf("sum=%5d\n",sum(a));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intm,n;inti[3][3];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(m=0;m<3;m++)for(n=0;n<3;n++)fscanf(IN,"%d",&i[m][n]);o=sum(i);fprintf(OUT,"%d\n",o);fclose(IN);fclose(OUT);13【程序设计】题目:用while语句求1~n的累计和。注意:请在Begin和End注释行之间填写代码,所有注释语句都不能删除。#includevoidTestFunc();intfun(intn){/*********Begin**********/inti=1,sum=0;while(i<=n){sum=sum+i;i++;}returnsum;/**********End**********/}voidmain(){intsum=0;sum=fun(100);printf("sum=%d\n",sum);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inti;intiIN,iOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}14【程序设计】--------------------------------------------------功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函输出。#include"stdio.h"intfun(intx[],intn){intmin,i;min=x[0];for(i=1;iif(x[i]returnmin;/**********End**********/}voidmain(){voidTestFunc();inta[10],i,min;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");min=fun(a,10);printf("%d\n",min);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen("4.in","r");if(IN=
printf("%4d",aa[k]);
printf("\n");
{FILE*IN,*OUT;
intn;
inti[10];
into;
{printf("ReadFileError");}
{printf("WriteFileError");}
for(n=0;n<10;n++)
{fscanf(IN,"%d",&i[n]);}
n=fun(i,n,3);
for(o=0;o{fprintf(OUT,"%d\n",i[o]);}fclose(IN);fclose(OUT);}3【程序设计】功能:对任意输入的x,用下式计算并输出y的值。-1x<0y=0x=01x>0#include"stdio.h"intfun(intn){/*********Begin**********//**********End**********/}voidmain(){voidTestFunc();intx,y;printf("enterx:");scanf("%d",&x);y=fun(x);printf("x=%d,y=%d\n",x,y);TestFunc()}voidTestFunc(){FILE*IN,*OUT;inti;intiIN;longintiOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%ld\n",iOUT);}fclose(IN);fclose(OUT);}4【程序设计】功能:从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。例如:7是素数,8不是素数。请编写fun函数。素数是仅能被1和自身整除的数。#include"stdio.h"#include"math.h"intfun(intn){inti;intj;j=1;for(i=2;i{if(n%i==0)j=0;}returnj;}voidmain(){voidTestFunc();intm,flag;printf("inputaninteger:");scanf("%d",&m);flag=fun(m);if(flag)printf("%disaprime.\n",m);elseprintf("%disnotaprime.\n",m);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("5.in","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("5.out","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<10;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}5【程序设计】请写一函数fun,该函数的功能是:把数组a中的数按从大到小的顺序排列。数组的值从主函中输入,排序结果也在主函数中输出。部分源程序如下:#include#defineN10voidfun(inta[],intn){inti,j,t;for(i=0;i{for(j=0;j{if(a[j]{t=a[j];a[j]=a[j+1];a[j+1]=t;}}}}voidmain(){inti=0;inta[N]={45,34,78,38,87,98,23,67,76,56};FILE*OUT;fun(a,10);printf("\n排序后的结果为:\n");for(i=0;i<=9;i++)printf("%5d",a[i]);printf("\n");if((OUT=fopen("out.dat","w"))==NULL)printf("写入文件失败!");for(i=0;i<=9;i++)fprintf(OUT,"%d\n",a[i]);fclose(OUT);}6【程序设计】功能:将主函数中输入的字符串反序存放。例如:输入字符串"abcdefg",则应输出"gfedcba"。#include"stdio.h"#include"string.h"#include"conio.h"#defineN81voidfun(charstr[],intn){inti,j;charc;for(i=0,j=n-1;i{c=str[i];str[i]=str[j];str[j]=c;}}voidmain(){voidTestFunc();chars[N];intl;printf("inputastring:");gets(s);l=strlen(s);fun(s,l);printf("Thenewstringis:");puts(s);TestFunc();}voidTestFunc(){FILE*IN,*OUT;charsIN[20],*sOUT;intiLENGTH;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iLENGTH=strlen(sIN);sOUT=sIN;fun(sIN,iLENGTH);fprintf(OUT,"%s\n",sOUT);fclose(IN);fclose(OUT);}7【程序设计】功能:实现两个整数的交换。例如:给a和b分别输入:60和65,输出为:a=65b=60#include"stdio.h"#include"conio.h"voidfun(int*a,int*b){intt;t=*a;*a=*b;*b=t;}main(){inta,b;voidTestFunc();printf("Entera,b:");scanf("%d%d",&a,&b);fun(&a,&b);printf("a=%db=%d\n",a,b);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inta,b,n;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(n=0;n<5;n++){fscanf(IN,"%d%d",&a,&b);fun(&a,&b);fprintf(OUT,"a=%db=%d\n",a,b);}fclose(IN);fclose(OUT);}8【程序设计】功能:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如:当a=45,b=12。调用该函数后,c=2415。#include"stdio.h"longfun(inta,intb){longc;inti,j,k,t;i=a/10;j=a%10;k=b/10;t=b%10;c=t*1000+100*i+10*k+j;returnc;voidmain(){inta,b;longc;voidNONO();printf("Inputa,b:");scanf("%d%d",&a,&b);c=fun(a,b);printf("Theresultis:%ld\n",c);NONO();}voidNONO(){FILE*rf,*wf;inti,a,b;longc;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}fclose(rf);fclose(wf);0【程序设计】功能:输入一个字符串,过滤此串只保留串中的字母字符,并统计新生成串中包含的字母个数。例如:输入的字符串为ab234$df4,新生成的串为abdf。#include"stdio.h"#include"conio.h"#defineN80voidmain(){charstr[N];intfun(charptr[]);voidTestFunc();ints;printf("inputastring:");gets(str);printf("Theoriginalstringis:");puts(str);s=fun(str);printf("Thenewstringis:");puts(str);printf("Thereare%dcharinthenewstring.",s);TestFunc();}intfun(charptr[]){/*********Begin**********/inti,j;for(i=0,j=0;ptr[i]!='\0';i++)if(ptr[i]<='z'&&ptr[i]>='a'||ptr[i]<='Z'&&ptr[i]>='A'){ptr[j]=ptr[i];j++;}ptr[j]='\0';return(j);voidTestFunc(){FILE*IN,*OUT;charsIN[N];intiOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iOUT=fun(sIN);fprintf(OUT,"%d%s\n",iOUT,sIN);fclose(IN);fclose(OUT);11【程序设计】功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。注意:n的值不大于1000。例如:n的值为855时,应输出704。#include”stdio.h”intfun(intn){ints=0,i;for(i=2;iif(n%i==0)s=s+i;returns;voidmain(){voidTestFunc();printf("s=%d\n",fun(855));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}12【程序设计】、题目:用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。#include"stdlib.h"#include"stdio.h"#defineNintsum(inta[][N]){/*********Begin**********/inti,j,k=0;for(i=0;ifor(j=N-1-i;jk=k+a[i][j];return(k);/**********End**********/}voidmain(){inta[N][N],i,j;voidTestFunc();for(i=0;i{for(j=0;j{a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数printf("%3d",a[i][j]);}printf("\n");}printf("===================\n");printf("sum=%5d\n",sum(a));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intm,n;inti[3][3];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(m=0;m<3;m++)for(n=0;n<3;n++)fscanf(IN,"%d",&i[m][n]);o=sum(i);fprintf(OUT,"%d\n",o);fclose(IN);fclose(OUT);13【程序设计】题目:用while语句求1~n的累计和。注意:请在Begin和End注释行之间填写代码,所有注释语句都不能删除。#includevoidTestFunc();intfun(intn){/*********Begin**********/inti=1,sum=0;while(i<=n){sum=sum+i;i++;}returnsum;/**********End**********/}voidmain(){intsum=0;sum=fun(100);printf("sum=%d\n",sum);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inti;intiIN,iOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}14【程序设计】--------------------------------------------------功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函输出。#include"stdio.h"intfun(intx[],intn){intmin,i;min=x[0];for(i=1;iif(x[i]returnmin;/**********End**********/}voidmain(){voidTestFunc();inta[10],i,min;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");min=fun(a,10);printf("%d\n",min);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen("4.in","r");if(IN=
{fprintf(OUT,"%d\n",i[o]);}
fclose(OUT);}
3【程序设计】
对任意输入的x,用下式计算并输出y的值。
-1x<0
y=0x=0
1x>0
intfun(intn)
{voidTestFunc();
intx,y;
printf("enterx:
scanf("%d",&x);
y=fun(x);
printf("x=%d,y=%d\n",x,y);
TestFunc()}
inti;
intiIN;
longintiOUT;
{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}
{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}
for(i=0;i<5;i++)
{fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%ld\n",iOUT);}
fclose(OUT);}
4【程序设计】
从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。
7是素数,8不是素数。
请编写fun函数。
素数是仅能被1和自身整除的数。
#include"math.h"
{inti;
intj;
j=1;
for(i=2;i{if(n%i==0)j=0;}returnj;}voidmain(){voidTestFunc();intm,flag;printf("inputaninteger:");scanf("%d",&m);flag=fun(m);if(flag)printf("%disaprime.\n",m);elseprintf("%disnotaprime.\n",m);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("5.in","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("5.out","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<10;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}5【程序设计】请写一函数fun,该函数的功能是:把数组a中的数按从大到小的顺序排列。数组的值从主函中输入,排序结果也在主函数中输出。部分源程序如下:#include#defineN10voidfun(inta[],intn){inti,j,t;for(i=0;i{for(j=0;j{if(a[j]{t=a[j];a[j]=a[j+1];a[j+1]=t;}}}}voidmain(){inti=0;inta[N]={45,34,78,38,87,98,23,67,76,56};FILE*OUT;fun(a,10);printf("\n排序后的结果为:\n");for(i=0;i<=9;i++)printf("%5d",a[i]);printf("\n");if((OUT=fopen("out.dat","w"))==NULL)printf("写入文件失败!");for(i=0;i<=9;i++)fprintf(OUT,"%d\n",a[i]);fclose(OUT);}6【程序设计】功能:将主函数中输入的字符串反序存放。例如:输入字符串"abcdefg",则应输出"gfedcba"。#include"stdio.h"#include"string.h"#include"conio.h"#defineN81voidfun(charstr[],intn){inti,j;charc;for(i=0,j=n-1;i{c=str[i];str[i]=str[j];str[j]=c;}}voidmain(){voidTestFunc();chars[N];intl;printf("inputastring:");gets(s);l=strlen(s);fun(s,l);printf("Thenewstringis:");puts(s);TestFunc();}voidTestFunc(){FILE*IN,*OUT;charsIN[20],*sOUT;intiLENGTH;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iLENGTH=strlen(sIN);sOUT=sIN;fun(sIN,iLENGTH);fprintf(OUT,"%s\n",sOUT);fclose(IN);fclose(OUT);}7【程序设计】功能:实现两个整数的交换。例如:给a和b分别输入:60和65,输出为:a=65b=60#include"stdio.h"#include"conio.h"voidfun(int*a,int*b){intt;t=*a;*a=*b;*b=t;}main(){inta,b;voidTestFunc();printf("Entera,b:");scanf("%d%d",&a,&b);fun(&a,&b);printf("a=%db=%d\n",a,b);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inta,b,n;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(n=0;n<5;n++){fscanf(IN,"%d%d",&a,&b);fun(&a,&b);fprintf(OUT,"a=%db=%d\n",a,b);}fclose(IN);fclose(OUT);}8【程序设计】功能:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如:当a=45,b=12。调用该函数后,c=2415。#include"stdio.h"longfun(inta,intb){longc;inti,j,k,t;i=a/10;j=a%10;k=b/10;t=b%10;c=t*1000+100*i+10*k+j;returnc;voidmain(){inta,b;longc;voidNONO();printf("Inputa,b:");scanf("%d%d",&a,&b);c=fun(a,b);printf("Theresultis:%ld\n",c);NONO();}voidNONO(){FILE*rf,*wf;inti,a,b;longc;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}fclose(rf);fclose(wf);0【程序设计】功能:输入一个字符串,过滤此串只保留串中的字母字符,并统计新生成串中包含的字母个数。例如:输入的字符串为ab234$df4,新生成的串为abdf。#include"stdio.h"#include"conio.h"#defineN80voidmain(){charstr[N];intfun(charptr[]);voidTestFunc();ints;printf("inputastring:");gets(str);printf("Theoriginalstringis:");puts(str);s=fun(str);printf("Thenewstringis:");puts(str);printf("Thereare%dcharinthenewstring.",s);TestFunc();}intfun(charptr[]){/*********Begin**********/inti,j;for(i=0,j=0;ptr[i]!='\0';i++)if(ptr[i]<='z'&&ptr[i]>='a'||ptr[i]<='Z'&&ptr[i]>='A'){ptr[j]=ptr[i];j++;}ptr[j]='\0';return(j);voidTestFunc(){FILE*IN,*OUT;charsIN[N];intiOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iOUT=fun(sIN);fprintf(OUT,"%d%s\n",iOUT,sIN);fclose(IN);fclose(OUT);11【程序设计】功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。注意:n的值不大于1000。例如:n的值为855时,应输出704。#include”stdio.h”intfun(intn){ints=0,i;for(i=2;iif(n%i==0)s=s+i;returns;voidmain(){voidTestFunc();printf("s=%d\n",fun(855));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}12【程序设计】、题目:用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。#include"stdlib.h"#include"stdio.h"#defineNintsum(inta[][N]){/*********Begin**********/inti,j,k=0;for(i=0;ifor(j=N-1-i;jk=k+a[i][j];return(k);/**********End**********/}voidmain(){inta[N][N],i,j;voidTestFunc();for(i=0;i{for(j=0;j{a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数printf("%3d",a[i][j]);}printf("\n");}printf("===================\n");printf("sum=%5d\n",sum(a));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intm,n;inti[3][3];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(m=0;m<3;m++)for(n=0;n<3;n++)fscanf(IN,"%d",&i[m][n]);o=sum(i);fprintf(OUT,"%d\n",o);fclose(IN);fclose(OUT);13【程序设计】题目:用while语句求1~n的累计和。注意:请在Begin和End注释行之间填写代码,所有注释语句都不能删除。#includevoidTestFunc();intfun(intn){/*********Begin**********/inti=1,sum=0;while(i<=n){sum=sum+i;i++;}returnsum;/**********End**********/}voidmain(){intsum=0;sum=fun(100);printf("sum=%d\n",sum);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inti;intiIN,iOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}14【程序设计】--------------------------------------------------功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函输出。#include"stdio.h"intfun(intx[],intn){intmin,i;min=x[0];for(i=1;iif(x[i]returnmin;/**********End**********/}voidmain(){voidTestFunc();inta[10],i,min;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");min=fun(a,10);printf("%d\n",min);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen("4.in","r");if(IN=
{if(n%i==0)j=0;}
returnj;}
intm,flag;
printf("inputaninteger:
scanf("%d",&m);
flag=fun(m);
if(flag)
printf("%disaprime.\n",m);
else
printf("%disnotaprime.\n",m);
intiIN,iOUT,i;
IN=fopen("5.in","r");
{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}
OUT=fopen("5.out","w");
for(i=0;i<10;i++)
fprintf(OUT,"%d\n",iOUT);}
5【程序设计】
请写一函数fun,该函数的功能是:
把数组a中的数按从大到小的顺序排列。
数组的值从主函中输入,排序结果也在主函数中输出。
部分源程序如下:
#defineN10
voidfun(inta[],intn)
{inti,j,t;
for(i=0;i{for(j=0;j{if(a[j]{t=a[j];a[j]=a[j+1];a[j+1]=t;}}}}voidmain(){inti=0;inta[N]={45,34,78,38,87,98,23,67,76,56};FILE*OUT;fun(a,10);printf("\n排序后的结果为:\n");for(i=0;i<=9;i++)printf("%5d",a[i]);printf("\n");if((OUT=fopen("out.dat","w"))==NULL)printf("写入文件失败!");for(i=0;i<=9;i++)fprintf(OUT,"%d\n",a[i]);fclose(OUT);}6【程序设计】功能:将主函数中输入的字符串反序存放。例如:输入字符串"abcdefg",则应输出"gfedcba"。#include"stdio.h"#include"string.h"#include"conio.h"#defineN81voidfun(charstr[],intn){inti,j;charc;for(i=0,j=n-1;i{c=str[i];str[i]=str[j];str[j]=c;}}voidmain(){voidTestFunc();chars[N];intl;printf("inputastring:");gets(s);l=strlen(s);fun(s,l);printf("Thenewstringis:");puts(s);TestFunc();}voidTestFunc(){FILE*IN,*OUT;charsIN[20],*sOUT;intiLENGTH;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iLENGTH=strlen(sIN);sOUT=sIN;fun(sIN,iLENGTH);fprintf(OUT,"%s\n",sOUT);fclose(IN);fclose(OUT);}7【程序设计】功能:实现两个整数的交换。例如:给a和b分别输入:60和65,输出为:a=65b=60#include"stdio.h"#include"conio.h"voidfun(int*a,int*b){intt;t=*a;*a=*b;*b=t;}main(){inta,b;voidTestFunc();printf("Entera,b:");scanf("%d%d",&a,&b);fun(&a,&b);printf("a=%db=%d\n",a,b);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inta,b,n;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(n=0;n<5;n++){fscanf(IN,"%d%d",&a,&b);fun(&a,&b);fprintf(OUT,"a=%db=%d\n",a,b);}fclose(IN);fclose(OUT);}8【程序设计】功能:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如:当a=45,b=12。调用该函数后,c=2415。#include"stdio.h"longfun(inta,intb){longc;inti,j,k,t;i=a/10;j=a%10;k=b/10;t=b%10;c=t*1000+100*i+10*k+j;returnc;voidmain(){inta,b;longc;voidNONO();printf("Inputa,b:");scanf("%d%d",&a,&b);c=fun(a,b);printf("Theresultis:%ld\n",c);NONO();}voidNONO(){FILE*rf,*wf;inti,a,b;longc;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}fclose(rf);fclose(wf);0【程序设计】功能:输入一个字符串,过滤此串只保留串中的字母字符,并统计新生成串中包含的字母个数。例如:输入的字符串为ab234$df4,新生成的串为abdf。#include"stdio.h"#include"conio.h"#defineN80voidmain(){charstr[N];intfun(charptr[]);voidTestFunc();ints;printf("inputastring:");gets(str);printf("Theoriginalstringis:");puts(str);s=fun(str);printf("Thenewstringis:");puts(str);printf("Thereare%dcharinthenewstring.",s);TestFunc();}intfun(charptr[]){/*********Begin**********/inti,j;for(i=0,j=0;ptr[i]!='\0';i++)if(ptr[i]<='z'&&ptr[i]>='a'||ptr[i]<='Z'&&ptr[i]>='A'){ptr[j]=ptr[i];j++;}ptr[j]='\0';return(j);voidTestFunc(){FILE*IN,*OUT;charsIN[N];intiOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iOUT=fun(sIN);fprintf(OUT,"%d%s\n",iOUT,sIN);fclose(IN);fclose(OUT);11【程序设计】功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。注意:n的值不大于1000。例如:n的值为855时,应输出704。#include”stdio.h”intfun(intn){ints=0,i;for(i=2;iif(n%i==0)s=s+i;returns;voidmain(){voidTestFunc();printf("s=%d\n",fun(855));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}12【程序设计】、题目:用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。#include"stdlib.h"#include"stdio.h"#defineNintsum(inta[][N]){/*********Begin**********/inti,j,k=0;for(i=0;ifor(j=N-1-i;jk=k+a[i][j];return(k);/**********End**********/}voidmain(){inta[N][N],i,j;voidTestFunc();for(i=0;i{for(j=0;j{a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数printf("%3d",a[i][j]);}printf("\n");}printf("===================\n");printf("sum=%5d\n",sum(a));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intm,n;inti[3][3];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(m=0;m<3;m++)for(n=0;n<3;n++)fscanf(IN,"%d",&i[m][n]);o=sum(i);fprintf(OUT,"%d\n",o);fclose(IN);fclose(OUT);13【程序设计】题目:用while语句求1~n的累计和。注意:请在Begin和End注释行之间填写代码,所有注释语句都不能删除。#includevoidTestFunc();intfun(intn){/*********Begin**********/inti=1,sum=0;while(i<=n){sum=sum+i;i++;}returnsum;/**********End**********/}voidmain(){intsum=0;sum=fun(100);printf("sum=%d\n",sum);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inti;intiIN,iOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}14【程序设计】--------------------------------------------------功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函输出。#include"stdio.h"intfun(intx[],intn){intmin,i;min=x[0];for(i=1;iif(x[i]returnmin;/**********End**********/}voidmain(){voidTestFunc();inta[10],i,min;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");min=fun(a,10);printf("%d\n",min);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen("4.in","r");if(IN=
{for(j=0;j{if(a[j]{t=a[j];a[j]=a[j+1];a[j+1]=t;}}}}voidmain(){inti=0;inta[N]={45,34,78,38,87,98,23,67,76,56};FILE*OUT;fun(a,10);printf("\n排序后的结果为:\n");for(i=0;i<=9;i++)printf("%5d",a[i]);printf("\n");if((OUT=fopen("out.dat","w"))==NULL)printf("写入文件失败!");for(i=0;i<=9;i++)fprintf(OUT,"%d\n",a[i]);fclose(OUT);}6【程序设计】功能:将主函数中输入的字符串反序存放。例如:输入字符串"abcdefg",则应输出"gfedcba"。#include"stdio.h"#include"string.h"#include"conio.h"#defineN81voidfun(charstr[],intn){inti,j;charc;for(i=0,j=n-1;i{c=str[i];str[i]=str[j];str[j]=c;}}voidmain(){voidTestFunc();chars[N];intl;printf("inputastring:");gets(s);l=strlen(s);fun(s,l);printf("Thenewstringis:");puts(s);TestFunc();}voidTestFunc(){FILE*IN,*OUT;charsIN[20],*sOUT;intiLENGTH;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iLENGTH=strlen(sIN);sOUT=sIN;fun(sIN,iLENGTH);fprintf(OUT,"%s\n",sOUT);fclose(IN);fclose(OUT);}7【程序设计】功能:实现两个整数的交换。例如:给a和b分别输入:60和65,输出为:a=65b=60#include"stdio.h"#include"conio.h"voidfun(int*a,int*b){intt;t=*a;*a=*b;*b=t;}main(){inta,b;voidTestFunc();printf("Entera,b:");scanf("%d%d",&a,&b);fun(&a,&b);printf("a=%db=%d\n",a,b);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inta,b,n;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(n=0;n<5;n++){fscanf(IN,"%d%d",&a,&b);fun(&a,&b);fprintf(OUT,"a=%db=%d\n",a,b);}fclose(IN);fclose(OUT);}8【程序设计】功能:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如:当a=45,b=12。调用该函数后,c=2415。#include"stdio.h"longfun(inta,intb){longc;inti,j,k,t;i=a/10;j=a%10;k=b/10;t=b%10;c=t*1000+100*i+10*k+j;returnc;voidmain(){inta,b;longc;voidNONO();printf("Inputa,b:");scanf("%d%d",&a,&b);c=fun(a,b);printf("Theresultis:%ld\n",c);NONO();}voidNONO(){FILE*rf,*wf;inti,a,b;longc;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}fclose(rf);fclose(wf);0【程序设计】功能:输入一个字符串,过滤此串只保留串中的字母字符,并统计新生成串中包含的字母个数。例如:输入的字符串为ab234$df4,新生成的串为abdf。#include"stdio.h"#include"conio.h"#defineN80voidmain(){charstr[N];intfun(charptr[]);voidTestFunc();ints;printf("inputastring:");gets(str);printf("Theoriginalstringis:");puts(str);s=fun(str);printf("Thenewstringis:");puts(str);printf("Thereare%dcharinthenewstring.",s);TestFunc();}intfun(charptr[]){/*********Begin**********/inti,j;for(i=0,j=0;ptr[i]!='\0';i++)if(ptr[i]<='z'&&ptr[i]>='a'||ptr[i]<='Z'&&ptr[i]>='A'){ptr[j]=ptr[i];j++;}ptr[j]='\0';return(j);voidTestFunc(){FILE*IN,*OUT;charsIN[N];intiOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iOUT=fun(sIN);fprintf(OUT,"%d%s\n",iOUT,sIN);fclose(IN);fclose(OUT);11【程序设计】功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。注意:n的值不大于1000。例如:n的值为855时,应输出704。#include”stdio.h”intfun(intn){ints=0,i;for(i=2;iif(n%i==0)s=s+i;returns;voidmain(){voidTestFunc();printf("s=%d\n",fun(855));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}12【程序设计】、题目:用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。#include"stdlib.h"#include"stdio.h"#defineNintsum(inta[][N]){/*********Begin**********/inti,j,k=0;for(i=0;ifor(j=N-1-i;jk=k+a[i][j];return(k);/**********End**********/}voidmain(){inta[N][N],i,j;voidTestFunc();for(i=0;i{for(j=0;j{a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数printf("%3d",a[i][j]);}printf("\n");}printf("===================\n");printf("sum=%5d\n",sum(a));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intm,n;inti[3][3];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(m=0;m<3;m++)for(n=0;n<3;n++)fscanf(IN,"%d",&i[m][n]);o=sum(i);fprintf(OUT,"%d\n",o);fclose(IN);fclose(OUT);13【程序设计】题目:用while语句求1~n的累计和。注意:请在Begin和End注释行之间填写代码,所有注释语句都不能删除。#includevoidTestFunc();intfun(intn){/*********Begin**********/inti=1,sum=0;while(i<=n){sum=sum+i;i++;}returnsum;/**********End**********/}voidmain(){intsum=0;sum=fun(100);printf("sum=%d\n",sum);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inti;intiIN,iOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}14【程序设计】--------------------------------------------------功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函输出。#include"stdio.h"intfun(intx[],intn){intmin,i;min=x[0];for(i=1;iif(x[i]returnmin;/**********End**********/}voidmain(){voidTestFunc();inta[10],i,min;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");min=fun(a,10);printf("%d\n",min);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen("4.in","r");if(IN=
{if(a[j]{t=a[j];a[j]=a[j+1];a[j+1]=t;}}}}voidmain(){inti=0;inta[N]={45,34,78,38,87,98,23,67,76,56};FILE*OUT;fun(a,10);printf("\n排序后的结果为:\n");for(i=0;i<=9;i++)printf("%5d",a[i]);printf("\n");if((OUT=fopen("out.dat","w"))==NULL)printf("写入文件失败!");for(i=0;i<=9;i++)fprintf(OUT,"%d\n",a[i]);fclose(OUT);}6【程序设计】功能:将主函数中输入的字符串反序存放。例如:输入字符串"abcdefg",则应输出"gfedcba"。#include"stdio.h"#include"string.h"#include"conio.h"#defineN81voidfun(charstr[],intn){inti,j;charc;for(i=0,j=n-1;i{c=str[i];str[i]=str[j];str[j]=c;}}voidmain(){voidTestFunc();chars[N];intl;printf("inputastring:");gets(s);l=strlen(s);fun(s,l);printf("Thenewstringis:");puts(s);TestFunc();}voidTestFunc(){FILE*IN,*OUT;charsIN[20],*sOUT;intiLENGTH;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iLENGTH=strlen(sIN);sOUT=sIN;fun(sIN,iLENGTH);fprintf(OUT,"%s\n",sOUT);fclose(IN);fclose(OUT);}7【程序设计】功能:实现两个整数的交换。例如:给a和b分别输入:60和65,输出为:a=65b=60#include"stdio.h"#include"conio.h"voidfun(int*a,int*b){intt;t=*a;*a=*b;*b=t;}main(){inta,b;voidTestFunc();printf("Entera,b:");scanf("%d%d",&a,&b);fun(&a,&b);printf("a=%db=%d\n",a,b);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inta,b,n;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(n=0;n<5;n++){fscanf(IN,"%d%d",&a,&b);fun(&a,&b);fprintf(OUT,"a=%db=%d\n",a,b);}fclose(IN);fclose(OUT);}8【程序设计】功能:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如:当a=45,b=12。调用该函数后,c=2415。#include"stdio.h"longfun(inta,intb){longc;inti,j,k,t;i=a/10;j=a%10;k=b/10;t=b%10;c=t*1000+100*i+10*k+j;returnc;voidmain(){inta,b;longc;voidNONO();printf("Inputa,b:");scanf("%d%d",&a,&b);c=fun(a,b);printf("Theresultis:%ld\n",c);NONO();}voidNONO(){FILE*rf,*wf;inti,a,b;longc;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}fclose(rf);fclose(wf);0【程序设计】功能:输入一个字符串,过滤此串只保留串中的字母字符,并统计新生成串中包含的字母个数。例如:输入的字符串为ab234$df4,新生成的串为abdf。#include"stdio.h"#include"conio.h"#defineN80voidmain(){charstr[N];intfun(charptr[]);voidTestFunc();ints;printf("inputastring:");gets(str);printf("Theoriginalstringis:");puts(str);s=fun(str);printf("Thenewstringis:");puts(str);printf("Thereare%dcharinthenewstring.",s);TestFunc();}intfun(charptr[]){/*********Begin**********/inti,j;for(i=0,j=0;ptr[i]!='\0';i++)if(ptr[i]<='z'&&ptr[i]>='a'||ptr[i]<='Z'&&ptr[i]>='A'){ptr[j]=ptr[i];j++;}ptr[j]='\0';return(j);voidTestFunc(){FILE*IN,*OUT;charsIN[N];intiOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iOUT=fun(sIN);fprintf(OUT,"%d%s\n",iOUT,sIN);fclose(IN);fclose(OUT);11【程序设计】功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。注意:n的值不大于1000。例如:n的值为855时,应输出704。#include”stdio.h”intfun(intn){ints=0,i;for(i=2;iif(n%i==0)s=s+i;returns;voidmain(){voidTestFunc();printf("s=%d\n",fun(855));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}12【程序设计】、题目:用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。#include"stdlib.h"#include"stdio.h"#defineNintsum(inta[][N]){/*********Begin**********/inti,j,k=0;for(i=0;ifor(j=N-1-i;jk=k+a[i][j];return(k);/**********End**********/}voidmain(){inta[N][N],i,j;voidTestFunc();for(i=0;i{for(j=0;j{a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数printf("%3d",a[i][j]);}printf("\n");}printf("===================\n");printf("sum=%5d\n",sum(a));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intm,n;inti[3][3];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(m=0;m<3;m++)for(n=0;n<3;n++)fscanf(IN,"%d",&i[m][n]);o=sum(i);fprintf(OUT,"%d\n",o);fclose(IN);fclose(OUT);13【程序设计】题目:用while语句求1~n的累计和。注意:请在Begin和End注释行之间填写代码,所有注释语句都不能删除。#includevoidTestFunc();intfun(intn){/*********Begin**********/inti=1,sum=0;while(i<=n){sum=sum+i;i++;}returnsum;/**********End**********/}voidmain(){intsum=0;sum=fun(100);printf("sum=%d\n",sum);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inti;intiIN,iOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}14【程序设计】--------------------------------------------------功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函输出。#include"stdio.h"intfun(intx[],intn){intmin,i;min=x[0];for(i=1;iif(x[i]returnmin;/**********End**********/}voidmain(){voidTestFunc();inta[10],i,min;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");min=fun(a,10);printf("%d\n",min);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen("4.in","r");if(IN=
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;}}}
{inti=0;
inta[N]={45,34,78,38,87,98,23,67,76,56};
FILE*OUT;
fun(a,10);
printf("\n排序后的结果为:
for(i=0;i<=9;i++)
printf("%5d",a[i]);
if((OUT=fopen("out.dat","w"))==NULL)
printf("写入文件失败!
fprintf(OUT,"%d\n",a[i]);
6【程序设计】
将主函数中输入的字符串反序存放。
输入字符串"abcdefg",则应输出"gfedcba"。
#include"string.h"
#defineN81
voidfun(charstr[],intn)
{inti,j;
charc;
for(i=0,j=n-1;i{c=str[i];str[i]=str[j];str[j]=c;}}voidmain(){voidTestFunc();chars[N];intl;printf("inputastring:");gets(s);l=strlen(s);fun(s,l);printf("Thenewstringis:");puts(s);TestFunc();}voidTestFunc(){FILE*IN,*OUT;charsIN[20],*sOUT;intiLENGTH;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iLENGTH=strlen(sIN);sOUT=sIN;fun(sIN,iLENGTH);fprintf(OUT,"%s\n",sOUT);fclose(IN);fclose(OUT);}7【程序设计】功能:实现两个整数的交换。例如:给a和b分别输入:60和65,输出为:a=65b=60#include"stdio.h"#include"conio.h"voidfun(int*a,int*b){intt;t=*a;*a=*b;*b=t;}main(){inta,b;voidTestFunc();printf("Entera,b:");scanf("%d%d",&a,&b);fun(&a,&b);printf("a=%db=%d\n",a,b);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inta,b,n;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(n=0;n<5;n++){fscanf(IN,"%d%d",&a,&b);fun(&a,&b);fprintf(OUT,"a=%db=%d\n",a,b);}fclose(IN);fclose(OUT);}8【程序设计】功能:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如:当a=45,b=12。调用该函数后,c=2415。#include"stdio.h"longfun(inta,intb){longc;inti,j,k,t;i=a/10;j=a%10;k=b/10;t=b%10;c=t*1000+100*i+10*k+j;returnc;voidmain(){inta,b;longc;voidNONO();printf("Inputa,b:");scanf("%d%d",&a,&b);c=fun(a,b);printf("Theresultis:%ld\n",c);NONO();}voidNONO(){FILE*rf,*wf;inti,a,b;longc;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}fclose(rf);fclose(wf);0【程序设计】功能:输入一个字符串,过滤此串只保留串中的字母字符,并统计新生成串中包含的字母个数。例如:输入的字符串为ab234$df4,新生成的串为abdf。#include"stdio.h"#include"conio.h"#defineN80voidmain(){charstr[N];intfun(charptr[]);voidTestFunc();ints;printf("inputastring:");gets(str);printf("Theoriginalstringis:");puts(str);s=fun(str);printf("Thenewstringis:");puts(str);printf("Thereare%dcharinthenewstring.",s);TestFunc();}intfun(charptr[]){/*********Begin**********/inti,j;for(i=0,j=0;ptr[i]!='\0';i++)if(ptr[i]<='z'&&ptr[i]>='a'||ptr[i]<='Z'&&ptr[i]>='A'){ptr[j]=ptr[i];j++;}ptr[j]='\0';return(j);voidTestFunc(){FILE*IN,*OUT;charsIN[N];intiOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}fscanf(IN,"%s",sIN);iOUT=fun(sIN);fprintf(OUT,"%d%s\n",iOUT,sIN);fclose(IN);fclose(OUT);11【程序设计】功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。注意:n的值不大于1000。例如:n的值为855时,应输出704。#include”stdio.h”intfun(intn){ints=0,i;for(i=2;iif(n%i==0)s=s+i;returns;voidmain(){voidTestFunc();printf("s=%d\n",fun(855));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}12【程序设计】、题目:用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。#include"stdlib.h"#include"stdio.h"#defineNintsum(inta[][N]){/*********Begin**********/inti,j,k=0;for(i=0;ifor(j=N-1-i;jk=k+a[i][j];return(k);/**********End**********/}voidmain(){inta[N][N],i,j;voidTestFunc();for(i=0;i{for(j=0;j{a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数printf("%3d",a[i][j]);}printf("\n");}printf("===================\n");printf("sum=%5d\n",sum(a));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intm,n;inti[3][3];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(m=0;m<3;m++)for(n=0;n<3;n++)fscanf(IN,"%d",&i[m][n]);o=sum(i);fprintf(OUT,"%d\n",o);fclose(IN);fclose(OUT);13【程序设计】题目:用while语句求1~n的累计和。注意:请在Begin和End注释行之间填写代码,所有注释语句都不能删除。#includevoidTestFunc();intfun(intn){/*********Begin**********/inti=1,sum=0;while(i<=n){sum=sum+i;i++;}returnsum;/**********End**********/}voidmain(){intsum=0;sum=fun(100);printf("sum=%d\n",sum);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inti;intiIN,iOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}14【程序设计】--------------------------------------------------功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函输出。#include"stdio.h"intfun(intx[],intn){intmin,i;min=x[0];for(i=1;iif(x[i]returnmin;/**********End**********/}voidmain(){voidTestFunc();inta[10],i,min;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");min=fun(a,10);printf("%d\n",min);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen("4.in","r");if(IN=
{c=str[i];
str[i]=str[j];
str[j]=c;}}
chars[N];
intl;
printf("inputastring:
");gets(s);
l=strlen(s);
fun(s,l);
printf("Thenewstringis:
");puts(s);
charsIN[20],*sOUT;
intiLENGTH;
fscanf(IN,"%s",sIN);
iLENGTH=strlen(sIN);
sOUT=sIN;
fun(sIN,iLENGTH);
fprintf(OUT,"%s\n",sOUT);
7【程序设计】
实现两个整数的交换。
给a和b分别输入:
60和65,输出为:
a=65b=60
voidfun(int*a,int*b)
{intt;
t=*a;*a=*b;*b=t;}
{inta,b;
printf("Entera,b:
scanf("%d%d",&a,&b);
fun(&a,&b);
printf("a=%db=%d\n",a,b);
TestFunc();}
inta,b,n;
{printf("ReadFileError");}
for(n=0;n<5;n++)
{fscanf(IN,"%d%d",&a,&b);
fprintf(OUT,"a=%db=%d\n",a,b);}
8【程序设计】
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。
当a=45,b=12。
调用该函数后,c=2415。
longfun(inta,intb)
{longc;
inti,j,k,t;
i=a/10;
j=a%10;
k=b/10;
t=b%10;
c=t*1000+100*i+10*k+j;
returnc;
{inta,b;longc;
voidNONO();
printf("Inputa,b:
c=fun(a,b);
printf("Theresultis:
%ld\n",c);
NONO();}
voidNONO()
{FILE*rf,*wf;
inti,a,b;longc;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
{fscanf(rf,"%d,%d",&a,&b);
fun(a,b,&c);
fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}
fclose(rf);
fclose(wf);
0【程序设计】
输入一个字符串,过滤此串只保留串中的字母字符,并统计新生成串中包含的字母个数。
输入的字符串为ab234$df4,新生成的串为abdf。
#defineN80
{charstr[N];intfun(charptr[]);voidTestFunc();ints;
");gets(str);printf("Theoriginalstringis:
");puts(str);
s=fun(str);printf("Thenewstringis:
printf("Thereare%dcharin
thenewstring.",s);
intfun(charptr[])
inti,j;
for(i=0,j=0;ptr[i]!
='\0';i++)
if(ptr[i]<='z'&&ptr[i]>='a'||ptr[i]<='Z'&&ptr[i]>='A')
{ptr[j]=ptr[i];
j++;}
ptr[j]='\0';
return(j);
charsIN[N];
intiOUT;
iOUT=fun(sIN);
fprintf(OUT,"%d%s\n",iOUT,sIN);
fclose(OUT);
11【程序设计】
计算并输出给定整数n的所有因子之和(不包括1与自身)。
注意:
n的值不大于1000。
n的值为855时,应输出704。
#include”stdio.h”
{ints=0,i;
for(i=2;iif(n%i==0)s=s+i;returns;voidmain(){voidTestFunc();printf("s=%d\n",fun(855));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}12【程序设计】、题目:用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。#include"stdlib.h"#include"stdio.h"#defineNintsum(inta[][N]){/*********Begin**********/inti,j,k=0;for(i=0;ifor(j=N-1-i;jk=k+a[i][j];return(k);/**********End**********/}voidmain(){inta[N][N],i,j;voidTestFunc();for(i=0;i{for(j=0;j{a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数printf("%3d",a[i][j]);}printf("\n");}printf("===================\n");printf("sum=%5d\n",sum(a));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intm,n;inti[3][3];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(m=0;m<3;m++)for(n=0;n<3;n++)fscanf(IN,"%d",&i[m][n]);o=sum(i);fprintf(OUT,"%d\n",o);fclose(IN);fclose(OUT);13【程序设计】题目:用while语句求1~n的累计和。注意:请在Begin和End注释行之间填写代码,所有注释语句都不能删除。#includevoidTestFunc();intfun(intn){/*********Begin**********/inti=1,sum=0;while(i<=n){sum=sum+i;i++;}returnsum;/**********End**********/}voidmain(){intsum=0;sum=fun(100);printf("sum=%d\n",sum);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inti;intiIN,iOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}14【程序设计】--------------------------------------------------功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函输出。#include"stdio.h"intfun(intx[],intn){intmin,i;min=x[0];for(i=1;iif(x[i]returnmin;/**********End**********/}voidmain(){voidTestFunc();inta[10],i,min;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");min=fun(a,10);printf("%d\n",min);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen("4.in","r");if(IN=
if(n%i==0)s=s+i;
returns;
printf("s=%d\n",fun(855));
12【程序设计】、
题目:
用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。
#include"stdlib.h"
#defineN
intsum(inta[][N])
inti,j,k=0;
for(i=0;ifor(j=N-1-i;jk=k+a[i][j];return(k);/**********End**********/}voidmain(){inta[N][N],i,j;voidTestFunc();for(i=0;i{for(j=0;j{a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数printf("%3d",a[i][j]);}printf("\n");}printf("===================\n");printf("sum=%5d\n",sum(a));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intm,n;inti[3][3];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(m=0;m<3;m++)for(n=0;n<3;n++)fscanf(IN,"%d",&i[m][n]);o=sum(i);fprintf(OUT,"%d\n",o);fclose(IN);fclose(OUT);13【程序设计】题目:用while语句求1~n的累计和。注意:请在Begin和End注释行之间填写代码,所有注释语句都不能删除。#includevoidTestFunc();intfun(intn){/*********Begin**********/inti=1,sum=0;while(i<=n){sum=sum+i;i++;}returnsum;/**********End**********/}voidmain(){intsum=0;sum=fun(100);printf("sum=%d\n",sum);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inti;intiIN,iOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}14【程序设计】--------------------------------------------------功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函输出。#include"stdio.h"intfun(intx[],intn){intmin,i;min=x[0];for(i=1;iif(x[i]returnmin;/**********End**********/}voidmain(){voidTestFunc();inta[10],i,min;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");min=fun(a,10);printf("%d\n",min);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen("4.in","r");if(IN=
for(j=N-1-i;jk=k+a[i][j];return(k);/**********End**********/}voidmain(){inta[N][N],i,j;voidTestFunc();for(i=0;i{for(j=0;j{a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数printf("%3d",a[i][j]);}printf("\n");}printf("===================\n");printf("sum=%5d\n",sum(a));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intm,n;inti[3][3];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(m=0;m<3;m++)for(n=0;n<3;n++)fscanf(IN,"%d",&i[m][n]);o=sum(i);fprintf(OUT,"%d\n",o);fclose(IN);fclose(OUT);13【程序设计】题目:用while语句求1~n的累计和。注意:请在Begin和End注释行之间填写代码,所有注释语句都不能删除。#includevoidTestFunc();intfun(intn){/*********Begin**********/inti=1,sum=0;while(i<=n){sum=sum+i;i++;}returnsum;/**********End**********/}voidmain(){intsum=0;sum=fun(100);printf("sum=%d\n",sum);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inti;intiIN,iOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}14【程序设计】--------------------------------------------------功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函输出。#include"stdio.h"intfun(intx[],intn){intmin,i;min=x[0];for(i=1;iif(x[i]returnmin;/**********End**********/}voidmain(){voidTestFunc();inta[10],i,min;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");min=fun(a,10);printf("%d\n",min);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen("4.in","r");if(IN=
k=k+a[i][j];
return(k);
{inta[N][N],i,j;
for(i=0;i{for(j=0;j{a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数printf("%3d",a[i][j]);}printf("\n");}printf("===================\n");printf("sum=%5d\n",sum(a));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intm,n;inti[3][3];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(m=0;m<3;m++)for(n=0;n<3;n++)fscanf(IN,"%d",&i[m][n]);o=sum(i);fprintf(OUT,"%d\n",o);fclose(IN);fclose(OUT);13【程序设计】题目:用while语句求1~n的累计和。注意:请在Begin和End注释行之间填写代码,所有注释语句都不能删除。#includevoidTestFunc();intfun(intn){/*********Begin**********/inti=1,sum=0;while(i<=n){sum=sum+i;i++;}returnsum;/**********End**********/}voidmain(){intsum=0;sum=fun(100);printf("sum=%d\n",sum);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inti;intiIN,iOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}14【程序设计】--------------------------------------------------功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函输出。#include"stdio.h"intfun(intx[],intn){intmin,i;min=x[0];for(i=1;iif(x[i]returnmin;/**********End**********/}voidmain(){voidTestFunc();inta[10],i,min;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");min=fun(a,10);printf("%d\n",min);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen("4.in","r");if(IN=
{for(j=0;j{a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数printf("%3d",a[i][j]);}printf("\n");}printf("===================\n");printf("sum=%5d\n",sum(a));TestFunc();}voidTestFunc(){FILE*IN,*OUT;intm,n;inti[3][3];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(m=0;m<3;m++)for(n=0;n<3;n++)fscanf(IN,"%d",&i[m][n]);o=sum(i);fprintf(OUT,"%d\n",o);fclose(IN);fclose(OUT);13【程序设计】题目:用while语句求1~n的累计和。注意:请在Begin和End注释行之间填写代码,所有注释语句都不能删除。#includevoidTestFunc();intfun(intn){/*********Begin**********/inti=1,sum=0;while(i<=n){sum=sum+i;i++;}returnsum;/**********End**********/}voidmain(){intsum=0;sum=fun(100);printf("sum=%d\n",sum);TestFunc();}voidTestFunc(){FILE*IN,*OUT;inti;intiIN,iOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}14【程序设计】--------------------------------------------------功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函输出。#include"stdio.h"intfun(intx[],intn){intmin,i;min=x[0];for(i=1;iif(x[i]returnmin;/**********End**********/}voidmain(){voidTestFunc();inta[10],i,min;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");min=fun(a,10);printf("%d\n",min);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen("4.in","r");if(IN=
{a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数
printf("%3d",a[i][j]);}
printf("\n");}
printf("===================\n");
printf("sum=%5d\n",sum(a));
intm,n;inti[3][3];into;
for(m=0;m<3;m++)
for(n=0;n<3;n++)
fscanf(IN,"%d",&i[m][n]);
o=sum(i);
fprintf(OUT,"%d\n",o);
13【程序设计】
用while语句求1~n的累计和。
请在Begin和End注释行之间填写代码,所有注释语句都不能删除。
inti=1,sum=0;
while(i<=n)
{sum=sum+i;
i++;}
returnsum;
{intsum=0;
sum=fun(100);
printf("sum=%d\n",sum);
intiIN,iOUT;
{fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}
14【程序设计】
--------------------------------------------------
从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函输出。
intfun(intx[],intn)
{intmin,i;
min=x[0];
for(i=1;iif(x[i]returnmin;/**********End**********/}voidmain(){voidTestFunc();inta[10],i,min;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");min=fun(a,10);printf("%d\n",min);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen("4.in","r");if(IN=
if(x[i]returnmin;/**********End**********/}voidmain(){voidTestFunc();inta[10],i,min;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");min=fun(a,10);printf("%d\n",min);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen("4.in","r");if(IN=
returnmin;
inta[10],i,min;
scanf("%d",&a[i]);
printf("%3d",a[i]);
min=fun(a,10);
printf("%d\n",min);
intiIN[10],i;
intiOUT,iCOUNT;
IN=fopen("4.in","r");
if(IN=
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1