}
3.
#include“”
#include“”
voidmain()
{inti,j,s[10],t,n;
for(i=0;i<10;i++)
{s[i]=rand()%101;
cout<
}
cout<cin>>n;
for(j=0;j{t=s[9];
for(i=8;i>=0;i–)
{
s[i+1]=s[i];
}
s[0]=t;
}
for(i=0;i<10;i++)
cout<
}
4.
见第四章习题编程题1答案。
5.
(1)
#include<>
#include<>
voidmain()
{inta[10][10],i,j,n;
cin>>n;
for(i=0;i{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;ifor(j=1;j
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=0;i{
for(j=0;j<=i;j++)
{
cout<}
cout<}
}
(2)
#include<>
#include<>
voidmain()
{inta[10][10],i,j,n;
cin>>n;
for(i=0;i{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;ifor(j=1;j
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=0;i{
cout<for(j=0;j<=i;j++)
{
cout<}
cout<}
}
6.
方法一:
#include“”
#include“”
voidmain()
{chars[80],ch;
inti,len;
gets(s);
len=strlen(s);
for(i=0;i{ch=s[i];
s[i]=s[len-i-1];
s[len-i-1]=ch;
}
puts(s);
}
方法二:
#include“”
#include“”
voidmain()
{char*p,*p1,*p2,ch;
inti,len=0;
p=p1=p2=newchar[80];
gets(p1);
while(*p2!
=’\0′)
p2++;
p2–;
while(p1{ch=*p1;
*p1=*p2;
*p2=ch;
p1++;
p2–;
}
puts(p);
}
7.
#include“”
#include“”
voidmain()
{chars[80],ch;inti,j;
gets(s);
cin>>ch;
while
(1)
{for(i=0;s[i]!
=’\0′;i++)
if(s[i]==ch)break;
if(s[i]==’\0′)break;
for(j=i;s[j]!
=’\0′;j++)
s[j]=s[j+1];
s[j]=’\0′;
}
puts(s);
}
8.
方法一:
#include<>
#include“”
voidmain()
{chars[80];
gets(s);
inti=0;
while(s[i]!
=’\0′)
{
if(s[i]>=’A'&&s[i]<=’Z')
s[i]=s[i]+32;
i++;
}
puts(s);
}
方法二:
#include“”
voidmain()
{chars[80],*p=s;
gets(s);
while(*p!
=’\0′)
{
if(*p>=’A'&&*p<=’Z')
*p=*p+32;
p++;
}
puts(s);
}
实验6:
1.编一判断m是否为素数的函数,并在主函数中利用它输出十对最小的孪生素数。
所谓孪生素数是指两个相差为2的素数,如3和5,11和13。
输出形式如图2.6.1。
函数形式为:
boolisprime(intm);
#include“”
intisprime(intm)编一函数,功能为构造正整数x的逆序数。
再编一主函数,输出10个大于10000的最小的回文数。
回文数是指顺读和倒读都相同的数,如5、151、3553等。
函数形式为:
intreverse(intx);
#include””
#include””
#include””
intf(inta)
{intb,c=0;
while(a!
=0)
{b=a%10;
c=c*10+b;
a/=10;
}
returnc;
}
voidmain()
{intx,i,k=0,t;booltag=true;
srand(time(NULL));
for(x=10000;k<10;x++)
{
if(f(x)==x)
{cout<}
}
3.编一函数,功能为判断一字符串是否为回文,如果是回文则返回1,否则返回0。
回文是指顺读和倒读都一样的字符串,如“deed”和“level”是回文。
在主函数中对输入的字符串加以调用。
函数形式为:
inthuiwen(chars[]);
#include<>
#include<>
#include<>
inthuiwen(chars[])
{
inti,n=0;
charch,s1[80];
strcpy(s1,s);编一函数,功能为统计字符串中各个字母(不区分大、小写)出现的频率,同时找出频率出现最高的字母及次数。
。
函数形式为:
voidfreq(chars[],intp[],char&chmax,int&max)
#include“”
#include“”
#include“”
voidfreq(chars[],intp[],char&chmax,int&max)
{for(inti=0;i<26;i++)
p[i]=0;
strlwr(s);
i=0;
while(s[i]!
=’\0′)
{if(s[i]>=’a'&&s[i]<=’z')
p[s[i]-’a']++;
i++;
}
max=p[0];intk=0;
for(i=1;i<26;i++)
if(p[i]>max)
{max=p[i];k=i;}
chmax=k+97;
}
voidmain()
{intp[26],i,max;chars[80],chmax;
gets(s);
freq(s,p,chmax,max);
for(i=0;i<26;i++)
if(p[i])cout<cout<}
6.编写函数max,其功能是将字符串s中最大字符的地址返回,再编写一个主函数,调用该函数,将字符串s中从最大字符开始的子串中的小写字母转换成大写字母,然后输出新字符串s。
例如,假设s的内容为“qwertyou”,则从最大字符’y’开始的子串为“you”,处理后的s为“qwertYOU”。
函数形式为:
char*max(chars[]);
#include“”
#include“”
#include“”
char*max(chars[])
{char*p=s;
inti=1,imax=0;
while(s[i]!
=’\0′)
{if(s[i]>s[imax])imax=i;
i++;
}
while(s[imax]!
=’\0′)2.6.1编一函数,功能为构造正整数x的逆序数。
再编一主函数,输出10个大于10000的最小的回文数。
回文数是指顺读和倒读都相同的数,如5、151、3553等。
函数形式为:
intreverse(intx);
#include""
#include""
#include""
intf(inta)
{intb,c=0;
while(a!
=0)
{b=a%10;
c=c*10+b;
a/=10;
}
returnc;
}
voidmain()
{intx,i,k=0,t;booltag=true;
srand(time(NULL));
for(x=10000;k<10;x++)
{
if(f(x)==x)
{cout<}
}
3.编一函数,功能为判断一字符串是否为回文,如果是回文则返回1,否则返回0。
回文是指顺读和倒读都一样的字符串,如“deed”和“level”是回文。
在主函数中对输入的字符串加以调用。
函数形式为:
inthuiwen(chars[]);
#include<>
#include<>
#include<>
inthuiwen(chars[])
{
inti,n=0;
charch,s1[80];
strcpy(s1,s);编一函数,功能为统计字符串中各个字母(不区分大、小写)出现的频率,同时找出频率出现最高的字母及次数。
。
函数形式为:
voidfreq(chars[],intp[],char&chmax,int&max)
#include""
#include""
#include""
voidfreq(chars[],intp[],char&chmax,int&max)
{for(inti=0;i<26;i++)
p[i]=0;
strlwr(s);
i=0;
while(s[i]!
='\0')
{if(s[i]>='a'&&s[i]<='z')
p[s[i]-'a']++;
i++;
}
max=p[0];intk=0;
for(i=1;i<26;i++)
if(p[i]>max)
{max=p[i];k=i;}
chmax=k+97;
}
voidmain()
{intp[26],i,max;chars[80],chmax;
gets(s);
freq(s,p,chmax,max);
for(i=0;i<26;i++)
if(p[i])cout<cout<}
6.编写函数max,其功能是将字符串s中最大字符的地址返回,再编写一个主函数,调用该函数,将字符串s中从最大字符开始的子串中的小写字母转换成大写字母,然后输出新字符串s。
例如,假设s的内容为“qwertyou”,则从最大字符’y’开始的子串为“you”,处理后的s为“qwertYOU”。
函数形式为:
char*max(chars[]);
#include""
#include""
#include""
char*max(chars[])
{char*p=s;
inti=1,imax=0;
while(s[i]!
='\0')
{if(s[i]>s[imax])imax=i;
i++;
}
while(s[imax]!
='\0')core>
t=s[i];
returnt;
}
voidmain()
{
students[N],maxs;
inti;
for(i=0;i{
s[i].num=newchar[10];um>>s[i].score;
}
maxs=max(s,N);
cout<<<<''<<<}
2、
#include""
#include""
#defineN5
structbook
{
charname[30];
doubleprice;
};
voidsort(bookb[],intn)
{
inti,j;
bookt;
for(i=0;ifor(j=0;jif(strcmp(b[j].name,b[j+1].name)>0)
{
t=b[j];
b[j]=b[j+1];
b[j+1]=t;
}
}
voidmain()
{
bookb[N];
inti;
for(i=0;icin>>b[i].name>>b[i].price;
sort(b,N);
for(i=0;icout<
}
3、
#include""
voidmain()
{
structdate
{
intyear;
intmonth;
intday;
}d;
intdpm[12]={31,28,31,30,31,30,31,31,30,31,30,31},i,s=0;
cin>>>>>>;
if%400==0||%4==0&&%100!
=0)
dpm[1]=29;
for(i=0;i<;i++)
s=s+dpm[i];
s=s+;
cout<<"s="<
}
4、
#defineN5
#include""
structnode
{
charnum[6];n";
else
p->wage=w;
}
voidprint(node*head)
{
node*p=head;
while(p!
=NULL)
{
cout<name<<''<num<<''<wage<p=p->next;
}
}
voidmain()
{
node*head=NULL,*tail=NULL,*newnode;
inti;
charnum[6];
doublew;
for(i=0;i{
newnode=newnode;
cin>>newnode->name>>newnode->num>>newnode->wage;
if(head==NULL)
head=newnode;
else
tail->next=newnode;
tail=newnode;
}
tail->next=NULL;
print(head);
cin>>num>>w;n";
exit
(1);
}
gets(s);
i=0;
while(s[i]!
='\0')
{
if(s[i]>='a'&&s[i]<='z')
s[i]=s[i]-32;
elseif(s[i]>='A'&&s[i]<='Z')
s[i]=s[i]+32;
i++;
}
fputs(s,fp);
fclose(fp);
}
2、
#include""
#include""
#include""
voidmain()
{
FILE*fp;
charch;
fp=fopen("","r");
if(fp==NULL)
{
cout<<"can'topen.\n";
exit
(1);
}
while
(1)
{
ch=fgetc(fp);
if(feof(fp))
break;
cout<}
}
3、
#include""
#include""
#include""
#include""
voidmain()
{
FILE*fp;
chars[100],t[100];
inti,len;
fp=fopen("","w");
if(fp==NULL)
{
cout<<"can'topen.\n";
exit
(1);
}
gets(s);
len=strlen(s);
strcpy(t,s);
for(i=0;i{
charch=s[i];
s[i]=s[len-1-i];
s[len-1-i]=ch;
}
f