皮德常c++全套答案.docx

上传人:b****8 文档编号:11188005 上传时间:2023-02-25 格式:DOCX 页数:9 大小:19.45KB
下载 相关 举报
皮德常c++全套答案.docx_第1页
第1页 / 共9页
皮德常c++全套答案.docx_第2页
第2页 / 共9页
皮德常c++全套答案.docx_第3页
第3页 / 共9页
皮德常c++全套答案.docx_第4页
第4页 / 共9页
皮德常c++全套答案.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

皮德常c++全套答案.docx

《皮德常c++全套答案.docx》由会员分享,可在线阅读,更多相关《皮德常c++全套答案.docx(9页珍藏版)》请在冰豆网上搜索。

皮德常c++全套答案.docx

皮德常c++全套答案

皮德常c++全套答案

5、计算一个人一段时期的薪水,第1天1分钱,第2天2分钱,每天翻倍。

要求用户输入天数(输入检验),列表显示每天的薪水,及薪水总和(输出人民币的单位:

“元”)。

#includeusingnamespacestd;voidmain(){intdaynum;floatdaypay,paysum=0;do{cout<<"请输入天数(>1整数):

";cin>>daynum;}while(daynum<=1);//有效性检验for(inti=1;i<=daynum;i++){daypay=i/

100、0;cout<<"第"<

"<

"<

7、用for循环计算1/30+2/29+3/28+…+30/1。

#includeusingnamespacestd;voidmain(){inti;floatsum=0;for(i=1;i<=30;i++)sum+=i/float(31-i);cout<<"sum="<

8、用循环语句输出如下图形。

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA#includeusingnamespacestd;voidmain(){inti,j,k;for(i=0;i<=3;i++)//控制行{for(j=0;ji;k--)//控制每行输出的'A'的数目cout<<'A';cout<i;j--)cout<<'';//控制每行输出的''的数目for(k=0;k<2*i+1;k++)//控制每行输出的'A'的数目cout<<'A';cout<

9、采用循环结构计算公式s的前30项和。

s=2/1+3/2+5/3+…#includeusingnamespacestd;#defineN30voidmain(){inti;floata1,a2,sum=0,temp;//a1分子,a2分母for(a1=2,a2=1,sum=0,i=1;i<=N;i++){sum+=a1/a2;temp=a1;a1=a1+a2;a2=temp;//为下一次求和做准备}cout<<"\nsumis:

"<

10、求sum=a+aa+…+aa…a,a和n由键盘输入。

#includeusingnamespacestd;voidmain(){inti,a,n;longsum,temp;sum=temp=0;cout<<"\nEnteraandn:

";cin>>a>>n;for(i=1;i<=n;i++){temp=a+temp*10;sum+=temp;}cout<<"theresultis:

"<

11、输入一行字符,以回车结束,分别统计其中出现的大写英文字母、小写英文字母、数字字符、空格和其他字符出现的次数。

#includeusingnamespacestd;voidmain(){charc;intlletters=0,uletters=0,spaces=0,digits=0,others=0;cout<<"Pleaseenterthecharacters:

\n";while((c=cin、get())!

='\n'){if(c>='a'&&c<='z')lletters++;elseif(c>='A'&&c<='Z')

uletters++;elseif(c=='')

spaces++;elseif(c>='0'&&c<='9')

digits++;elseothers++;}cout<<"thenumberoflowercaseletters:

"<

"<

"<

"<

"<

3-

1、编写求阶乘及组合的函数,在主函数调用求组合的函数。

#includeusingnamespacestd;longfac(intn){longfac=1;for(inti=2;i<=n;i++)fac*=i;returnfac;}longcomb(intn,intk){returnfac(n)/(fac(k)*fac(n-k));}voidmain(){intn,k;cout<<"Pleaseinputthenandthek:

";cin>>n>>k;cout<<"thecombinationnumberofnandk:

"<

2、编写函数计算ex的近似值,在主函数中输入x及精度10-9(要求最后一项小于10-9)。

#include#includeusingnamespacestd;doubleex(doublex,doubleeps)

{inti=1;doublee=1,t=1;while(fabs(t)>eps)

{t=t*x/i;e=e+t;i++;}return(e);}voidmain(){doublex,eps;cout<<"Pleaseinoutxandeps:

\n";cin>>x>>eps;cout<<"e**x:

\n"<

3、编写被调函数,求出1000以内素数,在主函数中调用函数并输出素数,每行输出5个素数。

#include#include#includeusingnamespacestd;voidPrimeNum(intn=1000){inti,j,k,flg=1,num=0;for(i=2;i

if(i%j==0)

flg=0;if(flg==1){cout<

4、输出1000以内的所有完数。

#include#includeusingnamespacestd;voidprint(intn)//输出因子{inti;for(i=1;i<=n/2;i++)if(n%i==0)

cout<

s+=i;if(s==n){cout<

";print(n);}}voidmain(){inti;for(i=1;i<=1000;i++)wanshu(i);}3-

5、编写函数(递归和非递归)求两个整数的最大公约数和最小公倍数。

#includeusingnamespacestd;intgcd(intx,inty){intr;r=x%y;while(r!

=0){x=y;y=r;r=x%y;}return(y);}//intgcd(inta,intb)//{if(a%b==0)

//returnb;//else//returngcd(b,a%b);//}intgbs(intx,inty){intbs,ys;ys=gcd(x,y);bs=x*y/ys;returnbs;}voidmain(){intx,y,g,bs;cout<<"Entertwonumber:

\n";cin>>x>>y;g=gcd(x,y);bs=gbs(x,y);cout<<"thegcd:

"<

"<

6、递归函数反序输出数位。

#includeusingnamespacestd;voidrev(intx)

/*反向输出*/{if(x>0){cout<

\n";cin>>x;cout<<"reverse:

";if(x<0)

{cout<<"-";x=-x;}rev(x);}3-

8、递归函数实现进制到二进制转换。

#includeusingnamespacestd;voidfun(inti)

{if(i>1)

fun(i/2);cout<

{intn;cout<<"Pleaseinputthedecimalnumber:

";cin>>n;cout<<"thebinarynumber:

";fun(n);}3-

9、编写函数输出图形。

(略)3-

10、编写min函数模板和max函数模板。

#includeusingnamespacestd;templateTmin(T&var1,T&var2){if(var1

return(var1);elsereturn(var2);}templateTmax(T&var1,T&var2){if(var1

return(var2);elsereturn(var1);}voidmain(void){intuserInt1,userInt2;floatuserFloat1,userFloat2;charuserChar1,userChar2;cout<<"Pleaseinputtwointegarnumbers:

";cin>>userInt1>>userInt2;cout<<"theminis:

"<

"<

";cin>>userFloat1>>userFloat2;cout<<"theminis:

"<

"<

";cin>>userChar1>>userChar2;cout<<"theminis:

"<

"<

11、绝对值函数模板。

#includeusingnamespacestd;templateTAbs(constTvar){if(var<0)

return(-var);elsereturn(var);}voidmain(void){//测试整型量求绝对值inttest1=12,test2=-34;cout<<"测试整型量:

"<

"<

"<

12、67f,test4=-

34、43f;cout<<"测试浮点型量:

"<

"<

"<

4-

1、编程实现由用户输入10个数据到数组,输出数组中的最大值和最小值及其相应的下标。

#includeusingnamespacestd;#defineN10voidmain(){inti,array[N],max,maxid,min,minid;for(i=0;i>array[i];max=min=array[0];maxid=minid=0;for(i=1;imax){max=array[i];maxid=i;}if(array[i]

2、编写函数实现将字符串中每个单词的首字母大写。

#includeusingnamespacestd;voidWords(charstr[]){inti;charch='';//存放前一字符for(i=0;str[i]!

='\0';i++){if(ch==''&&str[i]!

='')

//单词数首字母{if(str[i]>='a'&&str[i]<='z')str[i]-=32;}ch=str[i];}}voidmain(){charstr[100];cout<<"Pleaseinputastring:

";cin、getline(str,100);Words(str);cout<

4、编程实现线性查找账号,账号由用户输入,若找到,则输出合法信息,否则输出非法信息。

#includeusingnamespacestd;#definearrSize5intsearchList(intlist[],intnumElems,intvalue){for(inti=0;i

returni;return1)cout<

"<

";}4-

5、采用二分查找实现上述程序。

#include#includeusingnamespacestd;#definearrSize5voidselectionSort(inta[],intn)//选择排序{inti,j,t,minIndex;for(i=0;i

minIndex=j;if(minIndex!

=i){t=a[minIndex];a[minIndex]=a[i];a[i]=t;}}}//二分查找函数,在a数组中查找valueintbinarySearch(inta[],intnumElems,intvalue){intlow=0,mid,hight=numElems-1;while(low<=hight){mid=(low+hight)/2;if(value==a[mid])

//查找成功returnmid;elseif(value

//位于数组的前一半hight=mid-1;elselow=mid+1;//位于数组的后一半}return1)cout<

"<

";}4-

6、寻找二维数组中的鞍点(该位置的元素是该行上的最大元素,同时是该列上的最小元素)。

#include#includeusingnamespacestd;#defineM3#defineN4intq1=0,q2=0;//鞍点位置下标intandian(inta[M][N],intp1,intp2){inti,j,k,m,f,w,max;w=0;for(i=0;imax){k=j;max=a[i][j];}//第i行第k列为第i行的最大元素for(m=0,f=1;m

f=0;//第i行第k列不是鞍点if(f)

{w=1;q1=i;q2=k;}}returnw;}voidmain(){inta[M][N]={1,2,3,4,4,5,3,6,3,5,6,7};/*{2,4,10,6,3,4,5,8,9,1,2,3};*/intw;w=andian(a,M,N);if(w)

{cout<<"该二维数组存在鞍点:

"<

"<

"<

";}4-

7、编写函数求一个4×4二维数组中周边元素的和。

#includeusingnamespacestd;intarrSum(intarr[][4]){inti,j,sum=0;for(i=0;i<4;i++){sum+=arr[i][0];sum+=arr[i][3];}for(j=0;j<4;j++){sum+=arr[0][j];sum+=arr[3][j];}sum-=arr[0][0]+arr[3][0]+arr[0][3]+arr[3][3];returnsum;}voidmain(){inta[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};cout<<"该二维数组的周边元素之和为:

"<

8、编写函数求二维数组两条对角线元素之和。

#includeusingnamespacestd;#defineN4intsum(inta[][N]){inti,s=0;for(i=0;i

\n";for(i=0;i

";cin>>a[i][j];}cout<<"两条对角线元素之和:

"<

9、见例题。

4-

10、合并数组,合并前后的数组元素均按升序排列。

#include#includeusingnamespacestd;intmerge(inta[],intb[],intc[],intm,intn){inti=0,j=0,k=0;while(i

c[k++]=b[j++];returnk;}voidmain(){inta[]={1,4,7,9},b[]={3,5,7,8,12},c[20],i,k;k=merge(a,b,c,4,5);cout<<"arraya:

\n";for(i=0;i<4;i++)cout<

\n";for(i=0;i<5;i++)cout<

\n";for(i=0;i

5-

1、同4-2,形参换成指针即可。

5-

3、求一组整数的中值。

#include#includeusingnamespacestd;voidselectionSort(int*a,intn)//选择排序{inti,j,t,minIndex;for(i=0;i

minIndex=j;if(minIndex!

=i){t=a[minIndex];a[minIndex]=a[i];a[i]=t;}}}intmean(int*a,intn){intmean,tmp;selectionSort(a,n);tmp=n/2;if(n%2==0)mean=a[tmp]+a[tmp-1];elsemean=a[tmp];returnmean;}voidmain(){inta[100],num,i;cout<<"输入整数个数(<100):

";cin>>num;cout<<"输入"<

\n";for(i=0;i>a[i];cout<<"这组整数的中值是:

"<

4、编写一个程序求一组正整数的模。

在统计学中,模代表一组值中出现最频繁的数,编写一个函数接受如下两个参数。

1)整型数组。

2)代表该数组元素个数的一个整数。

该函数应当返回这组数的模,即返回该数组中出现最频繁的那个数。

如果数组中没有模,即没有最频繁的数,那么就返回-1。

#include#include#include#includeusingnamespacestd;constin

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

当前位置:首页 > 初中教育 > 语文

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

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