同济大学c++ 实验1到实验8前三题.docx

上传人:b****5 文档编号:8278735 上传时间:2023-01-30 格式:DOCX 页数:26 大小:18.57KB
下载 相关 举报
同济大学c++ 实验1到实验8前三题.docx_第1页
第1页 / 共26页
同济大学c++ 实验1到实验8前三题.docx_第2页
第2页 / 共26页
同济大学c++ 实验1到实验8前三题.docx_第3页
第3页 / 共26页
同济大学c++ 实验1到实验8前三题.docx_第4页
第4页 / 共26页
同济大学c++ 实验1到实验8前三题.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

同济大学c++ 实验1到实验8前三题.docx

《同济大学c++ 实验1到实验8前三题.docx》由会员分享,可在线阅读,更多相关《同济大学c++ 实验1到实验8前三题.docx(26页珍藏版)》请在冰豆网上搜索。

同济大学c++ 实验1到实验8前三题.docx

同济大学c++实验1到实验8前三题

实验4:

1.

#include“”

voidmain()

{intn,sum=0;

for(n=1;;sum+=n,n+=2)

if(n>=20)break;

cout<<”sum=”<

}

2.

#include“”

voidmain()

{intx;

cout<<”inputx:

”<

cin>>x;

if(x==0)

cout<<”0″;

else

while(x!

=0)

{cout<

x=x/10;

}

cout<

}

3.

#include“”

voidmain()

{inti,t=1;

floats=0;

for(i=1;t>1e-4;i++)

{s=s+t;

t=t+i;

}

cout<<”s=”<

}

4.

#include“”

voidmain()

{doublepi=1,t=2;

intn;

for(n=1;t>1e-4;n++)

{pi=pi*t;

t=(float)((2*n)*(2*n))/((2*n-1)*(2*n+1));

}

cout<<”pi=”<

}

5.

(1)

#include“”

#include“”

voidmain()

{inti,j;

for(i=1;i<=9;i++)

{cout<

for(j=1;j<=2*i-1;j++)

cout<

cout<

}

}

5.

(2)

#include“”

#include“”

voidmain()

{inti,j;

charc;

for(i=9;i>=1;i–)

{cout<

c=9-i+’A';

for(j=1;j<=2*i;j++)

cout<

cout<

}

}

6.

#include“”

voidmain()

{intm,m1,m2,m3;

for(m=100;m<1000;m++)

{m1=m%10;

m2=m/10%10;

m3=m/100;

if(m1*m1*m1+m2*m2*m2+m3*m3*m3==m)

cout<

}

}

7.

#include“”

#include“”

voidmain()

{intx,y,z,k=0;

for(x=1;x<=6;x++)

for(y=x+1;y<=6;y++)

for(z=5;z<=6;z++)

if(x

{k++;

cout<

}

cout<<”满足条件的方案有:

”<

}

8.

#include“”

#include“”

#include“”

voidmain()

{inta,n,i,k;

doubles=0,temp=0;

srand(time(NULL));

a=rand()%9+1;

n=rand()%6+5;

for(i=1;i<=n;i++)

{temp=temp*10+a;

s=s+temp;

}

cout<<”s=”<

}

9.

#include“”

#include“”

voidmain()

{floata,x,x1;

cin>>a;

x=a;

do

{x1=x;

x=3*x+a/(3*x*x);

}while(fabs(x-x1)>1e-5);

cout<<”编程求得x=”<

cout<<”调用函数求得x=”<

}

实验5:

#include“”

#include“”

voidmain()

{inta[10],i,max,min;

floatave;

for(i=0;i<10;i++)

a[i]=rand()%71+30;

cout<<”数组a的内容如下:

\n”;

for(i=0;i<10;i++)

cout<

cout<

max=min=ave=a[0];

for(i=1;i<10;i++)

{ave=ave+a[i];

if(a[i]>max)

max=a[i];

if(a[i]

min=a[i];

}

cout<<”max=”<

}

2.#include<>

#defineN20

#include“”

voidmain()

{inta[N],i,j,k;

cout<<”排序前:

\n”;

for(i=0;i

{a[i]=rand()%101;

cout<

}

for(i=0;i

{k=i;

for(j=i+1;j

if(a[j]>a[k])

k=j;

if(k!

=i)

{intt=a[k];a[k]=a[i];a[i]=t;}

}

cout<<”排序后:

\n”;

for(i=0;i

cout<

}

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;i

for(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;i

for(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;i

for(j=0;j

if(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;i

cin>>b[i].name>>b[i].price;

sort(b,N);

for(i=0;i

cout<

}

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1