C程序设计学习辅导(第五版)

副标题:无

作   者:谭浩强

分类号:

ISBN:9787302480877

微信扫一扫,移动浏览光盘

简介


本书是与谭浩强所著的《C程序设计(第五版)》(清华大学出版社出版)配合使用的一本重要的参考用书。本书包括4个部分,第1部分是《C程序设计(第五版)》一书的习题和参考解答,包括该书各章的全部习题,对全部编程习题都给出了参考解答,共计132个程序;第2部分是深入学习C程序设计,包括预处理指令、位运算、常见错误分析和C程序案例;第3部分是上机指南,详细介绍Visual C 6.0和Visual Studio 2010集成环境下编辑、编译、调试和运行程序的方法;第4部分是上机实践指导,包括程序的调试与测试、实验的目的与要求,并提供了12个实验。本书内容丰富,实用性强,可以有效地帮助读者学好C程序设计并提高应用水平,不仅可以作为《C程序设计(第五版)》的配套教材,而且可以作为其他版本的C语言教材的参考书;既适合高等学校师生使用,也可供自学者参考。
【目录】

目录

第1部分《C程序设计(第五版)》习题和参考解答

第1章程序设计和C语言1

第2章算法——程序的灵魂4

第3章*简单的C程序设计——顺序程序设计14

第4章选择结构程序设计24

第5章循环结构程序设计37

第6章利用数组处理批量数据54

第7章用函数实现模块化程序设计74

第8章善于利用指针99

第9章用户自己建立数据类型128

第10章对文件的输入输出159

第2部分深入学习C程序设计

第11章预处理指令177

11.1宏定义178

11.1.1不带参数的宏定义178

11.1.2带参数的宏定义181

11.2“文件包含”处理186

11.3条件编译189

第12章位运算193

12.1位运算和位运算符193

12.1.1“按位与”运算193

12.1.2“按位或”运算194

12.1.3“异或”运算195

12.1.4“取反”运算196

12.1.5左移运算197

12.1.6右移运算197

12.1.7位运算赋值运算符198

12.1.8不同长度的数据进行位运算198

12.2位运算举例198

12.3位段200

第13章常见错误分析204

第14章C程序案例219

14.1案例1个人所得税计算219

14.2案例2学生试卷分数统计223

14.3案例3电话订餐信息处理229

第3部分C语言程序上机指南

第15章怎样使用Visual C 6.0运行程序239

15.1Visual C 6.0的安装和启动240

15.2输入和编辑源程序240

15.2.1新建一个C源程序的方法241

15.2.2打开一个已有的程序243

15.2.3通过已有的程序建立一个新程序的方法243

15.3编译、连接和运行243

15.3.1程序的编译243

15.3.2程序的调试244

15.3.3程序的连接247

15.3.4程序的执行248

15.4建立和运行包含多个文件的程序的方法249

15.4.1由用户建立项目工作区和项目文件249

15.4.2用户只建立项目文件253

第16章用Visual Studio 2010运行C程序256

16.1关于Visual Studio2010256

16.2怎样建立新项目257

16.3怎样建立文件260

16.4怎样进行编译262

16.5怎样运行程序263

16.6怎样打开项目中已有的文件264

16.7怎样编辑和运行一个包含多文件的程序265

16.8关于用Visual Studio 2010编写和运行C程序的说明268

第4部分上机实践指导

第17章程序的调试与测试269

17.1程序的调试269

17.2程序错误的类型271

17.3程序的测试273

第18章上机实验的目的和要求278

18.1上机实验的目的 278

18.2上机实验前的准备工作279

18.3上机实验的步骤279

18.4实验报告279

18.5实验内容安排的原则280

第19章实验安排281

19.1实验1C程序的运行环境和运行C程序的方法281

19.2实验2数据类型、运算符和简单的输入输出283

19.3实验3*简单的C程序设计——顺序程序设计286

19.4实验4选择结构程序设计287

19.5实验5循环结构程序设计288

19.6实验6数组289

19.7实验7函数(一)290

19.8实验8函数(二)291

19.9实验9指针(一)292

19.10实验10指针(二)293

19.11实验11用户自己建立数据类型294

19.12实验12文件操作295

参考文献296


【免费在线读】
第5章循环结构程序设计1. 请画出例5.6中给出的3个程序段的流程图。解: 下面分别是教材第5章例5.6给出的程序,据此画出流程图。(1) 程序1: #include <stdio.h>int main( ){int i,j,n=0;for (i=1;i<=4;i )for (j=1;j<=5;j ,n )//n用来累计输出数据的个数{ if (n%5==0) printf (″\\n″);//控制在输出5个数据后换行printf (″%d\\t″,i?j);}printf(″\\n″);return 0;}其对应的流程图见图5.1。运行结果:
(2) 程序2: #include <stdio.h>int main( ){int i,j,n=0;for (i=1;i<=4;i )for (j=1;j<=5;j ,n ){if(n%5==0) printf(″\\n″);//控制在输出5个数据后换行if (i==3 && j==1) break;//遇到第3行第1列,结束内循环printf(″%d\\t″,i?j);}printf(″\\n″);return 0;}其对应的流程图见图5.2。图5.1图5.2运行结果:
遇到第3行第1列时,执行break,结束内循环,进行第4次外循环。(3) 程序3:#include <stdio.h>int main( ){int i,j,n=0;for (i=1;i<=4;i )for (j=1;j<=5;j ,n ){if(n%5==0)printf(″\\n″);//控制在输出5个数据后换行if (i==3 && j==1) continue;//遇到第3行第1列,终止本次内循环printf(″%d\\t″,i?j);}printf(″\\n″);return 0;}其对应的流程图见图5.3。图5.3运行结果:
遇到第3行第1列时,执行continue,只是提前结束本次内循环,不输出原来的第3行第1列的数3,而进行下一次内循环,接着在该位置上输出原来的第3行第2列的数6。请仔细区分break语句和continue语句。2. 请补充教材例5.7程序,分别统计当“fabs(t)>=1e-6”和“fabs(t)>=1e-8”时,执行循环体的次数。解: 例5.7程序是用π4≈1-13 15-17 …公式求π的近似值,直到发现某一项的*值小于10-6为止。根据本题要求,分别统计当fabs(t)>=1e-6和fabs(t)>=1e-8时,执行循环体的次数。(1) 采用fabs(t)>=1e-6作为循环终止条件的程序补充修改如下: #include <stdio.h>#include <math.h>//程序中用到数学函数fabs,应包含头文件math.nint main( ){int sign=1,count=0;//sign用来表示数值的符号,count用来累计循环次数double pi=0.0,n=1.0,term=1.0;//pi开始代表多项式的值,*后代表π的值,n代表分母,//term代表当前项的值while(fabs(term)>=1e-6)//检查当前项term的*值是否大于或等于10的(-6)次方{pi=pi term;//把当前项term累加到pi中n=n 2;//n 2是下一项的分母 sign=-sign;//sign代表符号,下一项的符号与上一项符号相反term=sign/n;//求出下一项的值termcount ;//count累加1}pi=pi?4;//多项式的和pi乘以4,才是π的近似值printf(″pi=%10.8f\\n″,pi);//输出π的近似值printf(″count=%d\\n″,count);//输出count的值return 0;}运行结果:
执行50万次循环。(2) 采用fabs(t)>=1e-8作为循环终止条件的程序,只须把上面程序的第8行如下修改即可: while(fabs(term)>=1e-8)运行结果:
执行5000万次循环。3. 输入两个正整数m和n,求其*公约数和*小公倍数。解: #include <stdio.h>int main( ){intp,r,n,m,temp;printf(″请输入两个正整数n,m:″);scanf(″%d,%d,″,&n,&m);if (n<m){temp=n;n=m;m=temp;}p=n?m;while(m!=0){r=n%m;n=m;m=r;}printf(″它们的*公约数为:%d\\n″,n);printf(″它们的*小公倍数为:%d\\n″,p/n);return 0;}运行结果:
4. 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。解: #include <stdio.h>int main( ){char c;int letters=0,space=0,digit=0,other=0;printf(″请输入一行字符:\\n″);while((c=getchar( ))!=′\\n′){if (c>=′a′ && c<=′z′ || c>=′A′ && c<=′Z′)letters ;else if (c==′ ′)space ;else if (c>=′0′ && c<=′9′)digit ;elseother ;}printf(″字母数:%d\\n空格数:%d\\n数字数:%d\\n其他字符数: %d\\n″,letters,space,digit,other);return 0;

目录


目录

第1部分《C程序设计(第五版)》习题和参考解答

第1章程序设计和C语言1

第2章算法——程序的灵魂4

第3章*简单的C程序设计——顺序程序设计14

第4章选择结构程序设计24

第5章循环结构程序设计37

第6章利用数组处理批量数据54

第7章用函数实现模块化程序设计74

第8章善于利用指针99

第9章用户自己建立数据类型128

第10章对文件的输入输出159

第2部分深入学习C程序设计

第11章预处理指令177

11.1宏定义178

11.1.1不带参数的宏定义178

11.1.2带参数的宏定义181

11.2“文件包含”处理186

11.3条件编译189

第12章位运算193

12.1位运算和位运算符193

12.1.1“按位与”运算193

12.1.2“按位或”运算194

12.1.3“异或”运算195

12.1.4“取反”运算196

12.1.5左移运算197

12.1.6右移运算197

12.1.7位运算赋值运算符198

12.1.8不同长度的数据进行位运算198

12.2位运算举例198

12.3位段200

第13章常见错误分析204

第14章C程序案例219

14.1案例1个人所得税计算219

14.2案例2学生试卷分数统计223

14.3案例3电话订餐信息处理229

第3部分C语言程序上机指南

第15章怎样使用Visual C 6.0运行程序239

15.1Visual C 6.0的安装和启动240

15.2输入和编辑源程序240

15.2.1新建一个C源程序的方法241

15.2.2打开一个已有的程序243

15.2.3通过已有的程序建立一个新程序的方法243

15.3编译、连接和运行243

15.3.1程序的编译243

15.3.2程序的调试244

15.3.3程序的连接247

15.3.4程序的执行248

15.4建立和运行包含多个文件的程序的方法249

15.4.1由用户建立项目工作区和项目文件249

15.4.2用户只建立项目文件253

第16章用Visual Studio 2010运行C程序256

16.1关于Visual Studio2010256

16.2怎样建立新项目257

16.3怎样建立文件260

16.4怎样进行编译262

16.5怎样运行程序263

16.6怎样打开项目中已有的文件264

16.7怎样编辑和运行一个包含多文件的程序265

16.8关于用Visual Studio 2010编写和运行C程序的说明268

第4部分上机实践指导

第17章程序的调试与测试269

17.1程序的调试269

17.2程序错误的类型271

17.3程序的测试273

第18章上机实验的目的和要求278

18.1上机实验的目的 278

18.2上机实验前的准备工作279

18.3上机实验的步骤279

18.4实验报告279

18.5实验内容安排的原则280

第19章实验安排281

19.1实验1C程序的运行环境和运行C程序的方法281

19.2实验2数据类型、运算符和简单的输入输出283

19.3实验3*简单的C程序设计——顺序程序设计286

19.4实验4选择结构程序设计287

19.5实验5循环结构程序设计288

19.6实验6数组289

19.7实验7函数(一)290

19.8实验8函数(二)291

19.9实验9指针(一)292

19.10实验10指针(二)293

19.11实验11用户自己建立数据类型294

19.12实验12文件操作295

参考文献296


【免费在线读】
第5章循环结构程序设计1. 请画出例5.6中给出的3个程序段的流程图。解: 下面分别是教材第5章例5.6给出的程序,据此画出流程图。(1) 程序1: #include <stdio.h>int main( ){int i,j,n=0;for (i=1;i<=4;i )for (j=1;j<=5;j ,n )//n用来累计输出数据的个数{ if (n%5==0) printf (″\\n″);//控制在输出5个数据后换行printf (″%d\\t″,i?j);}printf(″\\n″);return 0;}其对应的流程图见图5.1。运行结果:
(2) 程序2: #include <stdio.h>int main( ){int i,j,n=0;for (i=1;i<=4;i )for (j=1;j<=5;j ,n ){if(n%5==0) printf(″\\n″);//控制在输出5个数据后换行if (i==3 && j==1) break;//遇到第3行第1列,结束内循环printf(″%d\\t″,i?j);}printf(″\\n″);return 0;}其对应的流程图见图5.2。图5.1图5.2运行结果:
遇到第3行第1列时,执行break,结束内循环,进行第4次外循环。(3) 程序3:#include <stdio.h>int main( ){int i,j,n=0;for (i=1;i<=4;i )for (j=1;j<=5;j ,n ){if(n%5==0)printf(″\\n″);//控制在输出5个数据后换行if (i==3 && j==1) continue;//遇到第3行第1列,终止本次内循环printf(″%d\\t″,i?j);}printf(″\\n″);return 0;}其对应的流程图见图5.3。图5.3运行结果:
遇到第3行第1列时,执行continue,只是提前结束本次内循环,不输出原来的第3行第1列的数3,而进行下一次内循环,接着在该位置上输出原来的第3行第2列的数6。请仔细区分break语句和continue语句。2. 请补充教材例5.7程序,分别统计当“fabs(t)>=1e-6”和“fabs(t)>=1e-8”时,执行循环体的次数。解: 例5.7程序是用π4≈1-13 15-17 …公式求π的近似值,直到发现某一项的*值小于10-6为止。根据本题要求,分别统计当fabs(t)>=1e-6和fabs(t)>=1e-8时,执行循环体的次数。(1) 采用fabs(t)>=1e-6作为循环终止条件的程序补充修改如下: #include <stdio.h>#include <math.h>//程序中用到数学函数fabs,应包含头文件math.nint main( ){int sign=1,count=0;//sign用来表示数值的符号,count用来累计循环次数double pi=0.0,n=1.0,term=1.0;//pi开始代表多项式的值,*后代表π的值,n代表分母,//term代表当前项的值while(fabs(term)>=1e-6)//检查当前项term的*值是否大于或等于10的(-6)次方{pi=pi term;//把当前项term累加到pi中n=n 2;//n 2是下一项的分母 sign=-sign;//sign代表符号,下一项的符号与上一项符号相反term=sign/n;//求出下一项的值termcount ;//count累加1}pi=pi?4;//多项式的和pi乘以4,才是π的近似值printf(″pi=%10.8f\\n″,pi);//输出π的近似值printf(″count=%d\\n″,count);//输出count的值return 0;}运行结果:
执行50万次循环。(2) 采用fabs(t)>=1e-8作为循环终止条件的程序,只须把上面程序的第8行如下修改即可: while(fabs(term)>=1e-8)运行结果:
执行5000万次循环。3. 输入两个正整数m和n,求其*公约数和*小公倍数。解: #include <stdio.h>int main( ){intp,r,n,m,temp;printf(″请输入两个正整数n,m:″);scanf(″%d,%d,″,&n,&m);if (n<m){temp=n;n=m;m=temp;}p=n?m;while(m!=0){r=n%m;n=m;m=r;}printf(″它们的*公约数为:%d\\n″,n);printf(″它们的*小公倍数为:%d\\n″,p/n);return 0;}运行结果:
4. 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。解: #include <stdio.h>int main( ){char c;int letters=0,space=0,digit=0,other=0;printf(″请输入一行字符:\\n″);while((c=getchar( ))!=′\\n′){if (c>=′a′ && c<=′z′ || c>=′A′ && c<=′Z′)letters ;else if (c==′ ′)space ;else if (c>=′0′ && c<=′9′)digit ;elseother ;}printf(″字母数:%d\\n空格数:%d\\n数字数:%d\\n其他字符数: %d\\n″,letters,space,digit,other);return 0;
【作者简介】
谭浩强教授,我国著名计算机教育专家。1958年毕业于清华大学自动控制系。青年时期曾担任清华大学学生会主席、北京市学联副主席、北京市人民代表、全国文教战线先进分子。他是我国计算机普及和高校计算机基础教育的开拓者之一。现任全国高等院校计算机基础教育研究会荣誉会长、教育部全国计算机应用技术证书考试委员会主任委员,享受国务院政府特殊津贴。曾获国家科技进步奖、*教学成果奖,被原国家科学技术委员会和中国科学技术协会表彰为“全国先进科普工作者”,被北京市人民政府评为“北京市有突出贡献的专家”。谭浩强教授创造了三个世界纪录:(1)30年来他(以及和他人合作)共编著出版了160多本计算机著作,主编了400多本计算机书籍,是出版科技著作数量*多的人。(2)他编著和主编的书发行量超过6000万册,是读者*多的科技作家。我国平均每21人、知识分子每1.2人就拥有一本谭浩强的书。(3)他和他人合著的《BASIC语言》发行1250多万册,他所著的《C程序设计》发行1400多万册,双双创造科技书籍发行量的*纪录。他曾在中央电视台主讲了BASIC,FORTRAN,COBOL,Pascal,QBASIC,C,Visual Basic七种计算机语言,观众超过500万人。 谭浩强教授善于用读者容易理解的方法和语言说明复杂的概念。许多人认为他开创了计算机书籍贴近大众的新风,为我国的计算机普及事业作出重要的贡献。21世纪初,被《计算机世界》报组织的“世纪评选”评为“我国20世纪*有影响的十个IT人物”,被《电脑报》评为“我国十大IT人物”,他的功绩是把千百万群众带入计算机的大门。

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

C程序设计学习辅导(第五版)
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon