首页技术c语言程序设计教程第2版答案,c语言程序设计课后题答案

c语言程序设计教程第2版答案,c语言程序设计课后题答案

编程之家2026-07-04820次浏览

大家好,关于c语言程序设计教程第2版答案很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于c语言程序设计课后题答案的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

c语言程序设计教程第2版答案,c语言程序设计课后题答案

C语言程序设计教程(第二版) 周宇 课后答案

二、 1. I love China! printf("we are students.\n") 2. 6项目实训题参考答案 1.编写一个C程序,输出以下信息:******************** I am a student!******************** main(){ printf("********************\n"); printf(" I am a student!\n"); printf("********************\n");} 2222....已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。解: main(){ int a,b,c,v; a=10; b=20; c=15; v=a*b*c; printf("v=%d",v);}本程序运行结果为: v=3000第第第第2章章章章编制编制编制编制C程序的基础知识程序的基础知识程序的基础知识程序的基础知识一选择题 C B A B A C C二操作题 2 21. 3,2,-8,2 3.000000,2.500000,-8.000000 2. ABC DE FGH why is 21+35 equal 52 3. 3 1 4 3 2 3 1 2 4. aa bb cc abc A N项目实训题 1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。#define M 5 main(){ int n,c; n=2; c=M*n; printf("%d\n",c);} 2.编程求下面算术表达式的值。(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。(1)main(){ int a=7; float x=2.5,y=4.7; printf("%f\n",x+a%3*(int)(x+y)%2/4);}(2)main(){ int a=2,b=3; float x=3.5,y=2.5; printf("%f\n",(float)(a+b)/2+(int)x%(int)y);第三章第三章第三章第三章顺序结构程序设计顺序结构程序设计顺序结构程序设计顺序结构程序设计一选择题 A C D C C二操作题 1. x=3,a=2,b=3 2. z=12.700000 3. 1 2 1 a 2 1 2三三三三....编程题编程题编程题编程题编程题 1.某工种按小时计算工资,每月劳动时间(小时)×每小时工资=总工资,总工资中扣除10%公积金,剩余的为应发工资。编写一个程序从键盘输入劳动时间和每小时工资,打印出应发工资。解:#include<stdio.h> main(){ float sj,gz,yfgz; printf("time,salary:"); scanf("%f,%f",&sj,&gz); yfgz=sj*gz*0.9; printf("total salary:%f\n",yfgz);}本程序运行结果为: time,salary:4,3<CR> total salary:10.800000 2.编写一个程序求出任意一个输入字符的ASCII码解:#include<stdio.h> main(){ char c; printf("Input a string:"); scanf("%c",&c); printf("%c ASCII is%d\n",c,c);}本程序运行结果为: Input a string:a<CR> a ASCII is 97 3、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付第四章第四章第四章第四章选择结构程序设计选择结构程序设计选择结构程序设计选择结构程序设计一、略二、B B A B C B A三、1. 1 0 2. 2 3 2 2 3. 10 20 0 4. ch>=’A’&&ch<=’Z’||ch>=’a’&&ch<=’z’ ch>=’0’&&ch<=’9’ ch==’’ 5.-1四、上机操作 1.从键盘输入一个英文字母,如果是大写字母,则将它变为小写字母输出;如果是小写字母,则将其变为大写字母输出。#include<stdio.h> main(){char ch; ch=getchar(); if(ch>='A'&&ch<='Z') ch+=32; else if(ch>='a'&&ch<='z') ch-=32; putchar(ch); putchar('\n');} 2.根据输入的x值依据下列表达式,计算y的值。 2x(x>-1) y= 3(x=-1) 4+x(x<-1)解: main(){ float x,y; scanf("%f",&x); if(x>-1) y=2*x; else if(x==1) y=3; else y=4+x; printf("y=%f",y);}本程序运行结果为:-2<CR> y=2.000000 3.编写程序,输入一个整数,判断它是奇数还是偶数,若是奇数,输出“Is Odd“;若是偶数,输出“Is Even“。 main(){ int x; scanf("%d",&x); if(x%2==0) printf("Is Even\n"); else printf("Is Odd\n");} 4.设计应用程序,求二次方程ax2+bx+c=0的解。#include<math.h> main(){ float a,b,c,disc,x1,x2,p,q; scanf("%f,%f,%f",&a,&b,&c); if(fabs(a)<=1e-6) printf(" The equation is not a quadratic\n"); else{ disc=b*b-4*a*c; if(fabs(disc)< 1e-6) printf("x1=x2=%8.4f\n",-b/(2*a)); else if(disc>1e-6){x1=(-b+sqrt(disc)/(2*a)); x2=(-b-sqrt(disc)/(2*a)); printf("x1=%8.4f,x2=%8.4f\n",x1,x2);} else{ p=-b/(2*a); q=sqrt(-disc/(2*a)); printf("%8.4f+%x8.4fi\n",p,q); printf("%8.4f-%8.4fi\n",p,q);}}} 5555....按托运规则,行李不超过50公斤时,运费为0.15元/公斤,如超过50公斤,超过部分的运费为0.22元/公斤,现有行李w公斤,编写一个程序计算运费。解:#include<stdio.h> main(){ float w,f,x; printf("weight:"); scanf("%f",&w); if(w<=50) x=0.15*w; else x=0.15*50+0.22*(w-50); printf("money:%6.2f yuan\n",x);}本程序运行结果为: weight:20<CR> money:3.00 yuan weight:60<CR> money:9.70 yuan 6.某商场给与顾客购物的折扣率如下:购物金额<200元不打折 500元>购物金额>=200元 9折 1000元>购物金额>=500元 8折购物金额>=1000元 7.5折输入一个购物金额,输出打折率、购物实际付款金额。#include<stdio.h> main(){ float x,y,realx; scanf("%f",&x); if(x<=0){ printf("Error! You input a worry number!\n"); y=0;} else{ if(x<200) y=1.0; else if(x<500) y=0.9; else if(x<1000) y=0.8; else y=0.75;} if(y!=0){realx=x*y; printf("y=%f, the realx=%5.2f\n", y,realx);}}第五章第五章第五章第五章循环结构程序设计循环结构程序设计循环结构程序设计循环结构程序设计一、选择题 C C A A D D第六章第六章第六章第六章数组数组数组数组、选择题 D A D A A C C A D二、程序阅读题 13 13 13 13 13 13第七章第七章第七章第七章函数函数函数函数一、选择题 B D C B B D A A D第第第第8888章章章章指针指针指针指针一、选择题 D A C C(D) D C D二、填空题 1. m 2.指针数组名 3. ABCDCD 4.49 5. 25

c语言程序设计基础叶文珺版答案

初学者遇到最多的困惑是:上课也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因有三个:

一、所谓的看懂听明白,只是很肤浅的语法知识,而我们编写的程序或软件是要根据要解决问题的实际需要控制程序的流程,如果你没有深刻地理解C语言的语句的执行过程(或流程),你怎么会编写程序解决这些实际问题呢?

二、用C语言编程解决实际问题,所需要的不仅仅是C语言的编程知识,还需要相关的专业知识。例如,如果你不知道长方形的面积公式,即使C语言学得再好你也编不出求长方形的面积的程序来。

三、C语言程序设计是一门实践性很强的课程,“纸上谈兵”式的光学不练是学不好C语言的。例如,大家都看过精彩自行车杂技表演,假如,你从来没有骑过自行车,光听教练讲解相关的知识、规则、技巧,不要说上台表演、就是上路你恐怕都不行。

出现问题原因清楚了,那么如何学习呢?请你看【C语言学习六步曲】

c语言程序设计教程第2版答案,c语言程序设计课后题答案

特别提醒:在使用本方法之前一定要先阅读C语言的相关内容,要初步掌握相关知识的要点,然后按下述方法学习,可以达到理解、巩固、提高C语言知识和提高程序调式能力的目的。

第一步、验证性练习

在这一步要求按照教材上的程序实例进行原样输入,运行一下程序是否正确。在这一步基本掌握C语言编程软件的使用方法(包括新建、打开、保存、关闭C程序,熟练地输入、编辑C程序;初步记忆新学章节的知识点、养成良好的C语言编程风格)。单击此处查看【C语言的编程风格】

使用《Turbo C/C++ for Windows集成实验与学习环境》软件可以很方便地看着软件集成的《C语言入门教程》输入练习其中的程序例题。具体使用方法参见软件帮助部分。

初学者最容易犯的错误是:

1、没有区分开教材上的数字1和字母l,字母o和数字0的区别,造成变量未定义的错误。另一个易错点是将英文状态下的逗号,分号;括号()双引号""输入出入成中文状态下的逗号,分号;括号(),双引号“”造成非法字符错误。

c语言程序设计教程第2版答案,c语言程序设计课后题答案

2、C语言初学者易犯语法错误:使用未定义的变量、标示符(变量、常量、数组、函数等)不区分大小写、漏掉“;”、“{”与“}”、“(”与“)”不匹配、控制语句(选择、分支、循环)的格式不正确、调用库函数却没有包含相应的头文件、调用未声明的自定义函数、调用函数时实参与形参不匹配、数组的边界超界等。

3、修改C语言语法错误时要注意以下两点:

(1)、由于C语言语法比较自由、灵活,因此错误信息定位不是特别精确。例如,当提示第10行发生错误时,如果在第10行没有发现错误,从第10行开始往前查找错误并修改之。

(2)、一条语句错误可能会产生若干条错误信息只要修改了这条错误,其他错误会随之消失。特别提示:一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试程序时务必根据第一条错误信息进行修改,修改后,立即运行程序,如果还有很多错误,要一个一个地修改,即,每修改一处错误要运行一次程序。

第二步、照葫芦画瓢

在第一步输入的C程序的基础上进行试验性的修改,运行一下程序看一看程序结果发生了什么变化,分析结果变化的原因,加深新学知识点的理解。事实上这和第一步时同步进行的,实现“输入”加深知识的记忆,“修改”加深对知识的理解。记忆和理解是相辅相成的,相互促进。

例如:将最简单的Hello World!程序

#include"stdio.h"

int main()

{

printf("Hello World!\n");

return 0;

}

中的printf("Hello World!\n");中的Hello World!改成你的姓名,运行一下程序,看有什么变化?

再如求1+2+3...+100的和的程序

#include<stdio.h>

main()

{

int i,sum=0;

for(i=1;i<=100;i++)

{

sum=sum+i;

}

printf("sum=%d\n",sum);

}

第1次将for(i=1;i<=100;i++)中的100改成50,运行一下程序,看有什么变化?

第2次将for(i=1;i<=100;i++)中的i++改成i=i+2,运行一下程序,看有什么变化?

找出程序结果变化的原因,就加深了对C语句的理解。

第三步、不看教材看是否能将前两步的程序进行正确地输入并运行。

在这一步要求不看教材,即使程序不能运行,看能否将其改正,使其能正确运行。目的是对前两步的记忆、理解进一步强化。

第四步、增强程序的调试能力

在《Turbo C/C++ for Windows集成实验与学习环境》集成的教材中每章都有C语言初学者易犯的错误,按照易出错的类型,将教材中的正确的程序改成错误的程序,运行一下程序,看出现的错误信息提示,并记下错误信息,再将程序改成正确的,运行一下程序。这样反复修改,就能够学习C语言程序发生错误的原因和修改错误的能力。

注意:每次只改错一个地方,目的是显示发生该错误的真正原因,避免一次改动多个地方,搞清发生错误的真正原因,切记!!!!

注意:上机调试程序时要带一个记录本,记下英文错误提示信息和解决该错误问题的方法,积累程序调试经验,避免在编程犯同样的错误,切记!!!!

例如,将Hello World程序中语句printf("Hello World!\n");中的;改成中文的分号;运行一下程序,看有什么结果?

C语言的错误信息的形式:(下面例子是的Turobo C2.0错误信息,如图1)

错误文件名行号冒号错误内容

↓↓↓↓↓

Error E:\WinTc\WinTc\frist.c 5: Function call missing) in function main

C语言的错误信息的形式:(下面例子是Visual C++6.0错误信息,如图2)

文件名行号冒号错误代码冒号错误内容

↓↓↓↓↓↓

e:\wintc\wintc\frist.c( 5): error C2143: syntax error: missing')' before';'

软件集成了高校教学用的最多的两个编译器Visual C++6.0和Turbo c 2.0,支持C、标准C、C++、标准C++、WINDOWS C程序的编辑、编译、和调试。软件根据用户输入程序的类型智能选择编译器,不用使用者干涉。

调试程序是一种实践性很强的事,光纸上谈兵是是没用的,就像游泳运动员只听教练讲解示范,而不亲自下水练习,是永远学不会游泳的。即使在优秀的程序员编写程序也会犯错误的,可能事最低级的语法错误,但他能快速发现错误并改正错误,而我们C语言初学者面对错误提示,不知道发生了什么错误,如何改正,这就是差别。

第五步、研究典型的C语言程序,提高程序设计能力

经过上述过程的学习,我们已经学会了C语言各种语句的流程(即计算机是如何执行这些语句的过程),然后就可以研读别人编写C语言经典程序,看懂别人是如何解决问题的,学习解决问题的方法和程序设计技巧,提高自己的程序设计能力。

在软件中有50多个典型的源程序,研究它的实现方法,提高自己的程序设计能力。

第六步、研究课程设计源成序,提高C语言程序设计的能力。

C语言课程设计的目的:是让学生综合利用所学的C语言知识,解决一些接近实际问题题目,提高程序设计和调试较大程序的能力,为进一步进行软件开发打下坚实的基础。

最后送C语言初学者一句话来共勉:首先要相信自己是有能力学好C语言的,然后不惜一切代价把这种能力表现出来,你就成功了。做任何事,何尝不是这样呢?兴趣是学习C语言的最大动力,学习方法给你指明努力的方向,让你事半功倍。如果你感觉对你有帮助的话,请回帖支持,让更多的朋友知道它,谢谢支持!!!

C语言程序设计:现代方法:第2版的目录

第1章c语言概述 1

1.1c语言的历史 1

1.1.1起源 1

1.1.2标准化 1

1.1.3基于c的语言 2

1.2c语言的优缺点 3

1.2.1c语言的优点 3

1.2.2c语言的缺点 3

1.2.3高效地使用c语言 4

问与答 5

第2章c语言基本概念 7

2.1编写一个简单的c程序 7

程序显示双关语 7

2.1.1编译和链接 8

2.1.2集成开发环境 8

2.2简单程序的一般形式 9

2.2.1指令 9

2.2.2函数 9

2.2.3语句 10

2.2.4显示字符串 10

.2.3注释 11

2.4变量和赋值 12

2.4.1类型 12

2.4.2声明 13

2.4.3赋值 13

2.4.4显示变量的值 14

程序计算箱子的空间重量 14

2.4.5初始化 15

2.4.6显示表达式的值 16

2.5读入输入 16

程序计算箱子的空间重量(改进版) 16

2.6定义常量的名字 17

程序华氏温度转换为摄氏温度 17

2.7标识符 18

2.8c程序的书写规范 19

问与答 21

练习题 23

编程题 24

第3章格式化输入/输出 26

3.1printf函数 26

3.1.1转换说明 27

程序用printf函数格式化数 28

3.1.2转义序列 28

3.2scanf函数 29

3.2.1scanf函数的工作方法 30

3.2.2格式串中的普通字符 31

3.2.3易混淆的printf函数和scanf

函数 32

程序分数相加 32

问与答 33

练习题 34

编程题 35

第4章表达式 36

4.1算术运算符 36

程序计算通用产品代码的校验位 38

4.2赋值运算符 39

4.2.1简单赋值 40

4.2.2左值 41

4.2.3复合赋值 41

4.3自增运算符和自减运算符 42

4.4表达式求值 43

4.5表达式语句 45

问与答 45

练习题 47

编程题 49

第5章选择语句 50

5.1逻辑表达式 50

5.1.1关系运算符 50

5.1.2判等运算符 51

5.1.3逻辑运算符 51

5.2if语句 52

5.2.1复合语句 53

5.2.2else子句 53

5.2.3级联式if语句 54

程序计算股票经纪人的佣金 55

5.2.4“悬空else”的问题 56

5.2.5条件表达式 57

5.2.6c89中的布尔值 58

5.2.7c99中的布尔值 58

5.3switch语句 59

程序显示法定格式的日期 61

问与答 62

练习题 65

编程题 67

第6章循环 69

6.1while语句 69

程序显示平方表 71

程序数列求和 71

6.2do语句 72

程序计算整数的位数 73

6.3for语句 73

6.3.1for语句的惯用法 74

6.3.2在for语句中省略表达式 75

6.3.3c99中的for语句 75

6.3.4逗号运算符 76

程序显示平方表(改进版) 77

6.4退出循环 78

6.4.1break语句 78

6.4.2continue语句 78

6.4.3goto语句 79

程序账簿结算 80

6.5空语句 81

问与答 83

练习题 84

编程题 85

第7章基本类型 88

7.1整数类型 88

7.1.1c99中的整数类型 90

7.1.2整数常量 90

7.1.3c99中的整数常量 91

7.1.4整数溢出 91

7.1.5读/写整数 91

程序数列求和(改进版) 92

7.2浮点类型 93

7.2.1浮点常量 94

7.2.2读/写浮点数 94

7.3字符类型 94

7.3.1字符操作 95

7.3.2有符号字符和无符号字符 95

7.3.3算术类型 96

7.3.4转义序列 96

7.3.5字符处理函数 97

7.3.6用scanf和printf读/写字符 98

7.3.7用getchar和putchar读/写

字符 98

程序确定消息的长度 99

7.4类型转换 100

7.4.1常用算术转换 101

7.4.2赋值过程中的转换 102

7.4.3c99中的隐式转换 103

7.4.4强制类型转换 103

7.5类型定义 105

7.5.1类型定义的优点 105

7.5.2类型定义和可移植性 105

7.6sizeof运算符 106

问与答 107

练习题 109

编程题 110

第8章数组 113

8.1一维数组 113

8.1.1数组下标 113

程序数列反向 115

8.1.2数组初始化 115

8.1.3指定初始化式 116

程序检查数中重复出现的数字 116

8.1.4对数组使用sizeof运算符 117

程序计算利息 118

8.2多维数组 119

8.2.1多维数组初始化 120

8.2.2常量数组 121

程序发牌 121

8.3c99中的变长数组 122

问与答 123

练习题 124

编程题 125

第9章函数 129

9.1函数的定义和调用 129

程序计算平均值 129

程序显示倒计数 130

程序显示双关语(改进版) 131

9.1.1函数定义 132

9.1.2函数调用 133

程序判定素数 134

9.2函数声明 135

9.3实际参数 136

9.3.1实际参数的转换 137

9.3.2数组型实际参数 138

9.3.3变长数组形式参数 140

9.3.4在数组参数声明中使用

static 141

9.3.5复合字面量 141

9.4return语句 142

9.5程序终止 143

9.6递归 144

程序快速排序 146

问与答 147

练习题 150

编程题 153

第10章程序结构 155

10.1局部变量 155

10.1.1静态局部变量 156

10.1.2形式参数 156

10.2外部变量 156

10.2.1示例:用外部变量实现栈 156

10.2.2外部变量的利与弊 157

程序猜数 158

10.3程序块 161

10.4作用域 162

10.5构建c程序 163

程序给一手牌分类 163

问与答 169

练习题 169

编程题 170

第11章指针 172

11.1指针变量 172

11.2取地址运算符和间接寻址运算符 173

11.2.1取地址运算符 173

11.2.2间接寻址运算符 174

11.3指针赋值 174

11.4指针作为参数 176

程序找出数组中的最大元素和最

小元素 177

11.5指针作为返回值 179

问与答 180

练习题 181

编程题 182

第12章指针和数组 184

12.1指针的算术运算 184

12.1.1指针加上整数 185

12.1.2指针减去整数 185

12.1.3两个指针相减 186

12.1.4指针比较 186

12.1.5指向复合常量的指针 186

12.2指针用于数组处理 186

12.3用数组名作为指针 188

程序数列反向(改进版) 189

12.3.1数组型实际参数(改进版) 189

12.3.2用指针作为数组名 191

12.4指针和多维数组 191

12.4.1处理多维数组的元素 191

12.4.2处理多维数组的行 192

12.4.3处理多维数组的列 192

12.4.4用多维数组名作为指针 192

12.5c99中的指针和变长数组 193

问与答 194

练习题 195

编程题 197

第13章字符串 198

13.1字符串字面量 198

13.1.1字符串字面量中的转义序列 198

13.1.2延续字符串字面量 199

13.1.3如何存储字符串字面量 199

13.1.4字符串字面量的操作 200

13.1.5字符串字面量与字符常量 200

13.2字符串变量 200

13.2.1初始化字符串变量 201

13.2.2字符数组与字符指针 202

13.3字符串的读和写 203

13.3.1用printf函数和puts函数

写字符串 203

13.3.2用scanf函数和gets函数读

字符串 203

13.3.3逐个字符读字符串 204

13.4访问字符串中的字符 205

13.5使用c语言的字符串库 206

13.5.1strcpy函数 207

13.5.2strlen函数 208

13.5.3strcat函数 208

13.5.4strcmp函数 209

程序显示一个月的提醒列表 209

13.6字符串惯用法 211

13.6.1搜索字符串的结尾 211

13.6.2复制字符串 213

13.7字符串数组 214

程序核对行星的名字 217

问与答 218

练习题 220

编程题 222

第14章预处理器 225

14.1预处理器的工作原理 225

14.2预处理指令 227

14.3宏定义 227

14.3.1简单的宏 227

14.3.2带参数的宏 229

14.3.3#运算符 231

14.3.4##运算符 231

14.3.5宏的通用属性 232

14.3.6宏定义中的圆括号 233

14.3.7创建较长的宏 233

14.3.8预定义宏 234

14.3.9c99中新增的预定义宏 235

14.3.10空的宏参数 236

14.3.11参数个数可变的宏 236

14.3.12__func__标识符 237

14.4条件编译 237

14.4.1#if指令和#endif指令 238

14.4.2defined运算符 238

14.4.3#ifdef指令和#ifndef

指令 239

14.4.4#elif指令和#else指令 239

14.4.5使用条件编译 240

14.5其他指令 240

14.5.1#error指令 240

14.5.2#line指令 241

14.5.3#pragma指令 242

14.5.4_pragma运算符 242

问与答 243

练习题 245

第15章编写大型程序 248

15.1源文件 248

15.2头文件 249

15.2.1#include指令 249

15.2.2共享宏定义和类型定义 250

15.2.3共享函数原型 251

15.2.4共享变量声明 252

15.2.5嵌套包含 253

15.2.6保护头文件 253

15.2.7头文件中的#error指令 254

15.3把程序划分成多个文件 254

程序文本格式化 255

15.4构建多文件程序 260

15.4.1makefile 260

15.4.2链接期间的错误 262

15.4.3重新构建程序 262

15.4.4在程序外定义宏 264

问与答 264

练习题 265

编程题 266

第16章结构、联合和枚举 267

16.1结构变量 267

16.1.1结构变量的声明 267

16.1.2结构变量的初始化 269

16.1.3指定初始化 269

16.1.4对结构的操作 270

16.2结构类型 270

16.2.1结构标记的声明 271

16.2.2结构类型的定义 272

16.2.3结构作为参数和返回值 272

16.2.4复合字面量 273

16.3嵌套的数组和结构 274

16.3.1嵌套的结构 274

16.3.2结构数组 274

16.3.3结构数组的初始化 275

程序维护零件数据库 275

16.4联合 281

16.4.1用联合来节省空间 282

16.4.2用联合来构造混合的数据

结构 284

16.4.3为联合添加“标记字段” 284

16.5枚举 285

16.5.1枚举标记和类型名 286

16.5.2枚举作为整数 286

16.5.3用枚举声明“标记字段” 286

问与答 287

练习题 289

编程题 293

第17章指针的高级应用 294

17.1动态存储分配 294

17.1.1内存分配函数 294

17.1.2空指针 295

17.2动态分配字符串 296

17.2.1使用malloc函数为字符串

分配内存 296

17.2.2在字符串函数中使用动态

存储分配 296

17.2.3动态分配字符串的数组 297

程序显示一个月的提醒列表

(改进版) 297

17.3动态分配数组 299

17.3.1使用malloc函数为数组分配

存储空间 299

17.3.2calloc函数 300

17.3.3realloc函数 300

17.4释放存储空间 301

17.4.1free函数 301

17.4.2“悬空指针”问题 301

17.5链表 302

17.5.1声明结点类型 302

17.5.2创建结点 303

17.5.3-)运算符 303

17.5.4在链表的开始处插入结点 304

17.5.5搜索链表 306

17.5.6从链表中删除结点 307

17.5.7有序链表 308

程序维护零件数据库(改进版) 309

17.6指向指针的指针 313

17.7指向函数的指针 314

17.7.1函数指针作为参数 314

17.7.2qsort函数 314

17.7.3函数指针的其他用途 316

程序列三角函数表 317

17.8受限指针 318

17.9灵活数组成员 319

问与答 320

练习题 323

编程题 325

第18章声明 327

18.1声明的语法 327

18.2存储类型 328

18.2.1变量的性质 328

18.2.2auto存储类型 329

18.2.3static存储类型 329

18.2.4extern存储类型 330

18.2.5register存储类型 331

18.2.6函数的存储类型 332

18.2.7小结 332

18.3类型限定符 333

18.4声明符 334

18.4.1解释复杂声明 335

18.4.2使用类型定义来简化声明 336

18.5初始化式 336

18.6内联函数 337

18.6.1内联定义 338

18.6.2对内联函数的限制 339

18.6.3在gcc中使用内联函数 339

问与答 339

练习题 342

第19章程序设计 345

19.1模块 345

19.1.1内聚性与耦合性 347

19.1.2模块的类型 347

19.2信息隐藏 347

19.3抽象数据类型 350

19.3.1封装 351

19.3.2不完整类型 351

19.4栈抽象数据类型 352

19.4.1为栈抽象数据类型定义接口 352

19.4.2用定长数组实现栈抽象数据

类型 353

19.4.3改变栈抽象数据类型中数据

项的类型 354

19.4.4用动态数组实现栈抽象数据

类型 355

19.4.5用链表实现栈抽象数据类型 357

19.5抽象数据类型的设计问题 359

19.5.1命名惯例 359

19.5.2错误处理 359

19.5.3通用抽象数据类型 359

19.5.4新语言中的抽象数据类型 360

问与答 360

练习题 361

编程题 362

第20章底层程序设计 363

20.1位运算符 363

20.1.1移位运算符 363

20.1.2按位求反运算符、按位与运

算符、按位异或运算符和按

位或运算符 364

20.1.3用位运算符访问位 365

20.1.4用位运算符访问位域 366

程序 xor加密 366

20.2结构中的位域 367

20.3其他底层技术 369

20.3.1定义依赖机器的类型 369

20.3.2用联合提供数据的多个视角 370

20.3.3将指针作为地址使用 371

程序查看内存单元 371

20.3.4volatile类型限定符 373

问与答 374

练习题 374

编程题 376

第21章标准库 377

21.1标准库的使用 377

21.1.1对标准库中所用名字的

限制 377

21.1.2使用宏隐藏的函数 378

21.2c89标准库概述 378

21.3c99标准库更新 380

21.4(stddef.h):常用定义 381

21.5(stdbool.h):布尔类型和值 381

问与答 382

练习题 382

编程题 383

第22章输入/输出 384

22.1流 384

22.1.1文件指针 385

22.1.2标准流和重定向 385

22.1.3文本文件与二进制文件 385

22.2文件操作 386

22.2.1打开文件 386

22.2.2模式 387

22.2.3关闭文件 388

22.2.4为打开的流附加文件 389

22.2.5从命令行获取文件名 389

程序检查文件是否可以打开 389

22.2.6临时文件 390

22.2.7文件缓冲 391

22.2.8其他文件操作 392

22.3格式化的输入/输出 393

22.3.1…printf函数 393

22.3.2…printf转换说明 393

22.3.3c99对…printf转换说明的

修改 395

22.3.4…printf转换说明示例 396

22.3.5…scanf函数 398

22.3.6…scanf格式串 398

22.3.7…scanf转换说明 398

22.3.8c99对...scanf转换说明的

改变 400

22.3.9scanf示例 400

22.3.10检测文件末尾和错误条件 401

22.4字符的输入/输出 403

22.4.1输出函数 403

22.4.2输入函数 403

程序复制文件 404

22.5行的输入/输出 405

22.5.1输出函数 405

22.5.2输入函数 406

22.6块的输入/输出 406

22.7文件定位 407

程序修改零件记录文件 409

22.8字符串的输入/输出 409

22.8.1输出函数 410

22.8.2输入函数 410

问与答 411

练习题 414

编程题 416

第23章库对数值和字符数据的支持 419

23.1(float.h):浮点类型的特性 419

23.2(limits.h):整数类型的大小 421

23.3(math.h):数学计算(c89) 422

23.3.1错误 422

23.3.2三角函数 422

23.3.3双曲函数 423

23.3.4指数函数和对数函数 423

23.3.5幂函数 424

23.3.6就近取整函数、绝对值函数

和取余函数 424

23.4(math.h):数学计算(c99) 425

23.4.1ieee浮点标准 425

23.4.2类型 426

23.4.3宏 426

23.4.4错误 426

23.4.5函数 427

23.4.6分类宏 427

23.4.7三角函数 428

23.4.8双曲函数 428

23.4.9指数函数和对数函数 429

23.4.10幂函数和绝对值函数 430

23.4.11误差函数和伽玛函数 430

23.4.12就近取整函数 431

23.4.13取余函数 432

23.4.14操作函数 432

23.4.15最大值函数、最小值函数

和正差函数 433

23.4.16浮点乘加 433

23.4.17比较宏 434

23.5(ctype.h):字符处理 434

23.5.1字符分类函数 435

程序测试字符分类函数 436

23.5.2字符大小写映射函数 437

程序测试大小写映射函数 437

23.6(string.h):字符串处理 437

23.6.1复制函数 437

23.6.2拼接函数 438

23.6.3比较函数 439

23.6.4搜索函数 440

23.6.5其他函数 442

问与答 442

练习题 443

编程题 444

第24章错误处理 446

24.1(assert.h):诊断 446

24.2(errno.h):错误 447

24.3(signal.h):信号处理 448

24.3.1信号宏 449

24.3.2signal函数 449

24.3.3预定义的信号处理函数 450

24.3.4raise函数 450

程序测试信号 451

24.4(setjmp.h):非局部跳转 452

程序测试setjmp和longjmp 452

问与答 453

练习题 454

第25章国际化特性 456

25.1(locale.h):本地化 456

25.1.1类别 456

25.1.2setlocale函数 457

25.1.3localeconv函数 458

25.2多字节字符和宽字符 461

25.2.1多字节字符 461

25.2.2宽字符 461

25.2.3统一码和通用字符集 462

25.2.4统一码编码 462

25.2.5多字节/宽字符转换函数 463

25.2.6多字节/宽字符串转换函数 465

25.3双字符和三字符 465

25.3.1三字符 465

25.3.2双字符 466

25.3.3(iso646.h):拼写替换 467

25.4通用字符名 467

25.5(wchar.h):扩展的多字节和宽字符

实用工具 467

25.5.1流倾向 468

25.5.2格式化宽字符输入/输出

函数 468

25.5.3宽字符输入/输出函数 470

25.5.4通用的宽字符串实用工具 471

25.5.5宽字符时间转换函数 474

25.5.6扩展的多字节/宽字符转换

实用工具 474

25.6(wctype.h):宽字符分类和映射实

用工具 477

25.6.1宽字符分类函数 477

25.6.2可扩展的宽字符分类函数 478

25.6.3宽字符大小写映射函数 478

25.6.4可扩展的宽字符大小写映射

函数 478

问与答 479

练习题 479

编程题 480

第26章其他库函数 482

26.1(stdarg.h):可变参数 482

26.1.1调用带有可变参数列表的

函数 483

26.1.2v…printf函数 484

26.1.3v…scanf函数 485

26.2(stdlib.h):通用的实用工具 485

26.2.1数值转换函数 485

程序测试数值转换函数 486

26.2.2伪随机序列生成函数 488

程序测试伪随机序列生成函数 488

26.2.3与环境的通信 489

26.2.4搜索和排序实用工具 490

程序确定航空里程 491

26.2.5整数算术运算函数 492

26.3(time.h):日期和时间 492

26.3.1时间处理函数 493

26.3.2时间转换函数 495

程序显示日期和时间 498

问与答 500

练习题 501

编程题 502

第27章c99对数学计算的新增支持 503

27.1(stdint.h):整数类型 503

27.1.1(stdint.h)类型 503

27.1.2对指定宽度整数类型的限制 504

27.1.3对其他整数类型的限制 505

27.1.4用于整数常量的宏 505

27.2(inttypes.h):整数类型的格式

转换 506

27.2.1用于格式说明符的宏 506

27.2.2用于最大宽度整数类型的

函数 507

27.3复数 508

27.3.1复数的定义 508

27.3.2复数的算术运算 509

27.3.3c99中的复数类型 509

27.3.4复数的运算 510

27.3.5复数类型的转换规则 510

27.4(complex.h):复数算术运算 511

27.4.1(complex.h)宏 511

27.4.2cx_limited_range编译

提示 512

27.4.3(complex.h)函数 512

27.4.4三角函数 512

27.4.5双曲函数 513

27.4.6指数函数和对数函数 514

27.4.7幂函数和绝对值函数 514

27.4.8操作函数 514

程序求二次方程的根 515

27.5(tgmath.h):泛型数学 515

27.5.1泛型宏 516

27.5.2调用泛型宏 517

27.6(fenv.h):浮点环境 518

27.6.1浮点状态标志和控制模式 518

27.6.2(fenv.h)宏 519

27.6.3fenv_access编译提示 519

27.6.4浮点异常函数 520

27.6.5舍入函数 520

27.6.6环境函数 521

问与答 521

练习题 522

编程题 523

附录ac语言运算符 524

附录bc99与c89的比较 525

附录cc89与经典c的比较 529

附录d标准库函数 532

附录eascii字符集 569

参考文献 570

索引 573

文章到此结束,如果本次分享的c语言程序设计教程第2版答案和c语言程序设计课后题答案的问题解决了您的问题,那么我们由衷的感到高兴!

fputc?c语言中fputc定义在哪里jquery选择器总结(jquery知识点总结)