




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题一 (p12)1-4 # include void main( ) cout ”c+语言程序设计”endl; 1-5 # include void main() int i,j,k;cout ijk;cout endli”+”j”+”k”=”i+j+kendl; 习题二 (p47)2-5 / p50 习题2-5 # include # include void main() double a,r; cout endla; r=1.0/2*a*sqrt(10+2*sqrt(5)/5); cout endl正五边形外接圆的半径:rendl;2-6 / p50 习题2-6# include # include void main()double a,b,c,area,s;cout endlabc;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c); cout endl三角形的面积:areaendl;2-7 / p50 习题2-7# include # include void main()double x1,y1,z1,x2,y2,z2,d;cout endlx1y1z1;cout endlx2y2z2;d=sqrt(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1); cout endl两点间的距离:dendl;习题三 (p82)3-3 / p84 习题3-3# include void main()int weekday;cout endlweekday;if (weekday=0)cout sundayendl;else if (weekday=1)cout mondayendl;else if (weekday=2)cout tuesdayendl;else if (weekday=3)cout wednesdayendl;else if (weekday=4)cout thursdayendl;else if (weekday=5)cout fridayendl;else if (weekday=6)cout saturdayendl;else cout 表示星期几的数必须在0-6之间!endl;3-4 / p84 习题3-4# include void main()int a,b,c,d,max;cout abcd;max=a;if (maxb) max=b;if (maxc) max=c;if (maxd) max=d;cout endl;cout 最大的数是:maxendl;3-5 / p84 习题3-5# include void main()int a,b,c,d,temp;cout abcd;cout 排序前:a b c db) temp=a; a=b; b=temp;if (ac) temp=a; a=c; c=temp;if (ad) temp=a; a=d; d=temp;/ 求第二小数存入bif (bc) temp=b; b=c; c=temp;if (bd) temp=b; b=d; d=temp;/ 求第三小的数存入cif (cd) temp=c; c=d; d=temp;cout 排序后:a b c dendl;3-6 / p84 习题3-6# include void main()cout endl |; / 以下3行显示顶部表栏 int i=1;while (i10)cout setw(3)i;i+;cout endl-+-;i=1;while (i10) / 乘数从1 循环到9cout endlsetw(2)i|;int j=1;while (j10) cout setw(3)i*j; / 被乘数从1 循环到9 j+;i+; coutendlendl;3-7 / p84 习题3-7# include void main()int a=1,b=2; double s=0,p;for (int i=1; i=20; i+)p=(double)b/a;s+=p;b+=a; / 产生分子a=b-a; / 产生分母cout 2/1+3/2+5/3+8/5+.=sendl;3-8 / p84 习题3-8# include # define n 15void main()int n; long double s=0.0l,fact=1.0l;for (n=1; n=n; n+) fact*=n; / 计算n! s+=fact;cout 1!+2!+.+n!=sendl;3-9 / p84 习题3-9 / 方法一# include void main()int n1=1,n2=1,n=n1+n2,couter=2; / n1,n2相邻二项的/分母,cout统计项数 double s=2.0,s0;while (s0=1.0/n)=0.000001)s+=s0;n1=n2;n2=n;n=n1+n2;couter+; coutendlendl; cout 累加和:sendl; cout 累加项数:couterendl;/ 方法二# include void main()int n=2,d=1,k=2; / k统计项数 double s=2.0,s0;while (s0=1.0/n)=0.000001)s+=s0;n+=d;d=n-d;k+; coutendlendl; cout 累加和:sendl; cout 累加项数:kendl;3-10 / p84 习题3-10# include void main()for (int i=1; i=6; i+)cout endl;int j;for (j=1; ji; j+) cout ;for (j=1; j=13-i-i; j+) cout *;cout endlendl;3-11 / p81 习题3-11# include void main() cout setw(6)*; / 输出顶* for (int i=0; i4; i+)cout endl;int j;for (j=0; j4-i; j+) / 输出载边空格cout ;cout *; / 输出左*for (j=0; ji+i+1; j+) / 输出中间空格cout ;cout *; / 输出右*cout endl*;cout endlendl;3-12 / p81 习题3-12# include void main() int i;cout endl |; for (i=0; i=9; i+)cout setw(6)i;cout endl-+;for (i=0; i=10; i+) cout -;for (i=0; i=9; i+)cout endlsetw(5)i|;for (int j=0; j=9; j+)cout setw(6)(i*10+j)*(i*10+j);cout endlendl;3-13 / p81 习题3-13# include # include void main() double x;cout x;int i=1;double n=-x*x,d=1.0*2.0,s=1.0,s0;while (fabs(s0=n/d)=0.000001)s+=s0;i+;n*=(-x*x);d*=(i+i)*(i+i-1);cout 累加求值 cos(x)=sendl;cout 标准函数 cos(x)=cos(x)endl;cout endlendl;习题四 (p107)4-3 / p109 习题4-3 # include # define size 10void main()int asize; int temp,i,max,min;cout 输入sizea0;max=min=0; / 存放最大数和最小数的下标for (i=1; iai;if (aiamax) max=i;/ 保存当前最大数的下标if (aiamin) min=i; / 保存当前最小数的下标cout endl交换前:;for (i=0; isize; i+)cout ai ;temp=a0; a0=amax; amax=temp; / 最大数存/首元素temp=asize-1; asize-1=amin; amin=temp; / 最小数存末元素 cout endl交换后:;for (i=0; isize; i+)cout ai ;cout endlendl;4-4 / p109 习题4-4 方法一:# include void main()int a=23,25,13,68,3,44,11,7,55,36;const int size=sizeof(a)/sizeof(a0); / 数组a的元素/个数 int temp,i;cout endl处理前:;for (i=0; isize; i+)cout ai ;for (i=0; i5; i+) / 找前5大数之一int k=i,j; / k保存大数的下标for (j=5; jak) k=j; temp=ai; ai=ak; ak=temp; / 交换cout endl处理后:;for (i=0; isize; i+)cout ai ;cout endlendl;方法二:# include void main()int a=23,25,13,68,3,44,11,7,55,36;const int size=sizeof(a)/sizeof(a0); int temp,i;cout endl处理前:;for (i=0; isize; i+)cout ai ;for (i=0; i5; i+) / 用选择排序法排前5个数为大数int k=i,j; / k保存当前最大数的下标for (j=i+1; jak) k=j; temp=ai; ai=ak; ak=temp; / 交换cout endl处理后:;for (i=0; isize; i+)cout ai ;cout endlendl;4-5 / p109 习题4-5# include # define size 20void main()int asize,i; cout endl请输入size个正整数: ;for ( i=0; iai;while (ai=0);cout endl处理前: ;for (i=0; isize; i+) cout ai ;cout endl;int j=0; / j为奇数存放下标 for (i=0; isize; i+)if ( ai%2 ) / 条件成立,表示ai为奇数int temp=ai; ai=aj; aj=temp;j+; / 下一个奇数存放位置cout endl处理后: ;for (i=0; isize; i+) cout ai ;cout endlendl;4-6 / p109 习题4-6# include void main() int a=23,25,13,68,3,44,11,7,55,36;const int size=sizeof(a)/sizeof(a0); / 数组a的元素个数 int i,number; cout endlnumber;cout endlendl整数序列: ;for (i=0; isize; i+) / 显示数组元素 cout ai ;cout endlendl输入数: number的序号: ; for (i=0; isize & ai!=number; i+) ; / 查找 cout (isize)?i+1:0)endl; / 表达式中条件成立,表示找到cout endl;4-7 / p109 习题4-7# include # define size 5void main() int asizesize;int i,j,sum=0; cout endl请输入size行size列整型数组: endl;for (i=0; isize; i+)for (j=0; jaij;cout endlendlsize行size列整型矩阵: ;for (i=0; isize; i+) / 显示二维数组元素cout endl;for (j=0; jsize; j+) cout setw(4)aij;for (i=0; isize; i+)for (j=0; jsize; j+)if (i=0 | j=0 | i=size-1 | j=size-1)sum+=aij;cout endlendl矩阵四周元素的合计值: sumendlendl;4-8 / p109 习题 4-8# include # include # define size 10void main()double datasizesize;int i,j,size;cout size;if (size10)cout 行列式的阶数要求在 1-10 之间.endl;return;/ 输入行列式cout 请输入size行size列的行列式:endl;for (i=0; isize; i+)for (j=0; jdataij;/ 输出行列式cout endlendlsize行size列的行列式:endl; for (i=0; isize; i+)cout endl;for (j=0; jsize; j+)cout setw(10)dataij; cout endl;/ 调用函数grmdet()计算行列式的值double grmdet(double asize,int size); cout endlsize行size列的行列式的值为:;cout grmdet(data,size)endl;/ 计算行列式的值函数。以下函数定义参阅1982年12月第1版上海教育出版社出版/ 上海计算技术研究所编电子计算机算法手册第295页算法double grmdet(double asize,int size)int i,j,k,n;double p,t,u;double msize;for (i=0; isize; i+) u=0.0;for (j=0; ju) ) u=abs(aij);if (u1.0e-18) return 0.0;mi=u;if (u!=1)for (j=0; jsize; j+)aij/=u;p=1;for (k=0; ksize-1; k+)n=k;t=abs(akk);for (j=k+1; jsize; j+)if (tabs(akj) t=abs(akj);n=j;if (t1.0e-18) return 0.0;if (n!=k) p=-p;for (i=k; isize; i+) t=aik;aik=ain;ain=t;p*=akk;for (i=k+1; isize; i+) t=aik/akk;for (j=k+1; jsize; j+)aij-=akj*t;t=p*asize-1size-1;for (k=0; ksize; k+)t*=mk;return t;4-9 / p109 习题4-9方法一:# include # include # define size 80void main()char ssize;cout 请输入一个字符串: ;cin.getline(s,80);cout endl原字符串: sendl;char strsize; / 用str存放子串if (strstr(s,boy) / 条件成立,表示原字符串s/有子串boy strcpy(str,strstr(s,boy); / 复制子串boy到str中 int len1=strlen(s); / 原字符串s的长度 int len2=strlen(str); / 子串长度 slen1-len2=0; / 在原字符串s中截断子串 strcat(s,child); / 在s字符串中连接新子串 strcat(s,&str3); / 连接原子串boy后的字符串 cout 替换后串: sendl;elsecout 无子串boy.endlendl;方法二:# include # include void main() cout 请输入一字符串:;char s80;cin.getline(s,80); cout ”原串:”sendl;char *p=strstr(s,boy); / 取子串boy位置if (p) / 条件成立,表示存在子串boyp0=0; / 在原串中截断子串boychar c80; strcpy(c,s); / 复制原串中截断子串boy后剩下的串strcat(c,child); / 连接替换的串childstrcat(c,&p3); / 连接原子串boy后的字符串cout ”新串:”c;elsecout 无子串boy.;cout endl;4-10 / p109 习题4-10 # include # include # define size 80void main()char ssize; cout endl请输入一个字符串: ;cin.getline(s,80);cout endl加密前串: sendl;int i;for (i=1; isize ; i+=2) / 加密char temp=si;si=si-1;si-1=temp; cout 加密后串:sendl;for (i=1; isize ; i+=2) / 解密char temp=si;si=si-1;si-1=temp;cout endl解密后串: sendl;cout endlendl;习题五 (p140)5-3 / p142 习题5-3# include int f(int b,int n) / 计算b的n次方递归函数if (n=0) return 1;return b*f(b,n-1);void main() / 依题意解题时主函/数可以/不必书写,这里给出主函数只是方便 /同学们理解程序(以下相同)int x,n;cout xn;cout x的n次方是: ;cout f(x,n)endl;5-4 / p142 习题5-4# include int arraymin(int d,int size) / 求一维数组元素的最/小值的递归函数int j=size-1; / 默认有size个元素的数组d中,/下标为size-1的元素是最小元素if (size=1) return dj;if (djd0) int temp=dj;dj=d0;d0=temp; return arraymin(d,size-1);void main() / 依题意解题时主函数可以不必书写 # define size 10int datasize,i;cout 请输入size个整数存入数组中:endl;for (i=0; idatai;cout endl输入的数据是:endl;for (i=0; isize; i+)cout datai ;cout endl最小数是:arraymin(data,size)endl;5-5 / p142 习题5-5 头文件 exe5_5.hdouble distance(double,double,double,double);double arround(double ,double ,int);# define size 100/ p142 习题5-5 程序文件 exe5_5.cpp# include exe5_5.h# include double distance(double x1,double y1,double x2, double y2) / 计算两点坐标(x1,y1)和(x2,y2)的距离函数return sqrt(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1);double arround(double x,double y,int p) / 计算多边形周长的函数double s=0;for ( int j=0; jp-1; j+)s+=distance(xj,yj,xj+1,yj+1);s+=distance(xp-1,yp-1,x0,y0);return s;/ p142 习题5-5 主程序文件 exemain.cpp# include # include exe5_5.hvoid main()double xsize,ysize; int maxsize; / 多边形的最大边数cout endlmaxsize;cout 请按顺时针或逆时针顺序输入多边形 ;cout maxsize 个顶点的坐标(格式(x,y): endl;int i;for (i=0; ixiyi;cout 多边形的 maxsize 个顶点坐标为:; for (i=0; imaxsize; i+)cout (xi,yi);cout endl;cout多边形的周长: arround(x,y,maxsize)endl;5-6 / p143 习题5-6 头文件 exe5_6.hvoid selsort(int ,int);# define size 100/ p143 习题5-6 程序文件 sort.cpp# include exe5_6.hvoid selsort(int data,int size)for (int m=0; msize; m+)int j=m;for (int i=m+1; isize; i+)if (dataim)int k=datam;datam=dataj;dataj=k;/ p143 习题5-6 主程序文件 exe5_6.cpp# include # include exe5_6.hvoid main()int maxsize;cout endlmaxsize;int datasize;int i;cout 请输入 maxsize 个待排序的数据: endl;for (i=0; idatai;cout endl排序前: ;for (i=0; imaxsize; i+)cout datai ;selsort(data,maxsize);cout endl排序后: ; for (i=0; imaxsize; i+)cout datai ;cout endl;5-7 / p143 习题5-7 # include # include char * f(char * s1=hello,char * s2=world!);char s80;char * f(char * s1,char * s2)strcpy(s,s1);return strcat(s,s2);void main() / 依题意解题时主函数可以不必书写cout f()endl;cout f(hi,)endl;cout f(hi,friend!)endl;5-8 方法一:#include unsigned power(unsigned n,unsigned x=2)unsigned s=1;for (unsigned i=0; ix; i+)s*=n;return s;void main() / 依题意解题时主函数可以不必书写cout power(2),;cout power(2,0),;cout power(2,1),;cout power(2,2),;cout power(2,3),;cout power(2,4),;cout power(3),;cout power(3,3),;cout power(3,4)endl;方法二:# include unsigned power(unsigned n,unsigned x=2)if (x=0) return 1;bool flag=n=2;for ( unsigned j=2; j1) unsigned s=n;for (unsigned i=1; ix; i+)s*=n;return s;else if (x=1) return n;return 1;5-9 / p143 习题5-9# include template t s(t d,int size)int i;t sum=0;for (i=0; isize; i+)sum+=di*di;return sum;void main() / 依题意解题时主函数可以不必书写int iarray=1,2,3,4,5;double darray=1.1,2.2,3.3;cout s(iarray,5)endl;cout s(darray,3)endl;5-10 / p144 习题5-10# include template void aggr( t (*data)c)for (int i=0; ir; i+)datai0=0;for (int j=0; jc; j+) datai0+=dataij;void main() / 依题意解题时主函数可以不必书写int a35=0,1,2,3,4,0,2,3,4,5,0,3,4,5,6; aggr(a);for (int i=0; i3; i+)cout endl;for (int j=0; j5; j+)cout aij ;cout endl;5-11 / p144 习题 5-11# include # include / 计算行列式的值函数。以下函数定义参阅1982年12/月第1版上海教育出版社出版/ 上海计算技术研究所编电子计算机算法手册第/295页算法template t valueof( t (*sq)size ) / 说明:在vc+6.0/下形参不允许书写成 sqsize形式int i,j,k,n;t p,t,u;t msize;for (i=0; isize; i+) u=0;for (j=0; ju) ) u=abs(sqij);if (u1.0e-18) return 0;mi=u;if (u!=1)for (j=0; jsize; j+)sqij/=u;p=1;for (k=0; ksize-1; k+)n=k;t=abs(sqkk);for (j=k+1; jsize; j+)if (tabs(sqkj) t=abs(sqkj);n=j;if (t1.0e-18) return 0;if (n!=k) p=-p;for (i=k; isize; i+) t=sqik;sqik=sqin;sqin=t;p*=sqkk;for (i=k+1; isize; i+) t=sqik/sqkk;for (j=k+1; jsize; j+)sqij-=sqkj*t;t=p*sqsize-1size-1;for (k=0; ksize; k+)t*=mk;return t;void main() / 依题意解题时主函数可以不必书写 # define maxsize 4double datamaxsizemaxsize;int i,j;/ 输入行列式cout请输入maxsize行maxsize列的行列式:endl;for (i=0; imaxsize; i+)for (j=0; jdataij;/ 输出行列式coutendlendlmaxsize”行maxsize列的行列式:endl; for (i=0; imaxsize; i+)cout endl;for (j=0; jmaxsize; j+)cout setw(10)dataij; cout endl;/ 调用函数valueof()计算行列式的值 cout endlmaxsize行maxsize列的行列式的值为:;cout valueof(data)endl; / 调用函数模板求行列式值习题六 (p187)6-3 / p192 习
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版离婚子女赡养协议确保孩子权益不受侵害
- 2025年度共享办公空间租赁服务协议
- 诵读知识培训总结报告课件
- 说课课件教学课件
- 说课稿模板设计
- 2025年版出租车经营合同
- 2025商务写字楼租赁服务合同
- 2025购销房合同协议范本
- 企业信息管理系统数据导入模板
- 农业生产技术指导与农资供应合作协议
- 职业技能鉴定机构备案表(空表)
- 补肾养血膏方联合PRP治疗肝肾亏虚型膝骨关节炎的临床疗效观察
- 医疗机构依法执业自查
- 专项复习:相似三角形折叠问题(分层练习)(综合练)
- 角色设计课程说课模板
- 武汉工业地产市场调查分析报告30
- 【共享经济下网约工劳动关系认定问题研究-以外卖骑手为例18000字(论文)】
- DB13T 5098-2019 无人值守起重机控制系统检验规则
- 被动解除劳动合同范本
- XX学校(幼儿园)食堂管理各岗位廉政(廉洁)风险点及防控措施一览表
- 探索未来学习中心的构建:理论、关键要素与体系架构
评论
0/150
提交评论