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

    一份C学习资料与习题解答.pdf

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

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

    一份C学习资料与习题解答.pdf

    一 份 C学 习 资 料 与 习 题 解 答 第 1 章 C语 言 程 序 的 基 本 构 成 1.1本 章 要 点 1.用 C 语 句 所 写 的 序 列 称 为 C源 程 序,它 的 后 缀 为.c。C 源 程 序 经 过 编 译(c o m p ile)后 生 成 一 个 目 标 文 件(.o b j),链 接 库 函 数 后 生 成 可 执 行 文 件(.exe)。2.结 构 化 程 序 的 三 种 结 构:顺 序 结 构、选 择 结 构 和 循 环 结 构.(1)顺 序 结 构 的 程 序 是 一 条 语 句 接 一 条 语 句 顺 序 地 往 下 执 行,一 直 到 程 序 结 束。例 如:int x,y;scanf(%d,&x);y=x*x;printf(y=%d n,y);以 上 4 条 语 句,顺 序 地 往 下 执 行。(2)分 支 结 构 指 在 程 序 执 行 过 程 中,程 序 的 流 程 可 由 多 路 分 支 组 成,根 据 不 同 的 条 件 去 执 行 不 同 的 任 务。例 如:int x;if(x0)printff a%d 的 值 大 于 0 n,x);elseprintff a%d 的 值 小 于 0n”,x);以 上 if-e lse语 句 根 据 x 是 否 大 于 0,只 执 行 一 条 分 支。(3)循 环 结 构 是 指 在 程 序 中 需 要 根 据 某 项 条 件 重 复 地 执 行 某 项 任 务 若 干 次,直 到 满 足 或 不 满 足 某 条 件 为 止,这 就 构 成 循 环 结 构。例 如:int x=100/sum=0;while(x=l)(sum=sum+x;)3.算 法 是 指 解 决 问 题 所 使 用 的 一 系 列 合 乎 逻 辑 的 解 题 步 骤,程 序 可 以 认 为 对 算 法 的 具 体 实 现,即:算 法+数 据 结 构=程 序。例 如:有 如 图 所 示 的 环,剪 开 一 个 环 作 为 一 种 操 作,作 怎 么 样 的 最 小 操 作,能 呈 现 最 多 的 状 态?例 如:如 何 在 数 列 23,4,56,-9,100,2,45,0,87,10中 查 找 最 大 数?具 体 的 算 法 为:第。步:比 较 开 始;第 1 步:把 第 1 个 数 2 3作 为 当 前 最 大 值;第 2 步 1 当 前 最 大 值 第 2 个 数 比 较,获 取 当 前 最 大 值 23;第 3 步:当 前 最 大 值 第 3 个 数 比 较,获 取 当 前 最 大 值 56:第 4 步:当 前 最 大 值 第 4 个 数 比 较,获 取 当 前 最 大 值 56;第 5 步:当 前 最 大 值 第 5 个 数 比 较,获 取 当 前 最 大 值 100;第 1 0步:当 前 最 大 值 第 1 0个 数 比 较,获 取 当 前 最 大 值 100;第 1 1步:比 较 结 束。程 序 代 码 为:mt a口 0=23,4,56,9,100,2,45,0,87,10;int i,max;max=a0;for(i=l;imax)max=ai;printf(max=%dn,max);4.流 程 图 是 一 种 用 图 解 方 式 来 说 明 解 决 一 个 方 案 所 需 完 成 的 一 系 列 操 作。例 如:为 了 对 上 述 求 解。5.C 语 言 是 结 构 化 的 程 序 设 计 语 言,C 程 序 由 一 个 或 多 个 文 件 构 成,而 文 件 可 由 一 个 或 多 个 函 数 组 成,函 数 由 语 句 构 成,表 示 语 句 结 束,语 句 由 表 达 式 构 成,表 达 式 由 保 留 字、标 识 符、运 算 符 构 成。(1)函 数 的 原 型 如 下:函 数 返 回 值 函 数 名(形 式 参 数 表);例 如 函 数:double add(double,double);(2)函 数 代 码 类 型 函 数 名(形 式 参 数 声 明)函 数 体 数 据 声 明 部 分 语 句 部 分 例 如 函 数 定 义:double add(double x,double y)/*类 型 函 数 名(形 式 参 数 声 明)*/double z;/*数 据 声 明 部 分*/z=x+y;/*以 下 两 行 为 语 句 部 分*/return z;(3)常 见 的 保 留 字 保 留 字 是 指 C 语 言 中 有 特 殊 含 义 的 字,只 能 用 于 C 语 言 中 特 定 的 场 合。例 如:int:用 于 定 义 整 型 变 量。float:用 于 定 义 实 型 变 量。double:用 于 定 义 双 精 度 变 量。char:用 于 定 义 字 符 变 量 或 字 符 串 变 量。if:用 于 判 断。for:用 于 循 环。while:用 于 循 环。(4)标 识 符 标 识 符 分 为 系 统 命 名 的 标 识 符 与 用 户 自 命 名 标 识 符。通 常 用 户 自 定 义 标 识 符 以 字 母 或 下 划 线 开 头,由 字 母、数 字 和 下 划 线 组 成。6.常 量(1)整 型 常 量 的 表 示 方 法:023、0 x23、2 3等。(2)实 型 常 量 的 表 示 方 法:2.71828,0.0、.54、0.3e2等。(3)字 符 常 量 的 表 示 方 法:W注 意:转 义 字 符 常 量,如,n 1 0 1、1 4 1,只 代 表 一 个 字 符。反 斜 线 后 的 八 进 制 数 可 以 不 用 0 开 头,如 1 0 1,代 表 的 就 是 字 符 常 量 K。反 斜 线 后 的 十 六 进 制 数 只 可 由 小 写 字 母 x 开 头,不 允 许 用 大 写 字 母 X,也 不 能 用 O x开 头,如,X 4 I代 表 字 符 常 量 7V。7.变 量 在 程 序 设 计 中,使 用 变 量 前 都 需 要 定 义,定 义 变 量 意 味 着 给 变 量 分 配 存 储 空 间,变 量 的 定 义 格 式 为:类 型 变 量 名;例 如 定 义 两 个 整 型 变 量 x、yint x,y;在 程 序 中 变 量 的 地 址 是 用“&变 量 名”来 表 示 的。8.字 符 串 字 符 串 常 量 是 由 双 引 号 括 起 来 的 一 串 字 符,如 string就 是 字 符 串 常 量。在 C 语 言 中,系 统 在 每 个 字 符 串 的 最 后 自 动 加 入 个 字 符 0作 为 字 符 串 的 结 束 标 志。(1)字 符 串 的 结 束 符 0占 内 存 空 间,但 在 测 试 字 符 串 长 度 时 不 计 在 内,也 不 输 出。(2)为 字 符 串 的 结 束 符,但 遇 到,0,不 一 定 是 字 符 串 的 结 束,可 能 是 八 进 制 数 组 成 的 转 义 字 符 常 量,如 字 符 串 abc067de表 示 6 个 字 符,并 非 为 3 个,因 067,为 一 个 转 义 字 符。9.运 算 符 在 C 程 序 中 有 极 为 丰 富 的 运 算 符,例 如 算 术 运 算 符、关 系 运 算 符、逻 辑 运 算 符、位 运 算 符 等。(1)算 术 运 算 符 有+、-、*、-、+、-等 操 作。注 意:只 能 适 用 于 整 型 数 运 算,表 达 式 y=(x+)与 丫=*+等 同。(2)关 系 运 算 符 主 要 用 于 比 较,、=、=的 优 先 级 高 于=、!=逻 辑 运 算 符 有 逻 辑 与&、逻 辑 或|和 逻 辑 非!。(4)位 运 算 符 有、&、|、八、10.编 辑 C程 序 时 应 注 意 的 问 题 编 辑 C 程 序 对 应 注 意 的 问 题 如 下:(1)C 程 序 中 区 分 大 小 写 字 母,书 写 格 式 自 由,一 行 内 可 写 几 个 语 句。(2)用“;”作 为 语 句 的 结 束 标 记。(3)函 数 定 义 如:main()、命 令#include stdio.h、#define PI 3.14159不 是 语 句,后 面 不 能 用;号。(4)注 释 用 符 号“/*”和“*/”来 界 定,“/”和“*”之 间 不 可 以 有 空 格。(5)可 运 行 程 序 中 必 须 有 一 个 m ain函 数,且 只 能 有 一 个 m ain函 数。(6)个 好 的 程 序 应 该 有 详 细 的 注 释。1.2课 本 练 习 参 考 答 案 一、选 择 题 1.()是 构 成 C 语 言 程 序 的 基 本 单 位。A.函 数 B.过 程 C.子 程 序 D.文 件 2.()是 C 语 言 提 供 的 合 法 的 数 据 类 型 关 键 字。A.float B.signed C.integer D.char3.以 下 选 项 中 不 合 法 的 用 户 标 识 符 是(A.abc.c B.file C.Main D.printf4.以 下 选 项 中 不 合 法 的 用 户 标 识 符 是(A.1 2 3 B._12 C.A$D.Dim)o)o5.合 法 的 C 语 言 字 符 常 数 是()oA.084 B.A C.ab D.x436.合 法 的 C 语 言 字 符 常 数 是()oA.t B.A C.54 D.A7.合 法 的 C 语 言 长 整 型 常 数 是().A.OL B.5712700 C.0.054838743 D.2.1869el08.C 语 言 中,要 求 运 算 数 必 须 是 整 型 的 运 算 符 是().A.%B./C.D.!9.以 卜.选 项 中 正 确 的 整 型 常 量 是()。A.12.B.-20 C.1,000 D.045810.以 下 选 项 中 正 确 的 实 型 常 量 是()。A.0 B.3.1415 C.0.329X102 D.+.87111.以 卜 选 项 中 不 正 确 的 实 型 常 量 是().A.2.607E-1 B.0.8103e2 C.77.77 D.456e-2.0参 考 答 案:1.A 2.B 3.A 4.A 5.D 6.A7.A 8.A 9.B 10.B 11.D第 2 章 输 入/输 出 程 序 设 计 2.1本 章 要 点 1 字 符 串 的 格 式 输 入 与 输 出 在 计 算 机 程 序 设 计 中 最 基 本 的 就 是 输 入 与 输 出,输 入 与 输 出 与 变 量 的 类 型 有 关,例 如 用 printf.sc a n f的 格 式 符 d、lf、%c、%5控 制 整 型 变 量、双 精 度 变 量、字 符 变 量、字 符 串 的 输 入 与 输。(1)字 符 串 的 输 出 字 符 串 的 输 出 分 两 种 情 况:直 接 输 出 格 式:printf(输 出 字 符 串”);例 如:printf(*”);printf(“请 您 输 入”);格 式 输 出 格 式:printff%s”,字 符 串 变 量 地 址,);例 如:char str20=a b e d;printf(字 符 str 的 s%s n 内 容 是,str);(2)字 符 串 的 输 入 格 式:scanf(s”,字 符 串 变 量 地 址,);例 如:char str20;scanf(%s”,str);注 意:scanf输 入 以 空 格 为 分 隔。在 上 式 中 如 输 入:123 4567 abed(回 车)字 符 串 s t r的 内 容 为:1 2 3,数 组 名 代 表 此 数 组 的 首 地 址。2 整 型 数 的 格 式 输 入 与 输 出(1)整 型 数 的 格 式 输 出 格 式:printff u%d”,整 型 变 量 或 整 型 数,);例 如:int x=0 x 2 0;printf(x=0%o,x=0 x%x,x=%d y=%-5dn,x,x,x,200);(2)整 型 数 的 格 式 输 入 格 式:scanf(d”,整 型 变 量 地 址,);例 如:int x,y;scanf(%d%d”,&x,&y);此 时 要 注 意 输 入 的 两 个 整 数 用 空 格 分 隔,如 果 语 句 写 成:scanf(%d,%d,&x,&y);则 输 入 的 两 个 整 数 用,分 隔。3 双 精 度 数 的 格 式 输 入 与 输 出(1)双 精 度 数 的 格 式 输 出 格 式:printf(lf;双 精 度 变 量 或 双 精 度 数,);例 如:double y=0.51347e-3;printf(%-6.3lfn”,y);(2)双 精 度 数 的 格 式 输 入 格 式:scanf(%lf”,双 精 度 变 量 地 址,);例 如:double y;scanf(“%lf”,&y);注 意:在 双 精 度 数 输 入 时 不 能 控 制 精 度,例 如 下 列 语 句 是 错 误 的:double y;scanf(%6.2lf,&y);4 字 符 的 格 式 输 入 与 输 出(1)字 符 的 格 式 输 出 格 式:printf(%c”,字 符 变 量 或 字 符,);(2)字 符 的 格 式 输 入 格 式:scanf(%c”,字 符 变 量 地 址,);例 如:char chl,ch2;scanf(%c%c”,&chl,&ch2);printf(,%c%c%dn,chl,ch2,chl-ch2);注 意:(1)printf 可 以 有 修 饰 符,例:%6.2f、-5d、2c 等;(2)scanf输 入 在 变 量 地 址,输 入 时 必 须 与 控 制 格 式 一 一 对 应;(3)scanf输 入 时 或 肝 不 可 以 有 精 度 控 制,在 s 时 输 入 以 空 格 为 分 割;(4)字 符 串 的 输 入 可 以 使 用 函 数 gets、字 符 串 的 输 出 可 以 使 用 函 数 puts。例 如:char str100;gets(str);puts(str);2.2课 本 练 习 参 考 答 案 1.用 函 数 printf输 出 一 个 中 空 的 三 角 星。#includevoid main()(printtf*);printf(*);printtf*);)2.从 键 盘 输 入 两 个 整 型 数,实 现 两 个 整 型 数 的 互 换。#includevoid main()(printffEnter two integer:n);int xl,x2,x;scanf(%d%dz&xl,&x2);x=xl;xl=x2;x2=x;printf(%d,%d”,xl,x2);)3.从 键 盘 输 入-个 三 位 的 整 数,分 别 输 出 它 的 个 位 数、十 位 数、百 位 数。#includevoid main()printf(Enter one integer:n);int x,yl,y2,y3;scanf(%d/&x);yl=x%10;x=x/10;y2=x%10;x=x/10;y3=x%10;printf(个 位:%d,十 位:%d,百 位:%dn,y lzy2/y3);)4.写 出 以 下 程 序 的 输 出 结 果。#includevoid main()int i=010,j=10;printf(,%d/%dn/+i j-);)答 案:9,105.编 写 程 序,屏 幕 提 示“您 是 一 个 学 生 吗”,可 输 入 V 或 次 进 行 回 答,屏 幕 可 输 出 您 的 选 项。#includevoid main()char x;printf(您 是 一 个 学 生 吗?您 输 入 V 或 n进 行 回 答:n“);scanf(%c,&x);if(x=y)printf(您 是 一 个 学 生 n“);elseprintf(您 不 是 一 个 学 生 n“);)6.从 键 盘 输 入 一 个 角 度 x,求 10*sin(x)的 值。#include#includevoid main()printffEnter one integer:n);float x;scanf(%f,&x);printf(10*sin(x)=%fn/10*sin(x);第 3 章 循 环 程 序 设 计-本 章 要 点 与 习 题 解 答 3.1 本 章 要 点 1.while 循 环 W hile循 环 的 格 式 如 下:while(条 件 表 达 式)(循 环 体)首 先 判 断 循 环 的 条 件 是 否 满 足,如 条 件 满 足 则 执 行 循 环 体,条 件 不 满 足 则 退 出 循 环 体,此 种 循 环 有 可 能 循 环 体 一 次 也 不 执 行。例 如:while(ch=getchar()!=,#)if(ch=,A&ch=,Z)putchar(ch);)注 意:在 循 环 体 中 不 止 一 条 语 句 时 要 形 成 语 句 块,在(ch=getchar()中,括 号 不 能 省 略。2.do-while 循 环 do-while循 环 是 后 判 断 循 环,不 论 循 环 的 条 件 是 否 满 足,循 环 体 至 少 应 执 行 一 次,do-while循 环 的 语 句 格 式 如 下:do(循 环 体 while(表 达 式);例 如:int sum=0,x;do(scanf(%d”,&x);sum+=x;while(x);w hile与 dowhile在 循 环 条 件 不 满 足 时 是 有 区 别 的,例 如:语 句 段:int n;scanf(%d,&n);while(n)(printf();n-;)语 句 段:int n;scanf(%d,&n);do(printf(y);n-;while(n);dowhile在 条 件 不 满 足 时 还 要 执 行 次。3.fo r循 环 C 语 言 中 的 f o r循 环 语 句 应 用 比 较 灵 活,虽 然 主 要 用 于 定 数 循 环,但 也 可 以 不 定 数 循 环,它 完 全 可 以 替 代 w hile循 环。fo r语 句 格 式 如 下:for(初 始 化 表 达 式;条 件 表 达 式;增 量 表 达 式)循 环 体)例 如:for(;(ch=getchar()!=,#;)if(ch=,A&ch=Z)putchar(ch);4.break语 句 和 continue语 句 break语 句 可 应 用 于 循 环 体 中 或 sw itch语 句 中。在 循 环 中,当 程 序 执 行 到 break语 句 后,立 即 退 出 循 环;在 多 分 支 语 句 中,程 序 遇 到 break语 句 时,停 止 以 下 分 支 的 执 行。continue语 句 只 能 位 于 循 环 体 内,执 行 continue语 句 后,continue语 句 到 循 环 体 末 尾 之 间 的 语 句 会 被 跳 过,转 到 循 环 条 件 判 断 处,根 据 循 环 条 件 是 否 执 行 下 一 次 循 环。break语 句 和 continue语 句 往 往 与 if 一 起 使 用。例 如 语 句 段:int n;scanf(%d,&n);while(n)(printf();n-;3.2课 本 练 习 参 考 答 案 1.执 行 语 句 for(i=0;i+5;);后,变 量 i 的 值 是(A.6 B.5 C.4 D.0答 案:A2.若 inti=O;下 列 语 句 计 算 1+2+1 0的 是()A.while(s+=i);B.for(;i=10;i+,s+=i)C.for(;i=10;s+=ij+)D.for(;i9;i+/s+=i)答 案:C3.以 下 不 是 死 循 环 的 语 句 是()0A.for(;x+);B.while x+;C.doi+;while(l)D.for(x=-10;x+;)答 案:D4.以 下 fo r语 句 的 循 环 次 数 是()oint ij=3;fo r(;i=j;i-J-)printf(%d,i);A.2 B.3 C.4 D.O答 案:B5.若 in t i,x;则 语 句 for(i=x=0;i9:i+=+x);的 循 环 体 要 执 行()次。答 案:36.下 面 的 语 句 显 示 输 出 6 行 6 列 的 整 数 数 组 h 的 从 左 上 角 到 右 下 角 主 对 角 线 上 的 所 有 元 素,请 补 充 完 整:forjint i=0;i;)printf(%dz);答 案:for(int i=0;i 6;i+)printf(”%d,hii);7.写 出 以 下 程 序 运 行 的 结 果,此 程 序 实 现 了 什 么 功 能?#includevoid main()int a10=2,4,0,-5,10,6,-8,9,6,7;int i,count=0;for(i=0;i10;i+)if(ai=O)count+;else continue;printf(%dn,count);答 案:此 程 序 功 能:统 计 数 组 中 0 的 个 数。8.写 出 以 卜.程 序 的 功 能。#includevoid main()int a10=2,4,0,-5,10,6,-8,9,6,7,tmp,k;for(k=0;k10/2;k+)(tmp=ak;ak=a10-k-l;a10-k-l=tmp;)答 案:此 程 序 功 能 是 第 一 个 位 置 上 的 数 和 最 后 一 个 位 置 上 的 数 交 换,第 二 个 位 置 上 的 数 和 最 后 二 个 位 置 上 的 数 交 换,依 次 类 推。9.写 出 以 下 程 序 运 行 后 的 输 出 结 果。#includevoid main()(int ij;for(i=0;i6;i+)(for(j=0;ji;j+)printff);for(j=0;j2*(5-i)-l;j+)printf(*H);printf(n);答 案:此 程 序 功 能:输 出 倒 三 角,具 体 如 下 图 所 示。*1 0.以 卜 程 序 功 能 为 求 1 加 到 1 0 0的 和。请 改 正 卜 列 程 序 的 错 误,改 正 后 的 程 序 写 在 右 边 的 空 白 处,并 上 机 调 试 检 验。(1)#includevoid m ain()int i,s;i=l;s=0;while(i=100);s=s+i;i+;printf(,l+2+3+.+99+100=%dn/s);)答 案::#includevoid m ain()(int i,s;i=l;s=0;while(i=100)(s=s+i;i+;printf(“1+2+3+.+99+100=%dn,s);(2)#includevoid m ain()int i,s;i=l;s=0;while(i=100)s=s+i;i+;printf(l+2+3+-.+99+100=%dn,s);)答 案:#includevoid m ain()int i,s;i=l;s=0;while(i=100)s=s+i;i+;)printf(l+2+3+,+99+100=%dn/s);)11.输 入 一 个 奇 数,例 如 输 入 9,输 出 为:求 1*3*.*9的 值。输 出 为:l*3*5*7*9=945o参 考 答 案:#includemain()int xj;long int y=l;printf(Please input an odd number:n);scanf(%d,&x);for(i=l;i=x;i+=2)y=y*i;if(i!=x)printf(%d*”,i);if(i=x)printf(%d,i);printf(=%ldnzy);12.输 入 一 个 510之 间 的 整 数 n,求 l!+2!+3!+n!。例 如,输 入 5,输 出 为:1!+2!+3!+5!=1530参 考 答 案:#includemain()int x,i,j;long int y=O,k=l;printffPlease input a number between 5 and 10:n);scanf(“%d”,&x);for(i=l;i=x;i+)k=k*i;y=y+k;)printf(y=%ldn,y);)13.在 屏 幕 上 输 出 以 下 内 容:112123123412345123456123456712345678123456789参 考 答 案:#includemain()int ij;for(i=l;i=9;i+)for(j=l;j=i;j+)printf(%clj);printffXn);)14.求 2+4+6+98+100的 和,用 多 种 fo r表 达 式 来 完 成。参 考 答 案:#includevoid main()int i,sum=0;for(i=2;i=100;i+=2)sum=sum+i;printf(sum=%dn,sum);)15.输 入 个 自 然 数,输 出 它 的 因 子。例 如 输 入 1 2,输 出 2,2,3;输 入 7,输 出 7。参 考 答 案:#includemain()int numbeoi=2;printf(Please input a numberin);scanf(%d”,&number);printf(The factors of%d are:n,number);while(i=number)if(number%i=O)(printf(%d J);number=number/i;)else i+;)16.输 入 一 行 字 符,统 计 它 有 多 少 个 字 母?参 考 答 案:#includevoid main()char ch100;int i,j,num=0;printffPlease input letters:n);for(i=l;i100;i+)chi=getchar();if(chi=n)break;)for(j=l;j=a&chO=A&chj=,Znum+;printffThe number of the letters are%d,num);)17.猜 数 字 游 戏,编 写 个 程 序,随 机 产 生 个 正 整 数,让 人 猜 这 个 数 字,每 猜 1 次,计 算 机 会 告 诉 他 是 大 了 还 是 小 了。当 猜 对 了,计 算 机 将 祝 贺 他,并 告 诉 他 一 共 猜 了 多 少 次。提 示:程 序 中 num将 产 生 随 机 产 生 个 正 整 数。参 考 答 案:ttinclude#include#include#include int main(void)int num,guess,times;srand(unsigned)time(NULL);num=rand();printffPlease guess the number:n);for(times=l;timesnum)printf(Too big!Input O to show the answer?Or guess on!n*);else if(guess0)printff uv=%lfn,zvO+a*tO);printf(Ms=%lfnw zvO*tO+l.O/2*a*tO*tO);)(2)if else语 句 if(表 达 式)语 句 块 1else语 句 块 2功 能:如 果 表 达 式 的 结 果 为“真”(非 0),则 执 行 语 句 块 1:否 则,执 行 语 句 块 2。例 如:输 入 一 个 整 数,判 断 此 整 数 能 否 被 3 整 数。int x;scant)%d,&x);if(x%3=0)printf(d 能 够 被 3 整 除 n);elseprintff u%d不 能 够 被 3整 除 n);(3)if(表 达 式 1)语 句 块 1else if(表 达 式 2)语 句 块 2else if(表 达 式 n-1)语 句 块 n-1else语 句 块 n功 能:从 上 到 下 依 次 判 断 表 达 式 的 值,当 出 现 某 个 值 为 真(非 0)时,执 行 与 其 相 对 应 的 语 句,并 跳 过 其 余 条 件 的 判 别;如 果 所 有 的 表 达 式 均 为 假(0),则 执 行 语 句 n。if(表 达 式 1)语 句 块 1else if(表 达 式 2)语 句 块 2else if(表 达 式 n-1)语 句 块 n-1else语 句 块 n功 能:从 上 到 下 依 次 判 断 表 达 式 的 值,当 出 现 某 个 值 为 真(非 0)时,执 行 与 其 相 对 应 的 语 句,并 跳 过 其 余 条 件 的 判 别;如 果 所 有 的 表 达 式 均 为 假(0),则 执 行 语 句 n。2.switch 语 句 switch语 句 格 式 如 下:switch(表 达 式)c a s e常 量 表 达 式 1:语 句 序 列 1break;c a s e常 量 表 达 式 2:语 句 序 列 2break;c a s e常 量 表 达 式 n:语 句 序 列 nbreak;default:语 句 序 列 n+1)当 执 行 sw itch语 句 时,首 先 计 算 紧 跟 其 后 一 对 括 号 中 的 表 达 式 的 值,然 后 在 sw itch语 句 体 内 寻 找 与 该 值 吻 合 的 case标 号,如 果 有 与 该 值 相 等 的 标 号,则 执 行 该 标 号 后 开 始 的 各 语 句,包 括 在 其 后 的 所 有 case和 default中 的 语 句,直 到 break语 句 或 sw itch语 句 体 结 束;如 果 没 有 与 该 值 相 等 的 标 号,并 且 存 在 default标 号,则 从 default标 号 后 的 语 句 开 始 执 行,直 到 sw itch语 句 体 结 束:如 果 没 有 与 该 值 相 等 的 标 号,且 不 存 在 default标 号,则 跳 过 sw itch语 句 体,什 么 也 不 做。4.2课 本 练 习 参 考 答 案 1.i f语 句 的 表 达 式 要 表 示 判 断 条 件“x 不 等 于 0,下 面 表 达 式 写 法 中 正 确 的 是()。A.x=0 B.x C.!x D.x0答:B2.以 下 程 序 的 输 出 结 果 是 什 么?#includevoid main()(int x=l,y=-10;if(x+y)if(y-0)x+=y;else x+=3*y;else x=3*y;printf(%dn”,x);)答:273.以 下 程 序 段 对 输 入 的 两 个 整 数 按 从 小 到 大 输 出,请 补 充 缺 少 的 语 句。int x,y;scanf(%d%dz&x/&y);if()printf(%d/%dnzx/y);elseprintf(,%d,%dnzyzx);答:x=A&ch=a&ch=,z5.编 号 程 序,功 能 为 输 入 若 干 整 数 给 x,使 用 i f语 句 输 出 x 的 绝 对 值,当 输 入 0 时 结 束。#includevoid main()int i;scanf(”%d”,&i);while(i)(if(i0)printf(%d”厂 i);elseprintf(%d J);scanf(%d,&i);)6,编 写 程 序,功 能 为 将 输 入 字 符 的 大 写 字 符 转 换 成 小 写 字 符 输 出,小 写 字 符 原 样 输 出。#includevoid main()char s;while(s=getchar()!=n)if(s=A&s=Z)s+=32;putchar(s);)7.编 写 程 序,功 能 为 输 入 一 批 字 符,按 回 车 时 结 束,统 计 小 写 字 符 大 写 字 符、数 字 字 符 或 其 他 字 符 的 个 数。#includevoid main()int daxie=0,xiaoxie=0,number=0/others=0;char a;while(a=getchar()!=n)if(a=A&a=a&a=0&a=9)number+=l;elseothers+=l;printf(daxie=%dzxiaoxie=%d,number=%d/others=%dn,daxie/xiaoxieznumber,others);)8.编 写 程 序,计 算 分 段 函 数:#includevoid main()float y,x;printffPlease input x:n);scanf(”f”,&x);if(x=l)y=x+5;else if(x10)y=2*x;elsey=y(x-10);printf(y=%f zy);)9.编 写 程 序,功 能 为 将 输 入 的 百 分 制 成 绩 按 五 分 制 的 成 绩 输 出。百 分 制 与 五 分 制 之 间 的 关 系 见 下 表。百 分 制 五 分 制 90 100580 89 47 0-7 9 360 69 260 1#includevoid main()int i;printf(请 输 入 分 数:”);scanf(“%d,&i);while(i100)printf(请 重 新 输 入 分 数,需 在 0 至 100之 间”);scanf(%dz&i);)if(i=90)printf(相 对 应 的 五 分 制:5n);else if(i=80)printf(相 对 应 的 五 分 制:4 n);else if(i=70)printf(相 对 应 的 五 分 制:3n“);else if(i=60)printf(“相 对 应 的 五 分 制:2n);elseprintf(“相 对 应 的 五 分 制:ln);)10.用 sw itch语 句 完 成 如 卜 功 能:读 入 一 个 实 数 x,再 输 入 一 个 整 数,若 输 入 是 1,则 计 算 sin(x);若 输 入 是 2,则 计 算 c o s(X):若 输 入 是 3,则 计 算 tan(x):若 输 入 其 他 值,则 显 示 错 误 信 息。#include#includeint main()int a;float x;scanf(%f%d/&x/&a);switch(a)case l:printf(y=sin(x)=%f/sin(x);break;case 2:printf(y=cos(x)=%f/cos(x);break;case 3:printf(y=tan(x)=%f/tan(x);break;default:printf(Error!);break;)11.用 sw itch语 句 完 成 如 下 功 能:输 入 星 期 1 到 星 期 5,输 出 它 们 对 应 的 颜 色。星 期 1:blue星 期 2:red星 期 3:white星 期 4:yellow星 期 5:green#includeint main()int weekday;scanf(%d,&weekday);switch(weekday)(case l:printf(blue);break;case 2:printf(red);break;case 3:printf(white);break;case 4:printf(yellow);break;case 5:printf(green);break;default:printf(Error!);break;return 0;)12.用 sw itch语 句 完 成 如 下 功

    注意事项

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

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开