C语言程序设计函数练习试题及参考含_第1页
C语言程序设计函数练习试题及参考含_第2页
C语言程序设计函数练习试题及参考含_第3页
C语言程序设计函数练习试题及参考含_第4页
C语言程序设计函数练习试题及参考含_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计函数练习试题及参照含答案副本C语言程序设计函数练习试题及参照含答案副本69/69C语言程序设计函数练习试题及参照含答案副本C语言程序设计练习题及参照答案1、定义一个函数intfun(inta,intb,intc),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不可以构成三角形函数返回0。#include<>intfun(inta,intb,intc){if(a+b>c&&b+c>a&&a+c>b){if(a==b&&b==c)return3;elseif(a==b||b==c||a==c)return2;elsereturn1;}elsereturn0;}voidmain(){inta,b,c,shape;printf("\nInputa,b,c:");scanf("%d%d%d",&a,&b,&c);printf("\na=%d,b=%d,c=%d\n",a,b,c);shape=fun(a,b,c);printf("\n\nTheshape:%d\n",shape);}2、编写一个程序,将两个变量的值互换,比方变量a中的值原为3,b中的值原为8,程序运转后a中的值为8,b中的值为3。#include<>voidfun(int*x,int*y){intt;t=*x;*x=*y;*y=t}voidmain(){inta=3,b=8;printf("%d%d\n",a,b);fun(&a,b);printf("%d%d\n",a,b);}3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中。比方,输入的数为:551234,输出结果应当是:a=,b=,c=。#include<>voidfun(float*p,float*q,float*s){floatk;if(*p<*q){k=*p;*p=*q;*q=k;}if(*q<*s){k=*s;*s=*p;*p=k;}if(*p<*q){k=*p;*p=*q;*q=k;}}voidmain(){floata,b,c;printf("Inputabc:");scanf("%f%f%f",&a,&b,&c);printf("a=%,b=%,c=%\n\n",a,b,c);fun(&a,&b,&c);printf("a=%,b=%,c=%\n\n",a,b,c);}4、编写函数fun(intn),它的功能是:计算正整数n的全部因子(1和n除外)之和作为函数值返回。比方:n=120时,函数值为239。#include<>#include<>intfun(intn){inti,s=0;for(i=2;i<n;i++)if(n%i==0)s=s+i;returns;}voidmain()/*主函数*/{voidNONO();printf("%d\n",fun(120));NONO();}voidNONO(){/*请在此函数内翻开文件,输入测试数据,调用fun函数,输出数据,封闭文件。*/FILE*wf;wf=fopen("","w");fprintf(wf,"%d\n",fun(120));fclose(wf);}5、算s,并出111S=1+──+───+⋯⋯+──────1+21+2+31+2+3+⋯+nn通入,比方:若n的11,函数:#include<>#include<>floatfun(intn){inti;floats=,h=1;for(i=2;i<=n;i++){h=h+i;s=s+h;}returns;}voidmain(){intn;floats;printf("\nPleaseenterN:");scanf("%d",&n);s=fun(n);printf("theresultis:%f",s);}6、将一个整数中的每一位上为奇数的数挨次拿出,构成一个新数放在t中。高位仍在高位,低位仍在低位。比方,当s中的数为:时,t中的数为:7531。#include<>voidfun(longs,long*t){intd;longs1=1;*t=0;while(s>0){d=s%10;if(d%2!=0){*t=d*s1+*t;s1=s1*10;}s/=10;}}main(){longs,t;printf("\nPleaseenters:");scanf("%ld",&s);fun(s,&t);printf("Theresultis:%ld\n",t);}7、计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值从键盘传入,若k的值为500,则输出4622。#include<>intfun(intk){intm=0,mc=0,j;while((k>=1)&&(mc<10)){if((k%13==0)||(k%17==0)){m=m+k;mc++;}k--;}returnm;}voidmain(){printf("%d\n",fun(500));}8、已知一个数列的前三项分别为0,0,1,此后的各项都是其相邻的前三项之,计算并输出该数列前n项的平方根之和sum。比方,当n=10时,程序的输出结果应为:。#include<>#include<>doublefun(n){doublesum,s0,s1,s2,s;intk;sum=;if(n<=2)sum=;s0=;s1=;s2=;for(k=4;k<=n;k++){s=s0+s1+s2;sum+=sqrt(s);s0=s1;s1=s2;s2=s;}returnsum;}voidmain(){intn;printf("InputN=");scanf("%d",&n);printf("%f\n",fun(n));}9、编写一个程序,从键盘输入m,输出大于m且紧随m的素数。#include<>intfun(intm){inti,k;for(i=m+1;;i++){for(k=2;k<i;k++)if(i%k==0)break;if(k>=i)return(i);}}voidmain(){intn;printf("\nPleaseentern:");scanf("%d",&n);printf("%d\n",fun(n));}10、判断两个整数m和n能否互质(即能否有公共的因子)(m≠1,n≠1)。方法是:用2到t(t取m和n中较小的那个数)之间的数分别去除m和n,若m和n能同时被某个数除尽,则m和n不互质;不然它们互质。比方,若输入187和85,则应输出No(表示它们不互质,它们有公因子17)。若输入89和187,则应输出Yes(表示它们互质)。#include<>intIsThat(intm,intn){intk,t,mk=1;t=m;if(m>n)t=n;for(k=2;k<=t;k++)if(m%k==0&&n%k==0){mk=0;break;}returnmk;}voidmain(){intm,n;printf("\nPleaseenter2numbers:\n");scanf("%d%d",&m,&n);if(IsThat(m,n))printf("Yes\n");elseprintf("No\n");}11、将十进制正整数m变换成k进制数(2≤k≤9)并输出(m,k从键盘输入)。比方,若输入8和2,则应输出1000(即十进制数8变换成二进制表示是1000)。#include<>voidTrans(intm,intk){intaa[20],i,j;for(i=0;m;i++){aa[i]=m%k;m/=k;}for(j=i-1;j>=0;j--)printf("%d",aa[j]);}voidmain(){intb,n;printf("\nPleaseenteranumberandabase:\n");scanf("%d%d",&n,&b);Trans(n,b);}12、统计从键盘输入的50个实数中有多少个正数、多少个负数、多少个零#include<>voidfun(int*zs,int*fs,int*l,floataa[]){inti;for(i=0;i<50;i++){if(aa[i]>0)(*zs)++;if(aa[i]<0)(*fs)++;if(aa[i]==0)(*l)++;}}voidmain(){floatnum[50];inti,czs,cfs,cl;czs=cfs=cl=0;printf("\nPleaseenter50floatnumbers:\n");for(i=0;i<50;i++)scanf(“%f”,&num[i]);fun(&czs,&cfs,&cl,num);printf("\n正数:%d,负数:%d,零:%d\n",czs,cfs,cl);}2213、计算并输出方程X+Y=1989的全部整数解voidfun(){intx,y;for(x=1;x<=44;x++)for(y=1;y<=44;y++)if(x*x+y*y==1989)printf(“x=%d,y=%d\n”,x,y);}voidmain(){printf(“方程x^2+y^2=1989的整数解为:\n”);fun();}14、从键盘输入10个整数,求出此中的最大值。#include<>intfun(intaa[]){intm,i;m=aa[0];for(i=1;i<10;i++)if(aa[i]>m)m=aa[i];returnm;}voidmain(){intnum[10],i;printf(“请从键盘输入10个整数:\n”);for(i=0;i<10;i++)scanf(“%d”,&num[i]);printf(“\n最大的数是:%d\n”,fun(num));}15、从键盘输入n值,输出如右图形。(比方n=5时)#include<>voidfun(intn){inti,j;for(i=1;i<=n;i++){for(j=1;j<=i;j++)printf(“%3d”,1);for(j=2;j<=n+1-i;j++)printf(“%3d”,j);printf(“\n”);}}voidmain(){intn;printf(“\n请输入图形的行数:”);scanf(“%d”,&n);fun(n);}

1234511234111231111216、使用函数的方式,算以下公式的。111A1=1,A2=──,A3=──,⋯⋯An=────1+A11+A21+A(n-1)比方:若n=10,出:。#include<>floatfun(intn){floatA=1;inti;for(i=1;i<=n;i++)A=(1+A);returnA;}voidmain(){intn;printf("\nPleaseentern:");scanf("%d",&n);printf("A%d=%f\n",n,fun(n));}*17、使用函数的方式,,按下边的公式计算并输出数列的第m项。┌2,m=1;│3,m=2;FFF(m)=┤5,m=3;FFF(m-3)+FFF(m-1),m>3;比方,若输入整数9,则应输出:47。(不用做)18、使用函数的方式,按以下递归公式求函数值┌10(n=1)fun(n)=│fun(n-1)+2(n>1)比方,当给n输入5时,函数值为18;当给n输入3时,函数值为14。(不用做)19、计算并输出当0<x<时以下多项式的值,直到|S(n)-S(n-1)|<为止。比方,在主函数中从键盘给x输入后,输出为:s=。#include<>#include<>doublefun(doublex){intn=1;

/*

循环计数

*/doublesn=1;

/*

累计数*/doublexn=1,xn1=0;/*x

的n值,以及

x的

n-1

值;*/while(fabs(xn-xn1)>=/*

绝对值能否合格

*/{xn=xn*x*+1)/n;/*

表达式分解此后

xn=(xn-1)*x*+1)/n*/n+=1;sn+=xn;

/*sn

累加上

xn*/}returnsn;}voidmain(){doublex,s;printf("Inputx:");scanf("%lf",&x);s=fun(x);printf("s=%f\n",s);}20、算并出

s。x^2

x^3

x^ns=1+x+2!

3!

──+n!

──

+

⋯⋯

+

──n,x从入,比方,当#include<>

n=10,x=,函数。doublefun(doublex,intn){inti;doublef=,h=x;doubles=1;s=s+h/f;for(i=2;i<=n;i++){f=f*i;h=h*x;s=s+h/f;}returns;}voidmain(){printf("%f\n",fun,10));}21、从键盘输入high,计算并输出high以内最大的10个素数之和。比方,输入high的值为100,则输出732。#include<>intfun(inthigh){intsum=0,n=0,j,yes;while((high>=2)&&(n<10)){yes=1;for(j=2;j<=high/2;j++)if(high%j==0){yes=0;break;}if(yes==1){sum+=high;n++;}high--;}returnsum;}voidmain(){printf("%d\n",fun(100));}22、请编写函数floatfun(intn),它的功能是:返回n(包含n)以内能被5或9整除的全部自然数的倒数之和。比方,n=20,返回。注意:要求n的值不大于100。#include<>doublefun(intn){inti;doublesum=;if(n>0&&n<=100){for(i=1;i<=n;i++)if(i%5==0||i%9==0)sum+=i;}returnsum;}voidmain(){intn;doubles;printf("\nInputn:");scanf("%d",&n);s=fun(n);printf("\n\ns=%f\n",s);}23、请编一个函数

fun(int*a,intn,int*odd,int*even)

,函数的功能是分别求出数组中全部奇数之和以及全部偶数之和。形参

n给出数组

a中数据的个数;利用指针odd返回奇数之和,利用指针even返回偶数之和。比方:数组中的值挨次为:1,9,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even返回偶数之和8。#include<>#defineN20fun(int*a,intn,int*odd,int*even){inti,sum_odd=0,sum_even=0;for(i=0;i<n;i++)if(a[i]%2==0)sum_even+=a[i];elsesum_odd+=a[i];*odd=sum_odd;*even=sum_even;}voidmain(){inta[N]={1,9,2,3,11,6},i,n=6,odd,even;printf("Theoriginaldatais:\n");for(i=0;i<n;i++)printf("%5d",*(a+i));printf("\n\n");fun(a,n,&odd,&even);printf("Thesumofoddnumbers:%d\n",odd);printf("Thesumofevennumbers:%d\n",even);}24、编写计算三角形面积的程序,注意:将计算面积定义成函数floatfun(inta,intb,intc)(a,b,c为三角形的三条边,返回三角形的面积),在主函数中调fun#include<>#include<>floatfun(inta,intb,intc){floatp;p=(a+b+c)/2;returnsqrt(p*(p-a)*(p-b)*(p-c));}voidmain(){inta,b,c;printf(“请输入三角形三条边:\n”);scanf(“%d%d%d”,&a,&b,&d);if(a+b>c&&b+c>a&&a+c>b)printf(“三角形面积为:%.2f”,fun(a,b,c));elseprintf(“没法构成三角形”);}-425、写程序,求E=1+1/1!+1/2!+⋯⋯+1/n!,要求最后一的小于10#include<>{doublem=;inti=1;doublep=;do{m=m+p;i++;p=p*i;}whilep>=1E-4);returnm;}voidmain(){intn;doubles;printf("Inputn:");scanf("%d",&n);s=fun(n);printf("s=%f\n",s);}26、计算并输出给定数组(长度为9)中每相邻两个元素之均匀值的平方根之和。比方,给定数组中的9个元素挨次为、、、、、、、、,输出应为:s=。#include<>#include<>doublefun(doublex[9]){inti;doubleavg=,sum=;for(i=0;i<8;i++){avg=(x[i]+x[i+1])/2;sum+=sqrt(avg);}returnsum;}voidmain(){doubles,a[9]={,,,,,,,,};inti;printf("\nTheoriginaldatais:\n");for(i=0;i<9;i++)printf("%",a[i]);printf("\n\n");s=fun(a);printf("s=%f\n\n",s);}27、将1到m以内(含m)能被7或11整除的全部整数放在数组a中。比方,若输入m的值为50,则在数组a中的值为:711142122283335424449#include<>#defineM100voidfun(intm,int*a,int*n){inti,count=0;for(i=1;i<=m;i++){if(i%7==0||i%11==0){a[count++]=i;}}*n=count;}voidmain(){intaa[M],n,k;fun(50,aa,&n);for(k=0;k<n;k++)if((k+1)%20==0)printf("\n");elseprintf("%4d",aa[k]);printf("\n");}28、请编写函数

intfun(intm,intscore[],intbelow[])

,它的功能是:将低于均匀分的人数作为函数值返回,并将低于均匀分的成绩放在

below数组中(m表示score的长度,score表示成绩)。比方,当score数组中的数据为:10、20、30、40、50、60、70、80、90时,函数返回4,below中的数据应为:10、20、30、40。#include<>#include<>intfun(intscore[],intm,intbelow[]){inttotal=0;intaverage=0;int*p_below=below;inti=0;intj=0;for(i=0;i<m;i++){total=total+score[i];}average=total/m;for(i=0;i<m;i++){if(score[i]<average){*p_below=score[i];p_below++;j++;}}*p_below=NULL;return(j);}main(){inti,n,below[9];intscore[9]={10,20,30,40,50,60,70,80,90};n=fun(score,9,below);printf("\nBelowtheaveragescoreare:");for(i=0;i<n;i++)printf("%d",below[i]);}29、用插入排序法将n个字符行排序(降序)。(提示:插入法排序的思路是:先数的两个元素行排序,此后依据前两个元素的状况插入第三个元素,再插入第四个元素⋯)。#defineN80#include""#include""voidinsert(char*aa){inti,j,n;charch;n=strlen(aa);for(i=1;i<n;i++){ch=aa[i];j=i-1;while((j>=0)&&(ch<aa[j])){aa[j+1]=aa[j];j--;}aa[j+1]=ch;}}voidmain(){chara[N]="QWERTYUIOPASDFGHJKLMNBVCXZ";inti;printf("Theoriginalstring:%s\n",a);insert(a);printf("Thestringaftersorting:%s\n\n",a);}30、假设整数数组a中元素的值不重复。删除a中值为x的元素(x从键盘输入)。#include<>#defineN20fun(int*a,intn,intx){intp=0,i;a[n]=x;while(x!=a[p])p=p+1;if(p==n)return-1;else{for(i=p;i<n;i++)a[i]=a[i+1];returnn-1;}}voidmain(){intw[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i;n=10;printf("Theoriginaldata:\n");for(i=0;i<n;i++)printf("%5d",w[i]);printf("\nInputx(todelete):");scanf("%d",&x);printf("Delete:%d\n",x);n=fun(w,n,x);if(n==-1)printf("*Notbefound!*\n\n");else{printf("Thedataafterdeleted:\n");for(i=0;i<n;i++)printf("%5d",w[i]);printf("\n\n");}}31、一个已按从小到大的次序排好的数组a,编写程序,从键盘输入一个数x按本来排序的规律将它插入数组a中。#include<>#defineM20voidInSort(int*n,intvv[],intk){inti=0,j;while(k>vv[i]&&i<*n)i++;if(i<*n)for(j=*n;j>i;j--)vv[j]=vv[j-1];vv[i]=k;++*n;}voidmain(){intaa[M],i,k,m;system("cls");printf("\nPleaseenteranumber:\n");scanf("%d",&m);printf("\nPleaseenter%dnumbers:\n",m);for(i=0;i<m;i++)scanf("%d",&aa[i]);printf("\nPleaseenteranothernumber:\n");scanf("%d",&k);InSort(&m,aa,k);for(k=0;k<m;k++)printf("%d",aa[k]);}32、使用数组的方法优选出1-100中的素数#include<>voidfun(int*pt){inti,j,flag;*pt=2;*pt++;for(i=3;i<100;i++){flag=1;for(j=2;j<i;j++)if(i%j==0)flag=0;if(flag){*pt=i;*pt++;}}*pt=0;}voidmain(){int*pointer,a[30];pointer=a;fun(pointer);printf("Theresultis:\n");while(*pointer)printf("%d",*pointer++);}33、已知一个数组a中包含10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b。#include<>voidfun(inta[],intb[]){inti;for(i=1;i<10;i++)b[i-1]=a[i]-a[i-1];for(i=0;i<9;i++){printf(“%3d”,b[i]);if((i+1)%3==0)printf(“\n”);}}voidmain(){inta[10]={1,2,3,4,5,6,7,8,9,10};intb[9];fun(a,b);}34、请编写函数fun,函数的功能是:将M行N列的二维数组中的字符数据按列的次序挨次放到一个字符串中。比方,二维数组中的数据为:WWWWSSSSHHHH则字符串中的内容应是:WSHWSHWSH。#include<>voidfun(int(*s)[10],int*b,int*n,intmm,intnn){intx,y;for(x=0;x<nn;x++)for(y=0;y<mm;y++){b[x*mm+y]=*(s[y]+x);(*n)++;}}voidmain(){intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;inta[100]={0},n=0;printf("Thematrix:\n");for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",w[i][j]);printf("\n");}fun(w,a,&n,3,4);printf("TheAarray:\n");for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");}35、求出N×N的二维数组周边元素的均匀值|01279||19745|a=|23831||45682||59141|则返回主程序后s的值应为:。#include<>#defineM4#defineN5intfun(inta[M][N]){inti,j,sum=0;for(i=0;i<M;i++)for(j=0;j<N;j++)if((i==0)||(i==M-1)||(j==0)||(j==N-1))sum+=a[i][j];returnsum;}voidmain(){intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};inti,j,y;system("cls");printf("Theoriginaldatais:\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%6d",aa[i][j]);printf("\n");}y=fun(aa);printf("\nThesum:%d\n",y);printf("\n");}36、求出M行N列的二维数组tt里每列中的最小元素,并挨次放入pp数组中。#include<>#defineM3#defineN4voidfun(inttt[M][N],intpp[N]){inti,j,min;for(i=0;i<N;i++){min=tt[0][i];for(j=0;j<M;j++)if(min>tt[j][i])min=tt[j][i];pp[i]=min;}}voidmain(){intt[M][N]={{22,45,56,30},{19,33,45,38},{20,22,66,40}};intp[N],i,j,k;system("cls");printf("Theoriginaldatais:\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%6d",t[i][j]);printf("\n");}fun(t,p);printf("\nTheresultis:\n");for(k=0;k<N;k++)printf("%4d",p[k]);printf("\n");}37、请编写程序,实现B=A+A',即把矩阵A加上A的转置,寄存在矩阵B中。计算结果在main函数中输出。比方,输入下边的矩阵:其转置矩阵为:|123||147||456||258||789||369|程序输出:|2610||61014||101418|#include<>voidfun(inta[3][3],intb[3][3]){inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[i][j]+a[j][i];}voidmain(){inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3];inti,j;fun(a,t);for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",t[i][j]);printf("\n");}}38、编写程序删除字符串s中从下标k开始的n个字符(n和k从键盘输入)。比方,字符串内容为:HellolloWorld!,k中的值为:5,n中的值为:3,结果为:HelloWorld!。#include<>#defineN80voidfun(char*a,intk,intn){inti;i=k;while(a[i-1]!='\0'){a[i]=a[i+n];i=i+1;}}voidmain(){chars[N]="HellolloWorld!";intk,n;printf("\nTheoriginalstring:%s\n",s);printf("Enterindex————————k:"),scanf("%d",&k);printf("Enternumbertodelete——n:");scanf("%d",&n);fun(s,k,n);printf("\nThestringafterdeleted:%s\n",s);NONO();}39、编写程序,从键盘输入字符串tt,将此中每个单词的首字符改为对应的大写字母,首字符后的字母都改为对应的小写字母。比方,若输入字符串:"abcDbOYxy!",则输出字符串为:"AbCdBoyxy!"。#include<>#include<>char*EXUL(chartt[]){intisfirst=1;inti,length;length=strlen(tt);for(i=0;i<length;i++){if(tt[i]>='a'&&tt[i]<='z'){tt[i]=isfirst?(tt[i]+'A'-'a'):tt[i];isfirst=0;}elseif(tt[i]>='A'&&tt[i]<='Z'){tt[i]=isfirst?tt[i]:(tt[i]-'A'+'a');isfirst=0;}elseisfirst=1;}returntt;}main(){inti;chartt[81];printf("\nPleaseenterastring:");gets(tt);printf("\nTheresultstringis:%s\n",EXUL(tt));}40、编写程序,从键盘输入字符串tt,字符串中'a'到'z'26个字母各自出现的次数,并挨次放在pp所指数组中。比方,当输入字符串:abcdefgabcdeabc后,程序的输出结果应当是:33322110000000000000000000#include<>voidfun(char*tt,intpp[]){char*p_tt=tt;inti=0;while(i<26){pp[i]=0;i++;}for(;*p_tt!=NULL;p_tt++){switch(*p_tt){case'a':pp[0]++;break;case'b':pp[1]++;break;case'c':pp[2]++;break;case'd':pp[3]++;break;case'e':pp[4]++;break;case'f':pp[5]++;break;case'g':pp[6]++;break;case'h':pp[7]++;break;case'i':pp[8]++;break;case'j':pp[9]++;break;case'k':pp[10]++;break;case'l':pp[11]++;break;case'm':pp[12]++;break;case'n':pp[13]++;break;case'o':pp[14]++;break;case'p':pp[15]++;break;case'q':pp[16]++;break;case'r':pp[17]++;break;case's':pp[18]++;break;case't':pp[19]++;break;case'u':pp[20]++;break;case'v':pp[21]++;break;case'w':pp[22]++;break;case'x':pp[23]++;break;case'y':pp[24]++;break;case'z':pp[25]++;break;}}}main(){charaa[1000];intbb[26],k,n;printf("\nPleaseenteracharstring:");scanf("%s",aa);fun(aa,bb);for(k=0;k<26;k++)printf("%d",bb[k]);printf("\n");}41、请编写程序,把字符串s中全部的字符前移一个地点,串中的第一个字符移到最后。比方:原有的字符串为:,则调用该函数后,串中的内容为:。#include<>#include<>#defineN81fun(char*s){charb[N];sprintf(b,"%s%c",s+1,*s);strcpy(s,b);}voidmain(){chara[N];printf("Enterastring:");gets(a);printf("Theoriginalstringis:");puts(a);fun(a);printf("Thestringaftermodified:");puts(a);}42、编写程序,把字符串中的内容逆置。比方:字符串中原有的内容为:#include<>#include<>#defineN81

abcdefg,输出:gfedcba。voidfun(char*s){inti,length;chartmp;length=strlen(s);for(i=0;i<length/2;i++){tmp=s[i];s[i]=s[length-i-1];s[length-i-1]=tmp;}}voidmain(){chara[N];printf("Enterastring:");gets(a);printf("Theoriginalstringis:");puts(a);fun(a);printf("\n");printf("Thestringaftermodified:");puts(a);}43、编写程序,挨次拿出字符串s1中全部数字字符,形成新的字符串s2。#include<>voidfun(char*s){inti,j;for(i=0,j=0;s[i]!='\0';i++)if(s[i]>='0'&&s[i]<='9')s[j++]=s[i];s[j]='\0';}voidmain(){charitem[80];printf("\nEnterastring:");gets(item);printf("\n\nThestringis:\"%s\"\n",item);fun(item);printf("\n\nThestringofchangingis:\"%s\"\n",item);}44、分别将a、b所指字符串中字符倒序,此后按摆列的

温馨提示

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

评论

0/150

提交评论