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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C++ 习题册参考答案1.docx

1、C+ 习题册参考答案1习题一1. 请比较高级程序设计语言、低级程序设计语言各有什么优缺点。答:低级语言与计算机硬件联系紧密,涉及到许多计算机底层操作的细节,要求程序员详细说明由计算机执行的每一步操作,这样的特性决定了使用低级语言是很繁琐和易错的;低级语言指令会因为硬件 型号不同而有很大差异,使得用其编写的程序不具有可移植性。高级语言不涉及计算机底层的硬件,它提供较高层次的抽象,使用高级语言,编程者可以远离机器细节;高级语言不是面向机器的,而是面向问题的,这样更加接近编程者习惯的思维;高级语言编写的程序具有一定的可移植性。2. 请同学们课后查阅有关文献资料,叙述什么是软件危机?答:软件危机是指在

2、计算机软件的开发和维护过程中遇到的一系列严重的问题。概括地讲,软件危机包含下述两方面的问题:如何开发软件以满足对软件日益增长的需求;如何维护数量不断膨胀的现有软件。3. 请总结C语言都有哪些特点?答:习题二一、仔细阅读下面的程序代码,分析其中有无错误1答:缺少#include coutThis is a string后加;1 void main( ) coutThis is a string2答:缺少x变量的定义 coutp=pn;的字符串的界定符号不全,应该为:coutp=pn;2#include void main( ) cinx; int p=x*x; coutp=pn;3答:j变量没有

3、初始化 Cout使用3#include void main( ) int i,j; i=5; int k=i+j;couti+j=kn;二、阅读下列各个程序段,若无错误则写出运行结果1运行结果为:981 #include void main( ) int a; char ch; ch=a ; ch+; a=ch; couta,;2运行结果为:10,-5.22#include void main()int a=10;float b=-5.2;couta,bendl;3运行结果为:97,a3#include void main()int a=97;char ch=a;couta,chendl;4运

4、行结果为:3.1416 65 65 000654#include #include void main()double a=3.1415926 ;int b=65;coutsetprecision(5)aendl;coutsetw(5)bnbendl;coutsetfill(0)setw(5)bendl;三、简答题1. 已知x=2, y=3, z= 4,计算下列表达式的值:(1) A1 = x + y +1/2+z(2) A2=x+(y+2)/(2-z)答:A1 = 2+3 + 0 + 4 = 5+0+4=9 A2 = 2 + (3+2)/(2-4) = 2 + 5/-2 = 2 -2 = 0

5、2. 计算下列表达式的值:(1) 1/2 + 5/2 + 7/6(2) 1/2.0 + 5/2. 0+ 3.0(3) 1/2 + 5./2 + 2(4) (unsigned char) 500 + 200(5) (unsigned char) (500 + 200)(6) (unsigned int)(unsingned char)750答:(1)为3;(2) 为6.0; (3) 为4.5; (4) 为644; (5) 为188; (6) 为238;3. 已知int a=5, b=0;下面表达式运算后a和b的值是多少?(1) ! a & a+b & a+(2) !a|a+|b+答:(1)a=5

6、, b=0(2) a=6, b=04. 若有下面变量声明语句:int a=4,b;指出下面表达式运算后a和b的结果?b+=b=+a;答:、编程题1. 从键盘输入两个整数a、b,输出其中较大的那个数。答:#include void main()int a,b;int max;coutab;max=(ab)? a:b ;couta 和b 其中最大的是:maxendl;2. 编写一段程序,使用sizeof()运算符测试你所用机器的int,float,double,long,char 等类型变量存储所需的字节数。答:#include void main()coutVariables of type i

7、nt use sizeof(int) bytesendl;coutVariables of type float use sizeof(float) bytesendl;coutVariables of type double use sizeof(double) bytesendl;coutVariables of type long use sizeof(long) bytesendl;coutVariables of type char use sizeof(char) bytesendl; 3. 输入华氏温度F,输出摄氏温度C。它们的换算公式为:C5(F32)/ 9。答:参考程序如下:

8、#include void main()double F,C; /* 输入部分 */coutF; /* 计算部分 */C = 5.0 * (F - 32.0) / 9.0;/* 输出部分 */cout相应的摄氏温度为:Cendl;4. 输入球半径r,输出球的表面积及体积。答:#include const double PI= 3.1415 ;void main()double R,C,S,V;/* 输入部分 */coutR;/* 计算部分 */C = 2.0 * PI * R;S = PI * R * R;V = 4.0 * S * R / 3.0;/* 输出部分 */cout圆周长为:Cen

9、dl;cout圆面积为:Sendl;cout圆球体积为:Vendl;习题三一、选择题1下列语句哪一项不能正确将x,y的值进行交换: (D )A. x=x+y,y=x-y,x=x-y;B. t=x,x=y;y=t;C. t=y,y=x,x=t;D. x=t,t=y,y=x2 在if后面号中表示a不等于0的时候值为真,正确的表达式为: (D)A. a0B. !aC. a=0D. a3 循环语句for(int i=0,j=10;i=j=10;i+,j-);的循环次数是: (A)A. 无限次B. 语法错误,不能执行C. 10D. 14 以下哪个语句不是循环语句: (D)A. while语句B. do-

10、while语句C. for语句D. if-else语句5下列do-while循环的循环次数是: (D)int i=5;docouti-endl;i-;while (i!=0)A. 0B. 2C. 5D. 无限次6下面for循环的循环次数是: (B) for(int i=0,x=0;!x&i=5;i+);A. 5B. 6C. 1D. 无限次二、编程题1. 从键盘输入三个整数a、b、c,输出其中的最大数。答:#include void main()int a,b,c;int max;cinabc;max=a;if(bmax)max=b;else if(cmax)max=c;coutmax;2. 请

11、同学们课后查阅有关资料,了解什么是素数。然后求出2-100之间的所有素数,并以10个数为一行输出。答: #include void main()int i,j; for (i=2; i=100; i+)for (j=2; ji; j+)if (i%j = 0)break;if (j=i)couti是素数n;3. 输入一行字符,分别统计其中英文字母、数字及其他符号的个数。答:#include #include void main() char c;int letters=0,digit=0,other=0;cout=a & c=A & c=0 & c=9)digit+;else other+;c

12、out字母数:lettersendl 数字数:digitendl 其他字符数:otherendl;4. 求满足下式的最小n值,其中的limit可用户从键盘输入。答:#include void main() int limit; double sum=0; cinlimit; int n=0; do n+; sum+=1.0/n; while(sum=limit); coutsum=sumendl n=nendl;5. 菲波那切数列的特征是:前两项为1,以后每一项为前两项之和。编程输出菲波那切数列的前40项。答:#include void main() int a=1,b=1,c; coutat

13、at; for(int i=3;i=40;i+) c=a+b; coutct; a=b;b=c; if(i%5=0) coutendl; 6. 输入学生百分制成绩,输出五分制成绩,即“优秀”、“良好”、“中等”、“及格”与“不及格”。答:#include void main() int a; cina;switch(a/10) case 10: case 9:cout优秀;break; case 8:cout良好;break; case 7:cout中等;break; case 6:cout及格;break; case 5: case 4: case 3: case 2: case 1: ca

14、se 0:cout不及格;break; default:cout输入错误1;break;7. 编程求解下列问题:(1) 所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数本身。例如,153是水仙花数,因为153=13+53+33。请输出1000以内的所有“水仙花数”。答:#include void main() for(int i=1; i=9; i+) for(int j=0; j=9; j+) for(int k=0; k=9; k+) if(i*i*i+j*j*j+k*k*k = 100*i+10*j+k) cout (100*i+10*j+k) 是水仙花数.n;(2) 所谓“

15、完数”,是指一个数恰好等于它的因子之和。例如6是完数,因为6=1+2+3。请输出求10000之内的所有“完数”。答:#include void main() for(int i=1; i10000; i+) int sum=0; for(int j=1; j=i/2; j+) if(i%j=0) sum= sum + j; if(sum=i) cout i是完数.n; 8. 应用题:(1) 猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,只剩一个桃子了。编程求第一天共

16、摘下多少桃子。答:#include void main() int peachs=1; for(int i=1; i10; i+) peachs=(peachs+1)*2; cout 第一天共摘下 peachs 个桃子.n;(2) 若一头小母牛,从出生起第四个年头开始,每年生一头母牛。按此规律,第n年时有多少头母牛? (n由键盘输入)。答:#include void main() int n; long a=1, b=1, c=1, temp; cout n; for(int i=4; i=n; i+) temp=a+c; a=b; b=c; c=temp; cout c endl;习题四一、

17、仔细阅读下列程序,若无错误请给出运行结果1. 1运行结果为:25#includeint add(int a,int b);void main()extern int x,y;coutadd(x,y)endl;int x=20,y=5;int add(int a,int b)int s=a+b;return s;2. 2运行结果为:6,11 6,12#includevoid fn(int n)int x=5;static int y=10;if(n0)+x;+y;coutx,yendl;void main()int m=1;fn(m);fn(m);3. 3运行结果为:随机数分析这道题首先要弄清楚

18、两点:1:未赋初值的变量,它的值是什么。2:形参变量的值和实参变量的值的关系。本题在main函数中定义了一个整型变量c,系统为其分配了一个存储单元。此单元中的原有信息并未被清除,这时变量c的值是不确定的随机数。调用函数fun时,将实参常量2和3分别传给了形参a和b,实参变量c中的随机值传给了形参变量c。通过函数fun的运算,形参变量c中存放了a*b的运算结果,这一结果并不能反馈给实参变量c。因此在主函数中输出的c值是一个不确定的值。#include iostream.hfun(int a,int b,int c)c=a*b;void main()int c;fun(2,3,c);coutc=c

19、endl;4. #include iostream.hvoid outputab(int a,int b)couta= a b= bendl;a=100;4运行结果为:a= 300 b= 400 a= 300 b= 400b=200;void main()int a=300;int b=400;outputab(a,b);couta= a b= bendl;二、使用函数结构,编程求解下述各题1. 编写递归函数,求解:sum(n)=1+2+3+n。答:int sum(int n)if(n=1)return 1;elsereturn n + sum(n-1);2. 输入正整数num,求。答:#in

20、clude iostream.hint fn(int a);void main()int s=0;coutnum;for(int i=1;i=num;i+) s+=fn(i);cout1!+2!+.+num!=sendl;int fn(int a)static int b=1;b*=a;return b; /或者使用如下方法#include iostream.hint fn(int a);void main()int s=0;coutnum;for(int i=1;i=num;i+) s+=fn(i);cout1!+2!+.+num!=s0;-x)y*=x;return y;void main

21、()int m,n,temp;double cmn;coutinput m :m;coutinput n :n;if ( m n ) temp = n;n = m;m = temp;cmn=facto(m)/(facto(n)*facto(m-n);/三次调用facto函数coutthe combination is cmnendl;4. 编写递归函数,求解:若一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第n年时有多少头母牛? 答:#include long cattle(int n);void main() int n; cout n; cout cattle(n) endl

22、;long cattle(int n) if(n=0) return 0; if(n=3) return 1; return cattle(n-1)+cattle(n-3);5. 已知银行的存款利息如下:月息利率=0.63% 期限一年 0.66% 期限二年0.69% 期限三年0.75% 期限五年0.84% 期限八年某人有2000元钱,要存20年,请你帮助计算一下,怎样存才能使20年后得到的本利合计最多(假定银行对定期存款过期部分不付利息)?答:为了得到最多的利息,存入银行的钱应该在到期时马上取出来,然后立刻将原来的本金和利息加起来再作为新的本金存入银行,这样本利不断的滚动直到满20年为止。由于

23、存款的利率不同,所以有很多不同的存款方法(年限)存20年得到的利息也是不一样的。 分析题意:设2000元存20年,其中一年期存了i1次,二年期存了i2次,三年期存了i3次,五年期存了i5次,八年期存了i8次,则到期时存款人应该得到的本利合计应该为:2000*(1+rate1) *(1+rate2) * (1+rate3) * (1+rate5) * (1+rate8) 其中rateN为对应存款年限的利率。根据题义还可以得到以下的限制条件:0=i8=20=i5=(20-8*i8)/50=i3=(20-8*i8-5*i5)/30=i2=(20-8*i8-5*i5-3*i3)/20=i1=20-8*i8-5*i5-3*i3-2*i2可以采用穷举法穷举所有的i8、i5、i3、i

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2