东北大学C语言程序+答案1.docx
《东北大学C语言程序+答案1.docx》由会员分享,可在线阅读,更多相关《东北大学C语言程序+答案1.docx(31页珍藏版)》请在冰点文库上搜索。
东北大学C语言程序+答案1
第一大题
13.根据下面的函数关系,对输入的每个x值,计算出相应的y值并输出结果。
(1)当x小于1时,y等于2+cos(x)
(2)当x大于等于1且x小于2时,y等于x的平方加上sin(x)
(3)当x大于等于2时,y等于(x-2)的平方根;
要求:
按格式输出x和y的值,要求小数点后保留2位。
#include
main()
{
floatx,y;
printf("请输入x:
");
scanf("%f",&x);
if(x<1)
y=cos(x)+2;
elseif(x<2)
y=x*x+sin(x);
else
y=sqrt(x-2);
printf("%.2f",y);
}
14.从键盘读入一个实数,对其进行四舍五入处理,要求精确到到小数点后两位。
例如输入12.345,其结果为12.35;输入12.341,其结果为12.34。
floatx;
printf("请输入一个小数:
x=x*100;
x=int(x+0.5);
x=x/100.0;
printf("%.2f\n",x);
15.从键盘输入任意一个字母,如果其为大写字母,则转为小写字母;如果其为小写字母,请转换为大写字母;其他情况保持不变,计算并输出。
charx;
printf("请输入一个字母:
scanf("%c",&x);
if(x>='a'&&x<='z')
printf("%c",x-32);
elseif(x>='A'&&x<='Z')
printf("%c",x+32);
printf("%c",x);
16.从键盘输入三个整数a、b、c,输出其中最大的数。
inta,b,c;
printf("请输入三个整数:
scanf("%d%d%d",&a,&b,&c);
if(a
a=b;
if(aa=c;printf("最大的数是%d\n",a);}17.输入用单个字母表示的成绩信息,转换为百分制分数。说明:输入A,输出95;输入B,输出85;输入C,输出75;输入D,输出65;输入E,输出65.#includemain(){printf("请输入一个字母:");charx;scanf("%c",&x);if(x=='A')printf("95");elseif(x=='B')printf("85");elseif(x=='C')printf("75");elseif(x=='D')printf("65");elseif(x=='E')printf("65");elseprintf("错误");}18.输入一个3位的正整数,判定该正整数是否为一个回文数。(所谓回文数是指正读和反读都相同的数,例如131)。#includemain(){printf("请输入一个三位数:");intx,a,b;scanf("%d",&x);a=x/100;b=x%10;if(a==b)printf("%d是一个回文数",x);elseprintf("%d不是一个回文数",x);}19.从键盘输入国际货币表示的商品价格,请转换为人民币。要求:仅仅考虑美元($)和欧元€,汇率分别6和8。例如输入$100,输出600,输入E100,输出800#includemain(){printf("请输入商品价格:");floatx,y;chara;scanf("%c%f",&a,&x);if(a=='$'){y=x*6;printf("人民币为%f\n",y);}elseif(a=='E'){y=x*8;printf("人民币为%f\n",y);}else{printf("错误\n");}}20.从键盘输入三个整数,找处其最大和最小的数,并输出。#includemain(){printf("请输入三个整数:");inta,b,c,x,t;scanf("%d%d%d",&a,&b,&c);x=a;if(ax=b;if(xx=c;t=a;if(a>b)t=b;if(a>c)t=c;printf("最大值是%d,最小值是%d.\n",x,t);}21.根据下面的函数关系,输入X,计算Y,要求输出结果保留两位小数。(1)当x小于6时,y等于(1+x)(2)当x大于等于6且小于10时,y等于(x-2)的平方加1(3)当x大于等于10时,y等于sin(x)+2x#include#includemain(){printf("请输入x:");floatx,y;scanf("%f",&x);if(x<6)y=x+1;elseif(x<10)y=(x-2)*(x-2)+1;elsey=sin(x)+2*x;printf("%.2f\n",y);}22.根据下面的函数关系,输入X,计算Y,要求输出结果保留两位小数。(1)当x小于5时,y=0(2)当x大于5且小于等于10时,y=sin(x)(3)当x大于10时,y=cos(x)+sin(x)#include#includemain(){printf("请输入x:");floatx,y;scanf("%f",&x);if(x<5)y=0;elseif(x<=10)y=sin(x);elseif(x>10)y=cos(x)+sin(x);printf("%.2f\n",y);}42.从键盘输入一个三位整数,计算其上下边界,例如123,其下边界为100,上边界为199,依此类推#includemain(){printf("请输入一个三位整数:");intx,a,b;scanf("%d",&x);a=x/100;a=a*100;b=a+99;printf("上边界是%d,下边界是%d",b,a);}43.从键盘输入一个三位纯小数,计算其上下边界,例如0.123,其下边界为0.100,上边界为0.199,依此类推#includemain(){printf("请输入一个三位纯小数:");floatx,a,b;scanf("%f",&x);a=int(x/0.1);a=a*0.1;b=a+0.099;printf("上边界是%.3f,下边界是%.3f",b,a);}第二大题23.计算1-1/2+1/3-1/4+…+1/n的和,在主函数输入n,计算输出结果。#include#includevoidmain(){printf("请输入一个整数:");floatx,n,y;y=0;scanf("%f",&n);for(x=1;x<=n;x++){y=y+pow(-1,x-1)*1/x;}printf("%f\n",y);}24.从键盘输入一个自然数,判定其是否为完数,如果是,输出Yes,否则输出No。完数是指一个整数的所有因子之和等于其自身的数,例如6=1+2+3。#includevoidmain(){printf("请输入一个整数:");inta,b,i;b=1;scanf("%d",&a);for(i=2;i{if(a%i==0){b=b+i;}}if(b==a)printf("Yes\n");elseprintf("NO\n");}25.计算1/2,2/3,3/5,5/8,8/13,13/21,……的前10项和,并输出结果。#includevoidmain(){floatm,x,y,a,b,i,q,p;a=1;x=2;b=2;y=3;m=a/b;for(i=1;i<=2;i++)??{m=m+x/y;q=x;x=x+a;a=q;p=y;y=y+b;b=p;}printf("%f\n",m);}26.计算分数序列:2/1,-3/2,5/3,-8/5,13/8,-21/13,…,的前10项之和并输出。#include#includevoidmain(){floaty,n,i,m,q,w,a,b;y=2;n=3;m=2;q=2;w=1;for(i=1;i<=9;i++){m=m+pow(-1,i)*n/y;a=n;n=n+q;q=a;b=y;y=y+w;w=b;}printf("%f\n",m);}27.从键盘读入一个自然数,判定其是否为素数,如果是,输出Yes,否则输出No#includemain(){printf("请输入一个整数:");inti,x,a;scanf("%d",&x);for(i=2;i{if(x%i==0){a=1;break;}if(x%i!=0){a=0;continue;}}if(a==1)printf("No\n");elseprintf("yes\n");}28.由x,y二个数字组成二位数xy和yz,且xy+yz=102。如果有解,输出所有解,否则输出无解这道题不知道z是从哪来的,所以答案仅供参考!我把z看成x#includevoidmain(){intx,y,z;for(x=1;x<=10;x++){for(y=1;y<=10;y++){z=x*10+y+y*10+x;if(z==102)printf("%d%d\n",x,y);}if(x==10)printf("无解\n");}}29.计算Fibonacci数列中前5项的和。提示:Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)。#includemain(){inta,b,c,i,w;b=1;a=0;c=0;for(i=1;i<=4;i++){a=a+b;w=b;b=b+c;c=w;}printf("%d\n",a);}30.计算全部水仙花数的和(提示:“水仙花”数是指一个三位数,其各位数字的立方和等于该数本身,例如:153).#include#includemain(){intx,a,b,c,y;for(x=100;x<=999;x++){a=x/100;b=x/10-a*10;c=x%10;y=pow(a,3)+pow(b,3)+pow(c,3);if(y==x)printf("%d",x);}}31.计算S=1-1/12+1/12-1/12+1/12……-1/102的值,并输出这道题我不懂他是什么意思所以没做出来!32.计算1/1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…n)的,要求小数点后保留6位#includevoidmain(){floati,a,n,m;printf("请输入n:");scanf("%f",&n);m=0;for(i=1;i<=n;i++){a=i*(i+1)/2;m=m+1/a;}printf("%f\n",m);}44.由x,y二个数字组成二位数xx和yz,且xy+yz=124。如果有解,输出所有解,否则输出无解#includevoidmain(){intx,y,z;for(x=1;x<=10;x++){for(y=1;y<=10;y++){z=x*10+y+y*10+x;if(z==124)printf("%d%d\n",x,y);}if(x==10)printf("无解\n");}}45.输出公元1000至今的所有闰年的数量#includemain(){intx;for(x=1001;x<=2014;x++){If(x%400==0)printf("%d\n",x);if(x%100!=0){if(x%4==0){printf("%d\n",x);}}}}第三大题7.在物理实验中,获得5个数据{0.89,0.78,0.0009,0.67,0.56},其中有一个数据小于0.001,此数据无效,将此无效数据删除。要求编制函数cleandata(double*p)实现数据的清理工作,并在主函数输出删除之前的数组和删除之后的数组。#include#includevoidcleandata(double*p){inta,b,c;for(a=0;a<4;a++)printf("%lf",p[a]);printf("%lf\n",p[4]);for(b=0;b<5;b++){if(p[b]<0.001)break;}for(c=0;cprintf("%lf",p[c]);for(c=b+1;c<5;c++)printf("%lf",p[c]);}intmain(){doubles[5]={0.89,0.78,0.0009,0.67,0.56};double*p;p=s;cleandata(p);return0;}8.编写函数clear(char*t)将字符串t中的非英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#include#includevoidclear(char*t){charb[100];inti,d,n;d=0;for(n=0;n<100;n++)b[n]='\0';for(i=0;i<100;i++){if(t[i]<='z'&&t[i]>='a'||t[i]<='Z'&&t[i]>='A'){b[d]=t[i];d++;}}printf("%s\n",b);}intmain(){chars[100];printf("请输入字符串:");gets(s);char*t;t=s;clear(t);return0;}9已知一有序序列1,2,4,6,12,14,要求从键盘输入一个整数,将此整数插入到此有序序列中。要求输出原始数组和插入之后的数组。要求编制函数insert(int*p,intd)实现此功能,在主函数调用此函数。提示:例如输入整数位7,首先要找到7在整个序列中的位置,然后将7插入到当前位置。#includevoidinsert(int*p,intd){inta,b,c;for(a=0;a<5;a++){printf("%d",p[a]);}printf("%d\n",p[5]);for(b=0;b<6;b++){if(dbreak;}for(c=0;c{printf("%d",p[c]);}printf("%d",d);for(c=b;c<6;c++){printf("%d",p[c]);}}main(){int*p;ints[6]={1,2,4,6,12,14};p=s;intd;printf("请输入一个整数:");scanf("%d",&d);insert(p,d);return0;}12.从键盘读入一整数,判断其在数组3,23,-7,8,9,10中是否存在,假设此数组中不存在重复的数字。若存在,则删除此数;否则,提示此数不存在。要求:编制函数remove(double*p,doubled)实现数据的清理工作,并输出原始数据和删除后的数据。33.编写函数strcat(char*t,char*s)将字符串s中的全部数字字符连接到字符串t的尾部。#include#includevoidstrcat(char*t,char*s){inta,b,c;a=strlen(t);c=0;for(b=0;b<100;b++){if(s[b]<='9'&&s[b]>='0'){t[a+c]=s[b];c++;}}printf("%s\n",t);}main(){char*t,*s;charm[100],n[100];intd;for(d=0;d<100;d++){m[d]='\0';}printf("请输入第一个字符串:");gets(m);printf("请输入第二个字符串:");gets(n);t=m;s=n;strcat(t,s);return0;}34.编写函数clear(char*t)将字符串t中的全部英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#includevoidclear(char*t){chara[100];inti,m;m=0;for(i=0;i<100;i++){if(t[i]<'a'&&t[i]>'Z'||t[i]<'A'||t[i]>'z'){a[m]=t[i];m++;}}printf("%s\n",a);}main(){char*t;chars[100];printf("请输入字符串:");gets(s);t=s;clear(t);return0;}35.编写函数astrcat(char*t,char*s)将字符串s中的全部大写字符连接到字符串t的尾部,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#include#includevoidastrcat(char*t,char*s){inti,j,m,n;j=0;m=strlen(t);n=strlen(s);for(i=0;i{if(s[i]>='A'&&s[i]<='Z'){t[m+j]=s[i];j++;}}printf("%s\n",t);}main(){char*t,*s;chara[100],b[100];intx;for(x=0;x<100;x++)a[x]='\0';printf("请输入第一个字符串:");gets(a);printf("请输入第二个字符串:");gets(b);t=a;s=b;astrcat(t,s);return0;}36.编写函数mstrcpy(char*t,char*s,intm)字符串s中的第m个字符开始的全部字符复制成另一个字符串t。要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。#include#includevoidmstrcpy(char*t,char*s,intm){inti,n,b;n=strlen(t);b=0;for(i=m-1;i<100;i++){t[n+b]=s[i];b++;}printf("%s\n",t);}main(){char*t,*s;charf[100],d[100];intm;printf("请输入第一个字符串:");gets(f);printf("请输入第二个字符串:");gets(d);printf("请输入一个整数:");scanf("%d",&m);t=f;s=d;mstrcpy(t,s,m);return0;}37.编写函数nstrcat(char*t,char*s)将字符串s中的全部数字字符连接到字符串t的尾部。#include#include
a=c;
printf("最大的数是%d\n",a);
17.输入用单个字母表示的成绩信息,转换为百分制分数。
说明:
输入A,输出95;输入B,输出85;输入C,输出75;输入D,输出65;输入E,输出65.
printf("请输入一个字母:
if(x=='A')
printf("95");
elseif(x=='B')
printf("85");
elseif(x=='C')
printf("75");
elseif(x=='D')
printf("65");
elseif(x=='E')
printf("错误");
18.输入一个3位的正整数,判定该正整数是否为一个回文数。
(所谓回文数是指正读和反读都相同的数,例如131)。
printf("请输入一个三位数:
intx,a,b;
scanf("%d",&x);
a=x/100;
b=x%10;
if(a==b)
printf("%d是一个回文数",x);
printf("%d不是一个回文数",x);
19.从键盘输入国际货币表示的商品价格,请转换为人民币。
仅仅考虑美元($)和欧元€,汇率分别6和8。
例如输入$100,输出600,输入E100,输出800
printf("请输入商品价格:
chara;
scanf("%c%f",&a,&x);
if(a=='$')
y=x*6;
printf("人民币为%f\n",y);
elseif(a=='E')
y=x*8;
printf("错误\n");
20.从键盘输入三个整数,找处其最大和最小的数,并输出。
inta,b,c,x,t;
x=a;
x=b;
if(xx=c;t=a;if(a>b)t=b;if(a>c)t=c;printf("最大值是%d,最小值是%d.\n",x,t);}21.根据下面的函数关系,输入X,计算Y,要求输出结果保留两位小数。(1)当x小于6时,y等于(1+x)(2)当x大于等于6且小于10时,y等于(x-2)的平方加1(3)当x大于等于10时,y等于sin(x)+2x#include#includemain(){printf("请输入x:");floatx,y;scanf("%f",&x);if(x<6)y=x+1;elseif(x<10)y=(x-2)*(x-2)+1;elsey=sin(x)+2*x;printf("%.2f\n",y);}22.根据下面的函数关系,输入X,计算Y,要求输出结果保留两位小数。(1)当x小于5时,y=0(2)当x大于5且小于等于10时,y=sin(x)(3)当x大于10时,y=cos(x)+sin(x)#include#includemain(){printf("请输入x:");floatx,y;scanf("%f",&x);if(x<5)y=0;elseif(x<=10)y=sin(x);elseif(x>10)y=cos(x)+sin(x);printf("%.2f\n",y);}42.从键盘输入一个三位整数,计算其上下边界,例如123,其下边界为100,上边界为199,依此类推#includemain(){printf("请输入一个三位整数:");intx,a,b;scanf("%d",&x);a=x/100;a=a*100;b=a+99;printf("上边界是%d,下边界是%d",b,a);}43.从键盘输入一个三位纯小数,计算其上下边界,例如0.123,其下边界为0.100,上边界为0.199,依此类推#includemain(){printf("请输入一个三位纯小数:");floatx,a,b;scanf("%f",&x);a=int(x/0.1);a=a*0.1;b=a+0.099;printf("上边界是%.3f,下边界是%.3f",b,a);}第二大题23.计算1-1/2+1/3-1/4+…+1/n的和,在主函数输入n,计算输出结果。#include#includevoidmain(){printf("请输入一个整数:");floatx,n,y;y=0;scanf("%f",&n);for(x=1;x<=n;x++){y=y+pow(-1,x-1)*1/x;}printf("%f\n",y);}24.从键盘输入一个自然数,判定其是否为完数,如果是,输出Yes,否则输出No。完数是指一个整数的所有因子之和等于其自身的数,例如6=1+2+3。#includevoidmain(){printf("请输入一个整数:");inta,b,i;b=1;scanf("%d",&a);for(i=2;i{if(a%i==0){b=b+i;}}if(b==a)printf("Yes\n");elseprintf("NO\n");}25.计算1/2,2/3,3/5,5/8,8/13,13/21,……的前10项和,并输出结果。#includevoidmain(){floatm,x,y,a,b,i,q,p;a=1;x=2;b=2;y=3;m=a/b;for(i=1;i<=2;i++)??{m=m+x/y;q=x;x=x+a;a=q;p=y;y=y+b;b=p;}printf("%f\n",m);}26.计算分数序列:2/1,-3/2,5/3,-8/5,13/8,-21/13,…,的前10项之和并输出。#include#includevoidmain(){floaty,n,i,m,q,w,a,b;y=2;n=3;m=2;q=2;w=1;for(i=1;i<=9;i++){m=m+pow(-1,i)*n/y;a=n;n=n+q;q=a;b=y;y=y+w;w=b;}printf("%f\n",m);}27.从键盘读入一个自然数,判定其是否为素数,如果是,输出Yes,否则输出No#includemain(){printf("请输入一个整数:");inti,x,a;scanf("%d",&x);for(i=2;i{if(x%i==0){a=1;break;}if(x%i!=0){a=0;continue;}}if(a==1)printf("No\n");elseprintf("yes\n");}28.由x,y二个数字组成二位数xy和yz,且xy+yz=102。如果有解,输出所有解,否则输出无解这道题不知道z是从哪来的,所以答案仅供参考!我把z看成x#includevoidmain(){intx,y,z;for(x=1;x<=10;x++){for(y=1;y<=10;y++){z=x*10+y+y*10+x;if(z==102)printf("%d%d\n",x,y);}if(x==10)printf("无解\n");}}29.计算Fibonacci数列中前5项的和。提示:Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)。#includemain(){inta,b,c,i,w;b=1;a=0;c=0;for(i=1;i<=4;i++){a=a+b;w=b;b=b+c;c=w;}printf("%d\n",a);}30.计算全部水仙花数的和(提示:“水仙花”数是指一个三位数,其各位数字的立方和等于该数本身,例如:153).#include#includemain(){intx,a,b,c,y;for(x=100;x<=999;x++){a=x/100;b=x/10-a*10;c=x%10;y=pow(a,3)+pow(b,3)+pow(c,3);if(y==x)printf("%d",x);}}31.计算S=1-1/12+1/12-1/12+1/12……-1/102的值,并输出这道题我不懂他是什么意思所以没做出来!32.计算1/1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…n)的,要求小数点后保留6位#includevoidmain(){floati,a,n,m;printf("请输入n:");scanf("%f",&n);m=0;for(i=1;i<=n;i++){a=i*(i+1)/2;m=m+1/a;}printf("%f\n",m);}44.由x,y二个数字组成二位数xx和yz,且xy+yz=124。如果有解,输出所有解,否则输出无解#includevoidmain(){intx,y,z;for(x=1;x<=10;x++){for(y=1;y<=10;y++){z=x*10+y+y*10+x;if(z==124)printf("%d%d\n",x,y);}if(x==10)printf("无解\n");}}45.输出公元1000至今的所有闰年的数量#includemain(){intx;for(x=1001;x<=2014;x++){If(x%400==0)printf("%d\n",x);if(x%100!=0){if(x%4==0){printf("%d\n",x);}}}}第三大题7.在物理实验中,获得5个数据{0.89,0.78,0.0009,0.67,0.56},其中有一个数据小于0.001,此数据无效,将此无效数据删除。要求编制函数cleandata(double*p)实现数据的清理工作,并在主函数输出删除之前的数组和删除之后的数组。#include#includevoidcleandata(double*p){inta,b,c;for(a=0;a<4;a++)printf("%lf",p[a]);printf("%lf\n",p[4]);for(b=0;b<5;b++){if(p[b]<0.001)break;}for(c=0;cprintf("%lf",p[c]);for(c=b+1;c<5;c++)printf("%lf",p[c]);}intmain(){doubles[5]={0.89,0.78,0.0009,0.67,0.56};double*p;p=s;cleandata(p);return0;}8.编写函数clear(char*t)将字符串t中的非英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#include#includevoidclear(char*t){charb[100];inti,d,n;d=0;for(n=0;n<100;n++)b[n]='\0';for(i=0;i<100;i++){if(t[i]<='z'&&t[i]>='a'||t[i]<='Z'&&t[i]>='A'){b[d]=t[i];d++;}}printf("%s\n",b);}intmain(){chars[100];printf("请输入字符串:");gets(s);char*t;t=s;clear(t);return0;}9已知一有序序列1,2,4,6,12,14,要求从键盘输入一个整数,将此整数插入到此有序序列中。要求输出原始数组和插入之后的数组。要求编制函数insert(int*p,intd)实现此功能,在主函数调用此函数。提示:例如输入整数位7,首先要找到7在整个序列中的位置,然后将7插入到当前位置。#includevoidinsert(int*p,intd){inta,b,c;for(a=0;a<5;a++){printf("%d",p[a]);}printf("%d\n",p[5]);for(b=0;b<6;b++){if(dbreak;}for(c=0;c{printf("%d",p[c]);}printf("%d",d);for(c=b;c<6;c++){printf("%d",p[c]);}}main(){int*p;ints[6]={1,2,4,6,12,14};p=s;intd;printf("请输入一个整数:");scanf("%d",&d);insert(p,d);return0;}12.从键盘读入一整数,判断其在数组3,23,-7,8,9,10中是否存在,假设此数组中不存在重复的数字。若存在,则删除此数;否则,提示此数不存在。要求:编制函数remove(double*p,doubled)实现数据的清理工作,并输出原始数据和删除后的数据。33.编写函数strcat(char*t,char*s)将字符串s中的全部数字字符连接到字符串t的尾部。#include#includevoidstrcat(char*t,char*s){inta,b,c;a=strlen(t);c=0;for(b=0;b<100;b++){if(s[b]<='9'&&s[b]>='0'){t[a+c]=s[b];c++;}}printf("%s\n",t);}main(){char*t,*s;charm[100],n[100];intd;for(d=0;d<100;d++){m[d]='\0';}printf("请输入第一个字符串:");gets(m);printf("请输入第二个字符串:");gets(n);t=m;s=n;strcat(t,s);return0;}34.编写函数clear(char*t)将字符串t中的全部英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#includevoidclear(char*t){chara[100];inti,m;m=0;for(i=0;i<100;i++){if(t[i]<'a'&&t[i]>'Z'||t[i]<'A'||t[i]>'z'){a[m]=t[i];m++;}}printf("%s\n",a);}main(){char*t;chars[100];printf("请输入字符串:");gets(s);t=s;clear(t);return0;}35.编写函数astrcat(char*t,char*s)将字符串s中的全部大写字符连接到字符串t的尾部,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#include#includevoidastrcat(char*t,char*s){inti,j,m,n;j=0;m=strlen(t);n=strlen(s);for(i=0;i{if(s[i]>='A'&&s[i]<='Z'){t[m+j]=s[i];j++;}}printf("%s\n",t);}main(){char*t,*s;chara[100],b[100];intx;for(x=0;x<100;x++)a[x]='\0';printf("请输入第一个字符串:");gets(a);printf("请输入第二个字符串:");gets(b);t=a;s=b;astrcat(t,s);return0;}36.编写函数mstrcpy(char*t,char*s,intm)字符串s中的第m个字符开始的全部字符复制成另一个字符串t。要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。#include#includevoidmstrcpy(char*t,char*s,intm){inti,n,b;n=strlen(t);b=0;for(i=m-1;i<100;i++){t[n+b]=s[i];b++;}printf("%s\n",t);}main(){char*t,*s;charf[100],d[100];intm;printf("请输入第一个字符串:");gets(f);printf("请输入第二个字符串:");gets(d);printf("请输入一个整数:");scanf("%d",&m);t=f;s=d;mstrcpy(t,s,m);return0;}37.编写函数nstrcat(char*t,char*s)将字符串s中的全部数字字符连接到字符串t的尾部。#include#include
x=c;
t=a;
if(a>b)
t=b;
if(a>c)
t=c;
printf("最大值是%d,最小值是%d.\n",x,t);
21.根据下面的函数关系,输入X,计算Y,要求输出结果保留两位小数。
(1)当x小于6时,y等于(1+x)
(2)当x大于等于6且小于10时,y等于(x-2)的平方加1
(3)当x大于等于10时,y等于sin(x)+2x
if(x<6)
y=x+1;
elseif(x<10)
y=(x-2)*(x-2)+1;
y=sin(x)+2*x;
printf("%.2f\n",y);
22.根据下面的函数关系,输入X,计算Y,要求输出结果保留两位小数。
(1)当x小于5时,y=0
(2)当x大于5且小于等于10时,y=sin(x)
(3)当x大于10时,y=cos(x)+sin(x)
if(x<5)
y=0;
elseif(x<=10)
y=sin(x);
elseif(x>10)
y=cos(x)+sin(x);
42.从键盘输入一个三位整数,计算其上下边界,例如123,其下边界为100,上边界为199,依此类推
printf("请输入一个三位整数:
a=a*100;
b=a+99;
printf("上边界是%d,下边界是%d",b,a);
43.从键盘输入一个三位纯小数,计算其上下边界,例如0.123,其下边界为0.100,上边界为0.199,依此类推
printf("请输入一个三位纯小数:
floatx,a,b;
a=int(x/0.1);
a=a*0.1;
b=a+0.099;
printf("上边界是%.3f,下边界是%.3f",b,a);
第二大题
23.计算1-1/2+1/3-1/4+…+1/n的和,在主函数输入n,计算输出结果。
voidmain()
printf("请输入一个整数:
floatx,n,y;
scanf("%f",&n);
for(x=1;x<=n;x++)
y=y+pow(-1,x-1)*1/x;
printf("%f\n",y);
24.从键盘输入一个自然数,判定其是否为完数,如果是,输出Yes,否则输出No。
完数是指一个整数的所有因子之和等于其自身的数,例如6=1+2+3。
inta,b,i;
b=1;
scanf("%d",&a);
for(i=2;i{if(a%i==0){b=b+i;}}if(b==a)printf("Yes\n");elseprintf("NO\n");}25.计算1/2,2/3,3/5,5/8,8/13,13/21,……的前10项和,并输出结果。#includevoidmain(){floatm,x,y,a,b,i,q,p;a=1;x=2;b=2;y=3;m=a/b;for(i=1;i<=2;i++)??{m=m+x/y;q=x;x=x+a;a=q;p=y;y=y+b;b=p;}printf("%f\n",m);}26.计算分数序列:2/1,-3/2,5/3,-8/5,13/8,-21/13,…,的前10项之和并输出。#include#includevoidmain(){floaty,n,i,m,q,w,a,b;y=2;n=3;m=2;q=2;w=1;for(i=1;i<=9;i++){m=m+pow(-1,i)*n/y;a=n;n=n+q;q=a;b=y;y=y+w;w=b;}printf("%f\n",m);}27.从键盘读入一个自然数,判定其是否为素数,如果是,输出Yes,否则输出No#includemain(){printf("请输入一个整数:");inti,x,a;scanf("%d",&x);for(i=2;i{if(x%i==0){a=1;break;}if(x%i!=0){a=0;continue;}}if(a==1)printf("No\n");elseprintf("yes\n");}28.由x,y二个数字组成二位数xy和yz,且xy+yz=102。如果有解,输出所有解,否则输出无解这道题不知道z是从哪来的,所以答案仅供参考!我把z看成x#includevoidmain(){intx,y,z;for(x=1;x<=10;x++){for(y=1;y<=10;y++){z=x*10+y+y*10+x;if(z==102)printf("%d%d\n",x,y);}if(x==10)printf("无解\n");}}29.计算Fibonacci数列中前5项的和。提示:Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)。#includemain(){inta,b,c,i,w;b=1;a=0;c=0;for(i=1;i<=4;i++){a=a+b;w=b;b=b+c;c=w;}printf("%d\n",a);}30.计算全部水仙花数的和(提示:“水仙花”数是指一个三位数,其各位数字的立方和等于该数本身,例如:153).#include#includemain(){intx,a,b,c,y;for(x=100;x<=999;x++){a=x/100;b=x/10-a*10;c=x%10;y=pow(a,3)+pow(b,3)+pow(c,3);if(y==x)printf("%d",x);}}31.计算S=1-1/12+1/12-1/12+1/12……-1/102的值,并输出这道题我不懂他是什么意思所以没做出来!32.计算1/1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…n)的,要求小数点后保留6位#includevoidmain(){floati,a,n,m;printf("请输入n:");scanf("%f",&n);m=0;for(i=1;i<=n;i++){a=i*(i+1)/2;m=m+1/a;}printf("%f\n",m);}44.由x,y二个数字组成二位数xx和yz,且xy+yz=124。如果有解,输出所有解,否则输出无解#includevoidmain(){intx,y,z;for(x=1;x<=10;x++){for(y=1;y<=10;y++){z=x*10+y+y*10+x;if(z==124)printf("%d%d\n",x,y);}if(x==10)printf("无解\n");}}45.输出公元1000至今的所有闰年的数量#includemain(){intx;for(x=1001;x<=2014;x++){If(x%400==0)printf("%d\n",x);if(x%100!=0){if(x%4==0){printf("%d\n",x);}}}}第三大题7.在物理实验中,获得5个数据{0.89,0.78,0.0009,0.67,0.56},其中有一个数据小于0.001,此数据无效,将此无效数据删除。要求编制函数cleandata(double*p)实现数据的清理工作,并在主函数输出删除之前的数组和删除之后的数组。#include#includevoidcleandata(double*p){inta,b,c;for(a=0;a<4;a++)printf("%lf",p[a]);printf("%lf\n",p[4]);for(b=0;b<5;b++){if(p[b]<0.001)break;}for(c=0;cprintf("%lf",p[c]);for(c=b+1;c<5;c++)printf("%lf",p[c]);}intmain(){doubles[5]={0.89,0.78,0.0009,0.67,0.56};double*p;p=s;cleandata(p);return0;}8.编写函数clear(char*t)将字符串t中的非英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#include#includevoidclear(char*t){charb[100];inti,d,n;d=0;for(n=0;n<100;n++)b[n]='\0';for(i=0;i<100;i++){if(t[i]<='z'&&t[i]>='a'||t[i]<='Z'&&t[i]>='A'){b[d]=t[i];d++;}}printf("%s\n",b);}intmain(){chars[100];printf("请输入字符串:");gets(s);char*t;t=s;clear(t);return0;}9已知一有序序列1,2,4,6,12,14,要求从键盘输入一个整数,将此整数插入到此有序序列中。要求输出原始数组和插入之后的数组。要求编制函数insert(int*p,intd)实现此功能,在主函数调用此函数。提示:例如输入整数位7,首先要找到7在整个序列中的位置,然后将7插入到当前位置。#includevoidinsert(int*p,intd){inta,b,c;for(a=0;a<5;a++){printf("%d",p[a]);}printf("%d\n",p[5]);for(b=0;b<6;b++){if(dbreak;}for(c=0;c{printf("%d",p[c]);}printf("%d",d);for(c=b;c<6;c++){printf("%d",p[c]);}}main(){int*p;ints[6]={1,2,4,6,12,14};p=s;intd;printf("请输入一个整数:");scanf("%d",&d);insert(p,d);return0;}12.从键盘读入一整数,判断其在数组3,23,-7,8,9,10中是否存在,假设此数组中不存在重复的数字。若存在,则删除此数;否则,提示此数不存在。要求:编制函数remove(double*p,doubled)实现数据的清理工作,并输出原始数据和删除后的数据。33.编写函数strcat(char*t,char*s)将字符串s中的全部数字字符连接到字符串t的尾部。#include#includevoidstrcat(char*t,char*s){inta,b,c;a=strlen(t);c=0;for(b=0;b<100;b++){if(s[b]<='9'&&s[b]>='0'){t[a+c]=s[b];c++;}}printf("%s\n",t);}main(){char*t,*s;charm[100],n[100];intd;for(d=0;d<100;d++){m[d]='\0';}printf("请输入第一个字符串:");gets(m);printf("请输入第二个字符串:");gets(n);t=m;s=n;strcat(t,s);return0;}34.编写函数clear(char*t)将字符串t中的全部英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#includevoidclear(char*t){chara[100];inti,m;m=0;for(i=0;i<100;i++){if(t[i]<'a'&&t[i]>'Z'||t[i]<'A'||t[i]>'z'){a[m]=t[i];m++;}}printf("%s\n",a);}main(){char*t;chars[100];printf("请输入字符串:");gets(s);t=s;clear(t);return0;}35.编写函数astrcat(char*t,char*s)将字符串s中的全部大写字符连接到字符串t的尾部,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#include#includevoidastrcat(char*t,char*s){inti,j,m,n;j=0;m=strlen(t);n=strlen(s);for(i=0;i{if(s[i]>='A'&&s[i]<='Z'){t[m+j]=s[i];j++;}}printf("%s\n",t);}main(){char*t,*s;chara[100],b[100];intx;for(x=0;x<100;x++)a[x]='\0';printf("请输入第一个字符串:");gets(a);printf("请输入第二个字符串:");gets(b);t=a;s=b;astrcat(t,s);return0;}36.编写函数mstrcpy(char*t,char*s,intm)字符串s中的第m个字符开始的全部字符复制成另一个字符串t。要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。#include#includevoidmstrcpy(char*t,char*s,intm){inti,n,b;n=strlen(t);b=0;for(i=m-1;i<100;i++){t[n+b]=s[i];b++;}printf("%s\n",t);}main(){char*t,*s;charf[100],d[100];intm;printf("请输入第一个字符串:");gets(f);printf("请输入第二个字符串:");gets(d);printf("请输入一个整数:");scanf("%d",&m);t=f;s=d;mstrcpy(t,s,m);return0;}37.编写函数nstrcat(char*t,char*s)将字符串s中的全部数字字符连接到字符串t的尾部。#include#include
if(a%i==0)
b=b+i;
if(b==a)
printf("Yes\n");
printf("NO\n");
25.计算1/2,2/3,3/5,5/8,8/13,13/21,……的前10项和,并输出结果。
floatm,x,y,a,b,i,q,p;
a=1;
x=2;
b=2;
y=3;
m=a/b;
for(i=1;i<=2;i++)?
?
m=m+x/y;
q=x;
x=x+a;
a=q;
p=y;
y=y+b;
b=p;
printf("%f\n",m);
26.计算分数序列:
2/1,-3/2,5/3,-8/5,13/8,-21/13,…,的前10项之和并输出。
floaty,n,i,m,q,w,a,b;
y=2;
n=3;
m=2;
q=2;
w=1;
for(i=1;i<=9;i++)
m=m+pow(-1,i)*n/y;
a=n;
n=n+q;
q=a;
b=y;
y=y+w;
w=b;
27.从键盘读入一个自然数,判定其是否为素数,如果是,输出Yes,否则输出No
inti,x,a;
for(i=2;i{if(x%i==0){a=1;break;}if(x%i!=0){a=0;continue;}}if(a==1)printf("No\n");elseprintf("yes\n");}28.由x,y二个数字组成二位数xy和yz,且xy+yz=102。如果有解,输出所有解,否则输出无解这道题不知道z是从哪来的,所以答案仅供参考!我把z看成x#includevoidmain(){intx,y,z;for(x=1;x<=10;x++){for(y=1;y<=10;y++){z=x*10+y+y*10+x;if(z==102)printf("%d%d\n",x,y);}if(x==10)printf("无解\n");}}29.计算Fibonacci数列中前5项的和。提示:Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)。#includemain(){inta,b,c,i,w;b=1;a=0;c=0;for(i=1;i<=4;i++){a=a+b;w=b;b=b+c;c=w;}printf("%d\n",a);}30.计算全部水仙花数的和(提示:“水仙花”数是指一个三位数,其各位数字的立方和等于该数本身,例如:153).#include#includemain(){intx,a,b,c,y;for(x=100;x<=999;x++){a=x/100;b=x/10-a*10;c=x%10;y=pow(a,3)+pow(b,3)+pow(c,3);if(y==x)printf("%d",x);}}31.计算S=1-1/12+1/12-1/12+1/12……-1/102的值,并输出这道题我不懂他是什么意思所以没做出来!32.计算1/1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…n)的,要求小数点后保留6位#includevoidmain(){floati,a,n,m;printf("请输入n:");scanf("%f",&n);m=0;for(i=1;i<=n;i++){a=i*(i+1)/2;m=m+1/a;}printf("%f\n",m);}44.由x,y二个数字组成二位数xx和yz,且xy+yz=124。如果有解,输出所有解,否则输出无解#includevoidmain(){intx,y,z;for(x=1;x<=10;x++){for(y=1;y<=10;y++){z=x*10+y+y*10+x;if(z==124)printf("%d%d\n",x,y);}if(x==10)printf("无解\n");}}45.输出公元1000至今的所有闰年的数量#includemain(){intx;for(x=1001;x<=2014;x++){If(x%400==0)printf("%d\n",x);if(x%100!=0){if(x%4==0){printf("%d\n",x);}}}}第三大题7.在物理实验中,获得5个数据{0.89,0.78,0.0009,0.67,0.56},其中有一个数据小于0.001,此数据无效,将此无效数据删除。要求编制函数cleandata(double*p)实现数据的清理工作,并在主函数输出删除之前的数组和删除之后的数组。#include#includevoidcleandata(double*p){inta,b,c;for(a=0;a<4;a++)printf("%lf",p[a]);printf("%lf\n",p[4]);for(b=0;b<5;b++){if(p[b]<0.001)break;}for(c=0;cprintf("%lf",p[c]);for(c=b+1;c<5;c++)printf("%lf",p[c]);}intmain(){doubles[5]={0.89,0.78,0.0009,0.67,0.56};double*p;p=s;cleandata(p);return0;}8.编写函数clear(char*t)将字符串t中的非英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#include#includevoidclear(char*t){charb[100];inti,d,n;d=0;for(n=0;n<100;n++)b[n]='\0';for(i=0;i<100;i++){if(t[i]<='z'&&t[i]>='a'||t[i]<='Z'&&t[i]>='A'){b[d]=t[i];d++;}}printf("%s\n",b);}intmain(){chars[100];printf("请输入字符串:");gets(s);char*t;t=s;clear(t);return0;}9已知一有序序列1,2,4,6,12,14,要求从键盘输入一个整数,将此整数插入到此有序序列中。要求输出原始数组和插入之后的数组。要求编制函数insert(int*p,intd)实现此功能,在主函数调用此函数。提示:例如输入整数位7,首先要找到7在整个序列中的位置,然后将7插入到当前位置。#includevoidinsert(int*p,intd){inta,b,c;for(a=0;a<5;a++){printf("%d",p[a]);}printf("%d\n",p[5]);for(b=0;b<6;b++){if(dbreak;}for(c=0;c{printf("%d",p[c]);}printf("%d",d);for(c=b;c<6;c++){printf("%d",p[c]);}}main(){int*p;ints[6]={1,2,4,6,12,14};p=s;intd;printf("请输入一个整数:");scanf("%d",&d);insert(p,d);return0;}12.从键盘读入一整数,判断其在数组3,23,-7,8,9,10中是否存在,假设此数组中不存在重复的数字。若存在,则删除此数;否则,提示此数不存在。要求:编制函数remove(double*p,doubled)实现数据的清理工作,并输出原始数据和删除后的数据。33.编写函数strcat(char*t,char*s)将字符串s中的全部数字字符连接到字符串t的尾部。#include#includevoidstrcat(char*t,char*s){inta,b,c;a=strlen(t);c=0;for(b=0;b<100;b++){if(s[b]<='9'&&s[b]>='0'){t[a+c]=s[b];c++;}}printf("%s\n",t);}main(){char*t,*s;charm[100],n[100];intd;for(d=0;d<100;d++){m[d]='\0';}printf("请输入第一个字符串:");gets(m);printf("请输入第二个字符串:");gets(n);t=m;s=n;strcat(t,s);return0;}34.编写函数clear(char*t)将字符串t中的全部英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#includevoidclear(char*t){chara[100];inti,m;m=0;for(i=0;i<100;i++){if(t[i]<'a'&&t[i]>'Z'||t[i]<'A'||t[i]>'z'){a[m]=t[i];m++;}}printf("%s\n",a);}main(){char*t;chars[100];printf("请输入字符串:");gets(s);t=s;clear(t);return0;}35.编写函数astrcat(char*t,char*s)将字符串s中的全部大写字符连接到字符串t的尾部,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#include#includevoidastrcat(char*t,char*s){inti,j,m,n;j=0;m=strlen(t);n=strlen(s);for(i=0;i{if(s[i]>='A'&&s[i]<='Z'){t[m+j]=s[i];j++;}}printf("%s\n",t);}main(){char*t,*s;chara[100],b[100];intx;for(x=0;x<100;x++)a[x]='\0';printf("请输入第一个字符串:");gets(a);printf("请输入第二个字符串:");gets(b);t=a;s=b;astrcat(t,s);return0;}36.编写函数mstrcpy(char*t,char*s,intm)字符串s中的第m个字符开始的全部字符复制成另一个字符串t。要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。#include#includevoidmstrcpy(char*t,char*s,intm){inti,n,b;n=strlen(t);b=0;for(i=m-1;i<100;i++){t[n+b]=s[i];b++;}printf("%s\n",t);}main(){char*t,*s;charf[100],d[100];intm;printf("请输入第一个字符串:");gets(f);printf("请输入第二个字符串:");gets(d);printf("请输入一个整数:");scanf("%d",&m);t=f;s=d;mstrcpy(t,s,m);return0;}37.编写函数nstrcat(char*t,char*s)将字符串s中的全部数字字符连接到字符串t的尾部。#include#include
if(x%i==0)
break;
if(x%i!
=0)
a=0;
continue;
if(a==1)
printf("No\n");
printf("yes\n");
28.由x,y二个数字组成二位数xy和yz,且xy+yz=102。
如果有解,输出所有解,否则输出无解
这道题不知道z是从哪来的,所以答案仅供参考!
我把z看成x
intx,y,z;
for(x=1;x<=10;x++)
for(y=1;y<=10;y++)
z=x*10+y+y*10+x;
if(z==102)
printf("%d%d\n",x,y);
if(x==10)
printf("无解\n");
29.计算Fibonacci数列中前5项的和。
提示:
Fibonacci数列F(n)的定义为:
F(0)=0,F
(1)=1,F(n)=F(n-1)+F(n-2)。
inta,b,c,i,w;
c=0;
for(i=1;i<=4;i++)
a=a+b;
b=b+c;
c=w;
printf("%d\n",a);
30.计算全部水仙花数的和(提示:
“水仙花”数是指一个三位数,其各位数字的立方和等于该数本身,例如:
153).
intx,a,b,c,y;
for(x=100;x<=999;x++)
b=x/10-a*10;
c=x%10;
y=pow(a,3)+pow(b,3)+pow(c,3);
if(y==x)
printf("%d",x);
31.计算S=1-1/12+1/12-1/12+1/12……-1/102的值,并输出
这道题我不懂他是什么意思所以没做出来!
32.计算1/1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…n)的,要求小数点后保留6位
floati,a,n,m;
printf("请输入n:
m=0;
for(i=1;i<=n;i++)
a=i*(i+1)/2;
m=m+1/a;
44.由x,y二个数字组成二位数xx和yz,且xy+yz=124。
if(z==124)
45.输出公元1000至今的所有闰年的数量
intx;
for(x=1001;x<=2014;x++)
If(x%400==0)
printf("%d\n",x);
if(x%100!
if(x%4==0)
第三大题
7.在物理实验中,获得5个数据{0.89,0.78,0.0009,0.67,0.56},其中有一个数据小于0.001,此数据无效,将此无效数据删除。
要求编制函数cleandata(double*p)实现数据的清理工作,并在主函数输出删除之前的数组和删除之后的数组。
voidcleandata(double*p)
for(a=0;a<4;a++)
printf("%lf",p[a]);
printf("%lf\n",p[4]);
for(b=0;b<5;b++)
if(p[b]<0.001)
for(c=0;c
printf("%lf",p[c]);
for(c=b+1;c<5;c++)
intmain()
doubles[5]={0.89,0.78,0.0009,0.67,0.56};
double*p;
p=s;
cleandata(p);
return0;
8.编写函数clear(char*t)将字符串t中的非英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。
voidclear(char*t)
charb[100];
inti,d,n;
d=0;
for(n=0;n<100;n++)
b[n]='\0';
for(i=0;i<100;i++)
if(t[i]<='z'&&t[i]>='a'||t[i]<='Z'&&t[i]>='A')
b[d]=t[i];
d++;
printf("%s\n",b);
chars[100];
printf("请输入字符串:
gets(s);
char*t;
t=s;
clear(t);
9已知一有序序列1,2,4,6,12,14,要求从键盘输入一个整数,将此整数插入到此有序序列中。
要求输出原始数组和插入之后的数组。
要求编制函数insert(int*p,intd)实现此功能,在主函数调用此函数。
例如输入整数位7,首先要找到7在整个序列中的位置,然后将7插入到当前位置。
voidinsert(int*p,intd)
for(a=0;a<5;a++)
printf("%d",p[a]);
printf("%d\n",p[5]);
for(b=0;b<6;b++)
if(d
printf("%d",p[c]);
printf("%d",d);
for(c=b;c<6;c++)
int*p;
ints[6]={1,2,4,6,12,14};
intd;
scanf("%d",&d);
insert(p,d);
12.从键盘读入一整数,判断其在数组3,23,-7,8,9,10中是否存在,假设此数组中不存在重复的数字。
若存在,则删除此数;否则,提示此数不存在。
编制函数remove(double*p,doubled)实现数据的清理工作,并输出原始数据和删除后的数据。
33.编写函数strcat(char*t,char*s)将字符串s中的全部数字字符连接到字符串t的尾部。
voidstrcat(char*t,char*s)
a=strlen(t);
for(b=0;b<100;b++)
if(s[b]<='9'&&s[b]>='0')
t[a+c]=s[b];
c++;
printf("%s\n",t);
char*t,*s;
charm[100],n[100];
for(d=0;d<100;d++)
m[d]='\0';
printf("请输入第一个字符串:
gets(m);
printf("请输入第二个字符串:
gets(n);
t=m;
s=n;
strcat(t,s);
34.编写函数clear(char*t)将字符串t中的全部英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。
chara[100];
inti,m;
if(t[i]<'a'&&t[i]>'Z'||t[i]<'A'||t[i]>'z')
a[m]=t[i];
m++;
printf("%s\n",a);
35.编写函数astrcat(char*t,char*s)将字符串s中的全部大写字符连接到字符串t的尾部,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。
voidastrcat(char*t,char*s)
inti,j,m,n;
j=0;
m=strlen(t);
n=strlen(s);
for(i=0;i{if(s[i]>='A'&&s[i]<='Z'){t[m+j]=s[i];j++;}}printf("%s\n",t);}main(){char*t,*s;chara[100],b[100];intx;for(x=0;x<100;x++)a[x]='\0';printf("请输入第一个字符串:");gets(a);printf("请输入第二个字符串:");gets(b);t=a;s=b;astrcat(t,s);return0;}36.编写函数mstrcpy(char*t,char*s,intm)字符串s中的第m个字符开始的全部字符复制成另一个字符串t。要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。#include#includevoidmstrcpy(char*t,char*s,intm){inti,n,b;n=strlen(t);b=0;for(i=m-1;i<100;i++){t[n+b]=s[i];b++;}printf("%s\n",t);}main(){char*t,*s;charf[100],d[100];intm;printf("请输入第一个字符串:");gets(f);printf("请输入第二个字符串:");gets(d);printf("请输入一个整数:");scanf("%d",&m);t=f;s=d;mstrcpy(t,s,m);return0;}37.编写函数nstrcat(char*t,char*s)将字符串s中的全部数字字符连接到字符串t的尾部。#include#include
if(s[i]>='A'&&s[i]<='Z')
t[m+j]=s[i];
j++;
chara[100],b[100];
for(x=0;x<100;x++)
a[x]='\0';
gets(a);
gets(b);
s=b;
astrcat(t,s);
36.编写函数mstrcpy(char*t,char*s,intm)字符串s中的第m个字符开始的全部字符复制成另一个字符串t。
要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。
voidmstrcpy(char*t,char*s,intm)
inti,n,b;
n=strlen(t);
b=0;
for(i=m-1;i<100;i++)
t[n+b]=s[i];
b++;
charf[100],d[100];
intm;
gets(f);
gets(d);
scanf("%d",&m);
t=f;
s=d;
mstrcpy(t,s,m);
37.编写函数nstrcat(char*t,char*s)将字符串s中的全部数字字符连接到字符串t的尾部。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2