1、a; 的十位数是:a/10 的个位数是:a%10abc; v=a*a+b*b+c*c; aver=(a+b+c)/3; 三个数的平方和是:v 三个数的平均值是:averb)t=a;a=b;b=t;c)t=a;a=c;c=t; if(bc)t=b;b=c;t float x,sum=0.0; int i=1; while(i=10) x; sum=sum+x; i=i+1; 平均值是:sum/10 int y=0,t=1; int n;n; for(int i=1;i=n;i+) t=t*i; y=y+t; n= n y= yn-1) cout count+;ncount=count5、 int
2、 a,n,sum=0,c=0;cout n=a; do sum+=n%10; n/=10; c+; while(n);的所有数字之和为:sum 是 位数 6、 int a,b,i;for(i=1;=999; a=i%10; b=i%100; if(i=a*a | i=b*b) 7、 int a,b,n; for(n=10000;=99999; a=n*10+6; b=6*100000+n; if(b=4*a) coutbreak;第三章/1. 一维数组的输入和输出#include int a10,k=1; for(int i=0;10;请输入第k+个元素atai;数组a为:n for(i=0,
3、k=0; k+;ai if(k%5=0)cout/2. 通过指针输出一维数组中值为奇数元素 int a10=3,4,5,8,9,11,14,16,19,21,*p=a,k=0;数组a中的奇数有: if(pi%2) k+; cout*(p+i) if(k%5=0)cout int b45;产生的数组为:4; for(int j=0;j5;j+) bij=rand();bij/4. 二维数组的平方赋值 int a34=3,1,5,2,4,1,7,5,3,6,9,8,b34;3;i+)aij=astriz) stri-=-A转换后的字符串为:str char str=abc321,*s1=str,*
4、s2,ch;原字符串为:s1 s2=str; /A while(*s2)s2+; s2-; /B while(s1s2) ch=*s1; *s1=*s2; *s2=ch; s1+; s2-;逆序后的字符串为:/*其中A到B行可改为: s2=str+strlen(str)-1;*/第四章习题答案4-1void swap(int *p1,int *p2) int t; t=*p1;*p1=*p2;*p2=t; int a,b,c; int *s1,*s2,*s3;输入三个数a,b,c: s1=& s2=&b; s3=&b)swap(s1,s2);c)swap(s1,s3);c)swap(s2,s3
5、);输出排好序的三个数:4-2void trans(int,int); int n,sel;输入一个整数:n输出进制:2,8,16,32(输入0时退出):sel; switch (sel) case 2:trans(n,2); case 8:trans(n,8); case 16:trans(n,16); case 32:trans(n,32); case 0: default:进制输入错误! while(sel!=0);void trans(int n,int base) int c; if(n=0)return; c=n%base; trans(n/base,base); if(c=9)
6、elsechar(c-10+)iomanip.hvoid fun(int b,int n)n-1;i+) /若不是素数,将其值置为0 for(int j=i+1; if(bi!=0&bj!=0) if(bj%bi=0) bj=0; int a210=0,n=0,k=5;48;i+) /给数组赋初值 ai=k,k+=2; fun(a,48);49; if(ai! coutsetw(6)den1num2den2;num1/den1 , num2den2求分母的最小公倍数: l=lcm(den1,den2);l两分数的和为: a=(l/den1)*num1+(l/den2)*num2;/求分子分母的
7、最大公约数: g=gcd(a,l);g输出最简分数:a/gl/g=1;i-) if(!(a%i)|(b%i) break; return (i);int lcm(int a,int b) i=b; while(i%a)i+=b; return(i);4-5double sin(double x,double eps) double term,sum,y; int n=1; /n=0 y=x*x; term=x; sum=0; while(fabs(term)=eps) sum+=term; n+; term=term*y/(2*n-2)*(2*n-1); /(2*n)*(2*n-1) term
8、*=-1; return sum; double x,y;输入x的值(角度): while(x360)x-=360; y=3.1415926*x/180;度数为:x其sin值为:sin(y,1e-6)=1e-3); return x; float a,b,c,d;input a,b,c,d:cd;x3+x2+x+d=0x=solut(a,b,c,d)4-7prime(int n) int i=2; int flag=1; for(;n/2&flag=1; if (n%i=0) flag=0; return(flag); int m,j,k,n=0; for(m=6;m=100;m+=2) fo
9、r(j=3;=m/2;j+=2) if (prime(j) k=m-j; if (prime(k)setw(4)=+k; if (+n%5=0) cout if(m=j+k)break; 4-8void f1(int n) int j=n%10; if(n/10)f1(n/10);void f2(int n)n%10 if(n/10)f2(n/10); int x;输入一个整数:输入的整数为:该整数的反序输出为: f2(x);该整数的正序输出为: f1(x);第五章 习题参考解答11 3 12 3 11 3 22 3 21 3 32 3 31 2 32正确程序之一为:#define SQR(x
10、) (x)*(x)void main() int counter; for(counter=0;counter+counter)(counter+1)x的平方为SQR(counter+1)s1.eng; sum=s1.CPPscore+s1.eng;sum;2.程序如下# include struct scorechar name8 ; int no ; float c, english, maths, average ; ;score input(score st) ;float average( float a, float b, float c ) ;void sort(score st
11、, int n) ;void print (score st, int n) ;score student30 ; for (int i=0 ; i5 ; i+) studenti=input(studenti) ; sort(student, 5) ; print(student, 5) ;score input(score st)请输入学生姓名: ;st.name ;请输入学生学号:st.no ;请输入C+成绩:st.c ;请输入英语成绩:st.english ;请输入数学成绩:st.maths ;endl ; st.average=average(st.c, st.english, st.maths) ; return st ;float average( float a, float b, float c ) return (a+b+c)/3 ;void sort(score st, int n) score temp ; for ( int i=0 ;n-1 ; for ( int j=i ; jn ; j+ ) if (sti.average stj.average ) temp=sti ; sti=stj ; stj=temp ;void print (score st, int n)No. 姓名 平均 C+ 英语 数学 sti.no ; cout
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2