C语言程序设计练习题(含程序及参考答案)_第1页
C语言程序设计练习题(含程序及参考答案)_第2页
C语言程序设计练习题(含程序及参考答案)_第3页
C语言程序设计练习题(含程序及参考答案)_第4页
C语言程序设计练习题(含程序及参考答案)_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

1、定义一个函数 intfun(inta,intb,intc),它的功能是:若a,b,c能构成等边三角形函数返回 3,若能构成等腰返回 2,一般三角形返回 1,若不能构成三角形返回 0。#include<stdio.h>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、编写一个程序,将两个变量的值交换,例如变量2、编写一个程序,将两个变量的值交换,例如变量a中的值原为3,b中的值原为原为3,b中的值原为8,程序运行后a中的值为8,b中的值为3。#include<stdio.h>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中。例如,输入的数为: 55 12 34,输出结果应当是:a=55.0,b=34.0,c=12.0。#include<stdio.h>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=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);fun(&a,&b,&c);printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);}4、编写函数 fun(intn)它的功能是:计算正整数 n的所有因子(1和n除外)之和作为函数值返回。 例如:n=120时,函数值为 239。#include<stdio.h>#include<stdlib.h>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{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */数,输出数据,关闭文件。 */FILE*wf;wf=fopen("a30.out","w");fprintf(wf,"%d\n",fun(120));fclose(wf);}5、计算 s,并输出1 1 1S=1+1□ +■口+…… +DDDDDD1+2 1+2+3 1+2+3+…+nn通过键盘输入,例如:若 n的值为11时,则函数值为:1.833333#include<stdio.h>#include<stdlib.h>floatfun(intn)inti;floats=1.0,h=1;for(i=2;i<=n;i++){h=h+i;s=s+1.0/h;}returns;}voidmain(){intn;floats;printf("\nPleaseenterN:");scanf("%d",&n);s=fun(n);printf("theresultis:%f",s);}6、将一个整数中的每一位上为奇数的数依次取出,构成一个新数放在 t中。高位仍在高位,低位仍在低位。口如,当s中的数为:87653142时,t中的数为: 7531。#include<stdio.h>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<stdio.h>

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));}以后的各项都n项的平方根8以后的各项都n项的平方根是其相邻的前三项之和 ,计算并输出该数列前之和sum。例如,当 n口10时,程序的输出结果应为:23.197745。#include<stdio.h>#include<math.h>doublefun(n){doublesum,s0,s1,s2,s;intk;sum=1.0;if(n<=2)sum=0.0;s0=0.0;s1=0.0;s2=1.0;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));}m的素数。9、编写一个程序, 从键盘输入m,输出大于 mm的素数。#include<stdio.h>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<stdio.h>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");}(m,k从键盘输入口。例如,若输入8和2,则应输出1000(即十进制数8转换成11、将十进制正整数 m转换成 (m,k从键盘输入口。例如,若输入8和2,则应输出1000(即十进制数8转换成{{{{二进制表示是1000)二进制表示是1000)。#include<stdio.h>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<stdio.h>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);}13、计算并输出方程 X2+Y2=1989的所有整数解#include<stdio.h>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(“方程 xM+y八2=1989的整数解为 :\n”);fun();}14、从键盘输入 10个整数,求出其中的最大值。#include<stdio.h>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值,输出如右图形。 (例如TOC\o"1-5"\h\z12 3 4 5n=5时) 11 2 3 411 1 2 3#include<stdio.h> 11 1 1 211 1 1 1voidfun(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);}16、使用函数的方式,计算如下公式的值。1 1 1A1=1,A2=口口, A3二口口,…… An=DDDD1+A1 1+A2 1+A(n-1)例如:若 n=10,则应输出: 0.617977。#include<stdio.h>floatfun(intn){floatA=1;inti;for(i=1;i<=n;i++)A=1.0/(1+A);returnA;}voidmain()voidmain()voidmain(){voidmain()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、计算并输出当|S(n)-S(n-1)0<x<0.97时下列多项式的值19、计算并输出当|S(n)-S(n-1)0<x<0.97时下列多项式的值,直到10.5(0.5-1) 0.5(0.5-1)(0.5-2) 0.5(0.5-1)(0.5-2)■■■(0.5-n+l)S=l+0.5x+ x"2+ x"3…+ x"n2! 3! n!例如,在主函数中从键盘给x输入0.21后,输出为:s=1.100000。#include<stdio.h>#include<math.h>doublefun(doublex){intn=1; /*循环计数*/doublesn=1; /*累计数*/doublexn=1,xn1=0;/*x的n值,以及x的n-1值;*/while(fabs(xn-xn1)>=0.000001)/*绝对值是否合格 */{xn=xn*x*(0.5-n+1)/n; /*表达式分解以后xn=(xn-1)*x*(0.5-n+1)/n*/n+=1;sn+=xn; /*sn累加上xn*/}returnsn;}}}}}doublex,s;printf("Inputx:");scanf("%lf",&x);s=fun(x);printf("s=%f\n",s);}20、计算并输出s。X2 x^3 x^ns=1+x+nn+nn+…… +nn3! n!n=10,x=0.3时,函数值为3! n!n=10,x=0.3时,函数值为n)n,x从键盘输入,例如,当1.349859。#include<stdio.h>doublefun(doublex,int{inti;doublef=1.0,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()voidmain(){}}voidmain(){printf("%f\n",fun(0.3,10));}21、从键盘输入之和。例如,输入#includehigh,计算并输出high的值为<stdio.h>high以内最大的100,则输出 73221、从键盘输入之和。例如,输入#includehigh,计算并输出high的值为<stdio.h>high以内最大的100,则输出 732。10个素数intfun({intsuminthigh)=0,while((high{n=0,j,>=2)&&yes;(n<10))yes=1;for(j=2;j<=high/2;j++)if(high%if(high%j==0){yes=0;break;}if(yes==1){sum+=high;n++;}high--;returnsum}voidmain(){printf("%d\n",fun(100));}n(包22、请编写函数 floatfun(intn),n(包括n)以内能被 5或9整除的所有自然数的倒数之和。例如,n=20,返回0.583333。注意:要求 n的值不大于 100。#include<stdio.h>doublefun(intn){inti;doublesum=0.0;if(n>0&&n<=100){for(i=1;i<=n;i++)if(i%5==0||i%9==0)sum+=1.0/i;}returnsum;}

intn;doubles;printf("\nInputn:");scanf("%d",&n);s=fun(n);printf("\n\ns=%f\n",s);}23、请编一个函数23、请编一个函数函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参 n之和。形参 n给出数组 a中数据的个数;利用指针odd返回奇数之和,利用指针 even返回偶数之和。例如:数组中的值依次为: 1,9,2,3,11,6;则利用指针odd返回奇数之和 24;利用指针even返回偶数之和 8。#include<stdio.h>#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<stdio.h>#include<math.h>floatfun(inta,intb,intc){floatp;p=(a+b+c)/2;returnsqrt(p*(p-a)*(p-b)*(p-c));}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(“无法构成三角形” );}25、编写程序,求 E=1+1/1!+1/2!+……+1/n!,要求最后一项的值小于 10-4#include<stdio.h>doublefun(intn){doublem=1.0;inti=1;doublep=1.0;do{m=m+1.0/p;i++;p=p*i;}while(1.0/p>=1E-4);returnm;}voidmain()}}}}voidmain()voidmain(){intn;doubles;printf("Inputn:");scanf("%d",&n);s=fun(n);printf("s=%f\n",s);}26、计算并输出给定数组(长度为 9)中每相邻两个元素之平均值的平方根之和。例如,给定数组中的9个元素依次为12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,输出应为: s=35.951014。#include<stdio.h>#include<math.h>doublefun(doublex[9]){inti;doubleavg=0.0,sum=0.0;for(i=0;i<8;i++){avg=(x[i]+x[i+1])/2;sum+=sqrt(avg);}returnsum;}doubles,a[9]={12.0,34.0,4.0,23.0,34.0,45.0,18.0,3.0,11.0};inti;printf("\nTheoriginaldatais:\n");for(i=0;i<9;i++)printf("%6.1f",a[i]);printf("\n\n");s=fun(a);printf("s=%f\n\n",s);}27、将1到m之内(含 m)能被 7或11整除的所有整数放在数组a中。例如,若输入m的值为 50,则在数组a中的值为:7 11 14 21 22 28 33 35 42 4449#include<stdio.h>#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于平均分的成绩放在below数组中口m表示score的长度,score表示成绩)。例如,当score数组中的数据为:10、20、30、40、50、60、70、80、90时,函数返回4,below中的数据应为:10、20、30、40。#include<stdio.h>#include<stdlib.h>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"stdio.h"#include"string.h"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<stdio.h>#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("\nInput x (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<stdio.h>#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<stdio.h>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中包括1033、已知一个数组a中包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b。#include<stdio.h>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<stdio.h>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");}TOC\o"1-5"\h\z35、求出NDN的二维数组周边元素的平均值|0 1 2 7 9||1 9 7 4 5|a=|2 3 8 3 1||4 5 6 8 2||5 9 1 4 1|则返回主程序后 s的值应为: 3.375。#include<stdio.h>#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<stdio.h>#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',即把矩阵A37、请编写程序,实现B=A+A',即把矩阵A加上A的转口,存放在矩阵 B中。计算结果在例如,输入下面的矩阵:|123||456||789|程序输出:|2610|61014|101418#include<stdio.h>main函数中输出。其转置矩阵为:|147|258|369voidfun(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、编写程序删除字符串从键盘输入)。例如,字符串内容为:sprintf("\n");38、编写程序删除字符串从键盘输入)。例如,字符串内容为:s中从下标 k开始的 n个字符( nOkHellolloWorld!,k中的值为:5,n中的值为:3,结果为:HelloWorld!。#include<stdio.h>#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("\nThe original string:%s\n",s);printf("Enter index ———————— k:"),scanf("%d",&k);printf("Enter number todelete —— n:");scanf("%d",&n);fun(s,k,n);printf("\nThestringafterdeleted:%s\n",s);NONO();}39、编写程序,从键盘输入字符串 tt,将其中每个单词的首字符改为对应的大写字母,首字符后的字母都改为对应的小写字母。例如,若输入字符串: "abcDbOYxy!”,则输出字符串为:"AbCdBoyxy!"。#include<stdio.h>#include<string.h>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<stdio.h>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]

温馨提示

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

评论

0/150

提交评论