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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

c++第五章习题解答新教材.docx

1、c+第五章习题解答新教材习 题一、选择题1. 下列叙述错误的是_A_。 A. 主函数中定义的变量在整个程序中都是有效的 B. 复合语句中定义的变量只在该复合语句中有效 C. 其它函数中定义的变量在主函数中不能使用 D. 形式参数是局部变量2. 若函数的形参为一维数组,则下列说法中错误的是_B、才_。A. 形参数组可以不指定大小B. 函数调用时对应的实参只能是数组名C. 函数调用时,系统会为形参数组分配存储单元D. 函数中对形参的修改将会影响对应的实参值3. 若函数的类型和return语句中的表达式的类型不一致,则_D_。A. 编译时出错B. 运行时出现不确定结果C. 不会出错,且返回值的类型以

2、return语句中表达式的类型为准D. 不会出错,且返回值的类型以函数类型为准4. 下面的函数定义正确的是_D_。A. float f(float x;float y) B. float f(float x,y) return x*y; return x*y;C. float f(x,y) D. float f( int x, int y) int x,y ; return x*y; return x*y;5. 下面函数头的定义格式正确的是_C_。A. void sort(int an,int n) B. void sort(int a ,int n)C. void sort(int a ,i

3、nt n) D. void sort(int a ,n)6. 下面4个程序中输出结果是125的有_C_D_。(1). #include iostream.hvoid cube(int x) x=x*x*x; void main() int x=5;cube(x); coutx; (3). #include iostream.hint cube(int x) x=x*x*x; return(x); void main() int x=cube(5); coutx; A. 1 B. 2 C. 3 D. 47. 设函数m()的说明形式为void m(int,int *); 利用函数m()对数5和整数

4、j作函数m()定义的计算,正确的调用形式为_C_。A. m(&5,&j) B. m(5,j) C. m(5,&j) D. m(&5,j)8. 设函数的说明为: void fun(int a,int m); ,若有定义:int a10,n,x; 则下面调用该函数正确的是_A_。A. fun( a, n); B. x=fun( a, n); C. fun( a10, 10); D. x=fun( a, n);9. 下面函数说明正确的是_C_。A. void f1(int a=3, int b, int c); B. void f2 int a, int b=3, int c);C. void f3

5、(int a, int b, int c=3); D. void f4(int a, int b, int 3);10. 有两个函数分别为: int f(int);和int f(int,int =100);,则下面说法正确的是_B_。A. 不能在同一个程序中定义B. 可以在同一个程序中定义,但不可以重载C. 可以在同一个程序中定义并可重载D. 以上说法均错误11. 以下几种函数模板的定义正确的是_A_。A. template T fun1(T a,int b) C. template void fun1(int a,int b) T i; 12. 下面程序的输出结果是_B_。#include

6、iostream.hint m=10; void f(int m,int &n) m=m+2; n=n+2; void main() int n=5; f(m,n); coutm=m n=nendl; A. m=10 n=5 B. m=10 n=7 C. m=12 n=7 D. m=12 n=5 二、阅读程序,写出运行结果1. yes 3 not 42. 43. 12 25 16 9 2 14. 212345. m=5n=36. 911三、程序填空1. 该程序功能:对x=1,2,.,10,求f(x)=x*x-5*x+sin(x)的最大值。#include iostream.h#include

7、math.hfloat f(int x)float y; y=x*x-5*x+sin(x); _return y _;void main() int x; float max; _max=f(1)_; for(x=2;xmax)max=f(x)_ ; coutmaxendl;2. 函数backmove()是把字符指针x所指的字符串平移m个字符,即将最后m个字符移到串首。如“abcdefghij”, 平移3个字符,成“hijabcdefg”。#include stdio.h #include string.hvoid backmove(char *x,int m)int i,j,n;char w

8、; n=strlen(x); for(j=0;jm;j+) w=_*(x+n-1)_; for(i=0;in-1;i+) *(x+n-1-i)=_ *(x+n-2-i)_; _*x_=w; void main()char s20; gets(s); _backmove(s,3)_; /假设平移3个字符 puts(s);3. 函数index()为查找字符串sub是否是字符串st的子串。若是,返回sub在st中首次出现的下标,否则返回-1。字符串sub和st非空。如sub: cd ,st: abcdefcd ,返回2。#include iostream.h#include stdio.hvoid

9、main()char s180,s280; _ int index(char ,char );_; gets(s1);gets(s2); if(_index(s1,s2)_) cout子串在字符串中首次出现的下标:index(s1,s2); else cout找不到;int index(char st,char sub)int i,j,k; for(i=0;sti!=0;i+) for(j=i,k=0;subk!= 0&stj=subk ;_ k+,j+_); if(subk= 0)_ return(i)_; return 0;4. 函数root为用二分法求方程f(x)=0在x1,x2的实根,

10、精度为eps。二分法求根的基本思想为 f(x)在区间a,b上连续,f(a) 与 f(b)异号,区间中点 c=(a+b)/2 的 f(c) 符号和 f(a) 符号确定 c 代替 a 或 b,使根所在区间每次减半,直到|a- b|eps或|f(c)|0.0)_ x1=x_; else if (y1*y=eps_&_fabs(x2-x1)=eps); return(x); double f(double x)return x*x*x-5*x*x+16*x-80;void main()cout_root(1,7)_endl;5随机生成10个1100之间的数放在一维数组中,求其平均值及最大的元素值。#i

11、nclude iostream.h#include stdlib.hconst int N=10;void fun(float *p,float *p1,float *p2) float sum,max1;_max1=*p_; for(int i=1;iN;i+) if (max1*p) max1=*p; sum=sum+*p; p+; _*p1=max1_; _*p2=sum/N_; void main() float a10,aver,max,x;for(int i=0;i10;i+) x=rand() % 100+1; ai=x; for(i = 0;i10;i+) coutai ; c

12、outendl;_fun(a,&max,&aver)_; cout平均值:aver 最大值:max=0;-i) chk+=b _ci_ ; _chk=0_;void main()char ch10;int m,h;cinmh;convert(m,h,ch);coutchendl;四、编写程序1. 编写函数,功能为将字符串s中的字符c1用字符c2替换,并加以调用。函数形式为:void match(char s, char c1,char c2);#include using namespace std;void replace(char s,char c1,char c2)char *p=s;

13、while(*p!=0) if(*p=c1) *p=c2; p+; void main()char s80,c1,c2; cins; cinc1c2; replace(s,c1,c2); coutsendl;system(pause);2. 编写函数,功能为求圆的周长和面积。函数分别定义为如下形式:double area(double r, double * girth ,double pi=3.14159); void fun(double r, double &girth ,double &area,double pi=3.14159); 分别编二个程序实现,半径从键盘输入。方法一、#in

14、clude double area(double r,double *girth,double pi=3.14159) *girth=2*pi*r; return(pi*r*r);void main()double r,len,s; cinr; s=area(r,&len); coutlen=len,s=sendl;方法二#include void fun(double r,double &girth,double &area,double pi=3.14159) girth=2*pi*r; area=pi*r*r;void main()double r,len,s; cinr; fun(r,

15、len,s); coutlen=len,s=sendl;3. 编写函数,功能是求二维数组中最大元素所在的行号和列号,再编写主函数调用之。#define SIZE1 3#define SIZE2 4#include iostream#include stdlib.husing namespace std;float max_value(float x4,int &ii,int &jj)float max=x00; for(int i=0;iSIZE1;i+) for(int j=0;jmax) max=xij; ii=i; jj=j; return(max);void main()int i,j

16、,t1,t2;float aSIZE1SIZE2; coutenter the array:n;for(i=0;iSIZE1;i+) for(j=0;jSIZE2;j+) aij=rand()%101; coutaij ;coutendl;coutmax value is max_value(a,t1,t2);cout line=t1 row=t2endl;system(pause);4. 编写函数,将两个字符串s和t的前n个字符拼接成新的字符串,结果存放在s中。如果s或t中字符串的长度不足n,按实际长度处理。例如,如果有ABCDEFGH和abcdefghijk,n为3,则新的字符串为”ABC

17、abc”,并加以调用。函数形式为:void mystrcat(char s,char t,int n);#include #include using namespace std;void mystrcat(char s,char t,int n) int l1=strlen(s),l2=strlen(t); int k1=l1n?n:l1,k2=l2n?n:l2; int k for(int i=0;ist; cinn; mystrcat(s,t,n); coutsendl;system(pause);5. 编写函数,其功能是逐字符比较两个字符串s1和s2,并将s1中第一个与s2不相同字符的

18、地址返回给主函数。再编写主函数调用该函数,并在主函数中输出s1从这个位置开始的子串。函数形式为:char *dif(char s1,char s2);#include using namespace std;#include stdio.hchar *dif(char s1,char s2) int i=0; while(s1i=s2i&s1i!=0) i+; if(s1i!=0) return(&s1i); else return NULL;void main() char s30,t30; cinst; char *p; if(p=dif(s,t)!=NULL) coutpendl; el

19、se couts包含于t中n;system(pause);6. 用递归方法求正整数m,n的最大公约数。#include int gcd(int m,int n) int r=m%n; if(r!=0) return gcd(n,r); else return(n);void main() int m,n; cinmn; coutgcd(m,n)endl;7. 编写四个同名函数max,分别求两个整数、三个整数,两个双精度数、三个双精度数的最大值。#include int max(int a,int b) return(ab?a:b);int max(int a,int b,int c) int t=max(a,b); return(max(t,c);double max(double a,double b) return(ab?a:b);double max(double a,double b,double c) double t=max(a,b); return(max(t,c);void main()double x,y,z; int a,b,c; cinabc; cinxyz; coutmax(a,b)endlmax(a,b,c)endl; coutmax(x,y)endlmax(x,y,z)endl;

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

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