c++例题.docx
《c++例题.docx》由会员分享,可在线阅读,更多相关《c++例题.docx(42页珍藏版)》请在冰点文库上搜索。
c++例题
第四章
一、补充实验内容解答
实验内容第5题
#include
voidmain()
{
ints;
for(intm=2;m<1000;m++)
s=0;
for(inti=1;iif(m%i==0)s+=i;if(s==m){cout<";for(i=1;iif(m%i==0)cout<cout<<'\n';}}}第五章求两分数相加#includeintgcd(int,int);intlcm(int,int);voidmain(){intnum1,num2,den1,den2,a,l,g;cin>>num1>>den1>>num2>>den2;cout<cout<<"求分母的最小公倍数:";l=lcm(den1,den2);cout<cout<<"两分数的和为:";a=(l/den1)*num1+(l/den2)*num2;cout<cout<<"求分子分母的最大公约数:";g=gcd(a,l);cout<cout<<"输出最简分数:";cout<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))returni;}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}1、#include#includefloatsolut(floata,floatb,floatc,floatd){floatx=1,x0,f,f1;do{x0=x;f=((a*x0+b)*x0+c)*x0+d;f1=(3*a*x0+2*b)*x0+c;//对f函数的导数x=x0-f/f1;}while(fabs(x-x0)>=1e-3);returnx;}voidmain(){floata,b,c,d;cout<<"inputa,b,c,d:";cin>>a>>b>>c>>d;cout<cout<<"x="<}2、#include#includefun(intx,inty){inta,b;a=(int)sqrt(x-y);b=(int)sqrt(x+y);if(a*a==x-y&&b*b==x+y)returntrue;elsereturnfalse;}voidmain(){for(inti=1;i<100;i++)for(intj=1;j<100;j++)if(i>j)if(fun(i,j))cout<}3、#include#includefun(intn){if(n==1)return1;elsereturnn*fun(n-1);}voidmain(){doublesum,m,a;intn=1,x;sum=1.0;cin>>x;m=x;a=m/fun(n);while(a>0.000001){sum+=a;m*=x;n++;a=m/fun(n);}cout<<"sum="<}4、#includefun(intn){if(n==1)return1;elsereturnn*n+fun(n-1);}voidmain(){inta;cin>>a;cout<}5、#includefun(intn){if(n==1)return10000;elsereturn2*fun(n-1)-10000;}voidmain(){intm,s=0;for(m=1;m<=12;m++)s+=fun(m);cout<<"年生产总量为:"<}用递归法将一个整数转换成字符串。例如输出234,应输出字符串“234”。N的位数不确定,可以是任意数的整数。#includevoidconvert(intn){inti;if((i=n/10)!=0)convert(i);cout<}voidmain(){intnumber;cout<<"inputaninteger:";cin>>number;cout<<"Output:";if(number<0){cout<<"-";number=-number;}convert(number);cout<<'\n';}四课本习题5-2、#include#includefloatf(intn){if(n<0){cout<<"n应为正数!\n";exit(1);}floats;if(n==1||n==0)return1;elses=n*f(n-1);returns;}floatc(intm,intr){if(mcout<<"m不应小于r!\n";exit(1);}returnf(m)/(f(r)*f(m-r));}voidmain(){intm,r;cin>>m>>r;cout<<"c("<}5-3、#includevoidf(intn){if(n/16)f(n/16);if((n%16)<=9)cout<elsecout<}voidmain(){intn;cin>>n;f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
if(m%i==0)
s+=i;
if(s==m)
cout<";for(i=1;iif(m%i==0)cout<cout<<'\n';}}}第五章求两分数相加#includeintgcd(int,int);intlcm(int,int);voidmain(){intnum1,num2,den1,den2,a,l,g;cin>>num1>>den1>>num2>>den2;cout<cout<<"求分母的最小公倍数:";l=lcm(den1,den2);cout<cout<<"两分数的和为:";a=(l/den1)*num1+(l/den2)*num2;cout<cout<<"求分子分母的最大公约数:";g=gcd(a,l);cout<cout<<"输出最简分数:";cout<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))returni;}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}1、#include#includefloatsolut(floata,floatb,floatc,floatd){floatx=1,x0,f,f1;do{x0=x;f=((a*x0+b)*x0+c)*x0+d;f1=(3*a*x0+2*b)*x0+c;//对f函数的导数x=x0-f/f1;}while(fabs(x-x0)>=1e-3);returnx;}voidmain(){floata,b,c,d;cout<<"inputa,b,c,d:";cin>>a>>b>>c>>d;cout<cout<<"x="<}2、#include#includefun(intx,inty){inta,b;a=(int)sqrt(x-y);b=(int)sqrt(x+y);if(a*a==x-y&&b*b==x+y)returntrue;elsereturnfalse;}voidmain(){for(inti=1;i<100;i++)for(intj=1;j<100;j++)if(i>j)if(fun(i,j))cout<}3、#include#includefun(intn){if(n==1)return1;elsereturnn*fun(n-1);}voidmain(){doublesum,m,a;intn=1,x;sum=1.0;cin>>x;m=x;a=m/fun(n);while(a>0.000001){sum+=a;m*=x;n++;a=m/fun(n);}cout<<"sum="<}4、#includefun(intn){if(n==1)return1;elsereturnn*n+fun(n-1);}voidmain(){inta;cin>>a;cout<}5、#includefun(intn){if(n==1)return10000;elsereturn2*fun(n-1)-10000;}voidmain(){intm,s=0;for(m=1;m<=12;m++)s+=fun(m);cout<<"年生产总量为:"<}用递归法将一个整数转换成字符串。例如输出234,应输出字符串“234”。N的位数不确定,可以是任意数的整数。#includevoidconvert(intn){inti;if((i=n/10)!=0)convert(i);cout<}voidmain(){intnumber;cout<<"inputaninteger:";cin>>number;cout<<"Output:";if(number<0){cout<<"-";number=-number;}convert(number);cout<<'\n';}四课本习题5-2、#include#includefloatf(intn){if(n<0){cout<<"n应为正数!\n";exit(1);}floats;if(n==1||n==0)return1;elses=n*f(n-1);returns;}floatc(intm,intr){if(mcout<<"m不应小于r!\n";exit(1);}returnf(m)/(f(r)*f(m-r));}voidmain(){intm,r;cin>>m>>r;cout<<"c("<}5-3、#includevoidf(intn){if(n/16)f(n/16);if((n%16)<=9)cout<elsecout<}voidmain(){intn;cin>>n;f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
";
for(i=1;iif(m%i==0)cout<cout<<'\n';}}}第五章求两分数相加#includeintgcd(int,int);intlcm(int,int);voidmain(){intnum1,num2,den1,den2,a,l,g;cin>>num1>>den1>>num2>>den2;cout<cout<<"求分母的最小公倍数:";l=lcm(den1,den2);cout<cout<<"两分数的和为:";a=(l/den1)*num1+(l/den2)*num2;cout<cout<<"求分子分母的最大公约数:";g=gcd(a,l);cout<cout<<"输出最简分数:";cout<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))returni;}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}1、#include#includefloatsolut(floata,floatb,floatc,floatd){floatx=1,x0,f,f1;do{x0=x;f=((a*x0+b)*x0+c)*x0+d;f1=(3*a*x0+2*b)*x0+c;//对f函数的导数x=x0-f/f1;}while(fabs(x-x0)>=1e-3);returnx;}voidmain(){floata,b,c,d;cout<<"inputa,b,c,d:";cin>>a>>b>>c>>d;cout<cout<<"x="<}2、#include#includefun(intx,inty){inta,b;a=(int)sqrt(x-y);b=(int)sqrt(x+y);if(a*a==x-y&&b*b==x+y)returntrue;elsereturnfalse;}voidmain(){for(inti=1;i<100;i++)for(intj=1;j<100;j++)if(i>j)if(fun(i,j))cout<}3、#include#includefun(intn){if(n==1)return1;elsereturnn*fun(n-1);}voidmain(){doublesum,m,a;intn=1,x;sum=1.0;cin>>x;m=x;a=m/fun(n);while(a>0.000001){sum+=a;m*=x;n++;a=m/fun(n);}cout<<"sum="<}4、#includefun(intn){if(n==1)return1;elsereturnn*n+fun(n-1);}voidmain(){inta;cin>>a;cout<}5、#includefun(intn){if(n==1)return10000;elsereturn2*fun(n-1)-10000;}voidmain(){intm,s=0;for(m=1;m<=12;m++)s+=fun(m);cout<<"年生产总量为:"<}用递归法将一个整数转换成字符串。例如输出234,应输出字符串“234”。N的位数不确定,可以是任意数的整数。#includevoidconvert(intn){inti;if((i=n/10)!=0)convert(i);cout<}voidmain(){intnumber;cout<<"inputaninteger:";cin>>number;cout<<"Output:";if(number<0){cout<<"-";number=-number;}convert(number);cout<<'\n';}四课本习题5-2、#include#includefloatf(intn){if(n<0){cout<<"n应为正数!\n";exit(1);}floats;if(n==1||n==0)return1;elses=n*f(n-1);returns;}floatc(intm,intr){if(mcout<<"m不应小于r!\n";exit(1);}returnf(m)/(f(r)*f(m-r));}voidmain(){intm,r;cin>>m>>r;cout<<"c("<}5-3、#includevoidf(intn){if(n/16)f(n/16);if((n%16)<=9)cout<elsecout<}voidmain(){intn;cin>>n;f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
cout<
cout<<'\n';
}
第五章
求两分数相加
intgcd(int,int);
intlcm(int,int);
intnum1,num2,den1,den2,a,l,g;
cin>>num1>>den1>>num2>>den2;
cout<cout<<"求分母的最小公倍数:";l=lcm(den1,den2);cout<cout<<"两分数的和为:";a=(l/den1)*num1+(l/den2)*num2;cout<cout<<"求分子分母的最大公约数:";g=gcd(a,l);cout<cout<<"输出最简分数:";cout<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))returni;}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}1、#include#includefloatsolut(floata,floatb,floatc,floatd){floatx=1,x0,f,f1;do{x0=x;f=((a*x0+b)*x0+c)*x0+d;f1=(3*a*x0+2*b)*x0+c;//对f函数的导数x=x0-f/f1;}while(fabs(x-x0)>=1e-3);returnx;}voidmain(){floata,b,c,d;cout<<"inputa,b,c,d:";cin>>a>>b>>c>>d;cout<cout<<"x="<}2、#include#includefun(intx,inty){inta,b;a=(int)sqrt(x-y);b=(int)sqrt(x+y);if(a*a==x-y&&b*b==x+y)returntrue;elsereturnfalse;}voidmain(){for(inti=1;i<100;i++)for(intj=1;j<100;j++)if(i>j)if(fun(i,j))cout<}3、#include#includefun(intn){if(n==1)return1;elsereturnn*fun(n-1);}voidmain(){doublesum,m,a;intn=1,x;sum=1.0;cin>>x;m=x;a=m/fun(n);while(a>0.000001){sum+=a;m*=x;n++;a=m/fun(n);}cout<<"sum="<}4、#includefun(intn){if(n==1)return1;elsereturnn*n+fun(n-1);}voidmain(){inta;cin>>a;cout<}5、#includefun(intn){if(n==1)return10000;elsereturn2*fun(n-1)-10000;}voidmain(){intm,s=0;for(m=1;m<=12;m++)s+=fun(m);cout<<"年生产总量为:"<}用递归法将一个整数转换成字符串。例如输出234,应输出字符串“234”。N的位数不确定,可以是任意数的整数。#includevoidconvert(intn){inti;if((i=n/10)!=0)convert(i);cout<}voidmain(){intnumber;cout<<"inputaninteger:";cin>>number;cout<<"Output:";if(number<0){cout<<"-";number=-number;}convert(number);cout<<'\n';}四课本习题5-2、#include#includefloatf(intn){if(n<0){cout<<"n应为正数!\n";exit(1);}floats;if(n==1||n==0)return1;elses=n*f(n-1);returns;}floatc(intm,intr){if(mcout<<"m不应小于r!\n";exit(1);}returnf(m)/(f(r)*f(m-r));}voidmain(){intm,r;cin>>m>>r;cout<<"c("<}5-3、#includevoidf(intn){if(n/16)f(n/16);if((n%16)<=9)cout<elsecout<}voidmain(){intn;cin>>n;f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
cout<<"求分母的最小公倍数:
l=lcm(den1,den2);
cout<cout<<"两分数的和为:";a=(l/den1)*num1+(l/den2)*num2;cout<cout<<"求分子分母的最大公约数:";g=gcd(a,l);cout<cout<<"输出最简分数:";cout<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))returni;}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}1、#include#includefloatsolut(floata,floatb,floatc,floatd){floatx=1,x0,f,f1;do{x0=x;f=((a*x0+b)*x0+c)*x0+d;f1=(3*a*x0+2*b)*x0+c;//对f函数的导数x=x0-f/f1;}while(fabs(x-x0)>=1e-3);returnx;}voidmain(){floata,b,c,d;cout<<"inputa,b,c,d:";cin>>a>>b>>c>>d;cout<cout<<"x="<}2、#include#includefun(intx,inty){inta,b;a=(int)sqrt(x-y);b=(int)sqrt(x+y);if(a*a==x-y&&b*b==x+y)returntrue;elsereturnfalse;}voidmain(){for(inti=1;i<100;i++)for(intj=1;j<100;j++)if(i>j)if(fun(i,j))cout<}3、#include#includefun(intn){if(n==1)return1;elsereturnn*fun(n-1);}voidmain(){doublesum,m,a;intn=1,x;sum=1.0;cin>>x;m=x;a=m/fun(n);while(a>0.000001){sum+=a;m*=x;n++;a=m/fun(n);}cout<<"sum="<}4、#includefun(intn){if(n==1)return1;elsereturnn*n+fun(n-1);}voidmain(){inta;cin>>a;cout<}5、#includefun(intn){if(n==1)return10000;elsereturn2*fun(n-1)-10000;}voidmain(){intm,s=0;for(m=1;m<=12;m++)s+=fun(m);cout<<"年生产总量为:"<}用递归法将一个整数转换成字符串。例如输出234,应输出字符串“234”。N的位数不确定,可以是任意数的整数。#includevoidconvert(intn){inti;if((i=n/10)!=0)convert(i);cout<}voidmain(){intnumber;cout<<"inputaninteger:";cin>>number;cout<<"Output:";if(number<0){cout<<"-";number=-number;}convert(number);cout<<'\n';}四课本习题5-2、#include#includefloatf(intn){if(n<0){cout<<"n应为正数!\n";exit(1);}floats;if(n==1||n==0)return1;elses=n*f(n-1);returns;}floatc(intm,intr){if(mcout<<"m不应小于r!\n";exit(1);}returnf(m)/(f(r)*f(m-r));}voidmain(){intm,r;cin>>m>>r;cout<<"c("<}5-3、#includevoidf(intn){if(n/16)f(n/16);if((n%16)<=9)cout<elsecout<}voidmain(){intn;cin>>n;f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
cout<<"两分数的和为:
a=(l/den1)*num1+(l/den2)*num2;
cout<cout<<"求分子分母的最大公约数:";g=gcd(a,l);cout<cout<<"输出最简分数:";cout<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))returni;}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}1、#include#includefloatsolut(floata,floatb,floatc,floatd){floatx=1,x0,f,f1;do{x0=x;f=((a*x0+b)*x0+c)*x0+d;f1=(3*a*x0+2*b)*x0+c;//对f函数的导数x=x0-f/f1;}while(fabs(x-x0)>=1e-3);returnx;}voidmain(){floata,b,c,d;cout<<"inputa,b,c,d:";cin>>a>>b>>c>>d;cout<cout<<"x="<}2、#include#includefun(intx,inty){inta,b;a=(int)sqrt(x-y);b=(int)sqrt(x+y);if(a*a==x-y&&b*b==x+y)returntrue;elsereturnfalse;}voidmain(){for(inti=1;i<100;i++)for(intj=1;j<100;j++)if(i>j)if(fun(i,j))cout<}3、#include#includefun(intn){if(n==1)return1;elsereturnn*fun(n-1);}voidmain(){doublesum,m,a;intn=1,x;sum=1.0;cin>>x;m=x;a=m/fun(n);while(a>0.000001){sum+=a;m*=x;n++;a=m/fun(n);}cout<<"sum="<}4、#includefun(intn){if(n==1)return1;elsereturnn*n+fun(n-1);}voidmain(){inta;cin>>a;cout<}5、#includefun(intn){if(n==1)return10000;elsereturn2*fun(n-1)-10000;}voidmain(){intm,s=0;for(m=1;m<=12;m++)s+=fun(m);cout<<"年生产总量为:"<}用递归法将一个整数转换成字符串。例如输出234,应输出字符串“234”。N的位数不确定,可以是任意数的整数。#includevoidconvert(intn){inti;if((i=n/10)!=0)convert(i);cout<}voidmain(){intnumber;cout<<"inputaninteger:";cin>>number;cout<<"Output:";if(number<0){cout<<"-";number=-number;}convert(number);cout<<'\n';}四课本习题5-2、#include#includefloatf(intn){if(n<0){cout<<"n应为正数!\n";exit(1);}floats;if(n==1||n==0)return1;elses=n*f(n-1);returns;}floatc(intm,intr){if(mcout<<"m不应小于r!\n";exit(1);}returnf(m)/(f(r)*f(m-r));}voidmain(){intm,r;cin>>m>>r;cout<<"c("<}5-3、#includevoidf(intn){if(n/16)f(n/16);if((n%16)<=9)cout<elsecout<}voidmain(){intn;cin>>n;f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
cout<<"求分子分母的最大公约数:
g=gcd(a,l);
cout<cout<<"输出最简分数:";cout<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))returni;}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}1、#include#includefloatsolut(floata,floatb,floatc,floatd){floatx=1,x0,f,f1;do{x0=x;f=((a*x0+b)*x0+c)*x0+d;f1=(3*a*x0+2*b)*x0+c;//对f函数的导数x=x0-f/f1;}while(fabs(x-x0)>=1e-3);returnx;}voidmain(){floata,b,c,d;cout<<"inputa,b,c,d:";cin>>a>>b>>c>>d;cout<cout<<"x="<}2、#include#includefun(intx,inty){inta,b;a=(int)sqrt(x-y);b=(int)sqrt(x+y);if(a*a==x-y&&b*b==x+y)returntrue;elsereturnfalse;}voidmain(){for(inti=1;i<100;i++)for(intj=1;j<100;j++)if(i>j)if(fun(i,j))cout<}3、#include#includefun(intn){if(n==1)return1;elsereturnn*fun(n-1);}voidmain(){doublesum,m,a;intn=1,x;sum=1.0;cin>>x;m=x;a=m/fun(n);while(a>0.000001){sum+=a;m*=x;n++;a=m/fun(n);}cout<<"sum="<}4、#includefun(intn){if(n==1)return1;elsereturnn*n+fun(n-1);}voidmain(){inta;cin>>a;cout<}5、#includefun(intn){if(n==1)return10000;elsereturn2*fun(n-1)-10000;}voidmain(){intm,s=0;for(m=1;m<=12;m++)s+=fun(m);cout<<"年生产总量为:"<}用递归法将一个整数转换成字符串。例如输出234,应输出字符串“234”。N的位数不确定,可以是任意数的整数。#includevoidconvert(intn){inti;if((i=n/10)!=0)convert(i);cout<}voidmain(){intnumber;cout<<"inputaninteger:";cin>>number;cout<<"Output:";if(number<0){cout<<"-";number=-number;}convert(number);cout<<'\n';}四课本习题5-2、#include#includefloatf(intn){if(n<0){cout<<"n应为正数!\n";exit(1);}floats;if(n==1||n==0)return1;elses=n*f(n-1);returns;}floatc(intm,intr){if(mcout<<"m不应小于r!\n";exit(1);}returnf(m)/(f(r)*f(m-r));}voidmain(){intm,r;cin>>m>>r;cout<<"c("<}5-3、#includevoidf(intn){if(n/16)f(n/16);if((n%16)<=9)cout<elsecout<}voidmain(){intn;cin>>n;f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
cout<<"输出最简分数:
cout<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))returni;}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}1、#include#includefloatsolut(floata,floatb,floatc,floatd){floatx=1,x0,f,f1;do{x0=x;f=((a*x0+b)*x0+c)*x0+d;f1=(3*a*x0+2*b)*x0+c;//对f函数的导数x=x0-f/f1;}while(fabs(x-x0)>=1e-3);returnx;}voidmain(){floata,b,c,d;cout<<"inputa,b,c,d:";cin>>a>>b>>c>>d;cout<cout<<"x="<}2、#include#includefun(intx,inty){inta,b;a=(int)sqrt(x-y);b=(int)sqrt(x+y);if(a*a==x-y&&b*b==x+y)returntrue;elsereturnfalse;}voidmain(){for(inti=1;i<100;i++)for(intj=1;j<100;j++)if(i>j)if(fun(i,j))cout<}3、#include#includefun(intn){if(n==1)return1;elsereturnn*fun(n-1);}voidmain(){doublesum,m,a;intn=1,x;sum=1.0;cin>>x;m=x;a=m/fun(n);while(a>0.000001){sum+=a;m*=x;n++;a=m/fun(n);}cout<<"sum="<}4、#includefun(intn){if(n==1)return1;elsereturnn*n+fun(n-1);}voidmain(){inta;cin>>a;cout<}5、#includefun(intn){if(n==1)return10000;elsereturn2*fun(n-1)-10000;}voidmain(){intm,s=0;for(m=1;m<=12;m++)s+=fun(m);cout<<"年生产总量为:"<}用递归法将一个整数转换成字符串。例如输出234,应输出字符串“234”。N的位数不确定,可以是任意数的整数。#includevoidconvert(intn){inti;if((i=n/10)!=0)convert(i);cout<}voidmain(){intnumber;cout<<"inputaninteger:";cin>>number;cout<<"Output:";if(number<0){cout<<"-";number=-number;}convert(number);cout<<'\n';}四课本习题5-2、#include#includefloatf(intn){if(n<0){cout<<"n应为正数!\n";exit(1);}floats;if(n==1||n==0)return1;elses=n*f(n-1);returns;}floatc(intm,intr){if(mcout<<"m不应小于r!\n";exit(1);}returnf(m)/(f(r)*f(m-r));}voidmain(){intm,r;cin>>m>>r;cout<<"c("<}5-3、#includevoidf(intn){if(n/16)f(n/16);if((n%16)<=9)cout<elsecout<}voidmain(){intn;cin>>n;f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
intgcd(inta,intb)
inti;
for(i=a;i>=1;i--)
if(!
((a%i)||(b%i)))
returni;
intlcm(inta,intb)
i=b;
while(i%a)i+=b;
return(i);
1、
floatsolut(floata,floatb,floatc,floatd)
floatx=1,x0,f,f1;
do{
x0=x;
f=((a*x0+b)*x0+c)*x0+d;
f1=(3*a*x0+2*b)*x0+c;//对f函数的导数
x=x0-f/f1;
}while(fabs(x-x0)>=1e-3);
returnx;
floata,b,c,d;
cout<<"inputa,b,c,d:
cin>>a>>b>>c>>d;
cout<cout<<"x="<}2、#include#includefun(intx,inty){inta,b;a=(int)sqrt(x-y);b=(int)sqrt(x+y);if(a*a==x-y&&b*b==x+y)returntrue;elsereturnfalse;}voidmain(){for(inti=1;i<100;i++)for(intj=1;j<100;j++)if(i>j)if(fun(i,j))cout<}3、#include#includefun(intn){if(n==1)return1;elsereturnn*fun(n-1);}voidmain(){doublesum,m,a;intn=1,x;sum=1.0;cin>>x;m=x;a=m/fun(n);while(a>0.000001){sum+=a;m*=x;n++;a=m/fun(n);}cout<<"sum="<}4、#includefun(intn){if(n==1)return1;elsereturnn*n+fun(n-1);}voidmain(){inta;cin>>a;cout<}5、#includefun(intn){if(n==1)return10000;elsereturn2*fun(n-1)-10000;}voidmain(){intm,s=0;for(m=1;m<=12;m++)s+=fun(m);cout<<"年生产总量为:"<}用递归法将一个整数转换成字符串。例如输出234,应输出字符串“234”。N的位数不确定,可以是任意数的整数。#includevoidconvert(intn){inti;if((i=n/10)!=0)convert(i);cout<}voidmain(){intnumber;cout<<"inputaninteger:";cin>>number;cout<<"Output:";if(number<0){cout<<"-";number=-number;}convert(number);cout<<'\n';}四课本习题5-2、#include#includefloatf(intn){if(n<0){cout<<"n应为正数!\n";exit(1);}floats;if(n==1||n==0)return1;elses=n*f(n-1);returns;}floatc(intm,intr){if(mcout<<"m不应小于r!\n";exit(1);}returnf(m)/(f(r)*f(m-r));}voidmain(){intm,r;cin>>m>>r;cout<<"c("<}5-3、#includevoidf(intn){if(n/16)f(n/16);if((n%16)<=9)cout<elsecout<}voidmain(){intn;cin>>n;f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
cout<<"x="<}2、#include#includefun(intx,inty){inta,b;a=(int)sqrt(x-y);b=(int)sqrt(x+y);if(a*a==x-y&&b*b==x+y)returntrue;elsereturnfalse;}voidmain(){for(inti=1;i<100;i++)for(intj=1;j<100;j++)if(i>j)if(fun(i,j))cout<}3、#include#includefun(intn){if(n==1)return1;elsereturnn*fun(n-1);}voidmain(){doublesum,m,a;intn=1,x;sum=1.0;cin>>x;m=x;a=m/fun(n);while(a>0.000001){sum+=a;m*=x;n++;a=m/fun(n);}cout<<"sum="<}4、#includefun(intn){if(n==1)return1;elsereturnn*n+fun(n-1);}voidmain(){inta;cin>>a;cout<}5、#includefun(intn){if(n==1)return10000;elsereturn2*fun(n-1)-10000;}voidmain(){intm,s=0;for(m=1;m<=12;m++)s+=fun(m);cout<<"年生产总量为:"<}用递归法将一个整数转换成字符串。例如输出234,应输出字符串“234”。N的位数不确定,可以是任意数的整数。#includevoidconvert(intn){inti;if((i=n/10)!=0)convert(i);cout<}voidmain(){intnumber;cout<<"inputaninteger:";cin>>number;cout<<"Output:";if(number<0){cout<<"-";number=-number;}convert(number);cout<<'\n';}四课本习题5-2、#include#includefloatf(intn){if(n<0){cout<<"n应为正数!\n";exit(1);}floats;if(n==1||n==0)return1;elses=n*f(n-1);returns;}floatc(intm,intr){if(mcout<<"m不应小于r!\n";exit(1);}returnf(m)/(f(r)*f(m-r));}voidmain(){intm,r;cin>>m>>r;cout<<"c("<}5-3、#includevoidf(intn){if(n/16)f(n/16);if((n%16)<=9)cout<elsecout<}voidmain(){intn;cin>>n;f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
2、
fun(intx,inty)
inta,b;
a=(int)sqrt(x-y);
b=(int)sqrt(x+y);
if(a*a==x-y&&b*b==x+y)
returntrue;
else
returnfalse;
for(inti=1;i<100;i++)
for(intj=1;j<100;j++)
if(i>j)
if(fun(i,j))
3、
fun(intn)
if(n==1)
return1;
returnn*fun(n-1);
doublesum,m,a;
intn=1,x;
sum=1.0;
cin>>x;
m=x;
a=m/fun(n);
while(a>0.000001)
sum+=a;
m*=x;
n++;
cout<<"sum="<}4、#includefun(intn){if(n==1)return1;elsereturnn*n+fun(n-1);}voidmain(){inta;cin>>a;cout<}5、#includefun(intn){if(n==1)return10000;elsereturn2*fun(n-1)-10000;}voidmain(){intm,s=0;for(m=1;m<=12;m++)s+=fun(m);cout<<"年生产总量为:"<}用递归法将一个整数转换成字符串。例如输出234,应输出字符串“234”。N的位数不确定,可以是任意数的整数。#includevoidconvert(intn){inti;if((i=n/10)!=0)convert(i);cout<}voidmain(){intnumber;cout<<"inputaninteger:";cin>>number;cout<<"Output:";if(number<0){cout<<"-";number=-number;}convert(number);cout<<'\n';}四课本习题5-2、#include#includefloatf(intn){if(n<0){cout<<"n应为正数!\n";exit(1);}floats;if(n==1||n==0)return1;elses=n*f(n-1);returns;}floatc(intm,intr){if(mcout<<"m不应小于r!\n";exit(1);}returnf(m)/(f(r)*f(m-r));}voidmain(){intm,r;cin>>m>>r;cout<<"c("<}5-3、#includevoidf(intn){if(n/16)f(n/16);if((n%16)<=9)cout<elsecout<}voidmain(){intn;cin>>n;f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
4、
returnn*n+fun(n-1);
inta;
cin>>a;
cout<}5、#includefun(intn){if(n==1)return10000;elsereturn2*fun(n-1)-10000;}voidmain(){intm,s=0;for(m=1;m<=12;m++)s+=fun(m);cout<<"年生产总量为:"<}用递归法将一个整数转换成字符串。例如输出234,应输出字符串“234”。N的位数不确定,可以是任意数的整数。#includevoidconvert(intn){inti;if((i=n/10)!=0)convert(i);cout<}voidmain(){intnumber;cout<<"inputaninteger:";cin>>number;cout<<"Output:";if(number<0){cout<<"-";number=-number;}convert(number);cout<<'\n';}四课本习题5-2、#include#includefloatf(intn){if(n<0){cout<<"n应为正数!\n";exit(1);}floats;if(n==1||n==0)return1;elses=n*f(n-1);returns;}floatc(intm,intr){if(mcout<<"m不应小于r!\n";exit(1);}returnf(m)/(f(r)*f(m-r));}voidmain(){intm,r;cin>>m>>r;cout<<"c("<}5-3、#includevoidf(intn){if(n/16)f(n/16);if((n%16)<=9)cout<elsecout<}voidmain(){intn;cin>>n;f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
5、
return10000;
return2*fun(n-1)-10000;
intm,s=0;
for(m=1;m<=12;m++)
s+=fun(m);
cout<<"年生产总量为:
"<
用递归法将一个整数转换成字符串。
例如输出234,应输出字符串“234”。
N的位数不确定,可以是任意数的整数。
voidconvert(intn)
if((i=n/10)!
=0)
convert(i);
cout<}voidmain(){intnumber;cout<<"inputaninteger:";cin>>number;cout<<"Output:";if(number<0){cout<<"-";number=-number;}convert(number);cout<<'\n';}四课本习题5-2、#include#includefloatf(intn){if(n<0){cout<<"n应为正数!\n";exit(1);}floats;if(n==1||n==0)return1;elses=n*f(n-1);returns;}floatc(intm,intr){if(mcout<<"m不应小于r!\n";exit(1);}returnf(m)/(f(r)*f(m-r));}voidmain(){intm,r;cin>>m>>r;cout<<"c("<}5-3、#includevoidf(intn){if(n/16)f(n/16);if((n%16)<=9)cout<elsecout<}voidmain(){intn;cin>>n;f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
intnumber;
cout<<"inputaninteger:
cin>>number;
cout<<"Output:
if(number<0)
cout<<"-";
number=-number;
convert(number);
四课本习题
5-2、
floatf(intn)
if(n<0)
cout<<"n应为正数!
\n";
exit
(1);
floats;
if(n==1||n==0)
s=n*f(n-1);
returns;
floatc(intm,intr)
if(mcout<<"m不应小于r!\n";exit(1);}returnf(m)/(f(r)*f(m-r));}voidmain(){intm,r;cin>>m>>r;cout<<"c("<}5-3、#includevoidf(intn){if(n/16)f(n/16);if((n%16)<=9)cout<elsecout<}voidmain(){intn;cin>>n;f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
cout<<"m不应小于r!
returnf(m)/(f(r)*f(m-r));
intm,r;
cin>>m>>r;
cout<<"c("<}5-3、#includevoidf(intn){if(n/16)f(n/16);if((n%16)<=9)cout<elsecout<}voidmain(){intn;cin>>n;f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
5-3、
voidf(intn)
if(n/16)
f(n/16);
if((n%16)<=9)
cout<elsecout<}voidmain(){intn;cin>>n;f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
cout<}voidmain(){intn;cin>>n;f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
intn;
cin>>n;
f(n);cout<}5-4、#include#includeintprime(int);voidmain(){intk=0;for(inti=5;i<=100;i=i+2)if(prime(i)){cout<k++;if(k%5==0)cout<<'\n';}cout<<'\n';}intprime(inti){intyes=1,j;j=sqrt(i);for(intl=2;l<=j;l++)if(i%l==0)yes=0;returnyes;}5-5、5-6、#includeintgcd(int,int);intlcm(int,int);voidmain(){inta,b,g,l;cin>>a>>b;cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
5-4、
intprime(int);
intk=0;
for(inti=5;i<=100;i=i+2)
if(prime(i))
k++;
if(k%5==0)cout<<'\n';
intprime(inti)
intyes=1,j;
j=sqrt(i);
for(intl=2;l<=j;l++)
if(i%l==0)yes=0;
returnyes;
5-5、5-6、
inta,b,g,l;
cin>>a>>b;
cout<<"a="<g=gcd(a,b);l=lcm(a,b);cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
g=gcd(a,b);
l=lcm(a,b);
cout<<"g="<cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
cout<<"l="<}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))return(i);}intlcm(inta,intb){inti;i=b;while(i%a)i+=b;return(i);}5-7、#includeintmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cin>>a>>b>>x>>y;cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
5-7、
intmax(intx,inty)
intz;
returnz=x>y?
x:
y;
floatmax(floatx,floaty)
returnx>y?
floatx,y;
cin>>a>>b>>x>>y;
cout<<"max("<cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
cout<<"max("<}5-8、#includeinlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"InputAandB:";floata,b,c;cin>>a>>b>>c;cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
5-8、
inlinefloatmax(floatx,floaty,floatz)
floatk;
k=x>y?
returnk>z?
k:
z;
cout<<"InputAandB:
floata,b,c;
cin>>a>>b>>c;
cout<<"max="<}5-9、#includeintv(intn=10);voidmain(){inta;cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
5-9、
intv(intn=10);
cout<cin>>a;cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
cout<}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10、#include#includeintsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
intv(intn)
intk=1;
for(inti=1;i<=n;i++)
k=k*i;
returnk;
5-10、
intsum(intnum,intb...)
va_listap;
inttemp,sum;
va_start(ap,b);
sum=b;
for(inti=1;i{temp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
temp=va_arg(ap,int);
cout<<"temp="<sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z;cin>>x>>y>>z;cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
sum=sum+temp;
va_end(ap);
returnsum;
intx,y,z;
cin>>x>>y>>z;
cout<<"sum="<}5-11、#include#includeintv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
5-11、
intv(intnum,intb...)
intsub,sum,temp;
floatarv;
sub=b;
if(num==3)
for(inti=1;itemp=va_arg(ap,int);cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
cout<<"temp="<sub=sub*temp;}returnsub;};if(num==4){for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
sub=sub*temp;}
returnsub;
};
if(num==4)
for(intj=1;jtemp=va_arg(ap,int);cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
cout<<"temp="<sum=sum+temp;}arv=float(sum/num);returnfloat(arv);};}voidmain(){intx,y,z,k;cout<<"输入三个整数:";cin>>x>>y>>z;cout<<"输出三个整数的积:"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
sum=sum+temp;}
arv=float(sum/num);
returnfloat(arv);
intx,y,z,k;
cout<<"输入三个整数:
cout<<"输出三个整数的积:
"<cout<<"输入四个整数:";cin>>x>>y>>z>>k;cout<<"输出这四个整数的平均值:"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
cout<<"输入四个整数:
cin>>x>>y>>z>>k;
cout<<"输出这四个整数的平均值:
"<}5-12、#include#includelongintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti;for(i=1;i<=40;i++){cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
5-12、
longintf(intn)
if(n==1||n==2)return
elsereturnf(n-1)+f(n-2);
for(i=1;i<=40;i++){
cout<if(i%4==0)cout<<'\n';}cout<<'\n';}5-13、includefloatHermite1(intn,floatx){if(n==0)return1;if(n==1)return2*x;return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);}floatHermite2(intn,floatx){floath0=1,h1=2*x,h2;if(n==0)return1;if(n==1)return2*x;for(inti=2;i<=n;i++){h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;}returnh2;}voidmain(){intn0;floatx0;cout<<"输入一个不小于零的整数和一个实数:";cin>>n0>>x0;cout<<"Hermite数列的前n项的值分别为:\n";for(inti=0;i<=n0;i++)cout<<"H"<}15、#includevoidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
if(i%4==0)cout<<'\n';
5-13、
include
floatHermite1(intn,floatx)
if(n==0)return1;
if(n==1)return2*x;
return2*x*Hermite1(n-1,x)-2*(n-1)*Hermite1(n-2,x);
floatHermite2(intn,floatx)
floath0=1,h1=2*x,h2;
for(inti=2;i<=n;i++){
h2=2*x*h1-2*(i-1)*h0;
h0=h1;h1=h2;
returnh2;
intn0;
floatx0;
cout<<"输入一个不小于零的整数和一个实数:
cin>>n0>>x0;
cout<<"Hermite数列的前n项的值分别为:
for(inti=0;i<=n0;i++)
cout<<"H"<
15、
voidf1(intn)
intj=n%10;
if(n/10)f1(n/10);
cout<}voidf2(intn){cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
voidf2(intn)
cout<if(n/10)f2(n/10);}voidmain(){intx;cout<<"输入一个整数:";cin>>x;cout<<"输入的整数为:"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
if(n/10)f2(n/10);
intx;
cout<<"输入一个整数:
cout<<"输入的整数为:
"<cout<<"该整数的反序输出为:";f2(x);cout<<'\n';cout<<"该整数的正序输出为:";f1(x);cout<<'\n';}5-18//用带参数的宏求三角形面积#include#include#defines(a,b,c)(a+b+c)/2.0#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
cout<<"该整数的反序输出为:
f2(x);
cout<<"该整数的正序输出为:
f1(x);
5-18
//用带参数的宏求三角形面积
#defines(a,b,c)(a+b+c)/2.0
#defineAREA(a,b,c)sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))
{floata,b,c;
cout<<"Inputa,b,c:
if(a+b>c&&a+c>b&&b+c>a)
cout<<"AREA("<elsecout<<"Itisnotatriangle!\n";}//用函数求三角形的面积#include#includefloatarea(floata,floatb,floatc){floats,arev;s=(a+b+c)/2.0;arev=sqrt(s*(s-a)*(s-b)*(s-c));returnarev;}voidmain(){floata,b,c;cout<<"Inputa,b,c:";cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
cout<<"Itisnotatriangle!
//用函数求三角形的面积
floatarea(floata,floatb,floatc)
floats,arev;
s=(a+b+c)/2.0;
arev=sqrt(s*(s-a)*(s-b)*(s-c));
returnarev;
cout<<"area("<elsecout<<"Itisnotatriangle!\n";}第六章1、编程实现两个34阶矩阵相加。#includevoidinput(inta[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];}voidfun(inta[3][4],intb[3][4],intc[3][4]){for(inti=0;i<3;i++)for(intj=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}voidoutput(inta[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++)cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
第六章
1、编程实现两个34阶矩阵相加。
voidinput(inta[3][4])
for(inti=0;i<3;i++)
for(intj=0;j<4;j++)
cin>>a[i][j];
voidfun(inta[3][4],intb[3][4],intc[3][4])
c[i][j]=a[i][j]+b[i][j];
voidoutput(inta[3][4])
for(inti=0;i<3;i++){
cout<cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
cout<}}voidmain(){inta[3][4],b[3][4],c[3][4];input(a);input(b);fun(a,b,c);output(c);}2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。#includevoidfun(intx[],inty[]){inti,j,l;for(i=j=0;i<6;i++){for(;x[i]>y[j];j++);for(l=4+j;l-j>=0;l--)y[l+1]=y[l];y[j]=x[i];}for(i=0;y[i];i++){if(y[i]==y[i+1])for(j=i;y[j];j++)y[j]=y[j+1];}}voidmain(){inta[10]={3,6,8,11,13,20};intb[20]={2,4,6,8,20};fun(a,b);//b的最后一个元素大于等于a的最后一个元素for(intk=0;b[k]!=0;k++)cout<cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
inta[3][4],b[3][4],c[3][4];
input(a);
input(b);
fun(a,b,c);
output(c);
2、程序将两个已按升序排列的数组合并成一个升序数组。
两个数组中重复的数只保存一次。
voidfun(intx[],inty[])
inti,j,l;
for(i=j=0;i<6;i++){
for(;x[i]>y[j];j++);
for(l=4+j;l-j>=0;l--)y[l+1]=y[l];
y[j]=x[i];
for(i=0;y[i];i++){
if(y[i]==y[i+1])
for(j=i;y[j];j++)y[j]=y[j+1];
inta[10]={3,6,8,11,13,20};
intb[20]={2,4,6,8,20};
fun(a,b);//b的最后一个元素大于等于a的最后一个元素
for(intk=0;b[k]!
=0;k++)
cout<}3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。假定a中的字符串长度大于n。#include#includevoidInstr(chara[],charb[],intn){chart[100];strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝a[n-1]='\0';strcat(a,b);strcat(a,t);}voidmain(){chars1[100]="1234567890";chars2[100]="abcdefghijklmn";intn;cin>>n;Instr(s1,s2,n);cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
3、设计一个函数voidInstr(chara[],charb[],intn),将字符串b插入到字符串a的第n个字符处,字符串a的第n个字符及右边的字符向右移动。
假定a中的字符串长度大于n。
voidInstr(chara[],charb[],intn)
chart[100];
strcpy(t,a+n-1);//a+n-1的含义是从a的第n个字符开始拷贝
a[n-1]='\0';
strcat(a,b);
strcat(a,t);
chars1[100]="1234567890";
chars2[100]="abcdefghijklmn";
Instr(s1,s2,n);
cout<}voidInstr(chara[],charb[],intn)也可以写成:voidInstr1(chara[],charb[],intn){intk=n;chart[100];for(inti=0;b[i]!='\0';i++,k++)t[i]=a[k-1];t[i]='\0';a[n-1]='\0';strcat(a,b);strcat(a,t);}4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。若tr2是为str1的子串,显示子串在父串中的起始位置。要求用函数实现判断。#includeintfun(charstr1[],charstr2[]){inti,j,k;for(i=0;str1[i];i++)for(j=i,k=0;str2[k]==str1[j];k++,j++)if(str2[k+1]=='\0')returni+1;return0;}voidmain(){intm=0;chars1[100],s2[100];cin.getline(s1,100);cin.getline(s2,100);if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
voidInstr(chara[],charb[],intn)也可以写成:
voidInstr1(chara[],charb[],intn)
intk=n;
for(inti=0;b[i]!
='\0';i++,k++)t[i]=a[k-1];
t[i]='\0';a[n-1]='\0';
4、编程实现对输入的两个字符串str1和str2,判断str2是否为str1的子串。
若tr2是为str1的子串,显示子串在父串中的起始位置。
要求用函数实现判断。
intfun(charstr1[],charstr2[])
inti,j,k;
for(i=0;str1[i];i++)
for(j=i,k=0;str2[k]==str1[j];k++,j++)
if(str2[k+1]=='\0')returni+1;
return0;
intm=0;
chars1[100],s2[100];
cin.getline(s1,100);
cin.getline(s2,100);
if(fun(s1,s2))cout<"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
"<elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
elsecout<"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
"<}5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。#include#includevoidmain(){chara[40],b[]="abc",max;inti,j=0;cout<<"inputastring:\n";cin.getline(a,39);cout<
5、编写程序,实现把字符数组b插入到字符数组a中最大字符后边。
chara[40],b[]="abc",max;
inti,j=0;
cout<<"inputastring:
cin.getline(a,39);
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2