同济大学c++ 实验1到实验8前三题.docx
- 文档编号:11094566
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:55
- 大小:23.82KB
同济大学c++ 实验1到实验8前三题.docx
《同济大学c++ 实验1到实验8前三题.docx》由会员分享,可在线阅读,更多相关《同济大学c++ 实验1到实验8前三题.docx(55页珍藏版)》请在冰豆网上搜索。
同济大学c++实验1到实验8前三题
实验4:
1.
#include“iostream.h”
voidmain()
{intn,sum=0;
for(n=1;;sum+=n,n+=2)
if(n>=20)break;
cout<<”sum=”< } 2. #include“iostream.h” voidmain() {intx; cout<<”inputx: ”< cin>>x; if(x==0) cout<<”0″; else while(x! =0) {cout< x=x/10; } cout< } 3. #include“iostream.h” voidmain() {inti,t=1; floats=0; for(i=1;1.0/t>1e-4;i++) {s=s+1.0/t; t=t+i; } cout<<”s=”< } 4. #include“iostream.h” 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“iostream.h” #include“iomanip.h” voidmain() {inti,j; for(i=1;i<=9;i++) {cout< for(j=1;j<=2*i-1;j++) cout< cout< } } 5. (2) #include“iostream.h” #include“iomanip.h” 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“iostream.h” 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“iostream.h” #include“iomanip.h” 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“iostream.h” #include“stdlib.h” #include“time.h” 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“iostream.h” #include“math.h” voidmain() {floata,x,x1; cin>>a; x=a; do {x1=x; x=2.0/3*x+a/(3*x*x); }while(fabs(x-x1)>1e-5); cout<<”编程求得x=”< cout<<”调用函数求得x=”< } 实验5: #include“stdlib.h” #include“iostream.h” 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“stdlib.h” 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“iostream.h” #include“stdlib.h” 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“stdio.h” #include“string.h” 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“stdio.h” #include“string.h” 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“stdio.h” #include“iostream.h” 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“stdio.h” 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“stdio.h” 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“iostream.h” intisprime(intm)//判别m是否为质数 {inti; for(i=2;m%i! =0;i++); return(i==m); } voidmain() {intx,count=0; x=2; while (1) {if(isprime(x)&&isprime(x+2)) {count++; cout<<”(“< if(count>=10)break; } x++; } } 2.编一函数,功能为构造正整数x的逆序数。 再编一主函数,输出10个大于10000的最小的回文数。 回文数是指顺读和倒读都相同的数,如5、151、3553等。 函数形式为: intreverse(intx); #include”iostream.h” #include”stdlib.h” #include”time.h” 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);//原来的字符串保留在s1中 while(s[n])n++;//求字符串长度 for(i=0;i {ch=s[i];s[i]=s[n-i-1];s[n-i-1]=ch;} if(strcmp(s1,s)==0) return1; else return0; } voidmain() {chars[80];inti,count=0; cout<<”输入5个字符串: ”< for(i=0;i<5;i++) {gets(s); if(huiwen(s))count++; } cout<<”回文个数: ”< } 4.函数的功能是将学生成绩从高分到低分排序,并统计优秀与不及格的人数。 用下面两种方法实现: (1)函数形式为: intfun(ints[],intn,int*x); 要求优秀人数通过return返回,不及格人数通过指针参数返回结果。 (2)函数形式为: voidfun(ints[],intn,int&x,int&y); 要求优秀与不及格的人数通过引用参数返回结果。 分别编二个程序,学生数从键盘输入。 方法一: #include #defineN10 intfun(inta[],intn,int*x) {inti,j,k; *x=0; 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;} } for(i=0;i if(a[i]>=60) *x=*x+1; return(n-*x); } voidmain() {inta[N],i,n,pass,npass; cin>>n; for(i=0;i cin>>a[i]; npass=fun(a,n,&pass); cout<<”pass=”< cout<<”成绩由高到低依次为: \n”;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 同济大学c+ 实验1到实验8前三题 同济大学 c+ 实验 前三题