实验4:1.#include “”void main(){int n,sum=0;for(n=1;;sum+=n,n+=2)if(n>=20) break;cout<<”sum=”<<sum<<endl; }2.#include “”void main(){int x;cout<<”input x:”<<endl; cin>>x;if(x==0)cout<<”0″;elsewhile(x!=0){cout<<x%10;x=x/10;}cout<<endl;}3.#include “”void main(){int i,t=1;float s=0;for(i=1;t>1e-4;i++){s=s+t;t=t+i;}cout<<”s=”<<s<<endl;}4.#include “”void main(){double pi=1,t=2;int n;for(n=1;t>1e-4;n++){pi=pi*t;t=(float)((2*n)*(2*n))/((2*n-1)*(2*n+1));}cout<<”pi=”<<pi<<endl; }5.(1)#include “”#include “”void main(){int i,j;for(i=1;i<=9;i++){ cout<<setw(20-i);for(j=1;j<=2*i-1;j++) cout<<i;cout<<endl;}}5.(2)#include “”#include “”void main(){int i,j;char c;for(i=9;i>=1;i–){ cout<<setw(9-i)<<”";c=9-i+’A';for(j=1;j<=2*i;j++)cout<<c;cout<<endl;}}6.#include “”void main(){int m,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<<m<<”\t”;}}7.#include “”#include “”void main(){int x,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<y&&y<z){ k++;cout<<x<<’\t’<<y<<’\t’<<z<<endl; }cout<<”满足条件的方案有:”<<k<<endl; }8.#include “”#include “”#include “”void main(){int a,n,i,k;double s=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=”<<s<<endl;}9.#include “”#include “”void main(){float a,x,x1;cin>>a;x=a;do{x1=x;x=3*x+a/(3*x*x);}while(fabs(x-x1)>1e-5);cout<<”编程求得x=”<<x<<endl;cout<<”调用函数求得x=”<<pow(a,3)<<endl; }实验5:#include “”#include “”void main(){int a[10],i,max,min;float ave;for(i=0;i<10;i++)a[i]=rand()%71+30;cout<<”数组a的内容如下:\n”;for(i=0;i<10;i++)cout<<a[i]<<’ ‘;cout<<endl;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)min=a[i];}cout<<”max=”<<max<<”,min=”<<min<<”,ave=”<<ave/10<<endl; }2. #include <>#define N 20#include “”void main(){int a[N],i,j,k;cout<<”排序前:\n”;for(i=0;i<N;i++){a[i]=rand()%101;cout<<a[i]<<’ ‘;}for(i=0;i<N-1;i++){k=i;for(j=i+1;j<N;j++)if(a[j]>a[k])k=j;if(k!=i){int t=a[k]; a[k]=a[i]; a[i]=t;} }cout<<”排序后:\n”;for(i=0;i<N;i++)cout<<a[i]<<’ ‘;}3.#include “”#include “”void main(){ int i,j,s[10],t,n;for(i=0;i<10;i++){s[i]=rand()%101;cout<<s[i]<<” “;}cout<<endl;cin>>n;for(j=0;j<n;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<<s[i]<<” “;}4.见第四章习题编程题1答案。
5.(1)#include <>#include <>void main(){int a[10][10],i,j,n;cin>>n;for(i=0;i<n;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<n;i++)for(j=1;j<i;j++)a[i][j]=a[i-1][j]+a[i-1][j-1]; for(i=0;i<n;i++){for(j=0;j<=i;j++){cout<<setw(6)<<a[i][j];}cout<<endl;}}(2)#include <>#include <>void main(){int a[10][10],i,j,n;cin>>n;for(i=0;i<n;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<n;i++)for(j=1;j<i;j++)a[i][j]=a[i-1][j]+a[i-1][j-1]; for(i=0;i<n;i++){cout<<setw((n-i)*3)<<” “;for(j=0;j<=i;j++){cout<<setw(6)<<a[i][j];}cout<<endl;}}6.方法一:#include “”#include “”void main(){ char s[80],ch;int i,len;gets(s);len=strlen(s);for(i=0;i<len/2;i++) {ch=s[i];s[i]=s[len-i-1];s[len-i-1]=ch;}puts(s);}方法二:#include “”#include “”void main(){ char *p,*p1,*p2,ch; int i,len=0;p=p1=p2=new char[80]; gets(p1);while(*p2!=’\0′)p2++;p2–;while(p1<p2){ch=*p1;*p1=*p2;*p2=ch;p1++;p2–;}puts(p);}7.#include “”#include “”void main(){char s[80],ch; int i,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 “”void main(){char s[80];gets(s);int i=0;while(s[i]!=’\0′){if(s[i]>=’A'&&s[i]<=’Z') s[i]=s[i]+32;i++;}puts(s);}方法二:#include “”void main(){char s[80],*p=s;gets(s);while(*p!=’\0′){i f(*p>=’A'&&*p<=’Z')*p=*p+32;p++;}puts(s);}实验6:1.编一判断m是否为素数的函数,并在主函数中利用它输出十对最小的孪生素数。
所谓孪生素数是指两个相差为2的素数,如3和5,11和13。
输出形式如图2.6.1。
函数形式为:bool isprime(int m);#include “”int isprime(int m) 编一函数,功能为构造正整数x的逆序数。
再编一主函数,输出10个大于10000的最小的回文数。
回文数是指顺读和倒读都相同的数,如5、151、3553等。