【第四版课后习题答案】 第06章 数组、指针与字符串
矿产资源开发利用方案编写内容要求及审查大纲
矿产资源开发利用方案编写内容要求及《矿产资源开发利用方案》审查大纲一、概述
㈠矿区位置、隶属关系和企业性质。
如为改扩建矿山, 应说明矿山现状、
特点及存在的主要问题。
㈡编制依据
(1简述项目前期工作进展情况及与有关方面对项目的意向性协议情况。
(2 列出开发利用方案编制所依据的主要基础性资料的名称。
如经储量管理部门认定的矿区地质勘探报告、选矿试验报告、加工利用试验报告、工程地质初评资料、矿区水文资料和供水资料等。
对改、扩建矿山应有生产实际资料, 如矿山总平面现状图、矿床开拓系统图、采场现状图和主要采选设备清单等。
二、矿产品需求现状和预测
㈠该矿产在国内需求情况和市场供应情况
1、矿产品现状及加工利用趋向。
2、国内近、远期的需求量及主要销向预测。
㈡产品价格分析
1、国内矿产品价格现状。
2、矿产品价格稳定性及变化趋势。
三、矿产资源概况
㈠矿区总体概况
1、矿区总体规划情况。
2、矿区矿产资源概况。
3、该设计与矿区总体开发的关系。
㈡该设计项目的资源概况
1、矿床地质及构造特征。
2、矿床开采技术条件及水文地质条件。
c++数组、指针与字符串xiti答案
1.概念填空题1.1 数组定义时有3个要素:数组名、数组元素的类型和数组元素的个数。
按元素在数组中的位置进行访问,是通过下标进行的,称为直接或索引访问。
1.2 C++中的多维数组是嵌套定义的,即多维数组的基本定义是数组构成的数组,三维数组的元素是二维数组。
1.3 计算机内存是一维编址的,多维数组在内存中的存储必须转换为一维方式,C++多维数组在内存中的排列是行方式,即越低的下标变化快。
设数组a有m行n列,每个元素占内存u个字节,则a[i][j]的首地址为a[0][0]的地址+ (i*n+j)*u。
1.4数组名是整型常量,数组名赋给同类型的指针后,该指针是指向数组首元素的指针。
数组名在表达式中被转换为指向数组首元素的指针常量。
1.5每个对象都有一个指向自身的指针,称为this指针,通过使用它来确定其自身的地址。
该指针只能读,不能写。
1.6在C++中,对象访问成员所用的运算符是.,通过指针访问对象的成员所用的运算符是->。
1.7 当动态分配失败时,系统采用返回NULL来表示发生了异常。
如果new返回的指针丢失,则所分配的自由存储区空间将无法收回,称为内存泄漏。
这部分空间必须在计算机重启才能找回,这是因为无名对象的生命期为整个程序。
1.8默认复制构造函数只能完成对象成员的赋值,可能会造成重复释放,默认的析构函数可能会产生内存泄漏。
“=”运算也会产生对象重复释放。
因此我们需要自定义复制构造函数完成对象的深复制。
1.9 在用new运算符建立一个三维数组int 4*5*6,使用了3 个下标运算符,用delete运算符释放该数组时使用了 1 个下标运算符。
new返回的指针类型是int (*) [5]6]。
2 简答题2.1 用一维数组名作函数参数和用一维数组元素函数参数的含义是否相同?为什么2.2 指针变量与整型量的加减运算代表什么意义?2.3个指向普通变量的指针进行减运算是否有意义?为什么2.4什么是浅拷贝?什么是深拷贝?二者有何异同?何时必须自定义复制构造函数、析构函数,何时必须自定义=运算符中在函数, 自定义的复制构造函数、析构函数应该怎样设计?2.5从右往左解释int *(*(*pf)[5])(double *)中4个*的含义。
罗文劼《数据结构与算法》第4版-第6章课后习题参考答案
第6章查找一、选择题1. B2. A3. C4. C5. D6. B7. C8. D9. D 10. D 11. C 12. D 13. B 14. C 15. B二、判断题1. Ⅹ2. √3. Ⅹ4. √5. Ⅹ6. √7. √8. Ⅹ9. Ⅹ 10. Ⅹ11. √ 12. √ 13. √ 14. √ 15. Ⅹ 16. Ⅹ 17. √ 18. Ⅹ 19. √ 20. √三、简答题1. 画出对长度为18的有序的顺序表进行折半查找时的判定树,并指出在等概率时查找成功的平均查找长度,以及查找失败时所需的最多的关键字比较次数。
【解答】(1)(2) 平均查找长度为1/18(1+2*2+3*4+4*8+5*3)=32/9查找最多比较5次。
2. 已知如下所示长度为12的关键字有序的表:{Jan, Feb, Mar, Apr, May, June, July, Aug, Sep, Oct, Nov, Dec}(1) 试按表中元素的顺序依次插入到一棵初始为空的二叉排序树,画出插入完成后的二叉排序树,并求其在等概率的情况下查找成功的平均查找长度。
(2) 若对表中元素先进行排序构成有序表,求在等概率的情况下查找成功的平均查找长度。
(3) 按表中元素的顺序构造一棵平衡二叉排序树,并求其在等概率的情况下查找成功的平均查找长度。
【解答】(1) 按关键字的顺序构造的二叉排序树:(2) 根据构造的二叉排序树,求查找成功时的平均查找长度: ASL SUCC =(1*1+2*2+3*3+4*3+5*2+6*1)/12=3.5(3) 若对表中元素先进行排序构成有序表再构造二叉排序树,则构造的二叉排序树是一棵单支树,在等概率的情况下查找成功的平均查找长度则为:ASL SUCC =(1+2+…+12)/12=6.5 这种情况就退化成为顺序查找。
3. 试推导含有12个结点的平衡二叉树的最大深度,并画出一棵这样的树。
【解答】令F k 表示含有最少结点的深度为k 的平衡二叉树的结点数目。
c语言第四版习题答案
c语言第四版习题答案C语言第四版习题答案C语言作为一门广泛应用于计算机编程领域的编程语言,其重要性不言而喻。
对于初学者来说,通过解答习题可以更好地理解和掌握C语言的基本概念和语法规则。
本文将为读者提供C语言第四版习题的答案,帮助读者更好地学习和巩固C语言的知识。
第一章:计算机概述1. 题目:计算机的五大组成部分是什么?答案:计算机的五大组成部分包括输入设备、输出设备、中央处理器(CPU)、主存储器和辅助存储器。
2. 题目:什么是二进制?答案:二进制是一种用0和1表示数字和字符的计算机语言。
计算机内部的所有数据都以二进制形式存储和处理。
第二章:C语言基础1. 题目:C语言的注释有几种形式?答案:C语言的注释有两种形式,分别是单行注释(以双斜杠“//”开头)和多行注释(以“/*”开头,“*/”结尾)。
2. 题目:C语言中的变量有哪些基本数据类型?答案:C语言中的变量有基本数据类型,包括整型(int)、字符型(char)、浮点型(float和double)和无类型(void)。
第三章:运算符和表达式1. 题目:C语言中的赋值运算符有哪些?答案:C语言中的赋值运算符包括“=”(简单赋值)、“+=”(加后赋值)、“-=”(减后赋值)等。
2. 题目:C语言中的逻辑运算符有哪些?答案:C语言中的逻辑运算符包括“&&”(逻辑与)、“||”(逻辑或)和“!”(逻辑非)。
第四章:控制语句1. 题目:C语言中的if语句和switch语句有什么区别?答案:if语句根据条件的真假来执行不同的代码块,而switch语句根据表达式的值来选择执行哪个代码块。
2. 题目:C语言中的循环语句有哪些?答案:C语言中的循环语句包括for循环、while循环和do-while循环。
第五章:数组和指针1. 题目:C语言中如何定义一个一维数组?答案:C语言中可以通过指定数组的类型和大小来定义一个一维数组,例如int array[10]表示定义一个包含10个整型元素的数组。
c语言课后答案第四版第六章答案
c语言课后答案第四版第六章答案《C语言课后答案(第四版)第六章详细解析:助你轻松掌握章节知识点》。
亲爱的在学习C语言的过程中,课后习题可是巩固知识的好帮手呢。
今天呀,咱们就一起来看看C语言第四版教材第六章的课后答案,顺便讲讲为啥是这样的答案,让你真正把知识点搞懂。
习题1(假设题目是关于数组的简单定义和使用)。
题目:定义一个包含5个整数的数组,并给数组元素赋值,然后输出数组中的所有元素。
答案代码示例:#include <stdio.h>.int main() {int arr[5] = {1, 2, 3, 4, 5};int i;for (i = 0; i < 5; i++) {printf("%d ", arr[i]);}.return 0;}.原因讲解:- 首先呢,`int arr[5]` 这行代码就是定义了一个能装5个整数的数组,就好比你准备了5个小盒子来放整数。
- 然后 `{1, 2, 3, 4, 5}` 就是给这5个小盒子分别放上了1、2、3、4、5这几个数字。
- 那个 `for` 循环呀,就像是你依次去打开这5个小盒子,把里面的数字拿出来给大家看。
`i` 从0开始,因为数组的下标是从0开始计数的哦,一直到 `i < 5`,也就是把5个小盒子都打开看一遍,每次通过 `arr[i]` 来取出对应小盒子里的数字,再用 `printf` 函数打印出来。
案例分析:比如说,你要记录班上5个同学的考试成绩,就可以用这样的数组来存。
每个同学的成绩就放在对应的小盒子(数组元素)里,需要查看成绩的时候,就像上面代码那样一个一个拿出来看。
习题2(假设题目是关于函数调用和数组作为参数传递)。
题目:编写一个函数,接受一个整数数组和数组的大小作为参数,计算数组中所有元素的和并返回。
答案代码示例:#include <stdio.h>.int sumArray(int arr[], int size) {int sum = 0;int i;for (i = 0; i < size; i++) {sum += arr[i];}.return sum;}.int main() {int arr[5] = {1, 2, 3, 4, 5};int total = sumArray(arr, 5);printf("数组元素的和是:%d\n", total);return 0;}.原因讲解:- `sumArray` 这个函数呢,它接受一个整数数组 `arr` 和数组的大小 `size`。
C语言程序设计第四版第六章答案_谭浩强
C语言程序设计第四版第六章答案_谭浩强1、用筛选法求100之内的素数。
解:#include#includeint main(){int i,j,n,a[101];for (i=1;i<=100;i++)a[i]=i;a[1]=0;for (i=2;i<sqrt(100);i++)< bdsfid="73" p=""></sqrt(100);i++)<>for (j=i+1;j<=100;j++){if(a[i]!=0 && a[j]!=0)if (a[j]%a[i]==0)a[j]=0;}printf("\");for (i=2,n=0;i<=100;i++){ if(a[i]!=0){printf("%5d",a[i]);n++;}if(n==10){printf("\");n=0;}}printf("\");return 0;}2、用选择法对10整数排序。
解:#includeint main(){int i,j,min,temp,a[11];printf("enter data:\");for (i=1;i<=10;i++){printf("a[%d]=",i);scanf("%d",&a[i]);}printf("\");printf("The orginal numbers:\");for (i=1;i<=10;i++)printf("%5d",a[i]);printf("\");for (i=1;i<=9;i++){min=i;for (j=i+1;j<=10;j++)if (a[min]>a[j]) min=j;temp=a[i];a[i]=a[min];a[min]=temp;}printf("\The sorted numbers:\");for (i=1;i<=10;i++)printf("%5d",a[i]);printf("\");return 0;}3、求一个3×3的整型矩阵对角线元素之和。
教材课后题答案-第6章_指针习题答案
习题解答一、单项选择题1.若定义了int n=2, *p=&n, *q=p;则下面【】的赋值是非法的。
A.p=qB. *p=*qC. n=*qD. p=n【答案】D2.若定义了double *p, a;则能通过scanf函数给输入项读入数据的程序段是【】。
A.p=&a; scanf(“%1e”,p);B. *p=&a; scanf(“%1f”,p);C. p=&a; scanf(“%f”,p);D. p=&a; scanf(“%1f”,a);【答案】C3.若定义了int a[10], i=3, *p; p=&a[5];下面不能表示为a数组元素的是【】。
A.p[-5]B. a[i+5]C. *p++D. a[i-5]【答案】D4.若有如下定义:int n[5]={1,2,3,4,5},*p=n;则值为5的表达式是【】。
A.*+5B. *(p+5)C. *p+=4D. p+4【答案】C5.设变量b的地址已赋给指针变量ps,下面为“真”的表达式是【】。
A.b==&psB. b==psC. b==*psD. &b==&ps【答案】C6.设有以下定义和语句:int a[3][2]={1,2,3,4,5,6},*p[3];p[0]=a[1];则*(p[0]+1)所代表的数组元素是【】。
A.a[0][1]B. a[1][0]C. a[1][1]D. a[1][2]【答案】C7.若定义了char *str=”Hello!”;下面程序段中正确的是【】。
A.char c[ ], *p=c; strcpy(p,str);B.char c[5], *p; strcpy(p=&c[1],&str[3]);C.char c[5]; strcpy(c,str);D.char c[5]; strcpy(p=c+2,str+3);【答案】B8.若有下面的程序段,则不正确的fxy函数的首部是【】。
c语言教学资料—第6章课后答案.docx
第6章练习与思考1.指针变量有哪几种运算类型?除了一般变量能做的它都能做以外,还有取地址和取内容运算。
2.有一个4x4的矩阵,试用指针变量按照4行4列格式,输岀矩阵中各元素的值。
#include "stdio.h"void main(){int 询4][4]={{1,1丄1},{1丄1,1},{1丄1,1},{1,1,1,1}};int *p=a;for(i=0;i<4*4;i++){ printf(n%3d",*(p+i));if((i+l)%4=0)printf(H\n H);}}3•输出一个字符串,将这个字符串屮大写字母改为小写字母,第一个字母变大写。
#include "stdio.h"void main(){char a[100],*p 二NULL;int i;printf(n Please input a string:\n H);gets(a);P=a;if(*p>=,a,&&*p<=,z,)*p=*p・32;for(i=l;a[i]!='\O f;i++){if(*(p+i)>='A '&&*(p+i)v=Z) *(p+i)=*(p+i)+32;}puts(a);}4.指向函数的指针有哪些特点?(1)可以通过调用指向函数的指针来调用函数。
(2)对于已定义的函数指针可以指向返回值类型相同的不同函数。
(3)函数指针可做函数的参数。
5.编写程序,在己知字符串str中截取一子串。
要求该子串是从血的第m个字符开始, 由n个字符组成。
#include "stdio.h"void main()char str[100],s[100];char *pl=str,*p2=s;int i,m,n;printf(n please input string:\n");scanf(n%s n,str);printf(”please input m,n:\n n);scanf("%d,%d",&m,&n);for(i=0;i<n;i++)*(p2+i)=*(pl+m+i);for(i=0;*(p2+i)U\0:i++) prin(f(”%c”,*(p2+i));}6.编写程序,利用指针将二维数组屮各元素输出。
谭浩强c语言第四版第六章课后答案
for(j=0;j<colum;++j)
{
if(a[i][j]>='A'&&a[i][j]<='Z')
{
letter1++;
}
else
{
if(a[i][j]>='a'&&a[i][j]<='z')
{
letter2++;
}
else
{
if(a[i][j]>='0'&&a[i][j]<='9')
{
number++;
for(i=0;i<len;++i)
{
printf("%-5d",a[i]);
}
printf("\n");
for(i=0;i<len/2;++i)
{
t=a[i];
a[i]=a[len-1-i];
a[len-1-i]=t;
}
printf("逆序为:\n");
for(i=0;i<len;++i)
{
printf("%-5d",a[i]);
return 0;
}
# endif
//6.11
# if 0
# include<stdio.h>
int main()
{
char a[5][9]={""};
int row=5,colum=9;
《C语言入门经典(第4版)》课后练习附答案
目录第1章C语言编程 (4)练习1.1 (4)练习1.2 (4)练习1.3 (5)第2章编程初步 (5)习题2.1 (5)习题2.2 (6)习题2.3 (7)习题2.4 (9)第3章条件判断 (10)习题3.1 (10)习题3.2 (12)习题3.3 (16)习题3.4 (18)第4章循环 (20)习题4.1 (20)习题4.2 (21)习题4.3 (22)习题4.4 (22)习题4.5 (24)第5章数组 (26)习题5.1 (26)习题5.2 (28)习题5.4 (30)习题5.5 (32)第6章字符串和文本的应用 (34)习题6.1 (34)习题6.2 (41)习题6.3 (43)习题6.4 (44)第7章指针 (47)习题7.1 (47)习题7.2 (49)习题7.3 (51)习题7.4 (52)第8章程序的结构 (54)习题8.1 (54)习题8.2 (55)习题8.3 (57)习题8.4 (60)第9章函数再探 (65)习题9.1 (65)习题9.2 (66)习题9.3 (69)习题9.4 (71)第10章基本输入输出操作 (72)习题10.2 (73)习题10.3 (75)习题10.4 (76)第11章结构化数据 (78)习题11.1 (78)习题11.2 (82)习题11.3 (86)习题11.4 (91)习题11.5 (95)第12章处理文件 (99)习题12.1 (99)习题12.2 (100)习题12.3 (104)习题12.4 (105)第13章支持功能 (110)习题13.1 (110)习题13.2 (111)习题13.3 (112)《C语言入门经典(第4版)》课后练习参考答案第1章 C语言编程练习1.1 编写一个程序,用两个printf()语句分别输出自己的名字和地址。
练习1.2将上一个练习修改成所有的输出只用一个printf()语句。
练习1.3编写一个程序,输出下列文本,格式如下所示:"It's freezing in here," he said coldly.第2章编程初步习题2.1 编写一个程序,提示用户用英寸输入一个距离,然后将该距离值输出为码、英尺和英寸的形式。
《C语言程序设计》课后习题答案(第四版)谭浩强
第1章程序设计和C语言11.1什么是计算机程序11.2什么是计算机语言11.3C语言的发展及其特点31.4最简单的C语言程序51.4.1最简单的C语言程序举例61.4.2C语言程序的结构101.5运行C程序的步骤与方法121.6程序设计的任务141-5 #include <stdio.h>int main ( ){ printf ("**************************\n\n");printf(" Very Good!\n\n");printf ("**************************\n");return 0;}1-6#include <stdio.h>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max); return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3C语句573.3.1C语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include <stdio.h>#include <math.h>int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <stdio.h>#include <math.h>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5); // 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5); // 存活期存款。
