}
4.编写函数,将两个字符串s和t的前n个字符拼接成新的字符串,结果存放在s中。
如果s或t中字符串的长度不足n,按实际长度处理。
例如,如果有"ABCDEFGH"和"abcdefghijk",n为3,则新的字符串为”ABCabc”,并加以调用。
函数形式为:
voidmystrcat(chars[],chart[],intn);
#include
#include
voidmystrcat(chars[],chart[],intn)
{
intl1=strlen(s),l2=strlen(t);
intk1=l1>n?
n:
l1,k2=l2>n?
n:
l2;
for(inti=0;is[k1++]=t[i];
s[k1]='\0';
}
voidmain()
{
chars[30],t[30];
intn;
cin>>s>>t;
cin>>n;
mystrcat(s,t,n);
cout<
}
5.编写函数,其功能是逐字符比较两个字符串s1和s2,并将s1中第一个与s2不相同字符的地址返回给主函数。
再编写主函数调用该函数,并在主函数中输出s1从这个位置开始的子串。
函数形式为:
char*dif(chars1[],chars2[]);
#include
#include"stdio.h"
char*dif(chars1[],chars2[])
{
inti=0;
while(s1[i]==s2[i]&&s1[i]!
='\0')
i++;
if(s1[i]!
='\0')
return(&s1[i]);
elsereturnNULL;
}
voidmain()
{
chars[30],t[30];
cin>>s>>t;
char*p;
if((p=dif(s,t))!
=NULL)
cout<
else
cout<<"s包含于t中\n";
}
6.用递归方法求正整数m,n的最大公约数。
#include
intgcd(intm,intn)
{
intr=m%n;
if(r!
=0)
returngcd(n,r);
else
return(n);
}
voidmain()
{
intm,n;
cin>>m>>n;
cout<}
7.编写四个同名函数max,分别求两个整数、三个整数,两个双精度数、三个双精度数的最大值。
#include
intmax(inta,intb)
{
return(a>b?
a:
b);
}
intmax(inta,intb,intc)
{
intt=max(a,b);
return(max(t,c));
}
doublemax(doublea,doubleb)
{
return(a>b?
a:
b);
}
doublemax(doublea,doubleb,doublec)
{
doublet=max(a,b);
return(max(t,c));
}
voidmain()
{doublex,y,z;
inta,b,c;
cin>>a>>b>>c;
cin>>x>>y>>z;
cout<cout<}
第四章习题
一、
1.C2.A3.C4.D5.C6.B7.A8.B
二、
1.67890543212.43.14
三、
1.
(1){0,1}(3)x[i]=x[i-1]+x[i-2](4)setw(5)<2.
(1)rand()%101
(2)j3.
(1)b[m]=0
(2)n4.(该题目需要加上头文件#include"stdio.h")
(1)gets(s1)
(2)gets(s2)(3)*s1==*s2(4)r=0
5.
(1)j=k=l=0
(2)j四、
1.
(1)
#include"stdlib.h"
#include"iostream.h"
voidmain()
{inta[4][4],b[4][4],c[4][4],i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
a[i][j]=rand()%41+30;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
b[i][j]=rand()%35+101;
cout<<"矩阵A的内容如下:
\n";
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
cout<cout<}
cout<<"矩阵B的内容如下:
\n";
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
cout<
cout<}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
c[i][j]=a[i][j]+b[i][j];
cout<<"矩阵C的内容如下:
\n";
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
cout<cout<}
}
(2)
#include"stdlib.h"
#include"iostream.h"
voidmain()
{inta[4][4],b[4][4],c[4][4],i,j,max,imax,jmax;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
a[i][j]=rand()%41+30;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
b[i][j]=rand()%35+101;
cout<<"矩阵A的内容如下:
\n";
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
cout<cout<}
cout<<"矩阵B的内容如下:
\n";
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
cout<
cout<}
for(i=0;i<4;i+