ImageVerifierCode 换一换
格式:DOCX , 页数:104 ,大小:45.35KB ,
资源ID:30473925      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30473925.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(皮德常c全套答案图文稿.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

皮德常c全套答案图文稿.docx

1、皮德常c全套答案图文稿 文件管理序列号:K8UY-K9IO69-O6M243-OL889-F88688皮德常c全套答案第2章习题2-5、计算一个人一段时期的薪水,第1天1分钱,第2天2分钱,每天翻倍。要求用户输入天数(输入检验),列表显示每天的薪水,及薪水总和(输出人民币的单位:“元”)。#includeusing namespace std;void main() int daynum; float daypay, paysum=0; do cout1整数): ; cindaynum; while(daynum=1); /有效性检验 for(int i=1; i=daynum; i+) da

2、ypay=i/100.0; cout第i天薪水:daypay 元t; if(i%2=0) coutendl; paysum+=daypay; /列表输出每天薪水,计算总薪水 coutendl; cout薪水总和:paysum元; /输出总薪水2-7、用for循环计算1/302/29+3/28+30/1。#includeusing namespace std;void main() int i; float sum=0; for(i=1;i=30;i+) sum+=i/float(31-i); coutsum=sum;2-8、用循环语句输出如下图形。AAAAAAA AAAAA AAA A AAA

3、 AAAAAAAAAAAA#includeusing namespace std;void main() int i,j,k; for(i=0;i=3;i+) /控制行 for(j=0;ji;j+) couti;k-) /控制每行输出的A的数目 coutA; coutendl; for(i=1;ii;j-) cout ; /控制每行输出的 的数目 for(k=0;k2*i+1;k+) /控制每行输出的A的数目 coutA; coutendl; 2-9、采用循环结构计算公式s的前30项和。s=2/1+3/2+5/3+#includeusing namespace std;#define N 30

4、void main( ) int i; float a1,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; /为下一次求和做准备 coutnsum is : sum;2-10、求sum=a+aa+aaa,a和n由键盘输入。#includeusing namespace std;void main() int i,a,n; long sum,temp; sum=temp=0; coutan; for(i=1;i=n;i+) temp=a+temp*10

5、; sum+=temp; coutthe result is : sum;2-11、输入一行字符,以回车结束,分别统计其中出现的大写英文字母、小写英文字母、数字字符、空格和其他字符出现的次数。#includeusing namespace std;void main() char c; int lletters=0,uletters=0,spaces=0,digits=0,others=0; cout=a&c=A&c=0&c=9) digits+; else others+; coutthe number of lower case letters: llettersendl; coutthe

6、 number of upper case letters: ulettersendl; coutthe number of digits: digitsendl; coutthe number of spaces: spacesendl; coutthe number of others: others;第3章习题:3-1、编写求阶乘及组合的函数,在主函数调用求组合的函数。#includeusing namespace std;long fac(int n) long fac=1; for(int i=2;i=n;i+) fac*=i; return fac;long comb(int n,

7、 int k) return fac(n)/(fac(k)*fac(n-k);void main() int n,k; coutnk; coutthe combination number of n and k: comb(n,k);3-2、编写函数计算ex的近似值,在主函数中输入x及精度10-9(要求最后一项小于10-9)。#include#includeusing namespace std;double ex(double x,double eps) int i=1; double e=1,t=1; while(fabs(t)eps) t=t*x/i; e=e+t; i+; return

8、(e); void main() double x,eps; coutxeps; coute*x:nex(x,eps);3-3、编写被调函数,求出1000以内 素数,在主函数中调用函数并输出素数,每行输出5个素数。#include#include#includeusing namespace std;void PrimeNum(int n=1000) int i, j, k, flg=1, num=0; for(i=2;in;i+) k=sqrt(i); for(j=2;j=k;j+) if(i%j=0) flg=0; if(flg=1) coutsetw(5)i; num+; if(num%

9、5=0) coutendl; flg=1; void main( ) PrimeNum();3-4、输出1000以内的所有完数。#include#includeusing namespace std;void print(int n) /输出因子 int i; for(i=1;i=n/2;i+) if(n%i=0) coutsetw(5)i; coutendl;void wanshu(int n) int i; int a,s=0; a=n/2; for(i=1;i=a;i+) if(n%i=0) s+=i; if(s=n) coutn its factors are: ; print(n);

10、 void main( ) int i; for(i=1;i=1000;i+) wanshu(i);3-5、编写函数(递归和非递归)求两个整数的最大公约数和最小公倍数。#includeusing namespace std;int gcd(int x,int y) int r; r=x%y; while (r!=0) x=y; y=r; r=x%y; return(y);/int gcd(int a, int b)/ if(a%b=0) / return b; /else / return gcd(b, a%b);/int gbs(int x,int y) int bs,ys; ys=gcd(

11、x,y); bs=x*y/ys; return bs;void main() int x,y,g,bs; coutxy; g=gcd(x,y); bs=gbs(x,y); coutthe gcd: gendl; coutthe gbs: bs;3-6、递归函数反序输出数位。#includeusing namespace std;void rev(int x) /*反向输出*/ if(x0) coutx%10; rev(x/10); void main( ) int x; coutx; coutreverse:; if(x0) cout-; x=-x; rev(x); 3-8、递归函数实现十进制

12、到二进制转换。#includeusing namespace std;void fun(int i) if(i 1) fun(i/2); couti%2; void main() int n; coutn; coutthe binary number: ; fun(n); 3-9、编写函数输出图形。(略)3-10、编写min函数模板和max函数模板。#include using namespace std;template T min(T &var1,T &var2) if(var1var2) return(var1); else return(var2);template T max(T &

13、var1,T &var2) if(var1var2) return(var2); else return(var1);void main(void) int userInt1,userInt2; float userFloat1,userFloat2; char userChar1,userChar2; coutuserInt1userInt2; coutthe min is: min(userInt1,userInt2)endl; coutthe max is: max(userInt1,userInt2)endl; coutuserFloat1userFloat2; coutthe min

14、 is: min(userFloat1,userFloat2)endl; coutthe max is: max(userFloat1,userFloat2)endl; coutuserChar1userChar2; coutthe min is: min(userChar1,userChar2)endl; coutthe max is: max(userChar1,userChar2)endl;3-11、绝对值函数模板。#include using namespace std;template T Abs(const T var) if(var0) return(-var); else re

15、turn(var);void main(void) /测试整型量求绝对值 int test1=12,test2=-34; cout测试整型量:endl; couttest1=test1ttest1的绝对值为:Abs(test1)endl; couttest2=test2ttest2的绝对值为:Abs(test2)endl; /测试浮点型量求绝对值 float test3=12.67f,test4=-34.43f; cout测试浮点型量:endl; couttest3=test3ttest3的绝对值为:Abs(test3)endl; couttest4=test4ttest4的绝对值为:Abs(

16、test4)endl;第4章习题:4-1、编程实现由用户输入10个数据到数组,输出数组中的最大值和最小值及其相应的下标。#include using namespace std;#define N 10void main() int i,arrayN,max,maxid,min,minid; for(i=0;iarrayi; max=min=array0; maxid=minid=0; for(i=1;imax) max=arrayi; maxid=i; if(arrayimin) min=arrayi; minid=i; coutthe max of the array is maxendl

17、; coutthe index of the max is maxidendl; coutthe min of the array is minendl; coutthe index of the min is minidendl;4-2、编写函数实现将字符串中每个单词的首字母大写。#include using namespace std;void Words( char str ) int i; char ch= ; / 存放前一字符 for (i=0; stri!=0; i+ ) if ( ch = & stri != ) / 单词数首字母 if(stri=a&stri=z) stri-=

18、32; ch = stri; void main() char str100; coutPlease input a string:; cin.getline(str,100); Words(str); coutstr;4-4、编程实现线性查找账号,账号由用户输入,若找到,则输出合法信息,否则输出非法信息。#includeusing namespace std;#define arrSize 5int searchList(int list , int numElems, int value) for(int i=0; i numElems; i+ ) if( value = listi )

19、return i; return -1;void main ( ) int testsarrSize = 5658845, 4562555, 3852085, 4520125, 5552012; int result, x; coutx; result = searchList(tests, arrSize, x); if ( result = -1 ) cout x 为非法账号。 endl; else cout x 为合法账号。;4-5、采用二分查找实现上述程序。#include #include using namespace std;#define arrSize 5void selec

20、tionSort(int a , int n) / 选择排序 int i, j, t, minIndex; for(i=0; in-1; i+) minIndex=i; for(j=i+1; jn; j+) if(ajaminIndex) minIndex=j; if( minIndex != i ) t=aminIndex; aminIndex=ai; ai=t; /二分查找函数,在a数组中查找valueint binarySearch(int a , int numElems, int value) int low=0, mid, hight=numElems-1; while (low=

21、hight) mid=(low+hight)/2; if( value = amid ) / 查找成功 return mid; else if( value amid ) /位于数组的前一半 hight=mid-1; else low=mid+1; /位于数组的后一半 return -1;void main ( ) int testsarrSize = 5658845, 4562555, 3852085, 4520125, 5552012; int result, x; coutx; selectionSort(tests,arrSize); result=binarySearch(tests

22、,arrSize, x); if ( result = -1 ) cout x 为非法账号。 endl; else cout x 为合法账号。;4-6、 寻找二维数组中的鞍点(该位置的元素是该行上的最大元素,同时是该列上的最小元素)。#include #include using namespace std;#define M 3#define N 4 int q1=0, q2=0; /鞍点位置下标int andian(int aMN, int p1, int p2) int i, j, k, m, f, w, max; w=0; for(i=0; ip1; i+) k=0; max=ai0;

23、 for(j=0; jmax) k=j; max=aij; /第i行第k列为第i行的最大元素 for(m=0, f=1; mp1&f; m+) if(amkmax) f=0; /第i行第k列不是鞍点 if(f) w=1; q1=i; q2=k; return w; void main( ) int aMN=1, 2, 3, 4, 4, 5, 3, 6, 3, 5, 6, 7; /*2,4,10,6,3,4,5,8,9,1,2,3;*/ int w; w=andian(a,M,N); if(w) cout该二维数组存在鞍点:aq1q2endl; cout其行标为:q1t列标为:q2; else cout该二维数组没有鞍点。;4-7、编写函数求一个44二维数组中周边元素的和。#include using namespace std;int arrSum(int arr4) int i,j,sum=0; for(i=0;i4;i+) sum+=arri0; sum+=arri3; for(j=0;j4;j+)

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

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