温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
程序设计
应用
教程
题解
实验
高等学校公共课计算机规划教材 C 程序设计与应用教程题解及实验 蔡启先 刘永娟 何春华 等编著 内 容 简 介 本书是C程序设计及应用教程(电子工业出版社出版)一书配套的习题解答与实验教材。内容包括:C 程序设计及应用教程各章的题解、结合新的全国计算机等级考试要求补充的练习题、Visual C+/Turbo C上机指导、常见上机错误与纠错方法,以及与教材同步的 C 程序设计实验,附录提供了补充练习题答案等相关资料。书中提供的全部程序都按照结构化程序设计方法采用统一的缩格方式编写,并经上机验证。为便于读者自学,程序中添加了大量注释。本书可独立地作为学习 C 语言和实践上机的必备参考书,可作为高等学校各专业、计算机水平考试、各类成人教育的教材,也可作为从事计算机应用的科技人员的参考书和培训教材。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 C 程序设计与应用教程题解及实验/蔡启先等编著北京:电子工业出版社,2009.1 高等学校公共课计算机规划教材 ISBN 978-7-121-07923-8 C 蔡 C 语言程序设计高等学校教学参考资料 TP312 中国版本图书馆 CIP 数据核字(2008)第 188367 号 策划编辑:冯小贝 责任编辑:余 义 印 刷:装 订:出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编 100036 开 本:7871092 1/16 印张:15.5 字数:397 千字 印 次:2009 年 1 月第 1 次印刷 印 数:4000 册 定价:25.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。服务热线:(010)88258888。III 前 言 C 语言是国内外广泛流行的计算机高级程序设计语言。目前,C 语言程序设计课程不仅是计算机科学与技术专业的必修专业基础课,而且已成为非计算机专业的一般计算机应用人员学习计算机高级语言的首选课程。该课程实践性强,课外练习和上机训练尤为重要。为适应高等学校学生及广大计算机爱好者和应用人员的需要,我们曾编写了C 程序设计及应用教程(电子工业出版社出版),为了更好地发挥教材的作用,充分调动学生自主学习的积极性,特编写本书。全书分为 4 大部分。第 1 部分“习题题解”中,对主教材中各章后面的编程练习题均给出解答,并在程序清单中列出必要的注释,以便读者在独立解题后进行参考。众所周知,解题的算法是多种多样的,因此本书中给出的解答并非唯一,读者可从中悟出思路,获得启发。第 2 部分精心编写了“补充练习题”。补充练习题在内容取舍、题型上参照了全国计算机等级考试的要求,结合了高等学校的教学实际,为读者巩固 C 语言基础知识,加强编程的基本训练和参加计算机等级考试进行了准备。补充练习题的参考答案列于附录 B 中。第 3 部分是“上机指导”,详细介绍了以 Visual C+为主开发 C 程序的实践,同时兼顾了传统的 Turbo C 操作,并根据作者长期的教学经验,总结分析了一些常见的错误类型与纠错方法,分类提供给读者参考。读者可依据这部分的知识顺利完成 C 程序的上机编程和调试。第 4 部分是“C语言程序设计实验”,这是配合主教材教学而提供的上机实验教材。每一个实验均有“实验目的”、“实验准备”、“实验内容”和“实验报告要求”,都与教材的相应章节内容同步,既方便学生自主准备实验和独立上机操作,也便于教师结合教材安排和指导学生实验。本书附录提供的相关资料便于读者上机时查阅了解出错信息,以及了解全国计算机等级考试的要求。书中提供的全部程序都按照结构化程序设计方法采用统一的缩格方式编写,并经上机验证。全书由蔡启先、刘永娟、何春华、刘智和刘智琦等编著。由蔡启先教授担任主编著,刘永娟、何春华担任副主编著。其中,第 1 部分由蔡启先(第 1 章习题题解)、何春华(第 2,3章习题题解)、朱亚超(第4,5,7 章习题题解)、刘永娟(第6,8 章习题题解)、刘琦(第9,10 章习题题解)编写,第 2 部分和附录 B 由刘永娟和刘智共同编写,第 3 部分和附录 A、附录 C 由蔡启先编写,第 4 部分实验由何春华、刘智琦共同编写,最后由蔡启先统稿。在全书编写过程中,得到了作者所在单位广西工学院的大力协助,电子工业出版社责任编辑对本书的编写和出版自始至终进行了非常宝贵的指导和支持,谨在此一并致谢。在本书编写过程中,借鉴了若干出版物,也在此向有关作者表示感谢。由于编写时间仓促,错误在所难免,敬祈专家和读者指正。作 者 2008 年 10 月 V 目 录 第 1 部分 习题题解(1)第 1 章 C 程序设计概述(1)第 2 章 数据类型和表达式(3)第 3 章 算法的基本控制结构(7)第 4 章 函数 (10)第 5 章 数组和字符串(17)第 6 章 指针 (25)第 7 章 模块化程序设计(37)第 8 章 构造数据类型(46)第 9 章 位运算(52)第 10 章 文件(56)第 2 部分 补充练习题(63)第 1,2 章 C 语言概述及数据类型与表达式(63)第 3 章 算法的基本控制结构(69)第 4 章 函数 (77)第 5 章 数组 (83)第 6 章 指针 (95)第 7 章 模块化程序设计(106)第 8 章 结构体(114)第 9 章 位运算(121)第 10 章 文件(123)第 3 部分 上机指导(131)第 1 章 概述 (131)第 2 章 Turbo C 程序开发实践(133)第 3 章 Visual C+系统平台上的 C 语言实践 (154)第 4 章 常见上机错误与纠正 (172)第 4 部分 C 语言程序设计实验 (190)实验 1 C 语言上机初步 (190)实验 2 数据类型与表达式 (191)实验 3 选择结构(195)实验 4 循环结构(198)实验 5 函数 (201)VI 实验 6 数组与字符串(204)实验 7 指针 (208)实验 8 C 程序的模块化设计(211)实验 9 构造数据类型(214)实验 10 位运算(217)实验 11 文件(219)附录 A C 语言编译常见错误信息列表(222)附录 B 补充练习题答案 (230)附录 C 全国计算机等级考试二级 C 考试大纲(237)参考文献(240)第 1 部分 习 题 题 解 第 1 章 C程序设计概述 1.1 利用 printf()编写一个输出下面信息的 C 程序:One World,One Dream 解:#include void main()printf(n);printf(One World,One Dreamn);printf(n);1.2 编写一个 C 程序,输入圆半径,求圆周长和圆面积。解:#include void main()int r;/设半径 r 为整型(int 型)变量 /float area;/设 area 为实型(float 型)变量 /提示输入圆半径 r,末尾不换行/printf(Input r:);/调用输入函数 scanf(),从键盘输入一个数据给 r/scanf(%d,&r);/计算出圆面积,将结果赋给变量 area/area=3.14159rr;/输出结果,显示 area=字样,n 表示换行/printf(area=%fn,area);1.3 求 s=1+3+5+99。写出算法,画出流程图,编写 C 程序。解:下面是具体的算法(流程图如图 1.1 所示):s0;(累加器 s 赋初值 0)i1;(i 中存放要累加的第一个数)将 i 和 s 的值相加,即 i+ss;(这个过程完成了累加一个数的操作)使 i 的值加 2,即 i+2i;(计算要累加的下一个数)若 i99 则返回继续执行,否则执行;(i99 应返回继续累加 i,否则,已累加完,应执行步骤)打印出 s 的值。下面是程序:#include 图 1.1 习题 1.3 的算法流程图 C 程序设计与应用教程题解及实验 2 void main()int s,i;/设 s,i 为整型变量 /s=0;i=1;/循环前将 s 清零,i 存放要累加的初值/do /dowhile 为循环控制语句/s=s+i;/累加/i=i+2;/计算要累加的下一个数/while(i=99);/循环条件判断/printf(sum=%dn,s);/输出结果,显示 sum=字样,n 表示回车/1.4 有8只乒乓球,其中一只重量较小,其他的质量相同。若用天平来找出较小的那只球,能设计出几种找法?指出哪一种找法在天平上称的次数最少?画出次数最少的找法的操作流程图。解:共有 4 种找法。找法 1(平均称 4 次):天平一端放 1 只乒乓球,其余 7 个球依次放天平另一端进行比较,最快只比较 1 次,最慢要比较 7 次,平均比较次数为(7+1)/2=4 次。找法 2(平均称 2.5 次):将 8 只乒乓球分为 4 组,每组 2 个,分组依次比较。其比较次数最少 1 次,最多 4 次,平均比较次数为(1+4)/2=2.5 次。找法 3(称 3 次):8 只乒乓球分为 2 组,每组 4 个。在天平上比较后,找出较轻的一组。将较轻的一组又分为 2 组,每组 2 个。在天平上比较后,找出较轻的一组。将较轻的一组又分为 2 组,每组 1 个。在天平上比较后,最后找到较轻的那只球。找法 4(称 2 次):8 只乒乓球分为 3 组,头两组每组 3 个,第三组为 2 个。在天平上比较头两个组后,有两种情况:(a)如果相等,则较轻的必在第三组中。(b)如果不等,则较轻的必在头两组中。(a)如果头两组相等,将第三组的 2 个球在天平上比较后,最后找到较轻的那只球。(b)如果头两组不等,从较轻的一组球中任意取 2 个球,在天平上进行比较,若相等,则较轻的球必是该组中未比较的那个球;若不等,则较轻的那只球最后找到。显然,找法 4 次数最少,设 8 只乒乓球分别为 p1,p2,p3,p4,p5,p6,p7,p8,找法4 的操作流程图如图 1.2 所示。图 1.2 习题 1.4 找法 4 的操作流程图 第 1 部分 习 题 题 解 3 1.5 自定义一个函数,能将大写字符变为小写字符。利用主函数完成输入/输出字符的功能,每输入一个字符后调用自定义函数,直至完成 10 个字符的处理。写出算法,画出流程图,并编写 C 程序。解:算法与流程图如图 1.3 所示。图 1.3 习题 1.5 的算法流程图 C 程序如下:#include void main()char ch1,ch2;/设置字符型变量 ch1,ch2/char toupper(char chr);/声明本函数要调用 char 型函数 toupper,有 char 型调用参数/for(i=0;i=A&chr=Z)/判断 chr 是否为大写字母/chr=chr+(a-A);/若 chr 为大写字母,则变为小写字母/retern(chr);/函数返回转换后的字符/第 2 章 数据类型和表达式 2.1 下列哪些是 C 语言合法的常量?每个常量是整型、字符型还是浮点型?(1)077 (2)0 x77 (3)79.(4)079 (5).204 (6)101(7)12.E3.5 (8)e5 (9)ab (10)x41(11)0101 解:整型常量:(1)(2)(11);字符型常量:(6)(10);浮点型常量:(3)(5)。C 程序设计与应用教程题解及实验 4 2.2 求下列表达式的值。(1)a+(int)b%2(int)(a+b)%5/7,其中 a=6.3,b=3.6。(2)(float)(x+y)/3+(int)y%(int)x,其中 x=2,y=5。(3)a =2,a+=a,a=2+3,其中 a=15。解:(1)6.300000 (2)3.333333 (3)130 2.3 下面语句的输出是什么?(1)p