精华内容
下载资源
问答
  • c程序设计第五版答案
    千次阅读
    2021-01-03 20:29:22

    在这里插入图片描述
    C语言程序设计第五版课后答案(谭浩强) ,部分截图如下
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    太多了,就不在一一复制,可以扫描最上面的二维码,关注微信公众“数据结构和算法”,回复"C语言第5版"的拼音简称cyyd5b即可获得下载地址

    更多相关内容
  • C语言程序设计第五版_谭浩强_课后习题答案完整版
  • 高等学校计算机应用规划教材 《C语言程序设计第五版)》 宋广军 主编 谭小球 陈荣品 张建科 侯志凌 副主编
  • C语言程序设计第五版 谭浩强 第五版课后答案

    万次阅读 多人点赞 2019-06-16 00:27:29
    谭浩强 C语言程序设计第五版 第4章课后答案 3.求两个正整数m和n,求其最大公约数和最小公倍数。 #include<stdio.h> void main() { int m, n, t, i, a = 1; scanf("%d%d", &m, &n); if (m < n) ...

    谭浩强 C程序设计第五版 第五版课后答案

    点我看视频讲解+可运行源码
    记得一键三连哦

    c程序设计

    第一章

    在这里插入图片描述

    1.什么是程序?什么是程序设计?

    • 程序:就是一组能识别和执行的指令,每一条指令使计算机执行特定的操作

    • 程序设计:是指从确定任务到得到结果、写出文档的全过程

    2.为什么需要计算机语言?高级语言有哪些特点?

    • 为什么需要计算机语言:计算机语言解决了人和计算机交流是的语言问题,使得计算机和人都能识别

    • 高级语言有哪些特点:
      2.1 高级语言的数据结构要比汇编和机器语言丰富;
      2.2 高级语言与具体机器结构的关联没有汇编以及机器语言密切;
      2.3 高级语言更接近自然语言更容易掌握;
      2.4 高级语言编写的程序要经过编译或解释计算机才能执行;

    3.正确理解以下名词及其含义:

    (1)源程序,目标程序,可执行程序。

    • ​源程序:指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令

    • 目标程序:为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名

    • 可执行程序:将所有编译后得到的目标模块连接装配起来,在与函数库相连接成为一个整体,生成一个可供计算机执行的目标程序,成为可执行程序

    (2)程序编辑,程序编译,程序连接。

    程序编辑:上机输入或者编辑源程序。

    程序编译:

    • 先用C提供的“预处理器”,对程序中的预处理指令进行编译预处理
    • 对源程序进行语法检查, 判断是否有语法错误,直到没有语法错误未知
    • 编译程序自动把源程序转换为二进制形式的目标程序

    程序连接:将所有编译后得到的目标模块连接装配起来,在与函数库相连接成为一个整体的过程称之为程序连接

    (3)程序,程序模块,程序文件。

    • 程序:一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具

    • 程序模块:可由汇编程序、编译程序、装入程序或翻译程序作为一个整体来处理的一级独立的、可识别的程序指令

    • 程序文件:程序的文件称为程序文件,程序文件存储的是程序,包括源程序和可执行程序

    (4)函数,主函数,被调用函数,库函数。

    • 函数:将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,来完成一定功能

    • 主函数:又称main函数,是程序执行的起点

    • 被调用函数:由一个函数调用另一个函数,则称第二个函数为被调用函数

    • 库函数:一般是指编译器提供的可在c源程序中调用的函数。可分为两类,一类是c语言标准规定的库函数,一类是

    ​ 编译器特定的库函数

    (5)程序调试,程序测试。
    • 程序调试:是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程

    • 程序测试:是指对一个完成了全部或部分功能、模块的计算机程序在正式使用前的检测,以确保该程序能按预定的方式正确地运行

    4.编写一个C程序,运行时输出

    Hello World!
    这个程序是一些国外C教材中作为第一个程序例子介绍的,一般称为Hello程序。

    代码示例:

    #include <stdio.h>
    
    int main()
    {
    	printf("%s\n", "Hello World!");
    	return 0;
    }
    

    运行截图:

    C程序设计第五版谭浩强第4题答案

    5.编写一个C程序,运行时输出以下图形:

    ****

    ****

    ​ ****

    ​ ****

    代码示例:

    #include <stdio.h>
    
    int main()
    {
    	for (int i = 0; i < 4; i++)
    	{
    		for (int j = 0; j < i; j++)
    		{
    			printf("%s", "  ");
    		}
    		printf("%s\n", "*****");
    	}
    	return 0;
    }
    

    运行截图:

    C语言程序设计第五版谭浩强第5题答案

    6.编写一个C程序,运行时输人a,b,c三个值,输出其中值最大者。

    代码示例:

    #include<stdio.h>
    
    int main()
    {
    	int a, b, c, max;
    	printf("请输入三个数:\n");
    
    	scanf("%d%d%d", &a, &b, &c);
    	if (a > b)
    	{
    		max = a;
    	}
    	else
    	{
    		max = b;
    	}
    
    	if (c > max)
    	{
    		max = c;
    	}
    	printf("三个数中最大的数为:%d", max);
    	return 0;
    
    }
    

    运行截图:

    C语言程序设计第五版谭浩强第6题答案

    7.看懂《C程序设计(第五版)学习辅导》第16章中介绍的用Visual Studio 2010对C程序进行编辑、编译、连接和运行的方法,并进行以下操作:

    (1)建立一个新项目,定名为project1.

    C语言程序设计第五版谭浩强第6题答案

    (2)建立一个新文件,定名为test1。

    C语言程序设计第五版谭浩强课后答案 第二题

    (3)向test1 文件输人源程序(此源程序为读者自己编写的程序)。

    C语言程序设计第五版谭浩强课后答案 第三题

    (4)编译该源程序,如发现程序有错,请修改之,直到不出现“编译出错”为止。

    (5)连接并运行, 得到结果。分析结果。

    C程序设计第五版课后答案

    点我看视频讲解+可运行源码
    记得一键三连哦

    更多相关文章

    C程序设计第五版谭浩强课后习题答案 第一章
    C程序设计第五版谭浩强课后习题答案 第二章
    C程序设计第五版谭浩强课后习题答案 第三章
    C程序序设计第五版谭浩强课后习题答案 第四章
    C语言程序设计第五版谭浩强课后习题答案 第五章
    C语言程序设计第五版谭浩强课后习题答案 第六章
    C语言程序设计第五版谭浩强课后习题答案 第七章
    C语言程序设计第五版谭浩强课后习题答案 第八章
    C语言程序设计第五版谭浩强课后习题答案 第九章
    C语言程序设计第五版谭浩强课后习题答案 第十章

    展开全文
  • 谭浩强第五版的C程序设计的课后习题答案--(第九章,拍不过来,后边的后续每天上传一章节),我无法扫描文件,所以我拍了高清图片,我也是用的这个,怕制作成pdf不高清,所以原图上传了,需要的下载。
  • 第五章 1.请画出例5.6中给出的3个程序段的流程图 流程图1: 流程图2: 流程图3: 2.请补充例5. 7程序,分别统计当“fabs(t)>= le- 6”和“fabs(t)> = le- 8”时执行循环体的次数。 fabs(t)>= le- 6 ,...

    第五章

    1.请画出例5.6中给出的3个程序段的流程图

    流程图1:

    C语言程序设计第五版谭浩强课后答案第一题

    流程图2:

    C语言程序设计第五版谭浩强第二题课后答案

    流程图3:

    C语言程序设计第五版谭浩强课后答案第一题

    2.请补充例5. 7程序,分别统计当“fabs(t)>= le- 6”和“fabs(t)> = le- 8”时执行循环体的次数。

    fabs(t)>= le- 6 ,示例代码

    # include <stdio.h>
    # include <math.h>
    
    int main()
    {
    	int sign = 1;
    	double pi = 0.0, term = 1.0;
    	int n = 0;
    
    	while (fabs(term) >= 1e-6)
    	{
    		n++;
    		term = 1.0 / (2 * n - 1)*sign;
    		pi += term;
    		sign = -sign;
    	}
    	pi *= 4;
    	printf("pi的近似值是%lf\n", pi);
    	printf("循环体循环了%d次\n", n);
    	return 0;
    }
    
    

    运行截图:

    C语言程序设计第五版第二题答案

    fabs(t)> = le- 8,示例代码

    # include <stdio.h>
    # include <math.h>
    
    int main()
    {
    	int sign = 1;
    	double pi = 0.0, term = 1.0;
    	int n = 0;
    
    	while (fabs(term) >= 1e-8)
    	{
    		n++;
    		term = 1.0 / (2 * n - 1)*sign;
    		pi += term;
    		sign = -sign;
    	}
    	pi *= 4;
    	printf("pi的近似值是%lf\n", pi);
    	printf("循环体循环了%d次\n", n);
    	return 0;
    }
    
    

    运行截图:

    C语言程序设计第2题答案

    3.输人两个正整数m和n,求其最大公约数和最小公倍数

    答案解析:

    该题题目直接使用“辗转相除法”来求解最大公约数,以除数和余数反复做除法运算,当余数为 0 时,就取得当前算式除数为最大公约数。

    最大公约数和最小公倍数之间的性质:两个自然数的乘积等于这两个自然数的最大公约数和最小公倍数的乘积。所以,当我们求出最大公约数,就可以很轻松的求出最小公倍数。

    代码示例:

    #include <stdio.h>
    int main()
    {
    	int  p, r, n, m, temp;
    	printf("请输入两个正整数n,m:");
    	scanf("%d%d,", &n, &m);
    	//调整n保存较大的值
    	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;
    }
    

    运行截图:

    C语言程序设计第五版谭浩强课后答案

    4.输人一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

    答案解析:

    该题可以调用getchar函数,从stdin流中读入一个字符,当输入多个字符时,getchar()再执行时就会直接从缓冲区中读取了。等同于getc(stdin)。所以,我们循环调用getchar,直到将标准输入的内容读到换行符\n为止。同时判断,读取到的字符是英文字母、空格、数字或者其他字符,并计数;

    代码示例:

    #include <stdio.h>
    
    int main()
    {
    	char c;
    	//定义eng_char为英文字母的个数,初始值为0
    	//定义space_char为空格字符的个数,初始值为0
    	//定义digit_char为数字字符的个数,初始值为0
    	//定义other_char为其他字符的个数,初始值为0
    	int eng_char = 0, space_char = 0, digit_char = 0, other_char = 0;
    	printf("请输入一行字符:");
    	while ((c = getchar()) != '\n')
    	{
    		if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z')
    		{
    			eng_char++;
    		}
    		else if (c == ' ')
    		{
    			space_char++;
    		}
    		else if (c >= '0' && c <= '9')
    		{
    			digit_char++;
    		}
    		else
    		{
    			other_char++;
    		}
    	}
    
    	printf("英文字母数量:%d\n空格数量:%d\n数字数量:%d\n其他字符数量:%d\n", eng_char, space_char, digit_char, other_char);
    	return 0;
    }
    

    运行截图:

    C语言程序设计第五版第四题答案

    5.求 S n S_n Sn=a+aa+aaa+…+ a a + ⋯ + a ⏞ n 个 a \overbrace{aa+\dots+a}^{n个a} aa++a na 之值,其中a是一个数字,n表示a的位数,n由键盘输入。例如:

    2+22+222+2222+22222 (此时n=5)

    答案解析:

    该题目可以将数字拆分为 a * 10^n + 前一个数字,例如:

    2 = 2 * 10^0 + 0 : 默认2的前一个数字为0,也就是没有任何值

    22 = 2 * 10^1 + 2 : 22的前一个数字为2

    222 = 2*10^2 + 22 :222的前一个数字为22

    以此类推…

    所以,在每次循环的时候,需要保存下,上一次结果的值,方便下一次计算

    还需要使用到C库当中使用的pow函数,来计算某个数的n次方,我们在该题目当中使用的是10的n次方,n随着循环的次数,以此递增。

    代码示例:

    #include <stdio.h>
    #include <math.h>
    
    int main()
    {
    	//n为a的个数
    	int n;
    	double a, prev_sum = 0.0, total_sum = 0.0;
    	printf("请输入a的值以及n的值: ");
    	scanf("%lf %d", &a, &n);
    	//循环n次求总和
    	for (int i = 0; i < n; i++)
    	{
    		prev_sum += a * pow(10, i); 
    		total_sum += prev_sum;
    	}
    	printf("总和为:%lf\n", total_sum);
    	return 0;
    }
    

    运行截图:

    C语言程序设计第五版谭浩强课后答案

    6.求 ∑ n = 1 20 n ! \sum\limits_{n=1}^{20}n! n=120n! (即求1!+2!+3!+4!+…+20!)。

    答案解析:

    该题需要从1循环到20,依次求出每一个数字阶乘的结果。所以在代码当中需要有两个循环,大循环从1到20,保证1到20个数字都被循环到,小循环里计算N阶乘,累加求和。注意:对于20的阶乘已经超出了int类型能过表示的数字范围,所以在代码当中使用double类型

    代码示例:

    #include<stdio.h>
    
    int main()
    {
    	double total_sum = 0;
    	for(int i = 1; i <= 20; i++) 
    	{
    		double single_sum = 1;
    		for (int j = i; j > 0; j--)
    		{
    			single_sum *= j;
    		}
    		total_sum += single_sum;
    	}
    	printf("1~20每个数字阶乘总和为:%lf\n",total_sum);
    	return 0;
    }
    

    运行截图:

    C语言程序设计课后答案

    7. ∑ k = 1 100 k \sum\limits_{k=1}^{100}k k=1100k + ∑ k = 1 50 k 2 \sum\limits_{k=1}^{50}{k}^2 k=150k2 + ∑ k = 1 10 1 k \sum\limits_{k=1}^{10}{\frac{1}{k}} k=110k1

    答案解析:

    对于 ∑ k = 1 100 k \sum\limits_{k=1}^{100}k k=1100k而言,指的是求从1到100的和。每个数字为整数,求和也为整数

    对于 ∑ k = 1 50 k 2 \sum\limits_{k=1}^{50}{k}^2 k=150k2而言,指的是求从12到502的和。每个数字为整数,求和也为整数。

    对于 ∑ k = 1 10 1 k \sum\limits_{k=1}^{10}{\frac{1}{k}} k=110k1而言,指的是求从 1 1 \frac{1}{1} 11 1 10 \frac{1}{10} 101的和。每个数字不是整数,求和也不是整数。

    综上所述:求和结果不是整数,所以定义求和变量是需要定义为带有精度的变量double

    该题目,最大的求和是从从1到100,所以需要一个循环,从1遍历到100。针对第一种情况,则遍历100次停下来。针对第二种情况,则遍历50次的时候停下来,针对第三种情况,则遍历10遍就停下来。

    最后,在遍历每一个数字的时候,针对三种不同的情况求和。最后将三种不同请求的和加起来就是总体的和

    代码示例:

    #include <stdio.h>
    
    int main()
    {
    	double total_sum = 0, sum1 = 0, sum2 = 0, sum3 = 0.0;
    	for (int k = 1; k <= 100; k++)
    	{
    		sum1 += k;
    		//遍历50次就不在执行情况2
    		if (k <= 50)
    		{
    			sum2 += k * k;
    		}
    		//遍历10次就不在执行情况3
    		if (k <= 10)
    		{
    			sum3 += 1.0 / k;
    		}
    	}
    	total_sum = sum1 + sum2 + sum3;
    	printf("三种情况求和结果为:%lf\n", total_sum);
    	return 0;
    }
    

    运行截图:

    C语言程序设计课后答案

    8.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是水仙花数,因为153=1*+5*+3。

    答案解析:

    从题目当中得到”水仙花数“为一个3位数,则范围确定为[100, 999]。另外需要获取该数字的百位数字,十位数字,个位数字相加起来等于该数本身,则我们需要使用到%除的方式,来获取每一个位权的数字。

    代码示例:

    #include <stdio.h>
    
    int main()
    {
    	 //a表示百位数字,b表示十位数字,c表示各位数字
    	int a, b, c;
    	for (int i = 100; i <= 999; i++)
    	{
    		a = i / 100;
    		b = (i / 10) % 10;
    		c = i % 10;
    		if (a * a * a + b * b * b + c * c * c == i)
    		{
    			printf("%d\n", i);
    		}
    	}
    	return 0;
    }
    

    运行截图:

    C语言程序设计第五版谭浩强课后答案

    9.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子:

    6 its factors are 1,2,3

    答案解析:

    因子:整数a除以整数b(b≠0) 的商正好是整数而没有余数,我们就说b是a的因子。整数n除以m,结果是无余数的整数,那么我们称m就是n的因子。 需要注意的是,唯有被除数,除数,商皆为整数,余数为零时,此关系才成立。因子是不包括自身的

    举一个例子:20 = 4 * 5,则4和5就是20的因子,也被称之为因子

    代码示例:

    #include<stdio.h>
    
    int main()
    {
    	int data, fator, sum;      /* data表示要判断的数,fator表示因子,sum表示因子之和*/
    
    	for (data = 2; data <= 1000; data++)
    	{
    		//1是所有整数的因子,所以因子之和从1开始
    		sum = 1;
    		for (fator = 2; fator <= data / 2; fator++)
    		{
    			/* 判断data能否被fator整除,能的话fator即为因子  因子不包括自身 */
    			if (data % fator == 0)
    			{
    				sum += fator;
    			}
    		}
    		// 判断此数是否等于因子之和 */
    		if (sum == data)    
    		{
    			printf("%d its factors are 1, ", data);
    			for (fator = 2; fator <= data / 2; fator++)
    			{
    				if (data % fator == 0)
    				{
    					printf("%d, ", fator);
    				}
    			}
    			printf("\n");
    		}
    	}
    	return 0;
    }
    

    运行截图:

    C语言程序设计第五版谭浩强课后答案

    10.有一个分数序列,求出这个数列的前20项之和。

    2 1 \frac{2}{1} 12 3 2 \frac{3}{2} 23 5 3 \frac{5}{3} 35 8 5 \frac{8}{5} 58 13 8 \frac{13}{8} 813 25 13 \frac{25}{13} 1325,…

    答案解析:

    从题目当中可以看出来,下一个分式当中的分子为上一个分式中分子和分母的和,分母为上一个分式的分子。通过这个规律不难推出下一个分式的分子和分母,需要注意的是,保存分式的结果不能使用到整数,因为有可能会有小数的存在,所以我们需要选用浮点数double

    代码示例:

    #include <stdio.h> 
    //定义循环次数
    #define COUNT 20
    
    int main()
    {
    	//定义第一个分式的分子为a, 值为2; 定义分母为b,值为1
    	//定义相加的和为sum,初始值为0
    	double a = 2, b = 1, sum = 0;
    	double temp;
    
    	for (int i = 0; i < COUNT; i++)
    	{
    		sum += a / b;
    		//记录前一项分子
    		temp = a;
    		//前一项分子与分母之和为后一项分子
    		a = a + b;
    		//前一项分子为后一项分母
    		b = temp;
    	}
    	printf("前%d项之和为:sum=%9.7f\n", COUNT, sum);
    	return 0;
    }
    

    运行截图:

    C语言程序设计第五版谭浩强课后答案

    11.一个球从100m高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米,第10次反弹多高。

    答案解析:

    该题目需要循环10次,在每一循环的时候,需要将下落的高度和回弹的高度加起来。需要注意的点,第10次下落不需要在计算回弹的距离了,所以需要特殊处理下。在计算每次高度的时候,会有小数存在,所以需要选用浮点数

    代码示例:

    #include <stdio.h>
    
    int main()
    {
    	//总高度
    	double total_m = 100.0;
    	//小球经历的米数
    	double total_sum = 0.0;
    	for (int i = 0; i < 10; i++)
    	{
    		total_sum += total_m;
    		total_m /= 2;
    		total_sum += total_m;
    	}
    	//不需要计算第10次的反弹高度,所以减去
    	total_sum -= total_m;
    	printf("小球总共经历%lf米, 第10次反弹%lf米\n", total_sum, total_m);
    	return 0;
    }
    

    运行截图:

    谭浩强第十一题课后答案

    12.猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘多少个桃子。

    答案解析:

    从题面上来看,可以推出,后一天的桃子数量 = 前一天桃子数量 / 2 - 1。所以,该公式也可以写成前一天的桃子数量 = (后一天桃子数量+1) * 2。所以我们知道了第10天剩余桃子的数量,则可以依次推算出桃子的前一天桃子的总数。需要注意的点,猴子只是吃了9天,所以,我们只需要遍历9次就可以了。

    代码示例:

    #include <stdio.h>
    
    int main()
    {
    	int day = 9;
    	int prev_day_count;
    	int cur_day_count = 1;
    	while (day > 0)
    	{
    		prev_day_count = (cur_day_count + 1) * 2;
    		cur_day_count = prev_day_count;
    		day--;
    	}
    	printf("total count : %d\n", cur_day_count);
    	return 0;
    }
    

    运行截图:

    C语言程序设计第五版谭浩强课后答案

    13.用迭代法求x= a \sqrt{a} a 。求平方根的迭代公式为

    x n + 1 x_{n+1} xn+1 = 1 2 \frac{1}{2} 21( x n x_{n} xn + a x n \frac{a}{x_n} xna)

    要求前后两次求出的x的差的绝对值小于 1 0 − 5 10^{-5} 105

    答案解析:

    题面上已经告诉两条信息,一个是x= a \sqrt{a} a ,所以我们可以通过a求出x的值。另外一条是 x n + 1 x_{n+1} xn+1 = 1 2 \frac{1}{2} 21( x n x_{n} xn + a x n \frac{a}{x_n} xna),可以通过x的值求出 x n + 1 x_{n+1} xn+1的值,所以,只需要轮询的计算,不断的计算差值,直到满足差值小于 1 0 − 5 10^{-5} 105就可以停止了

    代码示例:

    #include <stdio.h>
    #include <math.h>
    
    int main()
    {
    	float a, x0, x1;
    	printf("请输入一个正数: ");
    	scanf("%f", &a);
    	x0 = a / 2;
    	x1 = (x0 + a / x0) / 2;
    	do
    	{
    		x0 = x1;
    		x1 = (x0 + a / x0) / 2;
    	} while (fabs(x0 - x1) >= 1e-5);
    	printf("[%f] 的平方根为 [%f]\n", a, x1);
    	return 0;
    }
    

    运行截图:

    C语言程序设计第五版谭浩强课后答案

    14.用牛顿迭代法求下面方程在1.5附近的根:

    2 x 3 x^3 x3- 4 x 2 x^2 x2 + 3 x x x - 6= 0

    答案解析:

    牛顿迭代法的公式为:

    x n + 1 x_{n+1} xn+1 = x n x_{n} xn - f ( x n ) f ′ ( x n ) \frac{f(x_{n})}{f'(x_{n})} f(xn)f(xn)

    其中, x n x_{n} xn为输出的值,在该题目当中为1.5。 f ( x n ) f(x_{n}) f(xn)为公式2 x 3 x^3 x3- 4 x 2 x^2 x2 + 3 x x x - 6。 f ′ ( x n ) f'(x_{n}) f(xn)为导数,根据导数原则:

    规则1: x n x^n xn = n * x ( n − 1 ) x^{(n-1)} x(n1), 规则2:常数的导数为0。可以推导出 f ′ ( x n ) f'(x_{n}) f(xn) = 6 x 2 x^2 x2 - 8x + 3。

    在依照牛顿迭代法计算出 x n + 1 x_{n+1} xn+1的值,直到求出的差值小于0.00001

    代码示例:

    #include <stdio.h>
    #include <math.h>
    
    int  main()
    {
    	double x1, x0, f, f1;
    	x1 = 1.5;
    	do
    	{
    		x0 = x1;
    		f = ((2 * x0 - 4) * x0 + 3) * x0 - 6;
    		f1 = (6 * x0 - 8) * x0 + 3;
    		x1 = x0 - f / f1;
    	} while (fabs(x1 - x0) >= 1e-5);
    	printf("方程在1.5附近的根为:%lf\n", x1);
    	return 0;
    }
    

    运行截图:

    C语言程序设计第五版谭浩强习题答案

    15.用二分法求下面方程在(-10,10)的根:

    2 x 3 x^3 x3- 4 x 2 x^2 x2 + 3 x x x - 6= 0

    答案解析:

    将区间划分为两部分,记录区间左右端点,得到中点。每次运算将中点带入方程进行运算,求得结果,进行分析:

    结果 > 0:将中位数赋值给右端点

    结果 < 0:将中位数赋值给左端点

    以此类推…

    fabs函数是一个求绝对值的函数,求出x的绝对值,和数学上的概念相同;

    le-5: 1 0 − 5 10^{-5} 105,即0.00001

    代码示例:

    #include<stdio.h>
    #include<math.h>
    
    int main()
    {
    	double left = -10, right = 10, mid;
    	double temp = 10;
    	while (fabs(temp) > 1e-5)
    	{
    		mid = (left + right) / 2;
    		//((2x - 4)*x + 3) * x - 6 ==> 2x^3 - 4x^2 + 3x -6
    		temp = ((2 * mid - 4) * mid + 3) * mid - 6;
    
    		if (temp > 0)
    		{
    			right = mid;
    		}
    		else if (temp < 0)
    		{
    			left = mid;
    		}
    	}
    	printf("在(-10,10)的根为:%lf", mid);
    	return 0;
    }
    

    运行截图:

    C语言程序设计第五版谭浩强课后答案

    16.输出以下图案:

    ​ *

    ​ ***

    *****

    *******

    *****

    ​ ***

    ​ *

    答案解析:

    该题目需要关心当前行对应的从最左边到第一颗*的空格数量以及星星数量。将该题分为两个部分,前面4行和后面3行来进行拆分。

    前4行中:

    第一行:行号为0, 空格数为3,星星数量为1;

    第二行:行号为1, 空格数为2, 星星数量为3;

    第三行:行号为2, 空格数为1, 星星数量为5;

    第四行:行号为3, 空格数为0,星星数量为7;

    则我们可以推出两组关系,即行号和空格数量关系为:空格数 = 3 - 行号 。行号与星星的关系为:星星数 = 2 * 行号 + 1

    后三行中:

    第一行:行号为0,空格数为1,星星数量为5;

    第二行:行号为1, 空格数为2, 星星数量为3;

    第三行:行号为2, 空格数为3,星星数量为1;

    则我们推出两组关系,即行号与数量的关系:空格数 = 行号 + 1。行号与星星的关系:星星数 = 7 - 2 * (行号+1)

    基于上面的关系,我们写出如下代码:

    代码示例:

    #include <stdio.h>
    
    int main()
    {
    	int cur_row, space_count, start_count;
    	//输出前4行内容
    	for (cur_row = 0; cur_row < 4; cur_row++)
    	{
    		//计算当前行空格数量,并且进行打印
    		for (space_count = 3 - cur_row; space_count > 0; space_count--)
    		{
    			printf(" ");
    		}
    		//计算当前行*数量,并且进行打印
    		for (start_count = 2 * cur_row + 1; start_count > 0; start_count--)
    		{
    			printf("*");
    		}
    		printf("\n") ;
    	}
    	//输出后三行
    	for (cur_row = 0; cur_row < 3; cur_row++)
    	{
    		for (space_count = cur_row + 1; space_count > 0; space_count--)
    		{
    			printf(" ");
    		}
    
    		for (start_count = 7 - 2 * (cur_row + 1); start_count > 0; start_count--)
    		{
    			printf("*");
    		}
    		printf("\n");
    	}
    	return 0;
    }
    

    运行截图:

    C语言程序设计第五版谭浩强课后答案

    17.两个乒乓球队进行比赛,各出3人。甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程序找出3对赛手的名单。

    答案解析:

    从题面上得知,每队为3人,则隐含条件为队内三人是不能比赛的,并且A一定不会和X比,C一定不会X和Z比;则我们不难写出判断条件:

    如果A和X比 或者 C和X比 或者 C和Z比 或者 A和B比 或者 A和C比 或者 B和C比,都是不可以的;所以我们只要穷举A比赛对象,B比赛对象,C比赛对象,判断上述条件就可以了;

    代码示例:

    #include <stdio.h>
    
    int main()
    {
    	int A_battle, B_battle, C_battle;
    	//如果A对战的对象从“X”到“Z”
    	for (A_battle = 'X'; A_battle <= 'Z'; A_battle++)
    	{
    		//如果B对战的对象从“X”到“Z”
    		for (B_battle = 'X'; B_battle <= 'Z'; B_battle++)
    		{
    			//如果C对战的对象从“X”到“Z”
    			for (C_battle = 'X'; C_battle <= 'Z'; C_battle++)
    			{
    				//去除限制条件
    				if (A_battle == 'X' || C_battle == 'X' || C_battle == 'Z' || B_battle == A_battle || B_battle == C_battle || A_battle == C_battle)
    				{
    					continue;
    				}
    				printf("A对%c,B对%c,C对%c", A_battle, B_battle, C_battle);
    			}
    		}
    	}
    	return 0;
    }
    

    运行截图:

    C语言程序设计第五版谭浩强课后答案

    C语言程序设计第五版谭浩强更多习题答案

    C语言程序设计第五版谭浩强课后习题答案 第四章
    C语言程序设计第五版谭浩强课后习题答案 第三章

    展开全文
  • c语言程序设计第五版习题答案解析

    千次阅读 2021-04-06 21:10:11
    c语言程序设计第五版习题答案解析,总共有74页,部分截图如下 总共有74页,就不在一一复制,可以扫描最上面的二维码,关注微信公众“数据结构和算法”,回复C语言第五版的拼音简称cyydwb即可获得下载地址 ...

    在这里插入图片描述

    想看更多算法题,可以扫描上方二维码关注我微信公众号“数据结构和算法”,截止到目前我已经在公众号中更新了500多道算法题,其中部分已经整理成了pdf文档,截止到目前总共有800多页(并且还会不断的增加),可以在公众号中回复关键字“pdf”即可下载。


    c语言程序设计第五版习题答案解析,总共有74页,部分截图如下

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    总共有74页,就不在一一复制,可以扫描最上面的二维码,关注微信公众“数据结构和算法”,回复C语言第五版的拼音简称cyydwb即可获得下载地址

    展开全文
  • C程序设计第五版谭浩强课后答案 第二章答案

    万次阅读 多人点赞 2020-06-27 15:03:26
    二章:算法----程序的灵魂 1. 什么是算法?试从日常生活中找3个例子,描述它们的算法 算法:简而言之就是求解问题的步骤,对特定问题求解步骤的一种描述。 比如生活中的例子: 考大学 首先填报志愿表、交报名费...
  • c++程序设计基础(第五版),徐红云 周霭如 黄小兵 编著
  • 课后练习题答案 Chapter 1 1.1 1.2 b c 1.3 ad 1.4 semicolon printf math.h \n Chapter 2 2.1 2.2 typedef 255 external const Chapter 3 3.1 3.2 integer modula 6 logical sizeof paratheses typeconversion ...
  • 谭浩强 C语言程序设计第五版 第六章 习题 答案

    万次阅读 多人点赞 2019-06-16 14:01:49
    谭浩强 C语言程序设计第五版 第六章 习题 答案 有问题可以在下方留言哦 1.用筛选法求100以内的素数。 #include <stdio.h> #include <math.h> int main() { int i,j,a[100],b[100]; for (i=1;i<=...
  • 谭浩强第五版的C程序设计的课后习题答案--(第六章,拍不过来,后边的后续每天上传一章节),我无法扫描文件,所以我拍了高清图片,我也是用的这个,怕制作成pdf不高清,所以原图上传了,需要的下载。
  • 一章 1. 填空题 (1) .NET Framework 主要包括 公共语言运行库CLR 和 类库 (2) 网站在编译时首先将语言代码编译成 微软中间语言MSIL (3) 一台IIS Web 服务器IP 地址为9网站端口号为8000则要访 问虚拟目录xxxy 中...
  • 谭浩强第五版的C程序设计的课后习题答案--(第七章,拍不过来,后边的后续每天上传一章节),我无法扫描文件,所以我拍了高清图片,我也是用的这个,怕制作成pdf不高清,所以原图上传了,需要的下载。
  • 谭浩强第五版的C程序设计的课后习题答案--(第八章,拍不过来,后边的后续每天上传一章节),我无法扫描文件,所以我拍了高清图片,我也是用的这个,怕制作成pdf不高清,所以原图上传了,需要的下载。
  • 解析:这题跟第五题是一样的,运用了之前讲到的算数运算、逻辑运算和判断语句,程序的框架就是用if去分割。题目简单而且不严谨,一般数学运算不会总是整数,但是我相信谭浩强是想要用整数去运算的,放代码! int ...
  • 谭浩强第五版的C程序设计的课后习题答案--(第五章,拍不过来,后边的后续每天上传一章节),我无法扫描文件,所以我拍了高清图片,我也是用的这个,怕制作成pdf不高清,所以原图上传了,需要的下载。
  • 鞍点是行上最大,列上最小的元素,因此对数组的i元素进行如下操作: 1、找到该行上最大元素,用max标记,并标记该元素所在列colindex 2、找colindex列上最小的元素,用min标记,并标记该元素所在行号rowindex 3、...
  • C语言程序设计谭浩强课后习题视频讲解C语言程序设计谭浩强课后习题答案
  • 课后练习题答案 Chapter 1 1.1 1.2 b c 1.3 ad 1.4 semicolon printf math.h \n Chapter 2 2.1 2.2 typedef 255 external const Chapter 3 3.1 3.2 integer modula 6 logical sizeof paratheses typeconversion ...
  • C语言程序设计谭浩强第五版由谭浩强教授著、清华大学出版社出版的《C程序设计》经过近三十年一千多万读者的实践检验,被公认为学习C语言程序设计的经典教材,是学习c语言的必备教材,欢迎下载使用。 文件:...
  • #include&amp;amp;lt;stdio.h&amp;amp;gt; int gcd(int x,int y) { int z; for(;;) { z=x%y; x=y; y=z; if(y==0) break; } return x; } int idk(int x,int y) ... ...
  • C语言程序设计谭浩强第五版课后答案第三章
  • 目录第1章 C语言概述第2章 数据类型及其运算第3章 顺序结构程序设计第4章 选择结构程序设计第5章 循环结构程序设计第7章 函数与指针第8章 结构体与共用体第9章 文件第10章 图形与动画 习题解析与答案 第1章 C语言...
  • 谭浩强第五版的C程序设计的课后习题答案--(第十章,拍不过来,最后一章节了),我无法扫描文件,所以我拍了高清图片,我也是用的这个,怕制作成pdf不高清,所以原图上传了,需要的下载。
  • c程序设计第五版谭浩强课后习题答案 第一章 1.什么是程序?什么是程序设计? 程序:就是一组能识别和执行的指令,每一条指令使计算机执行特定的操作 程序设计:是指从确定任务到得到结果、写出文档的全过程 2.为什么...
  • C程序设计第五版谭浩强课后答案 第八章习题答案

    万次阅读 多人点赞 2020-06-28 15:06:45
    C语言程序设计第五版谭浩强课后答案 这里写目录标题C语言程序设计第五版谭浩强课后答案第八章 善于利用指针1. 输入3个整数,要求按由小到大的顺序输出。2. 输入3个字符串,要求按由小到大的顺序输出。3. 输入10个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 66,145
精华内容 26,458
关键字:

c程序设计第五版答案