欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c++习题及其解答(第3版).pdf

    • 资源ID:92854409       资源大小:10.25MB        全文页数:137页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c++习题及其解答(第3版).pdf

    习 题 1及 其 解 答 1.1选 择 题 1.一 个 最 简 单 的 C+程 序,可 以 只 有 一 个(c)。(a)库 函 数(b)自 定 义 函 数(c)main函 数(d)空 函 数 2.用 C+语 言 编 制 的 源 程 序 要 变 为 目 标 程 序 必 须 要 经 过(d)。(a)解 释(b)汇 编(c)编 辑(d)编 译 3.C+程 序 中 的 简 单 语 句 必 须 以(b)结 束。(a)冒 号(b)分 号(c)空 格(d)花 括 号 4.有 说 明 int a=0;double x=5.16;以 卜.语 句 中,(c)属 于 编 译 错 误。(a)x=a/x;(b)x=x/a;(c)a=a%x;(d)x=x*a;5.执 行 C+程 序 时 出 现 的“溢 出”错 误 属 于(c)错 误。(a)编 译 连 接(c)运 行(d)逻 辑 6.下 列 选 项 中,全 部 都 是 C+关 键 字 的 选 项 为(c)。(a)while IF Static(b)break char go(c)sizeof case extern(d)switch float integer7.按 C+标 识 符 的 语 法 规 定,合 法 的 标 识 符 是(a)。(a)_abc(b)new(c)n(d)age8.C+语 句 中,两 个 标 识 符 之 间(a)不 熊 作 为 C+的 分 隔 符。(a)数 字(b);(c):(d)+9.下 列 正 确 的 八 进 制 整 型 常 量 表 示 是(b)o(a)OaO(b)015(c)080(d)0 x1010.下 列 错 误 的 十 六 进 制 整 型 常 量 表 示 是(C)o(a)0 x11(b)Oxaf(c)Oxg(d)Oxlf1 1.在 下 列 选 项 中,全 部 都 合 法 的 浮 点 型 数 据 的 选 项 为(b).(a)-le3.5 15.2e-4(b)12.34-le+5 0.IE-12(c)0.2e-2-12345.e-5(d)5.0e(l+4)0.1 8e+212.下 列 正 确 的 字 符 常 量 为(d)。(a)“a(b)name(c)a(d)M O I513.下 列 选 项 中,(d)不 熊 交 换 变 量 a和 b的 值。(a)t=b;b=a;a=t;(b)a=a+b;b=a-b;a=a-b;(c)t=a;a二 b;b二 t;(d)a=b;b二 a;14.关 于 下 列 语 句 叙 述 错 误 的 是(a)0int i=10,*p=&i;(a)p的 值 为 10(b)p指 向 整 型 变 量 i(c)*表 示 变 量 i的 值(d)p的 值 是 变 量 i的 地 址 15.有 以 下 变 量 说 明,下 面 不 无 碰 的 赋 值 语 句 是(b)。int a=5,b=10,c;int*pl=&a,*p2=&b;(a)*p2=b;(b)pl=a;(c)p2=pl;(d)c 二*pl*(*p2);16.有 以 下 变 量 说 明,下 面 正 确 的 语 句 是(b)0int a=10,b;int&pa=a,&pb=b;(a)&pb=a;(b)pb=pa;(c)pb=&pa;17.执 行 下 面 语 句 序 列 后,a和 b的 值 分 别 为(b)oint a=5,b=3,t;int&ra=a;(d)*pb=*pa;int&rb=b;t=ra;ra=rb;rb=t;(a)3和 3(b)3和 5(c)5和 3(d)5和 518.在 下 列 运 算 符 中,(d)优 先 级 最 高。(a)=(b)*=(c)+(d)*19.在 下 列 运 算 符 中,(d)优 先 级 最 低。(a)!(b)&(c)!=(d)?:2 3.己 知 int i=0,j=l,k=2;则 逻 辑 表 达 式+i I j&+k2 0.设 int i=l,j=2;则 表 达 式 i+j的 值 为(c)o(a)1(b)2(c)3(d)42 1.设 int i=l,j=2;则 表 达 式+i+j的 值 为(d)0(a)1(b)2(c)3(d)42 2.在 下 列 表 达 式 选 项 U,(c)是 正 确。(a)+(a+)(b)a+b(c)a+b(d)a+b的 值 为(b)o(a)0(b)1(c)2(d)324.执 行 下 列 语 句 后,x的 值 是(d),y的 值 是(c)oint x,y;x 二 y=1;+x|+y;(a)不 确 定(b)0(c)1(d)225.设 x为 整 型 变 量,小 熊 正 确 表 达 数 学 关 系 1 V X V 5 的 C H 逻 辑 表 达 式 是(a)o(a)1 x 5(c)lx&x5(b)x=2|x=3|x=4(d)!(x=5)2 6.已 知 int x=5;执 行 下 列 语 句 后,x的 值 为(c)。X+二 X-=X*X;(a)25(b)40(c)-40(d)2027.设 int a=l,b=2,c=3,d=4;则 以 下 条 件 表 达 式 的 值 为(a)。a b?a:c d?c:d(a)1(b)2(c)3(d)428.以 下 逗 号 表 达 式 的 值 为(d)o(x=4*5,x*5),x+25(a)25(b)20(c)100(d)451.2把 下 列 数 学 表 达 式 写 成 C+算 术 表 达 式 12.x x x(ax+b)+c+d+e1+-x+y3.In(1+|a+b*a-b5.cot J.Jl+cos 48/6.lg(a2+ab+b2)1+x2【解 答】1.1/(1+1/(1+l/(x+y)2.x*(x*(x*(a*x+b)+c)+d)+e3.log(1+pow(fabs(a+b)/(a-b),10)4.sqrt(1+3.14159/2*cos(48*3.14159/180)5.l/tan(1-x*x)/(1+x*x)或 者 cos(1-x*x)/(1+x*x)/sin(1-x*x)/(1+x*x)6.Iogl0(a*a+a*b+b*b)1.3 用 逻 辑 表 达 式 表 示 下 列 条 件 1.i 被 j 整 除 2.n 是 小 于 正 整 数 k 的 偶 数 3.lx10 4.x,y 其 中 有 一 个 小 于 z5.y g-100,-10,并 且 y 10,1006.坐 标 点(x,y)落 在 以(10,2 0)为 圆 心,以 3 5为 半 径 的 圆 内 7.三 条 边 a,b 和 c 构 成 三 角 形 8.年 份 Year能 被 4 整 除,但 不 能 被 100整 除 或 者 能 被 400整 除【解 答】1.i%j=0 2.(nk)&(n%2 二 二 0)3.K=x&x10 4.xz|y=-100&y=10&y=100)6.sqrt(pow(x-10),2)+pow(y-20),2)c&b+ca&c+ab8.(year%4=0)&(year%100!=0)|(year%400=0)1.4 阅 读 下 列 程 序,写 出 执 行 结 果 1.Sinclude using namespace std;int mainOint a=1,b=2;bool x,y;cout(a+)+(+b)endl;cout a%b b;y=a一&b;cout x endl;cout y endl;)【解 答】42012.#include using namespace std;int main()int x,y,z,f;x 二 y 二 z 二 1;f=-x I|y-&z+;cout x x endl;cout ycout z y endl;z endl;cout f=z/f endl;)【解 答】y=0z=2f=l3.4include#i nc1udeusing namespace std;int main()int a=123;int&ra=a;int*pa=&a;coutsetw(5)decasetw(5)octrasetw(5)hex*paend 1;【解 答】123 173 7b1.5 思 考 题 1.什 么 叫 数 据 类 型?变 量 的 类 型 定 义 有 什 么 作 用?【解 答】数 据“类 型”是 对 数 据 的 抽 象。类 型 相 同 的 数 据 有 相 同 的 表 示 形 式、存 储 格 式 以 及 相 关 的 操 作。定 义 个 变 量 时,计 算 机 根 据 变 量 的 类 型 分 配 存 储 空 间,并 以 该 类 型 解 释 存 放 的 数 据。2.普 通 数 据 类 型 变 量 和 指 针 类 型 变 量 的 定 义、存 储、使 用 方 式 上 有 何 区 别?请 编 写 一 个 程 序 验 证 之。【解 答】验 证 程 序:变 量 类 型 定 义 存 储 使 用 方 式 数 据 类 型 标 识 符 数 据 值 通 过 名 访 问 即 直 接 访 问 对 变 量 内 容 操 作 指 针 类 型*标 识 符 地 址 值 通 过 指 针 变 量 的 地 址 值 间 址 访 问 对 象#includeusing namespace std;int mainO int a,b,c;cout*a,b,c=cinabc;对 普 通 数 据 类 型 变 量 赋 值 int*pa=&a,*pb=&b,*pc=&c;用 变 量 地 址 值 初 始 化 指 针 变 量 cout a,b,c=cendl;名 访 问,输 出 a,b,c的 值 coutCpa,pb,pc=pa,pb,pc endl;输 出 指 针 变 量 的 地 址 值 间 址 访 问,输 出 pa,pb,pc指 向 的 变 量 的 赋 值 coutz*pa,*pb,*pc=*pa,”*pb,*pc endl;3.什 么 叫 数 据 对 象 的 引 用?对 象 的 引 用 和 对 象 的 指 针 有 什 么 区 别?请 用 一 个 验 证 程 序 说 明 之。【解 答】引 用 是 为 数 据 对 象 定 义 别 名。引 用 与 指 针 有 以 下 几 点 区 别:(1)引 用 名 不 是 内 存 变 量,而 指 针 变 量 要 开 辟 内 存 空 间。(2)引 用 名 需 要 在 变 量 定 义 与 变 量 名 绑 定,并 且 不 能 重 定 义:指 针 变 量 可 以 在 程 序 中 赋 给 不 同 的 地 址 值,改 变 指 向。(3)程 序 中 用 变 量 名 和 引 用 名 访 问 对 象 的 形 式 和 效 果 样;指 针 变 量 通 过 间 址 访 问 对 象。验 证 程 序:#includeusing namespace std;int main()int a;coutVa=”;cina;int ra=a;int*pa=&a;cout,za 的 值:aendl;cout”a 的 地 址:&aendl;cout*ra 的 值:“raendl;cout ra 的 地 址:”&ra endl;cout,zpa所 指 向 的 变 量 的 值:*pa endl;cout/zpa 的 地 址:”paendl;4.数 据 对 象 在 C+中 有 什 么 不 同 的 访 问 方 式?请 编 写 一 个 程 序 验 证 之。【解 答】数 据 对 象 在 C+中 的 访 问 方 式 有:验 证 程 序:#includeusing namespace std;int main()int a;coutXa=;cina;a=a+5;cout&,aendl;cout*(&,a)endl;int*pa=&a;cout*paendl;int&ra=a;coutraendl;)名 访 问,引 用(别 名)访 问,间 址 访 问。名 访 问 输 出 变 量 地 址 地 址 访 问,输 出 变 量 值 说 明 指 针 变 量,指 向 变 量 a 间 址 访 问,输 出 变 量 值 ra是 a 的 引 用 引 用 访 问,输 出 变 量 a 的 值 5.为 了 约 束 对 数 据 对 象 的 值 做 只 读 操 作,C+采 用 什 么 方 式?请 做 出 简 要 归 纳。【解 答】约 束 数 据 对 象 只 读 形 式 如 下:约 束 对 象 说 明 形 式 标 识 常 量 c o n s t类 型 常 量 标 识 符=常 量 表 达 式;指 针 常 量 类 型*c o n s t指 针;指 向 常 量 的 指 针 c o n s t类 型*指 针;或 者 类 型 const*指 针;指 向 常 量 的 指 针 常 量 c o n s t类 型*c o n s t指 针;或 者 类 型 const*c o n s t指 针;常 引 用 c o n s t类 型&引 用 名=对 象 名;6.什 么 叫 表 达 式?表 达 式 值 的 类 型 由 什 么 因 素 决 定?使 用 不 同 运 算 符 连 接 以 下 3个 变 量,请 写 出 5个 以 上 获 得 值 等 于 true的 表 达 式。int a=l,b=2;double x=0.5;【解 答】表 达 式 是 由 数 据 和 运 算 符,按 求 值 规 则,表 达 一 个 值 的 式 子。表 达 式 值 的 类 型 的 决 定 因 素 为 操 作 数 的 类 型。(1)如 果 运 算 符 左 右 操 作 数 类 型 相 同,运 算 结 果 也 是 相 同 类 型。(2)如 果 运 算 符 左 右 操 作 数 类 型 不 同,首 先 把 类 型 较 低(存 储 要 求,示 数 能 力 较 低)的 数 据 转 换 成 类 型 较 高 的 数 据,然 后 运 算。(3)赋 值 表 达 式 的 类 型 由 被 赋 值 变 量 的 类 型 决 定。当 把 一 个 表 达 式 的 值 赋 给 一 个 变 量 时,系 统 首 先 强 制 把 运 算 值 转 换 成 变 量 的 类 型,然 后 执 行 写 操 作。6 个 值 等 于 true的 表 达 式:(1)ba&ax(2)(a+b)!=x(3)a|(b+x)(4)a=(b*x)(5)a-bx(6)(a/xb)7.阅 读 以 下 程 序,分 析 下 面 语 句 序 列 中 每 个 字 符 和 的 意 义,写 出 输 出 结 果。include using namespace std;int main()int a=10,b=20;int*p=&a,*q=&b;*p=*p*q;int&ra=a;ra=a;int*&rt=q;*rt=30;coutzza=z,az,nb=z,bz,n*p=z,*pz,n*q=/,*qzznra=,/r a/n*rt=*rtendl;)【解 答】字 符“*”和“&”的 意 义 见 程 序 中 添 加 的 注 释。#include using namespace std;int main()int a=10,b=20;int*p=&a,*q=&b;/是 指 针 类 型 说 明 符,“&”是 取 址 运 算 符*P=*P*q;第 1、2、4个 是 间 址 访 问 符,第 3个 算 术 乘 运 算 符 int&ra=a;/是 引 用 说 明 符ra=a;int*&rt=q;/是 指 针 类 型 说 明 符,“&”是 引 用 说 明 符*rt=30;/是 间 址 访 问 符 输 出 语 句 中 的“*”是 间 址 访 问 符 couta=anb=bn*p=*p、n*q:”*q,nra=/zra/zn*rt=,/*rtendl;)程 序 输 出 结 果 为:a 二 2 00b=30*p=200*q=30ra=200*rt=301.6 编 程 题 1.输 入 个 三 位 整 数,将 它 反 向 输 出。【解 答】#include using namespace std;int mainO int x,i,j,k;cout z,please input x:;cin x;i=x/100;j=x/10%10;k=x%10;cout k j i endl;cinx;2.输 入 平 面 上 某 点 横 坐 标 x 和 纵 坐 标 y,若 该 点 在 由 图 3.1表 示 的 方 块 区 域 内,则 输 出 1;否 则,输 出 0。图 1.1 1 正 方 形【解 答】4include using namespace std;int main()double x,y,b;cout x y;b=(-2=x)&(x=2)&(-2=y)&(y=2);cout b endl;3.输 入 三 个 整 数,求 出 其 中 地 小 数(要 求 使 用 条 件 表 达 式)。【解 答】ttinclude using namespace std;int main()int a,b,c,temp,min;cout”please input a,b,c:;cin a b c;temp=(ab)min=(tempccout)?a:b;)?temp:c;min endl;习 题 2 及 其 解 答 2.1选 择 题 1.已 知 int i=0,x=l,(a)if(x&y)i+(c)if(x|y)i+y=0;在 下 列 选 项 使 i的 值 变 成 1的 语 句 是(c;(b)if(x=y)i+;;(d)if(!x)i+;)o-1 x 0(a)y=1;if(x=0)if(x=0)y=0;else y=-1;(c)if(x=0)if(x 0)y=1;else y=0;(d)y=-1;if(x=0)if(x 0)y=-1;else y=1;else y=1;3.假 设 i=2,执 行 下 列 语 句 后 i 的 值 为(b)oswitch(i)case 1 i+case 2case 3+i break;case 4default:i+;(a)1(b)2(c)3(d)44.已 知 int i=0,x=0;下 面 while语 句 执 行 时 循 环 次 数 为(dwhile(!x&i 3)x+;i+;(a)4(b)3(c)2(d)15.已 知 int i=3;下 面 do_while语 句 执 行 时 循 环 次 数 为(b)。do i;coutiendl;whi le(i!=1);(a)1(b)2(c)3(d)无 限 6.下 面 for语 句 执 行 时 循 环 次 数 为(b)。int i;for(i=0,j=5;i=j;)cout i j endl;i+;j;)(a)0(b)5(c)10(d)无 限 7.以 下 死 循 环 的 程 序 段 是(b)o(a)int x;for(int x=0;x=0);(c)int a=5;while(a)a一;(d)int i=3;for(;i;i);2.2 阅 读 下 列 程 序,写 出 执 行 结 果 1.#includeusing namespace std;int main()int a,b,c,d,x;a=c=0;b=1;d=20;if(a)d=d-10;else if(!b)if(!c)x=15;else x=25;cout d endl;)【解 答】202.#includeusing namespace std;int main()int a=0,b=1;switch(a)case 0:switch(b)case 0:cout a=a b=zbendl;break;case 1:cout a=a b=zbendl;break;)case 1:a+;b+;cout a=b=1,bendl;)【解 答】a=0 b=1a=1 b=23.#includeusing namespace std;int mainO int i=1;while(i=10)if(+i%3!=1)continue;else cout i endl;)【解 答】47104.include using namespace std;int mainO int i=0,j=5;do i+;j-;if(i3)break;while(j0);cout i=i=j endl;【解 答】i=4 j=15.#includeusing namespace std;int main()int i,j;for(i=l,j=5;ij;i+)j;cout tJ jendl:)【解 答】3 36.#includeusing namespace std;int mainO int i,s=0;for(i=0;i5;i+)swi tch(i)case 0case 1case 2s+=i;s+=i;s+=i;break;break;break;default:s+=2;)cout,zs=z,sendl;)【解 答】s 二 77.#includeusing namespace std;int mainO int i,j,x=0;for(i=0;i=3;i+)x+;for(j=0;j=3;j+)if(j%2)continue;x+;)x+;cout x=x endl;)【解 答】x 二 162.3 思 考 题 L C+中 有 什 么 形 式 的 选 择 控 制 语 句?归 纳 它 们 语 法 形 式、应 用 场 合。根 据 一 个 实 际 问 题 使 用 不 同 的 条 件 语 句 编 程。【解 答】语 句 使 用 方 式 使 用 场 合 i f 语 句 if(表 达 式)语 句 1:e l s e 语 句 2;需 要 对 给 定 的 条 件 进 行 判 断,并 根 据 判 断 的 结 果 选 择 不 同 的 操 作。适 用 于 复 杂 的 条 件 表 达 式 判 断。sw itch语 句 swi tch(表 达 式)c a s e常 量 表 达 式 1:语 句 1;c a s e常 量 表 达 式 2:语 句 2;根 据 整 型 表 达 式 的 不 同 值 决 定 程 序 分 支 的 情 况。适 用 于 判 断 表 达 式 简 单,需 要 多 个 分 支 处演 示 程 序:程 序(1)c a s e常 量 表 达 式 n;语 句 n;default:语 句 n+1;)理 的 情 况。此 程 序 用 if输 出 等 级 对 应 的 分 数 段/A-=90,B-(90,80,C-(80,70,D-(70,60,E-60#includeusing namespace std;int main()char gd;coutgd;直 到 输 入 有 效 等 级,否 则 程 序 不 继 续 运 行 whi le(!(gd=,A*&gd=a&gd=e)coutz,Invalid grade!Please retry:;cingd;if(gd=,A*|I gd=,a)cout/znScored 90-100else if(gd=B|gd=b)cout/znScored 80-89!n,z;else if(gd=C I!gd=c)cout=90,B-(90,80,C-(80,70,D-(70,60,E-60#includeusing namespace std;i nt mai n()char gd;cout=,A*&gcK=E)I:(gd=a&gd-e*)coutz,Invalid grade!Please retry:;cingd;swi tch(gd)case A:case a:coutz/nScored 90-100!;break;case B:case b:coutz/nScored 80-89!n,z;break;case C:case*c*:cout,znScored 70-79!n;break;case D:case d:cout/znScored 60-69!Xn*;break;case E:case J:cout/znScore under 60!n;break;default:cout1、false工 达 方 万-I1 true程 序 中 常 用 于 根 据 条 件 执 行 操 作 而 不 需 关 心 循 环 次 数 的 情 况。先 判 断 形 式 循 环,条 件 不 成 立 循 环 体 时 不 进 入 循 环 体。rwhile语 句 的 执 行 流 程 程 序 中 常 用 于 根 据 条 件 执 行 操 作 而 不 需 关 心 循 环 次 数。后 判 断 形 式 循 环,至 少 执 行 1次 循 环 体。一 般 情 况,while语 句 和 dowhile语 句 可 以 互 换 使 用。语 句 循 环 体 while(表 达 式);循 环 条 件:表 达 式 值 为 非 0(真)循 环 结 束 条 件:表 达 式 值 为 0(假)循 环 体|falsedo_whi 1 e语 句 执 行 流 程for语 句 for(表 达 式 1;表 达 式 2;表 达 式 3)循 环 体;1)表 达 式 1称 为 初 始 化 表 达 式,不 是 循 环 体 执 行 部 分。(2)表 达 式 3 称 为 后 置 表 达 式,作 为 循 环 体 的 最 后 一 个 执 行 表 达 式。(3)循 环 条 件:表 达 式 2 值 为 非 0(真)循 环 结 束 条 件:表 达 式 2 值 为 0(假)1for语 句 称 为 步 长 循 环 语 句,通 常 用 于 确 定 循 环 次 数 的 情 况。由 于 语 句 的 3 个 表 达 式 均 可 以 缺 省,也 可 以 用 于 条 件 循 环,即 循 环 次 数 不 确 定 的 情 况。表 达 式 Ir1 truefals循 环 体 J表 达 式 s1for1语 句 的 执 行 流 程 3.根 据 一 个 实 际 问 题,用 不 同 的 循 环 语 句 编 程,分 析 其 优 缺 点。【解 答】略。4.用 if语 句 和 got。语 句 组 织 循 环,改 写 思 考 题 的 笫 3 小 题 编 写 的 程 序。分 析 在 什 么 情 况 下 可 以 适 当 使 用 goto语 句。【解 答】在 不 破 坏 程 序 基 本 流 程 控 制 的 情 况 下,可 以 适 当 使 用 goto语 句 实 现 从 语 句 结 构 内 部 向 外 的 必 要 跳 转,即 按 特 定 条 件 结 束 结 构 语 句 块 的 执 行。程 序 略。5.有 以 下 程 序#includeusing namespace std;int main()char c;cinc;if(c=,/|c=,Y,)int a=l;elseint a=0;coutz,a=/zaend 1;)编 译 错 误 为:error C2065:*a:undeclared identifier,指 示 变 量 a 没 有 定 义。请 分 析 原 因,并 做 出 修 改。【解 答】变 量 a的 定 义 不 应 该 放 在 if-else语 句 体 中。说 明 语 句 和 执 行 语 句 的 执 行 时 机 不 同。变 量 说 明 要 求 在 编 译 时 定 义 存 储 空 间,而 if-else是 执 行 语 句,程 序 运 行 后 才 执 行。正 确 的 程 序 是:#includeusing namespace std;int mai n()char c;int a;cinc;if(c=y|c=Y,)a=l;elsea=0;cout*a=*aendl;6.有 以 下 程 序,希 望 判 断 两 个 输 入 的 整 数 是 否 相 等。程 序 通 过 编 译,但 不 能 达 到 预 期 结 果。请 分 析 程 序 能 够 通 过 C+编 译 而 不 能 得 到 期 望 结 果 的 原 因。#includeusing namespace std;int main()int a,b;cout/za:cina;coutb;if(a=b)couta 等 于 bendl;else 不 等 于“bendl;)程 序 运 行 后,输 入 a 的 值 为 4,b 的 值 为 9,显 示 结 果 如 下:a:4b:99 等 于 9【解 答】在 if语 句 的 判 断 表 达 式(a=b)中,赋 值 号“二”应 该 是 逻 辑 等“=o 从 语 法 上,C+的 if语 句 把 a=b这 个 赋 值 表 达 式 视 为 逻 辑 表 达 式,没 有 编 译 错 误。a二 b 的 值 决 定 于 b。若 b 的 输 入 值 不 等 于 0,if作 为 逻 辑 真(true),否 则 作 为 逻 辑 假(false)。所 以,题 目 中 输 入 b 的 值 虽 然 不 等 于 a,但 表 达 式 a二 b 为 逻 辑 true,执 行 了 if语 句 的 第 1个 分 支。2.4 编 程 题 1.输 入 某 学 生 成 绩,若 成 绩 在 85分 以 上 输 出“very good,若 成 绩 在 60分 到 85分 之 间 输 出“good”,若 成 绩 低 于 60分 输 出 no good。【解 答】#includeusing namespace std;int main()double score;cout,z pl ease input score:;cin score;if(score=85)cout=60)cout Good!”;else cout No good!;)2.输 入 三 个 整 数,按 从 小 到 大 的 顺 序 输 出 它 们 的 值。【解 答】#includeusing namespace std;int main()int a,b,c,t;cout a,b,c二;cin a b c;if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;cout a t b t c endl;)3.输 入 三 角 形 的 三 条 边,判 别 它 们 能 否 形 成 三 角 形,若 能,则 判 断 是 等 边、等 腰、还 是 一 般 三 角 形。【解 答】#includeusing namespace std;int main()doubl e a,b,c;cout a,b,c=;cin a b c;if(a+b c&b+c a&c+a b)if(a=b&b=c)cout”等 边 三 角 形!endl;else if(a=b|I a=c I|b=c)cout 等 腰 三 角 形!endl;else cout“,般 三 角 形!endl;elsecout 不 能 形 成 三 角 形!endl;)4.输 入 百 分 制 成 绩,并 把 它 转 换 成 五 级 分 制,转 换 公 式 为:A(优 秀)90-100B(良 好)8 0-89grade(级 别)=,C(中 等)7 0-7 9D(合 格)6 0-6 9E(不 合 格)0-5 9【解 答】#includeusing namespace std;int mainO double score;char grade;cout score;if(score=0&score=100)switch(casecasecasecasecasecasecasecasecasecasecaseint(score)10:9:grade=8:grade=7:grade=6:grade=5:4:3:2:1:0:grade=/10)a;breakb;breakc*;breakd;breake;break)cout 数 据 输 入 错 误!endl;goto)end;cout grade endl;end:分 号 不 能 省)5.编 程 序 模 拟 剪 刀、石 头 和 纸 游 戏。游 戏 规 则 为:剪 刀 剪 纸,石 头 砸 剪 刀,纸 包 石 头。玩 游 戏 者 从 键 盘 上 输 入 s(表 示 剪 刀)或 r(表 示 石 头)或 p(表 示 纸),要 求 两 个 游 戏 者 交 替 输 入,计 算 机 给 出 输 赢 的 信 息。【解 答】#includeusing namespace std;int main()char firs t,second;cout”F irst input(s,r or p)cin firs t;cout”Second input(s,r or p)cin second;switch(f ir s t)case s:switch(second)case s:cout Scissor tie s scissor.end 1;goto end;case r:cout”Scissor is crushed by rock.*endl;goto end;case p:cout”Scissor cuts paper./z endl;goto end;default:cout second input e r r o r!endl;goto end;)case r*:switch(second)s:cout Rock crushes scissor.endl;goto end;case r:cout Rock tie s rock.endl;goto end;case p cout”Rock is wrapped by paper.endl;goto end;default)case p:cout”second input erro r!swi tch(second)casecase endl;goto end;s:cout Paper is cut by scissor.endl;goto end;r:cout”Paper wraps the rock.endl;goto end;case pdefault:cout Paper tie s paper.*endl;goto end;cout second input erro r!z/endl;goto end;)default:cout”F irst input error!*endl;goto end;e n d:;)6.输 入 一 个 整 数,输 出 该 整 数 的 所 有 素 数 因 子。例 如,输 入 120,输 出 为 2、2、2、3 和 5。【解 答】#includeusing namespace std;int mainO int m,i=2;cout lease input m:;cin m;while(i=m)if(m%i=0)cout i m=m/i;)else i+;)7.使 用 迭 代 公 式 X,”=(5+a/x.)/2 5=0,1,2,=a/2)编 程 序 求 某 一 正 整 数 a 的 平 方 根。【解 答】#include#includeusing namespace std;int mainO(const double eps=le-8;double a,xO,x;cout”please input a:;cin a;xO=a/2;x=(xO+a/xO)/2;while(fabs(x-x0)eps)xO=x;x=(xO+a/xO)/2;cout x endl;)8.已 知 X=0,10,20,,180,求 sinx,cos彳 和 tan*的 值。【解 答】#include#include#includeusing namespace std;int main()const double pi=3.14159265;in t i;double x,yl,y2,y3;cout setw(2)x setw(15)“sin(x)setw(15)“cos(x)”setw(15)tg(x)en d l;fo r(i=0;i=18;i+)x=i*10*pi/180;yl=sin(x);y2=cos(x);y3=yl/y2;cout setw(2)i setw(15)yl setw(15)y2 setw(15)y3 endl;)9.在 100到 200中 找 出 同 时 满 足 用 3 除 余 2,用 5 除 余 3和 用 7 除 余 2 的 所 有 整 数。【解 答】#includeusing na

    注意事项

    本文(c++习题及其解答(第3版).pdf)为本站会员(奔***)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开