c++ 程序设计课后习题答案.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c++ 程序设计课后习题答案.doc

第二章 基本控制结构程序设计习题 1 第二章 基本控制结构程序设计习题 一.基本概念与基础知识自测题 3.1 程序阅读题 3.1.1 设有说明: int a=3, b=100; 下面的循环语句执行 (1) 次,执行后a、b的值分别为 (2) 、 (3) 。 while(b/a5){ if(b-a25) a++; else b/=a; } 解答: 本题检查学生整除的概念。跟踪: a 3 b 100 b/a 33 循环次数 1 b-a 97 4 100 25 2 96 5 … 100 … 20 … 3 … 95 … 15 100 6 13 85 16 100 6 14 84 17 100 5 停 (1)14 (2)17 (3)100 3.1.2 设有说明: int n,x,k,y; 下面程序段的功能是备选答案中的 (1) ,当n=10,x=10 打印结果是 (2) 。 cinxn; k=0; do{ x/=2; k++; }while(kn); y=1+x; k=0; do{ y=y*y; k++; }while(kn); coutyendl; 备选答案: A. y = (1 + x ) n n  B. y = (1 + x ) 2n 2 n  C. y = (1 + x ) n 2 n  D. y = (1 + x ) 2 2 n +1 第二章 基本控制结构程序设计习题 2 解答: 第一个循环使 x 成为: x 2 n (1)B  ;y 成为:1 + x 2 n  ;第一个循环使 y 成为: (1 +  x ) 2n ; 2 n 考虑整除, x 2 n (2)1  连除 4 次以后为零,所以: 3.1.3 请看如下程序段: if(num==1) cout”Alpha”; else if(num==2) cout”Bata”; else if(num==3) cout”Gamma”; else cout”Delta”; 当num的值分别为 1、2、3 时,上面程序段的输出分别为(1) 、(2) 、(3) 。 解答: 检查条件语句与字符串输出概念: (1)Alpha (2)Bata (3)Gamma 3.1.4 执行下面程序段后,m和k的值分别为 (1) 、 (2) 。 int m,k; for(k=1,m=0;k=50;k++){ if(m=10) break; if(m%2==0){ m+=5; continue; } m-=3; } 解答:注意 continue 语句的使用 初值 m=1 k=0 第 1 次循环后 m=5 k=1 第 2 次循环 m=2 k=2 第 3 次循环 m=7 k=3 第 4 次循环 m=4 k=4 第 5 次循环 m=9 k=5 第 6 次循环 m=6 k=6 第 7 次循环 m=11 结束,k++未做 (1)11 (2)6 二.编程与综合练习题 3.2 编程求一元二次方程 ax2+bx+c=0 的根。包括以下判断和结果:若输入 a=0,给出提示; 第二章 基本控制结构程序设计习题 3 若Δ0,输出两个不等实根;若Δ=0,输出两个相等实根;若Δ0,输出两个复数根。 解:本题以一个绝对值极小的数作为实数 0。 #include iostream.h #include math.h #include stdlib.h void main(){ double a,b,c; double delta,x1,x2; const double zero=1e-9; //定义一个很小的常数 int sign; cout输入三个系数a(a!=0), b, c:endl; cinabc; if(fabs(a)zero){ cout二次项系数为0,方程根是-c/b; exit(0); } couta=a\tb=b\tc=cendl; delta=b*b-4*a*c; if(fabs(delta)zero){//绝对值很小的数即被认为是0 cout方程有两个相同实根:; coutx1=x2=-b/(2*a)endl; } else { if(delta0) sign=1; else sign=0; delta=sqrt(fabs(delta)); x1=-b/(2*a); x2=delta/(2*a); if(sign){ cout方程有两个不同实根:; coutx1=x1+x2\tx2=x1-x2endl; } else{//delta0 cout方程无实根!有两个不同复数根:; coutx1=x1+ix2\tx2=x1-ix2endl; } } } 3.3 设计程序将输入的百分制成绩转换

文档评论(0)

zhangningclb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档