习题答案C++程序设计教程第三版朱红清华大学出版社.docx
《习题答案C++程序设计教程第三版朱红清华大学出版社.docx》由会员分享,可在线阅读,更多相关《习题答案C++程序设计教程第三版朱红清华大学出版社.docx(83页珍藏版)》请在冰豆网上搜索。
习题答案C++程序设计教程第三版朱红清华大学出版社
练习题
(1)
一、选择题
(1)D
(2)C(3)A(4)C(5)A
(6)B(7)D(8)B(9)D(10)D
一、问答题
略
(2)
(1)C
(2)D(3)D(4)D(5)D
(6)A(7)A(8)B(9)A(10)C
(11)D(12)C(13)D(14)B(15)A
(16)D(17)A(18)C(19)A(20)A
二、填空题
(1)22
(2)2(3)1(4)101(5)float
(6)double(7)true或1(8)1(9)n%10n/10%10n/100%10n/1000%10
(10)(a)sin(x)/(x-y)(b)sqrt(s*(s-a)*(s-b)*(s-c))(c)(a-b)*(a+b)(d)(x+y)/fabs(x-y)
练习题(3)
(1)A
(2)D3.C4.A5.C
6.A7.C8..D9.B10.D
11.D12.B13.A14.C
(1)5(4).133(3)235(4)1//1//3//default(5)20
三、编程题
//1.根据下面函数表达式编写一个程序,实现输入x的值后,能计算并输出相应的函数值y:
#include
usingnamespacestd;
intmain()
{doublex,y;
cout<<"请输入x:
";
cin>>x;
if(x<0)
y=x*x;
elseif(x>=0&&x<1)
y=2.5*x-1;
else
y=3*x+1;
cout<<"x="<return0;}//2.设计一个程序,要求:对从键盘输入的一个不多于5位的正整数,能输出它的位数并输出它的各位数字之和。#includeusingnamespacestd;intmain(){intx,count=0,sum=0;cout<<"请输入x:";cin>>x;cout<while(x){sum=sum+x%10;x=x/10;count++;}cout<"<return0;}//编程计算s=1!+2!+3!+...+n!,n的值从键盘输入,要求输出n和s的值。#includeusingnamespacestd;intmain(){intn;doublet=1,s=0;cout<<"请输入n:";cin>>n;for(inti=1;i<=n;i++){t=t*i;s=s+t;}cout<<"n="<return0;}//4.编程求之值,其中是一个数字,n表示的项数和其最后一项的位数。例如:2+22+222+2222+22222(此时n=5)。#includeusingnamespacestd;intmain(){intn,a;doubles=0,t=0;cout<<"请输入a和n:";cin>>a>>n;for(inti=1;i<=n;i++){t=t*10+a;s=s+t;}cout<<"s="<return0;}//5.利用公式:编程计算的近似值,要求计算到最后一项的绝对值小于为止。#include#includeusingnamespacestd;intmain(){intn=1,flag=1;doublepi=1,t=1;while(fabs(t)>1e-5){flag=-flag;t=flag*1.0/(2*n+1);pi=pi+t;n++;}cout<<"pi="<<4*pi<return0;}//6.编程求出所有的"水仙花数"。所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。例如,153是水仙花数,因为。#includeusingnamespacestd;intmain(){inta,b,c;for(inti=100;i<1000;i++){a=i/100;b=i/10%10;c=i%10;if(i==a*a*a+b*b*b+c*c*c)cout<}return0;}//7.编程求满足以下条件的三位整数n,它除以11所得到的商等于n的各位数字的平方和,且其中至少有两位数字相同。例如,131除以11的商为11,各位数字的平方和为11,所以它是满足条件的三位数。#includeusingnamespacestd;intmain(){inta,b,c;for(inti=100;i<1000;i++){a=i/100;b=i/10%10;c=i%10;if(i/11==a*a+b*b+c*c&&(a==b||b==c||a==c))cout<}return0;}//8.设计一个求两正整数m和n的最大公约数的程序。m和n的值由键盘输入。#includeusingnamespacestd;intmain(){intm,n;cout<<"请输入两个整数:";cin>>m>>n;for(inti=m;i>=1;i--)if(m%i==0&&n%i==0)break;cout<"<return0;}练习题(4)一、选择题(1)C2.B3.B4.B5.C6.C7.B8.C9.D10.D二、填空题(1)23572.答案:theresultis:3653.cmathfabs(term)(-1)*x*x/(n)/(n+1)4.答案:x=x/10n<=0n!=invert(n)5.first:33//second:515//third:18156.答案:37..-9//-18三、编程题//1.设计一个程序,要求输入三个整数,能求出其中的最大数并输出。程序中必须用函数实现求两数中大数的功能#includeusingnamespacestd;intmax(inta,intb){returna>b?a:b;}intmain(){inta,b,c,maxnumber;cout<<"请输入三个整数:";cin>>a>>b>>c;maxnumber=max(a,b);maxnumber=max(maxnumber,c);cout<"<return0;}//2.设计一个程序,求出100~200之间的所有素数,要求每行输出5个素数。判断一个整数是否为素数用一个函数来实现。#includeusingnamespacestd;intprime(intx){for(inti=2;i<=x/2;i++)if(x%i==0)return0;return1;}intmain(){intk=0;for(inti=100;i<=200;i++)if(prime(i)){cout<k++;if(k%5==0)cout<}return0;}//3.回文数是指其各位数字左右对称的整数,例如12321是回文数。定义一个判断回文数的函数,并打印1000~2000之间的所有回文数。#includeusingnamespacestd;intfun(intx){ints=0;inti=x;while(i){s=s*10+i%10;i=i/10;}if(s==x)return1;elsereturn0;}intmain(){intk=0;for(inti=1000;i<=2000;i++)if(fun(i)){cout<k++;if(k%5==0)cout<}return0;}//4.用函数实现求两正整数的最大公约数的功能,并在主函数中调用该函数求出两正整数的最小公倍数。#includeusingnamespacestd;intgys(inta,intb){for(inti=a;i>=1;i--)if(a%i==0&&b%i==0)returni;returni;}intmain(){inta,b,t;cout<<"请输入两个正整数:";cin>>a>>b;t=gys(a,b);cout<"<<(a*b/t)<return0;}//5.用递归函数实现Hermite多项式求值。当x>1时,Hermite多项式定义为输入实数x和整数n后,求出Hermite多项式前n项的值#includeusingnamespacestd;doublehermite(doublex,intn){doubley;if(n==0)y=1;elseif(n==1)y=2*x;elsey=2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2);returny;}intmain(){doublex,y;intn;cout<<"请输入n和x:";cin>>n>>x;y=hermite(x,n);cout<<"y="<return0;}//6.分别设计两个函数,一个实现整数的正序输出,另一个则实现反序输出。如输人一个整数3456,则输出3456和6543。#includeusingnamespacestd;voidfun1(intn){if(n==0)return;elsefun1(n/10);cout<}voidfun2(intn){if(n==0)return;else{cout<fun2(n/10);}}intmain(){intn;cout<<"请输入n:";cin>>n;fun1(n);cout<fun2(n);cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
return0;
}
//2.设计一个程序,要求:
对从键盘输入的一个不多于5位的正整数,能输出它的位数并输出它的各位数字之和。
{
intx,count=0,sum=0;
cout<while(x){sum=sum+x%10;x=x/10;count++;}cout<"<return0;}//编程计算s=1!+2!+3!+...+n!,n的值从键盘输入,要求输出n和s的值。#includeusingnamespacestd;intmain(){intn;doublet=1,s=0;cout<<"请输入n:";cin>>n;for(inti=1;i<=n;i++){t=t*i;s=s+t;}cout<<"n="<return0;}//4.编程求之值,其中是一个数字,n表示的项数和其最后一项的位数。例如:2+22+222+2222+22222(此时n=5)。#includeusingnamespacestd;intmain(){intn,a;doubles=0,t=0;cout<<"请输入a和n:";cin>>a>>n;for(inti=1;i<=n;i++){t=t*10+a;s=s+t;}cout<<"s="<return0;}//5.利用公式:编程计算的近似值,要求计算到最后一项的绝对值小于为止。#include#includeusingnamespacestd;intmain(){intn=1,flag=1;doublepi=1,t=1;while(fabs(t)>1e-5){flag=-flag;t=flag*1.0/(2*n+1);pi=pi+t;n++;}cout<<"pi="<<4*pi<return0;}//6.编程求出所有的"水仙花数"。所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。例如,153是水仙花数,因为。#includeusingnamespacestd;intmain(){inta,b,c;for(inti=100;i<1000;i++){a=i/100;b=i/10%10;c=i%10;if(i==a*a*a+b*b*b+c*c*c)cout<}return0;}//7.编程求满足以下条件的三位整数n,它除以11所得到的商等于n的各位数字的平方和,且其中至少有两位数字相同。例如,131除以11的商为11,各位数字的平方和为11,所以它是满足条件的三位数。#includeusingnamespacestd;intmain(){inta,b,c;for(inti=100;i<1000;i++){a=i/100;b=i/10%10;c=i%10;if(i/11==a*a+b*b+c*c&&(a==b||b==c||a==c))cout<}return0;}//8.设计一个求两正整数m和n的最大公约数的程序。m和n的值由键盘输入。#includeusingnamespacestd;intmain(){intm,n;cout<<"请输入两个整数:";cin>>m>>n;for(inti=m;i>=1;i--)if(m%i==0&&n%i==0)break;cout<"<return0;}练习题(4)一、选择题(1)C2.B3.B4.B5.C6.C7.B8.C9.D10.D二、填空题(1)23572.答案:theresultis:3653.cmathfabs(term)(-1)*x*x/(n)/(n+1)4.答案:x=x/10n<=0n!=invert(n)5.first:33//second:515//third:18156.答案:37..-9//-18三、编程题//1.设计一个程序,要求输入三个整数,能求出其中的最大数并输出。程序中必须用函数实现求两数中大数的功能#includeusingnamespacestd;intmax(inta,intb){returna>b?a:b;}intmain(){inta,b,c,maxnumber;cout<<"请输入三个整数:";cin>>a>>b>>c;maxnumber=max(a,b);maxnumber=max(maxnumber,c);cout<"<return0;}//2.设计一个程序,求出100~200之间的所有素数,要求每行输出5个素数。判断一个整数是否为素数用一个函数来实现。#includeusingnamespacestd;intprime(intx){for(inti=2;i<=x/2;i++)if(x%i==0)return0;return1;}intmain(){intk=0;for(inti=100;i<=200;i++)if(prime(i)){cout<k++;if(k%5==0)cout<}return0;}//3.回文数是指其各位数字左右对称的整数,例如12321是回文数。定义一个判断回文数的函数,并打印1000~2000之间的所有回文数。#includeusingnamespacestd;intfun(intx){ints=0;inti=x;while(i){s=s*10+i%10;i=i/10;}if(s==x)return1;elsereturn0;}intmain(){intk=0;for(inti=1000;i<=2000;i++)if(fun(i)){cout<k++;if(k%5==0)cout<}return0;}//4.用函数实现求两正整数的最大公约数的功能,并在主函数中调用该函数求出两正整数的最小公倍数。#includeusingnamespacestd;intgys(inta,intb){for(inti=a;i>=1;i--)if(a%i==0&&b%i==0)returni;returni;}intmain(){inta,b,t;cout<<"请输入两个正整数:";cin>>a>>b;t=gys(a,b);cout<"<<(a*b/t)<return0;}//5.用递归函数实现Hermite多项式求值。当x>1时,Hermite多项式定义为输入实数x和整数n后,求出Hermite多项式前n项的值#includeusingnamespacestd;doublehermite(doublex,intn){doubley;if(n==0)y=1;elseif(n==1)y=2*x;elsey=2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2);returny;}intmain(){doublex,y;intn;cout<<"请输入n和x:";cin>>n>>x;y=hermite(x,n);cout<<"y="<return0;}//6.分别设计两个函数,一个实现整数的正序输出,另一个则实现反序输出。如输人一个整数3456,则输出3456和6543。#includeusingnamespacestd;voidfun1(intn){if(n==0)return;elsefun1(n/10);cout<}voidfun2(intn){if(n==0)return;else{cout<fun2(n/10);}}intmain(){intn;cout<<"请输入n:";cin>>n;fun1(n);cout<fun2(n);cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
while(x)
sum=sum+x%10;
x=x/10;
count++;
cout<"<return0;}//编程计算s=1!+2!+3!+...+n!,n的值从键盘输入,要求输出n和s的值。#includeusingnamespacestd;intmain(){intn;doublet=1,s=0;cout<<"请输入n:";cin>>n;for(inti=1;i<=n;i++){t=t*i;s=s+t;}cout<<"n="<return0;}//4.编程求之值,其中是一个数字,n表示的项数和其最后一项的位数。例如:2+22+222+2222+22222(此时n=5)。#includeusingnamespacestd;intmain(){intn,a;doubles=0,t=0;cout<<"请输入a和n:";cin>>a>>n;for(inti=1;i<=n;i++){t=t*10+a;s=s+t;}cout<<"s="<return0;}//5.利用公式:编程计算的近似值,要求计算到最后一项的绝对值小于为止。#include#includeusingnamespacestd;intmain(){intn=1,flag=1;doublepi=1,t=1;while(fabs(t)>1e-5){flag=-flag;t=flag*1.0/(2*n+1);pi=pi+t;n++;}cout<<"pi="<<4*pi<return0;}//6.编程求出所有的"水仙花数"。所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。例如,153是水仙花数,因为。#includeusingnamespacestd;intmain(){inta,b,c;for(inti=100;i<1000;i++){a=i/100;b=i/10%10;c=i%10;if(i==a*a*a+b*b*b+c*c*c)cout<}return0;}//7.编程求满足以下条件的三位整数n,它除以11所得到的商等于n的各位数字的平方和,且其中至少有两位数字相同。例如,131除以11的商为11,各位数字的平方和为11,所以它是满足条件的三位数。#includeusingnamespacestd;intmain(){inta,b,c;for(inti=100;i<1000;i++){a=i/100;b=i/10%10;c=i%10;if(i/11==a*a+b*b+c*c&&(a==b||b==c||a==c))cout<}return0;}//8.设计一个求两正整数m和n的最大公约数的程序。m和n的值由键盘输入。#includeusingnamespacestd;intmain(){intm,n;cout<<"请输入两个整数:";cin>>m>>n;for(inti=m;i>=1;i--)if(m%i==0&&n%i==0)break;cout<"<return0;}练习题(4)一、选择题(1)C2.B3.B4.B5.C6.C7.B8.C9.D10.D二、填空题(1)23572.答案:theresultis:3653.cmathfabs(term)(-1)*x*x/(n)/(n+1)4.答案:x=x/10n<=0n!=invert(n)5.first:33//second:515//third:18156.答案:37..-9//-18三、编程题//1.设计一个程序,要求输入三个整数,能求出其中的最大数并输出。程序中必须用函数实现求两数中大数的功能#includeusingnamespacestd;intmax(inta,intb){returna>b?a:b;}intmain(){inta,b,c,maxnumber;cout<<"请输入三个整数:";cin>>a>>b>>c;maxnumber=max(a,b);maxnumber=max(maxnumber,c);cout<"<return0;}//2.设计一个程序,求出100~200之间的所有素数,要求每行输出5个素数。判断一个整数是否为素数用一个函数来实现。#includeusingnamespacestd;intprime(intx){for(inti=2;i<=x/2;i++)if(x%i==0)return0;return1;}intmain(){intk=0;for(inti=100;i<=200;i++)if(prime(i)){cout<k++;if(k%5==0)cout<}return0;}//3.回文数是指其各位数字左右对称的整数,例如12321是回文数。定义一个判断回文数的函数,并打印1000~2000之间的所有回文数。#includeusingnamespacestd;intfun(intx){ints=0;inti=x;while(i){s=s*10+i%10;i=i/10;}if(s==x)return1;elsereturn0;}intmain(){intk=0;for(inti=1000;i<=2000;i++)if(fun(i)){cout<k++;if(k%5==0)cout<}return0;}//4.用函数实现求两正整数的最大公约数的功能,并在主函数中调用该函数求出两正整数的最小公倍数。#includeusingnamespacestd;intgys(inta,intb){for(inti=a;i>=1;i--)if(a%i==0&&b%i==0)returni;returni;}intmain(){inta,b,t;cout<<"请输入两个正整数:";cin>>a>>b;t=gys(a,b);cout<"<<(a*b/t)<return0;}//5.用递归函数实现Hermite多项式求值。当x>1时,Hermite多项式定义为输入实数x和整数n后,求出Hermite多项式前n项的值#includeusingnamespacestd;doublehermite(doublex,intn){doubley;if(n==0)y=1;elseif(n==1)y=2*x;elsey=2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2);returny;}intmain(){doublex,y;intn;cout<<"请输入n和x:";cin>>n>>x;y=hermite(x,n);cout<<"y="<return0;}//6.分别设计两个函数,一个实现整数的正序输出,另一个则实现反序输出。如输人一个整数3456,则输出3456和6543。#includeusingnamespacestd;voidfun1(intn){if(n==0)return;elsefun1(n/10);cout<}voidfun2(intn){if(n==0)return;else{cout<fun2(n/10);}}intmain(){intn;cout<<"请输入n:";cin>>n;fun1(n);cout<fun2(n);cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
"<return0;}//编程计算s=1!+2!+3!+...+n!,n的值从键盘输入,要求输出n和s的值。#includeusingnamespacestd;intmain(){intn;doublet=1,s=0;cout<<"请输入n:";cin>>n;for(inti=1;i<=n;i++){t=t*i;s=s+t;}cout<<"n="<return0;}//4.编程求之值,其中是一个数字,n表示的项数和其最后一项的位数。例如:2+22+222+2222+22222(此时n=5)。#includeusingnamespacestd;intmain(){intn,a;doubles=0,t=0;cout<<"请输入a和n:";cin>>a>>n;for(inti=1;i<=n;i++){t=t*10+a;s=s+t;}cout<<"s="<return0;}//5.利用公式:编程计算的近似值,要求计算到最后一项的绝对值小于为止。#include#includeusingnamespacestd;intmain(){intn=1,flag=1;doublepi=1,t=1;while(fabs(t)>1e-5){flag=-flag;t=flag*1.0/(2*n+1);pi=pi+t;n++;}cout<<"pi="<<4*pi<return0;}//6.编程求出所有的"水仙花数"。所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。例如,153是水仙花数,因为。#includeusingnamespacestd;intmain(){inta,b,c;for(inti=100;i<1000;i++){a=i/100;b=i/10%10;c=i%10;if(i==a*a*a+b*b*b+c*c*c)cout<}return0;}//7.编程求满足以下条件的三位整数n,它除以11所得到的商等于n的各位数字的平方和,且其中至少有两位数字相同。例如,131除以11的商为11,各位数字的平方和为11,所以它是满足条件的三位数。#includeusingnamespacestd;intmain(){inta,b,c;for(inti=100;i<1000;i++){a=i/100;b=i/10%10;c=i%10;if(i/11==a*a+b*b+c*c&&(a==b||b==c||a==c))cout<}return0;}//8.设计一个求两正整数m和n的最大公约数的程序。m和n的值由键盘输入。#includeusingnamespacestd;intmain(){intm,n;cout<<"请输入两个整数:";cin>>m>>n;for(inti=m;i>=1;i--)if(m%i==0&&n%i==0)break;cout<"<return0;}练习题(4)一、选择题(1)C2.B3.B4.B5.C6.C7.B8.C9.D10.D二、填空题(1)23572.答案:theresultis:3653.cmathfabs(term)(-1)*x*x/(n)/(n+1)4.答案:x=x/10n<=0n!=invert(n)5.first:33//second:515//third:18156.答案:37..-9//-18三、编程题//1.设计一个程序,要求输入三个整数,能求出其中的最大数并输出。程序中必须用函数实现求两数中大数的功能#includeusingnamespacestd;intmax(inta,intb){returna>b?a:b;}intmain(){inta,b,c,maxnumber;cout<<"请输入三个整数:";cin>>a>>b>>c;maxnumber=max(a,b);maxnumber=max(maxnumber,c);cout<"<return0;}//2.设计一个程序,求出100~200之间的所有素数,要求每行输出5个素数。判断一个整数是否为素数用一个函数来实现。#includeusingnamespacestd;intprime(intx){for(inti=2;i<=x/2;i++)if(x%i==0)return0;return1;}intmain(){intk=0;for(inti=100;i<=200;i++)if(prime(i)){cout<k++;if(k%5==0)cout<}return0;}//3.回文数是指其各位数字左右对称的整数,例如12321是回文数。定义一个判断回文数的函数,并打印1000~2000之间的所有回文数。#includeusingnamespacestd;intfun(intx){ints=0;inti=x;while(i){s=s*10+i%10;i=i/10;}if(s==x)return1;elsereturn0;}intmain(){intk=0;for(inti=1000;i<=2000;i++)if(fun(i)){cout<k++;if(k%5==0)cout<}return0;}//4.用函数实现求两正整数的最大公约数的功能,并在主函数中调用该函数求出两正整数的最小公倍数。#includeusingnamespacestd;intgys(inta,intb){for(inti=a;i>=1;i--)if(a%i==0&&b%i==0)returni;returni;}intmain(){inta,b,t;cout<<"请输入两个正整数:";cin>>a>>b;t=gys(a,b);cout<"<<(a*b/t)<return0;}//5.用递归函数实现Hermite多项式求值。当x>1时,Hermite多项式定义为输入实数x和整数n后,求出Hermite多项式前n项的值#includeusingnamespacestd;doublehermite(doublex,intn){doubley;if(n==0)y=1;elseif(n==1)y=2*x;elsey=2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2);returny;}intmain(){doublex,y;intn;cout<<"请输入n和x:";cin>>n>>x;y=hermite(x,n);cout<<"y="<return0;}//6.分别设计两个函数,一个实现整数的正序输出,另一个则实现反序输出。如输人一个整数3456,则输出3456和6543。#includeusingnamespacestd;voidfun1(intn){if(n==0)return;elsefun1(n/10);cout<}voidfun2(intn){if(n==0)return;else{cout<fun2(n/10);}}intmain(){intn;cout<<"请输入n:";cin>>n;fun1(n);cout<fun2(n);cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
//编程计算s=1!
+2!
+3!
+...+n!
,n的值从键盘输入,要求输出n和s的值。
intn;
doublet=1,s=0;
cout<<"请输入n:
cin>>n;
for(inti=1;i<=n;i++)
t=t*i;
s=s+t;
cout<<"n="<return0;}//4.编程求之值,其中是一个数字,n表示的项数和其最后一项的位数。例如:2+22+222+2222+22222(此时n=5)。#includeusingnamespacestd;intmain(){intn,a;doubles=0,t=0;cout<<"请输入a和n:";cin>>a>>n;for(inti=1;i<=n;i++){t=t*10+a;s=s+t;}cout<<"s="<return0;}//5.利用公式:编程计算的近似值,要求计算到最后一项的绝对值小于为止。#include#includeusingnamespacestd;intmain(){intn=1,flag=1;doublepi=1,t=1;while(fabs(t)>1e-5){flag=-flag;t=flag*1.0/(2*n+1);pi=pi+t;n++;}cout<<"pi="<<4*pi<return0;}//6.编程求出所有的"水仙花数"。所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。例如,153是水仙花数,因为。#includeusingnamespacestd;intmain(){inta,b,c;for(inti=100;i<1000;i++){a=i/100;b=i/10%10;c=i%10;if(i==a*a*a+b*b*b+c*c*c)cout<}return0;}//7.编程求满足以下条件的三位整数n,它除以11所得到的商等于n的各位数字的平方和,且其中至少有两位数字相同。例如,131除以11的商为11,各位数字的平方和为11,所以它是满足条件的三位数。#includeusingnamespacestd;intmain(){inta,b,c;for(inti=100;i<1000;i++){a=i/100;b=i/10%10;c=i%10;if(i/11==a*a+b*b+c*c&&(a==b||b==c||a==c))cout<}return0;}//8.设计一个求两正整数m和n的最大公约数的程序。m和n的值由键盘输入。#includeusingnamespacestd;intmain(){intm,n;cout<<"请输入两个整数:";cin>>m>>n;for(inti=m;i>=1;i--)if(m%i==0&&n%i==0)break;cout<"<return0;}练习题(4)一、选择题(1)C2.B3.B4.B5.C6.C7.B8.C9.D10.D二、填空题(1)23572.答案:theresultis:3653.cmathfabs(term)(-1)*x*x/(n)/(n+1)4.答案:x=x/10n<=0n!=invert(n)5.first:33//second:515//third:18156.答案:37..-9//-18三、编程题//1.设计一个程序,要求输入三个整数,能求出其中的最大数并输出。程序中必须用函数实现求两数中大数的功能#includeusingnamespacestd;intmax(inta,intb){returna>b?a:b;}intmain(){inta,b,c,maxnumber;cout<<"请输入三个整数:";cin>>a>>b>>c;maxnumber=max(a,b);maxnumber=max(maxnumber,c);cout<"<return0;}//2.设计一个程序,求出100~200之间的所有素数,要求每行输出5个素数。判断一个整数是否为素数用一个函数来实现。#includeusingnamespacestd;intprime(intx){for(inti=2;i<=x/2;i++)if(x%i==0)return0;return1;}intmain(){intk=0;for(inti=100;i<=200;i++)if(prime(i)){cout<k++;if(k%5==0)cout<}return0;}//3.回文数是指其各位数字左右对称的整数,例如12321是回文数。定义一个判断回文数的函数,并打印1000~2000之间的所有回文数。#includeusingnamespacestd;intfun(intx){ints=0;inti=x;while(i){s=s*10+i%10;i=i/10;}if(s==x)return1;elsereturn0;}intmain(){intk=0;for(inti=1000;i<=2000;i++)if(fun(i)){cout<k++;if(k%5==0)cout<}return0;}//4.用函数实现求两正整数的最大公约数的功能,并在主函数中调用该函数求出两正整数的最小公倍数。#includeusingnamespacestd;intgys(inta,intb){for(inti=a;i>=1;i--)if(a%i==0&&b%i==0)returni;returni;}intmain(){inta,b,t;cout<<"请输入两个正整数:";cin>>a>>b;t=gys(a,b);cout<"<<(a*b/t)<return0;}//5.用递归函数实现Hermite多项式求值。当x>1时,Hermite多项式定义为输入实数x和整数n后,求出Hermite多项式前n项的值#includeusingnamespacestd;doublehermite(doublex,intn){doubley;if(n==0)y=1;elseif(n==1)y=2*x;elsey=2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2);returny;}intmain(){doublex,y;intn;cout<<"请输入n和x:";cin>>n>>x;y=hermite(x,n);cout<<"y="<return0;}//6.分别设计两个函数,一个实现整数的正序输出,另一个则实现反序输出。如输人一个整数3456,则输出3456和6543。#includeusingnamespacestd;voidfun1(intn){if(n==0)return;elsefun1(n/10);cout<}voidfun2(intn){if(n==0)return;else{cout<fun2(n/10);}}intmain(){intn;cout<<"请输入n:";cin>>n;fun1(n);cout<fun2(n);cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
//4.编程求之值,其中是一个数字,n表示的项数和其最后一项的位数。
例如:
2+22+222+2222+22222(此时n=5)。
intn,a;
doubles=0,t=0;
cout<<"请输入a和n:
cin>>a>>n;
t=t*10+a;
cout<<"s="<
//5.利用公式:
编程计算的近似值,要求计算到最后一项的绝对值小于为止。
intn=1,flag=1;
doublepi=1,t=1;
while(fabs(t)>1e-5)
flag=-flag;
t=flag*1.0/(2*n+1);
pi=pi+t;
n++;
cout<<"pi="<<4*pi<return0;}//6.编程求出所有的"水仙花数"。所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。例如,153是水仙花数,因为。#includeusingnamespacestd;intmain(){inta,b,c;for(inti=100;i<1000;i++){a=i/100;b=i/10%10;c=i%10;if(i==a*a*a+b*b*b+c*c*c)cout<}return0;}//7.编程求满足以下条件的三位整数n,它除以11所得到的商等于n的各位数字的平方和,且其中至少有两位数字相同。例如,131除以11的商为11,各位数字的平方和为11,所以它是满足条件的三位数。#includeusingnamespacestd;intmain(){inta,b,c;for(inti=100;i<1000;i++){a=i/100;b=i/10%10;c=i%10;if(i/11==a*a+b*b+c*c&&(a==b||b==c||a==c))cout<}return0;}//8.设计一个求两正整数m和n的最大公约数的程序。m和n的值由键盘输入。#includeusingnamespacestd;intmain(){intm,n;cout<<"请输入两个整数:";cin>>m>>n;for(inti=m;i>=1;i--)if(m%i==0&&n%i==0)break;cout<"<return0;}练习题(4)一、选择题(1)C2.B3.B4.B5.C6.C7.B8.C9.D10.D二、填空题(1)23572.答案:theresultis:3653.cmathfabs(term)(-1)*x*x/(n)/(n+1)4.答案:x=x/10n<=0n!=invert(n)5.first:33//second:515//third:18156.答案:37..-9//-18三、编程题//1.设计一个程序,要求输入三个整数,能求出其中的最大数并输出。程序中必须用函数实现求两数中大数的功能#includeusingnamespacestd;intmax(inta,intb){returna>b?a:b;}intmain(){inta,b,c,maxnumber;cout<<"请输入三个整数:";cin>>a>>b>>c;maxnumber=max(a,b);maxnumber=max(maxnumber,c);cout<"<return0;}//2.设计一个程序,求出100~200之间的所有素数,要求每行输出5个素数。判断一个整数是否为素数用一个函数来实现。#includeusingnamespacestd;intprime(intx){for(inti=2;i<=x/2;i++)if(x%i==0)return0;return1;}intmain(){intk=0;for(inti=100;i<=200;i++)if(prime(i)){cout<k++;if(k%5==0)cout<}return0;}//3.回文数是指其各位数字左右对称的整数,例如12321是回文数。定义一个判断回文数的函数,并打印1000~2000之间的所有回文数。#includeusingnamespacestd;intfun(intx){ints=0;inti=x;while(i){s=s*10+i%10;i=i/10;}if(s==x)return1;elsereturn0;}intmain(){intk=0;for(inti=1000;i<=2000;i++)if(fun(i)){cout<k++;if(k%5==0)cout<}return0;}//4.用函数实现求两正整数的最大公约数的功能,并在主函数中调用该函数求出两正整数的最小公倍数。#includeusingnamespacestd;intgys(inta,intb){for(inti=a;i>=1;i--)if(a%i==0&&b%i==0)returni;returni;}intmain(){inta,b,t;cout<<"请输入两个正整数:";cin>>a>>b;t=gys(a,b);cout<"<<(a*b/t)<return0;}//5.用递归函数实现Hermite多项式求值。当x>1时,Hermite多项式定义为输入实数x和整数n后,求出Hermite多项式前n项的值#includeusingnamespacestd;doublehermite(doublex,intn){doubley;if(n==0)y=1;elseif(n==1)y=2*x;elsey=2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2);returny;}intmain(){doublex,y;intn;cout<<"请输入n和x:";cin>>n>>x;y=hermite(x,n);cout<<"y="<return0;}//6.分别设计两个函数,一个实现整数的正序输出,另一个则实现反序输出。如输人一个整数3456,则输出3456和6543。#includeusingnamespacestd;voidfun1(intn){if(n==0)return;elsefun1(n/10);cout<}voidfun2(intn){if(n==0)return;else{cout<fun2(n/10);}}intmain(){intn;cout<<"请输入n:";cin>>n;fun1(n);cout<fun2(n);cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
//6.编程求出所有的"水仙花数"。
所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。
例如,153是水仙花数,因为。
inta,b,c;
for(inti=100;i<1000;i++)
a=i/100;
b=i/10%10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c)
cout<
//7.编程求满足以下条件的三位整数n,它除以11所得到的商等于n的各位数字的平方和,且其中至少有两位数字相同。
例如,131除以11的商为11,各位数字的平方和为11,所以它是满足条件的三位数。
if(i/11==a*a+b*b+c*c&&(a==b||b==c||a==c))
//8.设计一个求两正整数m和n的最大公约数的程序。
m和n的值由键盘输入。
intm,n;
cout<<"请输入两个整数:
cin>>m>>n;
for(inti=m;i>=1;i--)
if(m%i==0&&n%i==0)
break;
cout<"<return0;}练习题(4)一、选择题(1)C2.B3.B4.B5.C6.C7.B8.C9.D10.D二、填空题(1)23572.答案:theresultis:3653.cmathfabs(term)(-1)*x*x/(n)/(n+1)4.答案:x=x/10n<=0n!=invert(n)5.first:33//second:515//third:18156.答案:37..-9//-18三、编程题//1.设计一个程序,要求输入三个整数,能求出其中的最大数并输出。程序中必须用函数实现求两数中大数的功能#includeusingnamespacestd;intmax(inta,intb){returna>b?a:b;}intmain(){inta,b,c,maxnumber;cout<<"请输入三个整数:";cin>>a>>b>>c;maxnumber=max(a,b);maxnumber=max(maxnumber,c);cout<"<return0;}//2.设计一个程序,求出100~200之间的所有素数,要求每行输出5个素数。判断一个整数是否为素数用一个函数来实现。#includeusingnamespacestd;intprime(intx){for(inti=2;i<=x/2;i++)if(x%i==0)return0;return1;}intmain(){intk=0;for(inti=100;i<=200;i++)if(prime(i)){cout<k++;if(k%5==0)cout<}return0;}//3.回文数是指其各位数字左右对称的整数,例如12321是回文数。定义一个判断回文数的函数,并打印1000~2000之间的所有回文数。#includeusingnamespacestd;intfun(intx){ints=0;inti=x;while(i){s=s*10+i%10;i=i/10;}if(s==x)return1;elsereturn0;}intmain(){intk=0;for(inti=1000;i<=2000;i++)if(fun(i)){cout<k++;if(k%5==0)cout<}return0;}//4.用函数实现求两正整数的最大公约数的功能,并在主函数中调用该函数求出两正整数的最小公倍数。#includeusingnamespacestd;intgys(inta,intb){for(inti=a;i>=1;i--)if(a%i==0&&b%i==0)returni;returni;}intmain(){inta,b,t;cout<<"请输入两个正整数:";cin>>a>>b;t=gys(a,b);cout<"<<(a*b/t)<return0;}//5.用递归函数实现Hermite多项式求值。当x>1时,Hermite多项式定义为输入实数x和整数n后,求出Hermite多项式前n项的值#includeusingnamespacestd;doublehermite(doublex,intn){doubley;if(n==0)y=1;elseif(n==1)y=2*x;elsey=2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2);returny;}intmain(){doublex,y;intn;cout<<"请输入n和x:";cin>>n>>x;y=hermite(x,n);cout<<"y="<return0;}//6.分别设计两个函数,一个实现整数的正序输出,另一个则实现反序输出。如输人一个整数3456,则输出3456和6543。#includeusingnamespacestd;voidfun1(intn){if(n==0)return;elsefun1(n/10);cout<}voidfun2(intn){if(n==0)return;else{cout<fun2(n/10);}}intmain(){intn;cout<<"请输入n:";cin>>n;fun1(n);cout<fun2(n);cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
"<
练习题(4)
(1)C2.B3.B4.B5.C
6.C7.B8.C9.D10.D
(1)23572.答案:
theresultis:
365
3.cmathfabs(term)(-1)*x*x/(n)/(n+1)
4.答案:
x=x/10n<=0n!
=invert(n)
5.first:
33//second:
515//third:
1815
6.答案:
37..-9//-18
//1.设计一个程序,要求输入三个整数,能求出其中的最大数并输出。
程序中必须用函数实现求两数中大数的功能
intmax(inta,intb)
returna>b?
a:
b;
inta,b,c,maxnumber;
cout<<"请输入三个整数:
cin>>a>>b>>c;
maxnumber=max(a,b);
maxnumber=max(maxnumber,c);
cout<"<return0;}//2.设计一个程序,求出100~200之间的所有素数,要求每行输出5个素数。判断一个整数是否为素数用一个函数来实现。#includeusingnamespacestd;intprime(intx){for(inti=2;i<=x/2;i++)if(x%i==0)return0;return1;}intmain(){intk=0;for(inti=100;i<=200;i++)if(prime(i)){cout<k++;if(k%5==0)cout<}return0;}//3.回文数是指其各位数字左右对称的整数,例如12321是回文数。定义一个判断回文数的函数,并打印1000~2000之间的所有回文数。#includeusingnamespacestd;intfun(intx){ints=0;inti=x;while(i){s=s*10+i%10;i=i/10;}if(s==x)return1;elsereturn0;}intmain(){intk=0;for(inti=1000;i<=2000;i++)if(fun(i)){cout<k++;if(k%5==0)cout<}return0;}//4.用函数实现求两正整数的最大公约数的功能,并在主函数中调用该函数求出两正整数的最小公倍数。#includeusingnamespacestd;intgys(inta,intb){for(inti=a;i>=1;i--)if(a%i==0&&b%i==0)returni;returni;}intmain(){inta,b,t;cout<<"请输入两个正整数:";cin>>a>>b;t=gys(a,b);cout<"<<(a*b/t)<return0;}//5.用递归函数实现Hermite多项式求值。当x>1时,Hermite多项式定义为输入实数x和整数n后,求出Hermite多项式前n项的值#includeusingnamespacestd;doublehermite(doublex,intn){doubley;if(n==0)y=1;elseif(n==1)y=2*x;elsey=2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2);returny;}intmain(){doublex,y;intn;cout<<"请输入n和x:";cin>>n>>x;y=hermite(x,n);cout<<"y="<return0;}//6.分别设计两个函数,一个实现整数的正序输出,另一个则实现反序输出。如输人一个整数3456,则输出3456和6543。#includeusingnamespacestd;voidfun1(intn){if(n==0)return;elsefun1(n/10);cout<}voidfun2(intn){if(n==0)return;else{cout<fun2(n/10);}}intmain(){intn;cout<<"请输入n:";cin>>n;fun1(n);cout<fun2(n);cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
"<return0;}//2.设计一个程序,求出100~200之间的所有素数,要求每行输出5个素数。判断一个整数是否为素数用一个函数来实现。#includeusingnamespacestd;intprime(intx){for(inti=2;i<=x/2;i++)if(x%i==0)return0;return1;}intmain(){intk=0;for(inti=100;i<=200;i++)if(prime(i)){cout<k++;if(k%5==0)cout<}return0;}//3.回文数是指其各位数字左右对称的整数,例如12321是回文数。定义一个判断回文数的函数,并打印1000~2000之间的所有回文数。#includeusingnamespacestd;intfun(intx){ints=0;inti=x;while(i){s=s*10+i%10;i=i/10;}if(s==x)return1;elsereturn0;}intmain(){intk=0;for(inti=1000;i<=2000;i++)if(fun(i)){cout<k++;if(k%5==0)cout<}return0;}//4.用函数实现求两正整数的最大公约数的功能,并在主函数中调用该函数求出两正整数的最小公倍数。#includeusingnamespacestd;intgys(inta,intb){for(inti=a;i>=1;i--)if(a%i==0&&b%i==0)returni;returni;}intmain(){inta,b,t;cout<<"请输入两个正整数:";cin>>a>>b;t=gys(a,b);cout<"<<(a*b/t)<return0;}//5.用递归函数实现Hermite多项式求值。当x>1时,Hermite多项式定义为输入实数x和整数n后,求出Hermite多项式前n项的值#includeusingnamespacestd;doublehermite(doublex,intn){doubley;if(n==0)y=1;elseif(n==1)y=2*x;elsey=2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2);returny;}intmain(){doublex,y;intn;cout<<"请输入n和x:";cin>>n>>x;y=hermite(x,n);cout<<"y="<return0;}//6.分别设计两个函数,一个实现整数的正序输出,另一个则实现反序输出。如输人一个整数3456,则输出3456和6543。#includeusingnamespacestd;voidfun1(intn){if(n==0)return;elsefun1(n/10);cout<}voidfun2(intn){if(n==0)return;else{cout<fun2(n/10);}}intmain(){intn;cout<<"请输入n:";cin>>n;fun1(n);cout<fun2(n);cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
//2.设计一个程序,求出100~200之间的所有素数,要求每行输出5个素数。
判断一个整数是否为素数用一个函数来实现。
intprime(intx)
for(inti=2;i<=x/2;i++)
if(x%i==0)
return1;
intk=0;
for(inti=100;i<=200;i++)
if(prime(i))
k++;
if(k%5==0)
cout<}return0;}//3.回文数是指其各位数字左右对称的整数,例如12321是回文数。定义一个判断回文数的函数,并打印1000~2000之间的所有回文数。#includeusingnamespacestd;intfun(intx){ints=0;inti=x;while(i){s=s*10+i%10;i=i/10;}if(s==x)return1;elsereturn0;}intmain(){intk=0;for(inti=1000;i<=2000;i++)if(fun(i)){cout<k++;if(k%5==0)cout<}return0;}//4.用函数实现求两正整数的最大公约数的功能,并在主函数中调用该函数求出两正整数的最小公倍数。#includeusingnamespacestd;intgys(inta,intb){for(inti=a;i>=1;i--)if(a%i==0&&b%i==0)returni;returni;}intmain(){inta,b,t;cout<<"请输入两个正整数:";cin>>a>>b;t=gys(a,b);cout<"<<(a*b/t)<return0;}//5.用递归函数实现Hermite多项式求值。当x>1时,Hermite多项式定义为输入实数x和整数n后,求出Hermite多项式前n项的值#includeusingnamespacestd;doublehermite(doublex,intn){doubley;if(n==0)y=1;elseif(n==1)y=2*x;elsey=2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2);returny;}intmain(){doublex,y;intn;cout<<"请输入n和x:";cin>>n>>x;y=hermite(x,n);cout<<"y="<return0;}//6.分别设计两个函数,一个实现整数的正序输出,另一个则实现反序输出。如输人一个整数3456,则输出3456和6543。#includeusingnamespacestd;voidfun1(intn){if(n==0)return;elsefun1(n/10);cout<}voidfun2(intn){if(n==0)return;else{cout<fun2(n/10);}}intmain(){intn;cout<<"请输入n:";cin>>n;fun1(n);cout<fun2(n);cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
//3.回文数是指其各位数字左右对称的整数,例如12321是回文数。
定义一个判断回文数的函数,并打印1000~2000之间的所有回文数。
intfun(intx)
ints=0;
inti=x;
while(i)
s=s*10+i%10;
i=i/10;
if(s==x)
elsereturn0;
for(inti=1000;i<=2000;i++)
if(fun(i))
{cout<
cout<}return0;}//4.用函数实现求两正整数的最大公约数的功能,并在主函数中调用该函数求出两正整数的最小公倍数。#includeusingnamespacestd;intgys(inta,intb){for(inti=a;i>=1;i--)if(a%i==0&&b%i==0)returni;returni;}intmain(){inta,b,t;cout<<"请输入两个正整数:";cin>>a>>b;t=gys(a,b);cout<"<<(a*b/t)<return0;}//5.用递归函数实现Hermite多项式求值。当x>1时,Hermite多项式定义为输入实数x和整数n后,求出Hermite多项式前n项的值#includeusingnamespacestd;doublehermite(doublex,intn){doubley;if(n==0)y=1;elseif(n==1)y=2*x;elsey=2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2);returny;}intmain(){doublex,y;intn;cout<<"请输入n和x:";cin>>n>>x;y=hermite(x,n);cout<<"y="<return0;}//6.分别设计两个函数,一个实现整数的正序输出,另一个则实现反序输出。如输人一个整数3456,则输出3456和6543。#includeusingnamespacestd;voidfun1(intn){if(n==0)return;elsefun1(n/10);cout<}voidfun2(intn){if(n==0)return;else{cout<fun2(n/10);}}intmain(){intn;cout<<"请输入n:";cin>>n;fun1(n);cout<fun2(n);cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
//4.用函数实现求两正整数的最大公约数的功能,并在主函数中调用该函数求出两正整数的最小公倍数。
intgys(inta,intb)
for(inti=a;i>=1;i--)
if(a%i==0&&b%i==0)
returni;
inta,b,t;
cout<<"请输入两个正整数:
cin>>a>>b;
t=gys(a,b);
cout<"<<(a*b/t)<return0;}//5.用递归函数实现Hermite多项式求值。当x>1时,Hermite多项式定义为输入实数x和整数n后,求出Hermite多项式前n项的值#includeusingnamespacestd;doublehermite(doublex,intn){doubley;if(n==0)y=1;elseif(n==1)y=2*x;elsey=2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2);returny;}intmain(){doublex,y;intn;cout<<"请输入n和x:";cin>>n>>x;y=hermite(x,n);cout<<"y="<return0;}//6.分别设计两个函数,一个实现整数的正序输出,另一个则实现反序输出。如输人一个整数3456,则输出3456和6543。#includeusingnamespacestd;voidfun1(intn){if(n==0)return;elsefun1(n/10);cout<}voidfun2(intn){if(n==0)return;else{cout<fun2(n/10);}}intmain(){intn;cout<<"请输入n:";cin>>n;fun1(n);cout<fun2(n);cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
"<<(a*b/t)<return0;}//5.用递归函数实现Hermite多项式求值。当x>1时,Hermite多项式定义为输入实数x和整数n后,求出Hermite多项式前n项的值#includeusingnamespacestd;doublehermite(doublex,intn){doubley;if(n==0)y=1;elseif(n==1)y=2*x;elsey=2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2);returny;}intmain(){doublex,y;intn;cout<<"请输入n和x:";cin>>n>>x;y=hermite(x,n);cout<<"y="<return0;}//6.分别设计两个函数,一个实现整数的正序输出,另一个则实现反序输出。如输人一个整数3456,则输出3456和6543。#includeusingnamespacestd;voidfun1(intn){if(n==0)return;elsefun1(n/10);cout<}voidfun2(intn){if(n==0)return;else{cout<fun2(n/10);}}intmain(){intn;cout<<"请输入n:";cin>>n;fun1(n);cout<fun2(n);cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
//5.用递归函数实现Hermite多项式求值。
当x>1时,Hermite多项式定义为输入实数x和整数n后,求出Hermite多项式前n项的值
doublehermite(doublex,intn)
doubley;
if(n==0)
y=1;
elseif(n==1)
y=2*x;
y=2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2);
returny;
doublex,y;
cout<<"请输入n和x:
cin>>n>>x;
y=hermite(x,n);
cout<<"y="<return0;}//6.分别设计两个函数,一个实现整数的正序输出,另一个则实现反序输出。如输人一个整数3456,则输出3456和6543。#includeusingnamespacestd;voidfun1(intn){if(n==0)return;elsefun1(n/10);cout<}voidfun2(intn){if(n==0)return;else{cout<fun2(n/10);}}intmain(){intn;cout<<"请输入n:";cin>>n;fun1(n);cout<fun2(n);cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
//6.分别设计两个函数,一个实现整数的正序输出,另一个则实现反序输出。
如输人一个整数3456,则输出3456和6543。
voidfun1(intn)
return;
fun1(n/10);
cout<}voidfun2(intn){if(n==0)return;else{cout<fun2(n/10);}}intmain(){intn;cout<<"请输入n:";cin>>n;fun1(n);cout<fun2(n);cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
voidfun2(intn)
cout<fun2(n/10);}}intmain(){intn;cout<<"请输入n:";cin>>n;fun1(n);cout<fun2(n);cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
fun2(n/10);
fun1(n);
cout<fun2(n);cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
fun2(n);
cout<return0;}练习题(5)一、选择题1.D2.C3.D4.C5.B6.B7.B8.C二、填空题(1)cb(2)3(3)9(4)3三、编程题//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。a,b,c从键盘输入。#includeusingnamespacestd;#definemax(a,b,c)(a>b?a:b)>c?(a>b?a:b):cintmain(){inta,b,c;intmaxnumber;cout<<"请输入三个数:";cin>>a>>b>>c;maxnumber=max(a,b,c);cout<<"最大数为:"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
练习题(5)
1.D2.C3.D4.C5.B6.B7.B8.C
(1)cb
(2)3(3)9(4)3
//1.编写一个宏MAX(a,b,c),求a,b,c中的最大值。
a,b,c从键盘输入。
#definemax(a,b,c)(a>b?
b)>c?
(a>b?
b):
c
intmaxnumber;
cout<<"请输入三个数:
maxnumber=max(a,b,c);
cout<<"最大数为:
"<return0;}//2.已知三角形的三条边a,b,c,则三角形的面积为#include#includeusingnamespacestd;#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)intmain(){doublea,b,c;doubless;cout<<"请输入三角形的三边:";cin>>a>>b>>c;ss=area(a,b,c);ss=sqrt(ss);cout<<"三角形的面积为:"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
//2.已知三角形的三条边a,b,c,则三角形的面积为
#defines(a,b,c)((a+b+c)/2)
#definearea(a,b,c)s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)
doublea,b,c;
doubless;
cout<<"请输入三角形的三边:
ss=area(a,b,c);
ss=sqrt(ss);
cout<<"三角形的面积为:
"<return0;}练习题(6)一、选择题1.C2.C3.A4.D5.B6.B7.D8.B(D未有'\0'结束)9.A10.D11.D12.B二、填空题(1).182215(2)3040(3)123//456(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101三、完善程序1.答案:n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
练习题(6)
1.C2.C3.A4.D5.B6.B7.D
8.B(D未有'\0'结束)9.A10.D11.D12.B
(1).182215
(2)3040(3)123//456
(4)321678(5)3,6,9,(6)GDABC(7)62(8)13001101
三、完善程序
1.答案:
n/10i2.答案:!(n%i)或n%i==0m*10+n%10p(convert(i))3.答案:a>0(或a)r<10i-1四、编程题//1.求一个4×4矩阵两对角线元素之和。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
2.答案:
!
(n%i)或n%i==0m*10+n%10p(convert(i))
3.答案:
a>0(或a)r<10i-1
四、编程题
//1.求一个4×4矩阵两对角线元素之和。
inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
inti,j,s=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
cout<cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
cout<}for(i=0;i<4;i++)s=s+a[i][i]+a[i][3-i];cout<<"s="<return0;}//2.输出以下的杨辉三角形(要求输出8行)#includeusingnamespacestd;intmain(){inta[10][10];inti,j;for(i=0;i<8;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<8;i++)for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<8;i++){for(j=0;j<=i;j++)cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
s=s+a[i][i]+a[i][3-i];
//2.输出以下的杨辉三角形(要求输出8行)
inta[10][10];
inti,j;
for(i=0;i<8;i++)
a[i][0]=1;
a[i][i]=1;
for(i=2;i<8;i++)
for(j=1;j
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(j=0;j<=i;j++)
cout<cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
cout<}return0;}//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#includeusingnamespacestd;intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};inti,j,k,mini,maxj,flag=0,max;for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=1;j<4;j++){if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
//3.找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。
也可能没有鞍点。
inti,j,k,mini,maxj,flag=0,max;
max=a[i][0];
maxj=0;
for(j=1;j<4;j++)
if(max{max=a[i][j];maxj=j;}}mini=i;for(k=0;k<4;k++){if(max>a[k][maxj]){max=a[k][maxj];mini=k;}}if(mini==i){flag=1;cout<<"鞍点是:"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
max=a[i][j];
maxj=j;
mini=i;
for(k=0;k<4;k++)
if(max>a[k][maxj])
max=a[k][maxj];
mini=k;
if(mini==i)
{flag=1;
cout<<"鞍点是:
"<<"a["<break;}}if(flag==0)cout<<"没有鞍点!"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
if(flag==0)
cout<<"没有鞍点!
"<return0;}//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。#include#includeusingnamespacestd;intmain(){charstr[80];inti,j;cout<<"请输入一行带空格的字符串:";cin.getline(str,80);i=0;while(str[i]){if(str[i]==''){j=i;while(str[j]){str[j]=str[j+1];j++;}i--;}i++;}cout<<"删除空格的字符串为:";cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
//4.从键盘输入一个字符串,删除字符串中的所有空格后输出。
charstr[80];
cout<<"请输入一行带空格的字符串:
cin.getline(str,80);
i=0;
while(str[i])
if(str[i]=='')
j=i;
while(str[j])
str[j]=str[j+1];
j++;
i--;
i++;
cout<<"删除空格的字符串为:
cout<return0;}//5.从键盘将一个字符串输入到字符数组中,按反序存放。如,输入"Abcde",则输出"edcbA"。#include#includeusingnamespacestd;intmain(){charstr[80],ch;inti,j;cout<<"请输入一行字符串:";cin.getline(str,80);intn=strlen(str)-1;for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
//5.从键盘将一个字符串输入到字符数组中,按反序存放。
如,输入"Abcde",则输出"edcbA"。
charstr[80],ch;
cout<<"请输入一行字符串:
intn=strlen(str)-1;
for(i=0,j=n;i{ch=str[i];str[i]=str[j];str[j]=ch;}cout<<"反序的字符串为:"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
ch=str[i];
str[i]=str[j];
str[j]=ch;
cout<<"反序的字符串为:
"<return0;}//6.编写一个函数把一个10进制数转换成16进制数。#include#includeusingnamespacestd;voidchange(intn,charstr[]){inti=0,j;intx;charch;while(n){x=n%16;if(x<10)str[i]=x+'0';elsestr[i]=x-10+'A';n=n/16;i++;}str[i]='\0';for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
//6.编写一个函数把一个10进制数转换成16进制数。
voidchange(intn,charstr[])
inti=0,j;
intx;
charch;
while(n)
x=n%16;
if(x<10)
str[i]=x+'0';
str[i]=x-10+'A';
n=n/16;
str[i]='\0';
for(i=0,j=strlen(str)-1;i{ch=str[i];str[i]=str[j];str[j]=ch;}}intmain(){intn;charstr[80];cout<<"请输入一个十进制整数:";cin>>n;change(n,str);cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
cout<<"请输入一个十进制整数:
change(n,str);
cout<"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
"<return0;}//7.编写一个函数:voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。(要求不使用C++的库函数strcpy())。#includeusingnamespacestd;voidstrcpy(chara[],charb[]){inti=0,j=0;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入一个字符串:";cin.getline(b,80);strcpy(a,b);cout<<"字符串b为:"<cout<<"字符串a为:"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
//7.编写一个函数:
voidstrcpy(chara[],charb[]);将b中的字符串拷贝到数组a中。
(要求不使用C++的库函数strcpy())。
voidstrcpy(chara[],charb[])
inti=0,j=0;
while(a[i++]=b[j++]);
chara[80],b[80];
cout<<"请输入一个字符串:
cin.getline(b,80);
strcpy(a,b);
cout<<"字符串b为:
cout<<"字符串a为:
"<return0;}//8.编写一个函数:voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。(要求不使用C++的库函数strcat())。#includeusingnamespacestd;strcat(chara[],charb[]){inti=0,j=0;while(a[i])i++;while(a[i++]=b[j++]);}intmain(){chara[80],b[80];cout<<"请输入两个字符串:";cin.getline(a,80);cin.getline(b,80);cout<<"字符串a为:"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
//8.编写一个函数:
voidstrcat(chara[],charb[]);将b中的字符串拼接到数组a中的字符串的后面,构成一个字符串。
(要求不使用C++的库函数strcat())。
strcat(chara[],charb[])
while(a[i])
cout<<"请输入两个字符串:
cin.getline(a,80);
"<cout<<"字符串b为:"<strcat(a,b);cout<<"字符串a+b为:"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
strcat(a,b);
cout<<"字符串a+b为:
"<return0;}//9.用筛选取法求出2~200之间的所有素数。#includeusingnamespacestd;intmain(){inti,j,k;inta[1000];for(i=2;i<=200;i++)
//9.用筛选取法求出2~200之间的所有素数。
inti,j,k;
inta[1000];
for(i=2;i<=200;i++)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1