C++第八章习题解答

合集下载

数据库应用基础ACCESS(第二版)习题解答

数据库应用基础ACCESS(第二版)习题解答
数据库应用基础ACCESS习题解答
第八章 习题参考答案
一、填空题
1.类模块、标准模块、子过程、函数过程
2.面向对象
3.注释语句
4.立即窗口、本地窗口、监视
5.简单的(特殊的)模块
二、选择题
1.B
2.D
3.D
三、判断题
1.对
2.错
3.对
四、思考题
1.答:类模块是与某个对象相关联的模块,只有在对该对象进行相应的操作时才会执行。而标准模块不与任何对象相关联,因此可在数据库中的任何位置执行。所以,标准模块和类模块的主要区别在于其范围和生命周期。
2.答:用查询向导创建查询的优点:能够快捷方便地创建查询,简单易用,上手快。
缺点:只能创建一些简单的查询,查询功能相对较弱。
用查询设计视图创建查询的优点:可以创建一些比较复杂的查询,查询功能相对较强,实用性强。
缺点:完成较为复杂的查询的操作有一定难度,不易掌握。
3.答:SQL查询有联合查询、传递查询、数据定义查询、子查询。
(7)使用符合标准的SQL数据库语言,具有较好的通用性;
(8)可以利用VBA进行高级操作控制和复杂的数据操作。
第二章 习题参考答案
一、填空题
1.标题栏,菜单栏,工具栏,数据库窗口,状态栏
2.数据库子窗口右上角的“X”按钮,数据库子窗口左上角的控制符号,“文件”菜单中关闭命令
3.文本类型,货币类型,数字类型,日期时间类型,自动编号类型,是/否类型,备注类型,OLE对象类型,超级链接类型,查阅向导类型
报表页脚:包含整份报表最后得出的统计数据或结论,显示于整份报表的结尾处。
2.答:对文本型字段进行分组时,分组形式可以设置为:每一个值和前缀字符。当设置为每一个值时,组间距属性应设置为1;若分组形式设置为前缀字符时,组间距属性可设置为任何有效的字符数。

C语言练习题1

C语言练习题1

C语言练习题1第八章结构体与共用体1练习题一、c语言基础知识1.1选择题1.以下不是c语言的特点的就是(b)。

a.语言简洁紧凑b.能够编制出功能复杂的程序c.c语言可以直接对硬件操作d.c 语言移植性好2.以下字符序列中,不容用做c语言标识符的就是(b)。

a.abc123b.no.1c._123_d._ok3.正确的c语言标识符是(a)。

a._buy_2b.2_buyc.?_buyd.buy?4.恳请挑选出可以用做c语言用户标识符的一组标识符(b)。

a.voidb.a3_b3c.ford.2adefine_123-abcdowordifcasesizeof5.以下符号中,不属于转义字符的就是(b)。

a.\\\\b.\\0xaac.\\td.\\06.不属于c语言关键字的是(d)。

a.intb.breakc.whiled.character7.就是c语言提供更多的合法关键字的就是(b)。

a.floatb.signedc.integerd.char8.以下不能定义为用户标示符的是(d)。

a.一个主程序和若干子程序共同组成b.一个或多个函数共同组成c.若干过程共同组成d.若干子程序共同组成10.c语言程序的基本单位是(c)。

a.程序行b.语句c.函数d.字符20.下列变量定义中合法的是aa.short_a=1-.le-1;b.doubleb=1+5e2.5;c.longdo=0xfdal;d.float2_and=1-e-3;9xn21.与数学式子对应的c语言表达式是(c)。

2x?1a.9*x^n/(2*x-1)b.9*x**n/(2*x-1)c.9*pow(x,n)*(1/(2*x-1))d.9*pow(n,x)/(2*x-1)第八章结构体与共用体222.若存有代数式3ab,则不正确的c语言表达式是(c)。

cda.a/c/d*b*3b.3*a*b/c/dc.3*a*b/c*dd.a*b/d/c*323.已知各变量的类型说明如下:intm=8,n,a,b;unsignedlongw=10;doublex=3.14,y=0.12;则以下符合c语言语法的表达式是(a)。

C语言程序设计(第三版)谭浩强著 各章习题答疑

C语言程序设计(第三版)谭浩强著 各章习题答疑

以八、 /* 以八、十六进制输出 */
} ???? 是对应的带符号短整数。 输出结果是八进制整数 十六进制整数
2
3.9 计算某个表达式的值。 通用程序清单如下: stdio.h” #include ”stdio.h stdio.h void main() { ?????? x; 计算表达式值存入x x=( 表达式 );/* 计算表达式值存入x */ printf(”% printf( %?\n”,x); ,x); } ?????? 表达式对应的数据类型符(需事先判断) ? 表达式为整型,则为d 表达式为实型,则为f 3
第七章习题答疑(二)
折半查找法在排序数组中查找某个数。 上课时已有提示。 7.13 字符串连接(b[]中字符串连接到a[]中字符串后) 设:a[10]=”12 ,b[]=”abc 12”, abc” 12 abc (1)找到a串的’\0’的下标(i=2) ’ (2)j=0; 当型循环(b[j]!=’\0’) ’\ ’ a[i]=b[j],i++,j++ (3)a[i]=’\0’ \ 7.15 字符串复制(b[]中字符串复制到a[]中) 设:a[10]=”12”,b[]=”abc” (1)i=0; 当型循环(b[i]!=’\0’) a[i]=b[i],i++ (2)a[i]=’\0’ 7.9
18
第十章习题答疑(一)
输入3个整数,按照由小到大顺序输出。 int x,y,z,*px=&x,*py=&y,*pz=&x; 用以前的程序,其中的x、y、z换成*px、*py、*pz 10.3 输入10个整数存入一维数组a[10],将其中最小数与第1 个数交换,最大数与最后一个数交换。 要求编3个函数: 10 10 输入10个整数、交换、输出交换后的10个整数。 输入函数: void in(int *p,int n) 输出函数: void out(int *p,int n) 交换函数: void change(int *p,int n) 其中寻找最大最小数的方法: int *q,*max,*min; for (max=min=p,q=p+1;q<p+n;q++) { if(*max<*q) max=q; if(*min>*q) min=q; } 19 交换的方法:*p和*min,*(p+n-1)和*max 10.1

《C语言程序设计教程》第三版课后习题参考答案

《C语言程序设计教程》第三版课后习题参考答案

《C语言程序设计教程》第三版课后习题参考答案C语言程序设计教程第三版课后习题参考答案第一章:C语言概述1.1 C语言的特点答案:C语言是一种通用的、面向过程的程序设计语言,具有高效、简洁、灵活等特点。

它提供了丰富的程序设计元素和功能,适用于各种不同的应用领域。

1.2 C语言程序的基本结构答案:C语言程序由预处理指令、函数声明、函数定义、变量声明和语句组成。

其中,预处理指令用来引入头文件或定义宏,函数声明用来声明函数的名称和参数,函数定义用来实现函数的功能,变量声明用来声明变量的类型和名称,语句用来表达具体的计算过程。

1.3 C语言的数据类型答案:C语言提供了多种数据类型,包括基本类型(整型、浮点型、字符型等)和派生类型(数组、指针、结构体等)。

每种数据类型在内存中占据一定的存储空间,并具有特定的取值范围和操作规则。

1.4 C语言的运算符和表达式答案:C语言支持各种运算符和表达式,例如算术运算符(+、-、*、/等)、关系运算符(>、<、==等)、逻辑运算符(&&、||、!等)等。

通过运算符和表达式可以进行各种数值计算和逻辑判断。

第二章:基本数据类型与运算2.1 整型数据类型答案:C语言提供了不同长度的整型数据类型,包括有符号整型(int、long等)和无符号整型(unsigned int、unsigned long等)。

整型数据类型可以表示整数值,并具有不同的取值范围。

2.2 浮点型数据类型答案:C语言提供了浮点型数据类型(float、double等),用来表示带小数部分的实数值。

浮点型数据可以表示较大或较小的数值,并具有一定的精度。

2.3 字符型数据类型答案:C语言提供了字符型数据类型(char),用来表示单个字符。

字符型数据可以用于表示各种字符(包括字母、数字、符号等)。

2.4 布尔型数据类型答案:C语言不直接支持布尔型数据类型,但可以使用整型数据类型来表示布尔值(0表示假、非零表示真)。

c语言第8章-编译预处理及位运算习题答案doc资料

c语言第8章-编译预处理及位运算习题答案doc资料

c语言第8章-编译预处理及位运算习题答案编译预处理习题一.单项选择题1.在宏定义#define A 3.897678中,宏名A代替一个()。

A)单精度数 B)双精度数 C)常量 D)字符串2.以下叙述中正确的是A)预处理命令行必须位于源文件的开头 B)在源文件的一行上可以有多条预处理命令C)宏名必须用大写字母表示D)宏替换不占用程序的运行时间3.C语言的编译系统对宏命令的处理()。

A)在程序运行时进行的B)在程序连接时进行的C)和C程序中的其它语句同时进行的D)在对源程序中其它语句正式编译之前进行的4.在文件包含预处理语句的中,被包含文件名用“< >”括起时,寻找被包含文件的方式是()。

A)直接按系统设定的标准方式搜索目录B)先在源程序所在目录搜索,再按系统设定的标准方式搜索C)仅仅在源程序所在目录搜索D)仅仅搜索当前目录5.以下说法中正确的是A)#define和printf都是C语句 B)#define是C语句,而printf不是C)printf是C语句,但#define不是D)#define和printf都不是C 语句6.#define A 3.897678#include <stdio.h>main( ){ printf(“A=%f ”,A);}程序运行结果为()。

A) 3.897678=3.897678 B) 3.897678=A C) A=3.897678 D)无结果7.有宏定义:#define LI(a,b) a*b#define LJ(a,b) (a)*(b)在后面的程序中有宏引用:x=LI(3+2,5+8);y=LJ(3+2,5+8);则x、y的值是()。

A) x=65,y=65 B) x=21,y=65 C) x=65,y=21 D)x=21,y=218.有以下程序# define f(x) (x*x)main(){ int i1, i2;i1=f(8)/f(4) ; i2=f(4+4)/f(2+2) ;printf("%d, %d\n",i1,i2);}程序运行后的输出结果是A)64, 28 B)4, 4 C)4, 3D)64, 649.以下程序的输出结果是#define M(x,y,z) x*y+zmain(){ int a=1,b=2, c=3;printf(“%d\n”, M(a+b,b+c, c+a));}A) 19 B) 17 C) 15 D) 1210.有以下程序#define N 5#define M1 N*3#define M2 N*2main(){ int i;i=M1+M2; printf(“%d\n”,i);}程序编译后运行的输出结果是:A) 10 B) 20 C) 25 D) 3011.有如下程序#define N 2#define M N+1#define NUM 2*M+1#main(){ int i;for(i=1;i<=NUM;i++)printf(“%d\n”,i);}该程序中的for循环执行的次数是A) 5 B) 6C) 7 D) 812.位运算是对运算对象按二进制位进行操作的运算,运算的对象是____数据,以___的形式参与运算。

C语言程序设计-第8章 练习题

C语言程序设计-第8章  练习题

一、单项选择题题目1标准输出设备显示器的文件流标识符是()。

a. stdinb. stdoutc. stderrd. stdio题目2表示文件结束符的符号常量EOF的值为()。

a. 0b. -1c. 1d. 127题目3假定一个磁盘数据文件占用n个字节的存储空间,则按字节进行编址的范围是()。

a. 1˜(n-1)b. 0˜(n-1)c. 0˜nd. 1˜n题目4在C语言中,为只写操作打开一个文本文件的方式为()。

b. "w"c. "r"d. "a"题目5在C语言中,文本文件的打开方式共有()。

a. 6b. 9c. 12d. 3题目6在C语言中,为读和写操作打开一个二进制文件,若文件不存在则自动建立空文件的打开方式为()。

a. "ab+"b. "w+"c. "rb+"d. "wb+"题目7从一个文本文件中读取以换行符结束的一个字符串的系统函数为()。

a. fgets()b. fputc()d. fputs()题目8向一个文本文件中写入一个字符的系统函数为()。

a. fputs()b. fputc()c. fgetc()d. fgets()题目9向一个二进制文件中写入数据的系统函数为()。

a. fputc()b. fwrite()c. fread()d. fputs()题目10从一个二进制文件中读取数据的系统函数为fread(),它的参数有()。

a. 2个b. 4个c. 3个d. 5个二、判断题题目11一个磁盘数据文件的文件名由文件主名和扩展名所组成,其中间用圆点分开。

对错题目12当向字符文件输出一个换行符时,实际将输出的是回车符或换行符。

对错题目13C语言系统中提供一个用来描述文件属性的类型标识符为FILE。

对错题目14在数据文件打开方式字符串中,字符r、w和a具有确定的含义,分别代表读、写和追加方式。

济南大学高等数学C(一)6多元函数微分学-疑难解答

济南大学高等数学C(一)6多元函数微分学-疑难解答

第八章 多元函数微分学习题8-13*. :证明下列极限不存在332)0,0(),(lim)1(y x yx y x -→ 证:时,有趋向于为任意常数,沿直线当)0,0()1(),(≠=k k kx y y x,1)1(im ),(lim 3333kxy 0x kx y 0x k kx k kx y x f -=-==→=→ .lim 332)0,0(),(不存在的不同而不同,因此显然极限值随斜率y x y x k y x -→yx xyy x +→)0,0(),(lim)2( 证:时,有趋向于为任意非零实常数沿曲线当)0,0()(-),(2k x kx y y x =,1k im ),(lim 223x-kx y 0x x-kx y 0x 22k x x kx y x f -=-==→=→ .lim)0,0(),(不存在的不同而不同,因此显然极限值随斜率yx xyk y x +→4. :求下列极限 11xy lim)1()3,1(),(-+→xy y x解:;原式31-13131=+⨯⨯= xyxy y x 42lim)2()0,0(),(+-→解:;)(原式41-42lim)0,0(),(=++-=→xy xy xyy x )1sin 1sin (lim )3()0,0(),(xy y x y x +→解:量仍为无穷小量);(利用无穷小量乘有界原式0= 2233)0,0(),(*lim)4(y x y x y x ++→ 解:,则,令θρθρsin cos ==y x.0)s cos (lim s cos lim 330233330=+=+=→→θρθρρθρθρρρin in 原式习题8-22. .5,4,2,4)(4122轴的倾角)处切线对于在点(求曲线x y y x z ⎪⎩⎪⎨⎧=+= 解:轴的)处的切线对于即表示在点()处,,在点(x z x z x x 5,4,2,15,4,221==.4,1tan .1πθθ轴的倾角为故所求切线对于,则有设相应的倾角为斜率为x =4. ,证明:设222z y x r ++=.2)2(;11222222222r zr y r x r z r y r x r =∂∂+∂∂+∂∂=∂∂+∂∂+∂∂)()())((证:,,,)(rzz r r y y r r x z y x x x r =∂∂=∂∂=++=∂∂222221 ;1222=∂∂+∂∂+∂∂)()()故(z r y r x r.11)1(1)2(22222r x r r r x rx r x r ⋅-=⋅-⋅+=∂∂,11,1122222222r z r r z r r y r r y r ⋅-=∂∂⋅-=∂∂ .2222222r zr y r x r =∂∂+∂∂+∂∂故7. .0zz 2)2(cos 22222=∂∂∂+∂∂-=t x tt x z ,证明:设 证:),2sin(2)2sin()2cos(4t x tx t x x z --=-⋅--=∂∂ ),2cos(22t x tx z-=∂∂∂ ),2sin()2())2sin(()2cos(22t x tt x t x t z -=-⋅--⋅-⋅=∂∂ ).2cos()1()2cos(22t x t x tz--=-⋅-=∂∂ .0z z 2222=∂∂∂+∂∂t x t故8. 的竞争对手,这两家公司公司是机床行业的两个公司和Y X 别为主要产品的供给函数分.41600;51000Y Y X X Q P Q P -=-=.250100个单位个单位和是公司现在的销售量分别公司和Y X 多少?公司当前的价格弹性是公司和)(Y X 1下降的销售量个单位,同时导致增加到降价后,使)假定(X Y Q X Q Y 3002 性是多少?公司产品的交叉价格弹个单位,试问到X 75 证:,100,5001==X X Q P X 公司)( ,51||XXX X X X X Q P Q P dP dQ =⨯=η .110050051=⨯公司当前的价格弹性为故X,250,600==Y Y Q P Y 公司,51||Y YY Y YY Y Q P Q P dP dQ =⨯=η.6.025060041=⨯公司当前的价格弹性为故Y,时时,)(625,75;4003002====X X Y Y P Q P Q .7.0600400600-40010075100-75=++性为公司产品的交叉价格弹X习题8-41. .求下列函数的全导数.,4,3),arctan()2(3dtdzt y t x y x z 求而设==-= 解:dtdy y z dt dx x z dt dz ⋅∂∂+⋅∂∂= 22212)(113)(11t y x y x ⋅-+-+⋅-+=.)43(1123232t t t -+-= 2. :具有一阶连续偏导数)数(其中求下列函数的一阶偏导f );,()4(zyy x f u =解:.,1,1222121f zy z u f z f y x y u f y x u '-=∂∂'+'-=∂∂'=∂∂ ).,,()5(xyz xy x f u =解:.,,332321f xy zu f xz f x y u f yz f y f x u '=∂∂'+'=∂∂'+'+'=∂∂ 3. .11,)(,)(222y zy z y x z x u f y x f y z =∂∂⋅+∂∂⋅-=验证为可导函数其中设解:,))(()(22)())((2222222222y x f y x f xy x y x f y x f y x z --'-=⋅-'⋅--=∂∂ ,))(()(2)(1)2()())(()(1222222222222222y x f y x f y y x f y y x f y x f y y x f y z --'+-=-⋅-'⋅---=∂∂代入左式,化简得2222222222222))(()(2)(1))(()(2y x f y x f y y x f y x f y x f xy --'+-+--'-=左式.)(1222右式==-=yzy x yf 5. 数:求下列函数的二阶偏导).ln()2(22y x y z ++=解:,)(22122222222y x y x y xy x x y x y x z +++=+⋅++=∂∂,)1)221(1222222y x yx yy x y y z +=++⋅++=∂∂,)()()2()(1322222222222222y x y x y y x y x y x y x y x z +++++-+++=∂∂,)(3222y x x y x z +-=∂∂∂ .)(32222y x y y z +-=∂∂习题8-53. .,,0)tan()cos()sin(yzx z yz xz xy ∂∂∂∂=++求设 解:.,,的函数为为独立变量,由题意知,y x z y x求导,得等式两边对x,0)(sec )()sin()cos(2=∂∂⋅⋅+∂∂⋅+⋅-xz y yz x z x z xz xy y 整理得;)(sec )sin()sin()cos(2yz y xz x xz z xy y x z --=∂∂ 求导,整理得同理,等式两边对y .)(sec )sin()(sec )cos(22yz y xy x yz z xy x y z -+=∂∂ 5. 所确定的)(都是由方程设0,,),(),,(),,(====z y x F y x z z z x y y z y x x.1-=∂∂⋅∂∂⋅∂∂xzz y y x 证明有连续偏导数的函数,解:的函数,则方程为为独立变量,,视)(方程中z y x z y z y x F ,,0,,= .-,0xy y x F F y xF y x F y =∂∂=+∂∂⋅从而求导得两边对.-,-zx y z F F x z F F z y=∂∂=∂∂同理可求.1)(-)(---=⋅⋅=∂∂⋅∂∂⋅∂∂zx y z x y F F F F F F x z z y y x 故7. .2yx zxyz e z∂∂∂=,求设 解:求导,得等式两边对x ;xye yzx z x z xy yz x z e z x -=∂∂⇒∂∂⋅+=∂∂⋅(1) 求导,得等式两边对y;xye xz y z y z xy xz y z e z x -=∂∂⇒∂∂⋅+=∂∂⋅(2) 求导得式对y )1()];())([()(122x yz e yz xy e y z y z xy e y x z z z z -∂∂⋅--∂∂+-=∂∂∂ 得代入)2(.12-322)(-=∂∂∂z y x y x z习题8-62. .)2()(22的极值求函数y y x ex,y f x++=解:).1(2)1422(222+=+++=y e f y y x e f x y x x ,.1-2101014222),,求得驻点(解方程组⎩⎨⎧=+=+++y y y x 再求出二阶偏导.2)44(2)4844(2222x yy x xy x xx e f y e f y y x e f =+=+++=,,,004.2,0,21-2122>>--===A e B AC e C B e A ,因)处,,在驻点( .2-1-21),(e y x f )处取得极小值,在点(所以函数3. .442222上的最大值和最小值在闭区域求函数≤+-=y x y x z 解:0,2,2.4422令其等于时,求出所有的驻点当y z x z y x y x -==<+.0,0)得驻点(.4422的点求出所有可能取得最值时,由拉格朗日乘数法当=+y x ),44(),,(2222-++-=y x y x y x L λλ设拉格朗日函数⎪⎩⎪⎨⎧=-+==+-==+=0440*******y x L y y L x x L y x λλλ令 .0,2;1,0=±=±==y x y x 解得.41-,最大值为值为的点的函数值,得最小比较所有可能取得最值4. ,和售价分别为同时在两个市场销售,某厂家生产的一种产品 21P P ;5.0-10 ,2.0-24 221121P Q P Q Q Q ==,需求函数分别为和销售量分别为 市场的售价,问厂家如何确定两个总成本函数为 )(403421Q Q C ++= 大?最大利润为多能使得获得的总利润最 解:,则设利润函数为L,13945.02.030322221212211---+=-+=P P P P C Q P Q P L ,,,联立解得,令其为,又30800-304.0-32212121====P P P L P L P P .此为唯一驻点 .336308021时取得为,定存在,故又由题意知最大利润一==P P .最大利润7. .角形求有最大周长的直角三的一切直角三角形中,从斜边长为l 解:,,,222l y x C l y x y x ++==+,周长则设另两边长分别为.222下的极值问题在约束条件题目即为求l y x l y x C =+++=设拉格朗日函数),(),,(222l y x l y x y x F -++++=λλ⎪⎩⎪⎨⎧=-+==+==+=,0,021,021222l y x F y F x F y x λλλ令周长一定存在,,为唯一驻点,且最大解方程组得l y x 22== .22时有最大周长故当l y x == 7. 品的广告,根据统计资纸两种方式做销售某商某公司可通过电台及报 (万元)用(万元)及报纸广告费用(万元)与电台广告费料,销售收入21x x R验公式:之间的关系有如下的经 222121211028321415x x x x x x R ---++= ;况下,求最优广告策略)在广告费用不限的情(1 .5.12告策略万元,求相应的最优广)若提供的广告费用为(解:)利润函数(1 22212121211028311315)(x x x x x x x x R L ---++=+-=.25.175.003102-8-0138-4-21212121(万元)(万元),解得,,令==⎩⎨⎧=+==+=x x x x L x x L x x.2084222212212-=∂∂=-=∂∂∂=-=∂∂=x LC x x L B x L A ,,又 .25.1,75.000162)为极大值点,故点(,<>=-A B AC时的最优广告策略为:,它为最大值点,即此由问题的实际意义可知 .25.175.0万元作报纸广告万元作电台广告,用用 做拉格朗日函数)2(),5.1(),(),,(212121-++=x x x x L x x F λλ),5.1(10283113152122212121-++---++=x x x x x x x x λ,05.10208310481321211221⎪⎩⎪⎨⎧=-+==+--==+--=x x F x x F x x F x x λλλ令.5.15.1,021,可使利润最大万元全部用于报纸广告,即广告费用解得==x x 10. .022之间的最短距离和直线求抛物线=--=y x x y解:的距离的求抛物线上的点到直线由题意,问题可转化为02=--y x .最小值的距离为)到直线任意点(02,=--y x y x.2|2|)1(1|2|2--=-+--=y x y x d.|2|2下的最值在约束条件先求函数x y y x =--设拉格朗日函数,)()2()(|2|22x y y x x y y x L -+---=-+--=λλ ,下,(注:在约束条件))2(|2|2---=--=y x y x x y ⎪⎩⎪⎨⎧=-==+==--=,0,01,0212x y L L x L y x λλλ令最短距离,为唯一驻点,故所求,解方程组得4121==y x.8272|24121|=--=d 11.的有最大体积试求内接于椭球面)0,0,0(1222222>>>=++c b a cz b y a x.的长方体解:),则按题意,我们,设其一个顶点为(此长方体的中心为原点z y x ,, ).0,0,0(18222222>>>=++=z y x cz b y a x xyz V 下的极值在约束条件应考虑函数设拉格朗日函数),1(222222-++++=cz b y a x xyz F λ,01020222222222⎪⎪⎪⎩⎪⎪⎪⎨⎧=-++==⋅+==⋅+=c z b y a x F byxz F a xyz F yx λλλ令体的长、宽、高分别为故具有最大体积的长方解得,3,3,3c z b y a x ===.33832,32,32abc V c z b y a x ====,且最大体积12. 这椭圆截成一椭圆,求原点到被平面求抛物面122=+++=z y x y x z.的最长与最短距离解:作拉格朗日函数)1()(22222-+++--+++=z y x y x z z y x L μλ ,022=+-=μλx x L x 令 (1),022=+-=μλy y L y (2) ,02=++=μλz L z (3).01,022=-++==--=z y x L y x z L μλ,得由或,故有)()得(()由(01.10)-12-1=====-μλλλy x y x ,得和代入将,不合题意,故舍去22221.21-x z z y x y x z y x z ==+++===,得到两,,得得;消去32231122122 =±-===+=+z y x x x z z x ),于是,,()和,,(个点3223-123-13-223123121+--+-+-M M .35-9359,最短距离为求得最长距离为+总习题八1. 填入下列三者中选择一个正确的充分必要和必要、充分在""""""空格内:.),(),(),(.),(),(),()1(件在该点可微分的必要条连续是在点条件充分在该点连续的可微分是在点y x f y x y x f y x f y x y x f.),(),(),()2(条件必要在该点可微分的存在是及的偏导数在点y x f y zx z y x y x f z ∂∂∂∂=.),(),(条件充分存在的的及偏导数可微分是函数在该点的在点yzx z y x y x f z ∂∂∂∂=.),(),(),()3(条件充分在该点可微分的存在且连续是在点及的偏导数y x f y x y zx z y x f z ∂∂∂∂=.),()4(22条件充分内相等的混合偏导数在内连续是这两个二阶在区域及的两个二阶混合偏导数D D x y z y x z y x f z ∂∂∂∂∂∂=4. ).,(),(1),(),(222x x f x x x f x x f y x f y x ,求,有一阶连续偏导数,且设== 解:,求导得,,等式两端对由0211),(22=⋅+⋅=x f f x x x f x x .21-),(21-2-2-22=====x x f x x x f f x f y x x x ,即代入将8. )处连续且在点(证明设0,0),(,0,00,)(),(2222232222y x f y x y x y x y x y x f ⎪⎩⎪⎨⎧≠+≠++=.分偏导数存在,但不可微 解:)处连续,在(先证0,0),(y x f232222)0,0(),()0,0(),()(lim),(limy x y x y x f y x y x +=→→)sin ,cos (sin cos lim 32240θρθρρθθρρ===→y x ).0,0(0sin cos lim 220f ===→θθρρ.0,0),()处连续在(故y x f)处偏导数存在,在(再证0,0),(y x f,)(),(),(000,00lim 00=--=→x f x f f x x.000,00lim 00=--=→y f y f f y y )(),(),()处不可微,在(最后证0,0),(y x f 22)0,0(),()0,0()0,0()0,0(),(limyx yf x f f y x f y x y x +---→22222)0,0(),()(lim y x y x y x +=→ )sin ,cos (sin cos lim 42240θρθρρθθρρ===→y x .sin cos lim 220θθρ→=.0,0),()处不可微在(显然,极限不存在,故y x f12. .2),(222220-2y fx y y x f x f y x dt e y x f xyt ∂∂+∂∂∂-∂∂=⎰,求设解:,,x e yfy e x f y x y x ⋅=∂∂⋅=∂∂2222-- ,2222-22-22y x y x e y x e yx f-=∂∂∂ ,2222-32-222-)2-(y x y x e xy xy e y x f =⋅⋅=∂∂,22-3222-y x ye x yf =∂∂ .2-222-22222y x e yf x y y x f x f y x =∂∂+∂∂∂-∂∂代入所求式子得 13. .124522的面积试求椭圆=++y xy x解:原点的距离的最大值与在原点,故先求椭圆至由题意知,椭圆的中心 设乘数法最小值,利用拉格朗日.),()(1245,,2222-++++=y xy x y x y x F λλ,令⎪⎩⎪⎨⎧=-++==++==++=012450)44(20)410(222y xy x F y x y F y x x F y x λλλ ,)()()(即⎪⎩⎪⎨⎧=++=++=++3124520)22(10)25(522y xy x y x y y x x λλ )得,代入()得()(232-1xxy -=λ ,))((02223222=-+=--y x y x y xy x .22x y y x -==,因而,30430112820)3(222222===++=x y y y y y x ,因而,解之得得代入将 .61301304,2221=+=+==y x y x f d )(于是 ,54511885)3(222222===+--=y x x x x x y ,因而,解之得得代入将.15154,2222=+=+==y x y x f d )(于是 .66611611611ππ=⋅⋅,故椭圆的面积为和短半轴的长分别为,即椭圆的长半轴与,最短距离为距离为因而椭圆至原点的最长15.底平所围圆锥体内所作出的和平面求在圆锥面33222=+=z y x z .面的最大长方体体积值面平行于xOy解:,且长方体的一,高为底面半径为由题设知直圆锥面的上32==H R 上,,四个顶点在直圆锥面和重合,两个边长为个面域直锥面的上底面y x 22面,则体底面的对角线作一截,过直圆锥的高和长方高为Z,,,,22y x CD EC R CB AC Z DG EF H DC +=======.)(22y x H R Z H +=-在约束条件问题转化为求函数xyz V 4=.0,0,0)(22)下的极值问题(>>>+=-z y x y x HR Z H设拉格朗日函数,])([22R Z H y x H xyz F --++=λ,令⎪⎪⎪⎩⎪⎪⎪⎨⎧=--+==+==++==++=)4(0)()3(0)2(0)1(0222222R Z H y x H F R xy F y x Hy xz Fy y x Hx yz F z x λλλλ ,)可得又由()得,代入()得)、(由(RH z R y x y x λλλ21.321--=-===.313292-4,,H z R y x R z y x ====,,从而有)得代入(将λ时得到最大体积值,高分别为故当长方体的长、宽、322322.932132232244=⨯⨯⨯==xyz V。

第八章习题解答

第八章习题解答

习题八答案1. 试比较多谐振荡器、单稳态触发器、施密特触发器的工作特点,并说明每种电路的主要用途。

答:多谐振荡器是一种自激振荡电路,不需要外加输入信号,它没有稳定状态,只有两个暂稳态。

暂稳态间的相互转换完全靠电路本身电容的充电和放电自动完成。

改变外接R 、C 定时元件数值的大小,可调节振荡频率。

施密特触发器具有回差特性,它有两个稳定状态,有两个不同的触发电平。

施密特触发器可将任意波形变换成矩形脉冲,输出脉冲宽度取决于输入信号的波形和回差电压的大小。

单稳态触发器有一个稳定状态和一个暂稳态。

输入信号起到触发电路进入暂稳态的作用,其输出脉冲的宽度取决于电路本身 R 、C 定时元件的数值。

改变 R 、C 定时元件的数值可调节输出脉冲的宽度。

多谐振荡器是常用的矩形脉冲产生电路。

施密特触发器和单稳态触发器是两种常用的整形电路。

施密特触发器可用来进行整形、幅度鉴别、构成多谐振荡器等。

单稳态触发器常用于脉冲的延时、定时和整形等。

2.在图8.2所示555集成定时器中,输出电压uo 为高电平UOH、低电平UOL及保持原来状态不变的输入信号条件各是什么?假定UCO端已通过0.01μF 接地,u D 端悬空。

答:当1=R 时, TR U <3V CC ,则C 2输出低电平, 1=Q ,OH o U u =。

当1=R 时, TH U >32V CC ,TR U >3V CC ,则C 1输出低电平、C 2输出高电平,1=Q 、0=Q ,OL o U u =。

当1=R 时, TH U <32V CC,TR U >3V CC ,则C 1C 2输出均为高电平,基本RS 触发器保持原来状态不变,因此o u 保持原来状态不变。

3.在图8.3所示多谐振荡器中,欲降低电路振荡频率,试说明下面列举的各种方法中,哪些是正确的,为什么?1) 加大R 1的阻值; 2) 加大R 2的阻值; 3) 减小C 的容量。

答:根据式(8-2)()ln221121C R R T f +==可知,1)2)两种方法是正确的。

《C语言程序设计》 课后习题答案 高等教育出版社

《C语言程序设计》 课后习题答案 高等教育出版社

《C语言程序设计》课后习题答案高等教育出版社《C语言程序设计》课后习题答案高等教育出版社第一章:C语言概述1. C语言的特点C语言是一种以处理底层任务和系统编程为目标的高级编程语言。

其特点包括语法简洁、执行效率高、可移植性强等。

第二章:C语言基本数据类型1. C语言中的基本数据类型C语言中的基本数据类型包括整型、字符型、浮点型等。

整型可以进一步细分为有符号整型和无符号整型。

第三章:C语言运算符1. C语言中的运算符C语言中常见的运算符包括算术运算符、赋值运算符、关系运算符、逻辑运算符等。

这些运算符用于执行各种数学和逻辑操作。

第四章:C语言控制语句1. C语言中的条件语句C语言提供了if语句和switch语句来实现条件判断。

if语句用于执行基于布尔表达式的条件分支,而switch语句用于根据不同的值执行不同的代码块。

第五章:C语言函数1. C语言中的函数定义和调用函数是C语言中的基本模块,用于封装可重用的代码。

函数定义包括函数返回类型、函数名、参数列表和函数体等部分。

第六章:C语言数组1. C语言中的数组定义和使用数组是一组相同类型的数据元素的集合。

C语言中可以使用数组来存储和操作大量数据。

第七章:C语言指针1. C语言中的指针概念指针是一种变量,它存储了内存地址。

通过指针,可以直接访问和修改对应内存地址中的数据。

第八章:C语言字符串1. C语言中的字符串操作字符串是由一系列字符组成的数据类型。

C语言通过字符数组来表示和操作字符串。

第九章:C语言结构体1. C语言中的结构体定义和使用结构体是一种自定义的复合数据类型,它可以包含多个不同类型的成员变量。

第十章:C语言文件操作1. C语言中的文件读写操作文件操作是一种重要的数据输入和输出方式。

C语言提供了一系列函数来实现文件的读写操作。

总结:通过解答以上习题,我们可以更好地掌握C语言的各个方面,提升我们的编程能力和解决问题的能力。

希望本文对读者有所帮助。

结构化学习题解答(第八章)

结构化学习题解答(第八章)

rC C (1 a / 4) 2 (1 b / 4) 2 (1 c / 4) 2 a 3 4 3 356.7 pm 4 154.4 pm 密度D ZM / NV (8 12.0 g / 6.02 1023 ) /(356.7 1010 cm) 3 3.51g cm
[8.31] 已知NaCl晶体立方晶胞参数a=563.94pm实验测得衍射 111的衍射角θ=5.100,求实验所用X射线的波长。 [解 ]: 2 2 2 1/ 2 hkl
d
a /(h k l )
563.94 pm / 3 325.59 pm d 2 sin 325.59 pm 2 sin 5.10 57.9 pm
[8.26] 用Cu Kα射线测得某晶体的衍射图,从中量得 以下数据。试查PDF卡片,鉴定此晶体可能是什么。 2θ/(0) 27.3 31.8 45.5 53.9 56.6 66.3 75.5 I/I0 18 100 80 5 21 20 20
[解]:利用PDF卡片鉴定晶体时,需先把衍射角2θ数据 换算成d值(d=λ/2Sinθ)如下:(λ=154.2pm) 2θ/(0) 27.3 31.8 45.5 53.9 56.6 66.3 75.5 d/pm 326.7 281.4 199.4 170.1 162.6 141.0 125.9 I/I0 18 100 80 5 21 20 20 按这组d-I/I0值查表,得知它为NaCl晶体。
rTi O (0.31a) 2 (0.31a) 2 0.438a 0.438 458pm 201pm
[8.19] 金属镍的立方晶胞参数a=352.4pm,试求d200,d111,d220。 [解]:立方晶系的衍射指标hkl和衍射面间距dhkl的关系为:

C++课后习题答案第八章

C++课后习题答案第八章
cout<<"y=x/y="<<x/y<<endl;
}
};
void main()
{BASE *pb;
A obj1;
B obj2;
pb=&obj1;
pb->getxy(10);
pb->fun();
pb=&obj2;
pb->getxy(100,20);
pb->fun();
}
答案:
x=10 y=x*x=100
private:
int z;
};
void main()
{Iclass obj(2,4,10);
Bclass p1=obj;
cout<<p1.fun()<<endl;
Bclass &p2=obj;
cout<<p2.fun()<<endl;
cout<<p2.Bclass::fun()<<endl;
Bclass *p3=&obj;
protected:
double radius;
};
class sphere:public circle
{ public:
sphere(double r):circle(r){ }
double area() {return 4.0*PI*radius*radius;}
double volume()
{ return 4.0*PI*radius*radius*radius/3.0;}
3.在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值( b )。

智慧树知到程序设计基础(C语言)测试第八章单元测试参考答案

智慧树知到程序设计基础(C语言)测试第八章单元测试参考答案

智慧树知到程序设计基础(C语言)测试第八章单元测试参考答案•总题数: 101【判断题】 (10分)有如下函数调用语句:fun(r1,r2+r3,(r4,r5));该函数调用语句中,含有的实参个数是3个。

A.错B.对正确本题总得分10分2【判断题】 (10分)函数可以嵌套定义,但不能嵌套调用。

A.对B.错正确本题总得分10分3【判断题】 (10分)mian函数可以自己调用自己。

A.对B.错正确本题总得分10分4【单选题】 (5分)以下正确的函数定义是()。

A.fun(int x,y){ int z; return int z; }B.double fun(int x,int y){ z=x+y; return z; }C.double fun(int x,int y){ double z;z=x+y;return z; }D.fun(x,y){int x,y; z=x+y; retun z;}正确本题总得分5分5【单选题】 (10分)在C语言函数中,下面说法正确的是()。

A.一个函数中只能有一个return语句。

B.一个return语句可以返回多个值。

C.一个函数中可以有多个return语句,但是最多执行其中一个return语句。

D.一个函数中可以有多个return语句,可能多个return语句全部执行正确本题总得分10分6【单选题】 (10分)在C语言函数中,以下说法正确的是()。

A.return后边的值不能为表达式B.定义函数时,形参的类型说明可以放在函数体内。

C.如果形参与实参的类型不一致以实参类型为准D.如果函数值的类型与return返回值类型不一致,以函数值类型为准正确本题总得分10分7【单选题】 (10分)在C语言程序中,以下正确的描述是()。

A.函数的定义和调用均可以嵌套B.函数的定义和函数的调用均不可以嵌套C.函数的定义可以嵌套,但函数的调用不可以嵌套D.函数的定义不可嵌套,但函数的调用可以嵌套正确本题总得分10分8【单选题】 (10分)有下列程序,程序运行后的输出结果是()。

第八章刚体的平面运动习题解答

第八章刚体的平面运动习题解答
圆盘



8-21图8-48所示机构中,圆轮A的半径R=0.2m,圆轮B的半径r=0.1m,两轮均在水平轨道上作纯滚动。在图示瞬时,A轮上C点在最高位置,轮心速度vA=2m/s,加速度aA=2m/s2,试求轮B滚动的角速度和角加速度。
图8-48
加速度分析
圆轮A
杆BC


8-22轮O在水平面上作纯滚动,如图8-49所示。轮缘上固定销钉B,此销钉可在摇杆O1A的槽内滑动,并带动摇杆绕轴O1转动。已知轮心O的速度是一常量,vO=0.2m/s,轮的半径R=0.5m,图示位置时,O1A是轮的切线,摇杆与水平面的夹角为 。试求该瞬时摇杆的角速度和角加速度。
图8-59
以O为动点,杆AB为动系
(1)速度分析
(2)加速度分析
圆轮O
以O为基点,分析C点
向y
8-33图8-60所示机构中,已知曲柄OA以匀角速度 绕定轴O转动,OA=100mm,l=500mm。在图示位置, ,试确定杆BD的角速度和角加速度。
图8-60
以A为动点,杆AB为动系
(1)速度分析
(2)加速度分析
图8-33
瞬心法
基点法
8-7在如图8-34所示的筛动机构中,筛子BC的摆动是由曲柄连杆机构所带动。已知曲柄长OA=0.3m,转速为n=40r/min。当筛子运动到与点O在同一水平线上时, ,试求此时筛子BC的速度。
图8-34
速度投影定理
8-8长为l=1.2m的直杆AB作平面运动,某瞬时其中点C的速度大小为vC=3m/s,方向与AB的夹角为 ,如图8-35所示。试求此时点A可能有的最小速度以及该瞬时杆AB的角速度。
8-20半径为r的圆盘可在半径为R的固定圆柱面上纯滚动,滑块B可在水平滑槽内滑动,如图8-47所示。已知r=125mm,R=375mm;杆AB长l=250mm。图示瞬时,vB=500mm/s,aB=750mm/s2;O、A、O1三点位于同一铅垂线上,试求此时圆盘的角加速度。

C语言第8章 指针

C语言第8章 指针
数据类型 *函数名(形参表) { 函数体; }
例8-13 求最长字符串。
函数的返回值为指针,指针数组作函数参数。
8.5.2 执行函数的指针变量(P207)
P207 自学
8.6 指针应用举例 (P208)
P208 自学
8.7 动态内存管理 (P214)
动态分配存储空间
malloc( )函数 calloc( ) 函数
2. 变量地址示意图
变量 b 的地址:XXXX 变量b 4字节
例: float b; char c;
变量 c 的地址:XXXX 数组 a 的地址:XXXX
变量c 1字节
int a[2];
数组a 8字节
变量的地址示意图
8.1.1 指针和指针变量(P185)
指针
变量的存储地址称为该变量的指针。
指针变量
for (i=0;i<4;i++)
p[i]=&a[i*3]; printf ("%d\n",p[3][2]);
8.4 指针作为函数的参数 (P199)
指针变量 ① 形参是指针变量,对应实参是 变量地址 数组名 指针变量 ② 形参是数组名,对应实参是 变量的地址 数组名
8.4.1 指针作参数示例
例8-10 两数交换。形参为指针变量,实参为变量
char *p="abcd";
读下列程序段,分析输出结果
(1)
char s[]="ABCD";
char *p; for (p=s; p<s+4; p++) printf("%s\n",p);
读下列程序段,分析输出结果

c语言第八章 函数

c语言第八章 函数

教学进程
8.2
函数的调用
【练习题 】
用函数实现求两个实数的和。
#include <stdio.h> void main() /*主调函数*/ { float add(float x, float y); /*函数声明*/ float a,b,c; printf("Please enter a and b:"); scanf("%f,%f",&a,&b); c=add(a,b); 因函数声明与函数首 printf("sum is %f\n",c); 部一致,故把函数声 } 明称为函数原型。 float add(float x,float y) /*被调函数首部*/ { float z; z=x+y; 用函数原型来声明函数,能减少 return(z); 编写程序时可能出现的错误。 }
教学进程
8.2.3 函数的调用
定义函数时,函数名后括号中的变量称为形式参数,即形参。 定义函数时,函数名后括号中的变量称为形式参数,即形参。 在主函数中调用函数时,函数名后括号中的表达式称为实际 参数,简称实参。
【例 】 输入两个整数,要求用一个函数求出其中的大者,并 在主函数中输出此数。
教学进程
a
b
c
d
e
f
教学进程
运行结果: 【例】 函数调用的简单例子。
**************** How do you do! ****************
/*主调函数*/ /*主调函数* #include <stdio.h> void main() { void printstar(); printstar(); void print_message(); print_message(); printstar(); print_message(); printstar(); }

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

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

c语⾔程序设计第五版课后答案谭浩强第⼋章课后答案c语⾔程序设计第五版课后答案谭浩强习题答案第⼋章善于利⽤指针本章习题均要求使⽤指针⽅法处理。

1. 输⼊3个整数,要求按由⼩到⼤的顺序输出。

解题思路:先获取到三个变量的地址,然后获取三个数据,通过指针进⾏⽐较转换即可答案:#include <stdio.h>void swap(int *p_a, int *p_b){int temp = *p_a;*p_a = *p_b;*p_b = temp;}int main(){int a, b, c, *p_a = &a, *p_b = &b, *p_c = &c; // 获取每个变量空间的地址printf("Please enter three numbers:");scanf_s("%d%d%d", p_a, p_b, p_c);if (*p_a > *p_b) {swap(p_a, p_b);//通过指针进⾏指向空间内的数据交换}if (*p_a > *p_c) {swap(p_a, p_c);}if (*p_b > *p_c) {swap(p_b, p_c);}printf("%d %d %d\n", *p_a, *p_b, *p_c);system("pause");return 0;}2. 输⼊3个字符串,要求按由⼩到⼤的顺序输出。

解题思路:字符串的⽐较可以使⽤strcmp函数,返回值>0表⽰⼤于,返回值⼩于0表⽰⼩于,返回追等于0表⽰相同。

其他的⽐较排序思路与数字的排序交换没有区别,逐个进⾏⽐较先找出最⼤的,然后找出第⼆⼤的。

答案:#include <stdio.h>int main(){char str[3][32];char *p[3];printf("Please enter three strings:");for (int i = 0; i < 3; i++) {p[i] = str[i];scanf_s("%s", p[i], 32);//后边的数字限制缓冲区边界,防⽌缓冲区溢出访问越界}//让p[0]和p[1]/p[2]分别进⾏⽐较,找出最⼤的字符串,i+1之后,则让p[1]和p[2]进⾏⽐较,找出第⼆⼤//i循环总个数-1次,最后⼀个是不需要⽐较的for (int i = 0; i < 2; i++) {for (int j = i + 1; j < 3; j++) {if (strcmp(p[i], p[j]) > 0) {char *tmp = p[i]; p[i] = p[j]; p[j] = tmp;}}}printf("%s %s %s\n", p[0], p[1], p[2]);system("pause");return 0;}3. 输⼊10个整数,将其中最⼩的数与第⼀个数对换, 把最⼤的数与最后⼀个数对换。

第八章 习题答案

第八章 习题答案

第八章 习题解答8-1考虑并回答下面的问题:(a )在确定非线性元件的描述函数时,要求非线性元件不是时间的函数,并要求有斜对称性,这是为什么?(b )什么样的非线性元件是无记忆的?什么样的非线性元件是有记忆的?它们的描述函数各有什么特点?(c )线性元件的传递函数与非线性元件的描述函数,有什么是相同的?有什么是不同的?线性元件可以有描述函数吗?非线性元件可以有传递函数吗?(d )非线性系统线性部分的频率特性曲线与非线性元件的负倒描述函数曲线相交时,系统一定能产生稳定的自激振荡吗? 解:(a )描述函数法只能用来研究非线性定常系统的特性,这要求非线性元件的特性不随时间发生变化。

在用描述函数法研究非线性系统的自振特性时,要求在正弦输入下非线性特性的输出没有直流分量,这要求非线性元件的特性是斜对称的。

(b )一般情况下用代数方程描述的非线性特性是无记忆的,根据非线性环节当前的输入就可以决定非线性环节的输出。

用微分方程描述的非线性特性是有记忆的,不能简单地根据非线性环节当前的输入决定非线性环节的输出。

无记忆非线性特性的描述函数一般为实数,有记忆非线性特性的描述函数一般为复数。

(c )线性元件的传递函数与非线性元件的描述函数都是元件的外部描述。

线性元件的传递函数表述的是元件输出拉氏变换与输入拉氏变换之比,而非线性元件的描述函数表示的是元件在正弦输入下输出基波特性。

由传递函数可以得到系统的频率特性,而描述函数一般不是频率的函数,线性元件可以有描述函数,但传递函数只适用于线性系统,非线性系统没有传递函数。

(d )只有稳定的交点才对应稳定的自激振荡。

8-2设非线性元件的输入、输出特性为35135()()()()y t b x t b x t b x t =++证明该非线性元件的描述函数为2413535()48N A b b A b A =++式中A 为非线性元件输入正弦信号的幅值。

解:由于非线性特性是单值斜对称的,所以10A =,10φ=。

程序设计基础(C语言)第8章 查找和排序算法

程序设计基础(C语言)第8章 查找和排序算法
mid = low + (high - low) / 2;
8.2.3二分查找的实际应用
• 【例8.3】用二分法求下面的
一元三次方程 x3 x 1 0
在区间[1, 3]上误差不大于 10-6的根。先从键盘输入迭 代初值 x0和允许的误差 , 然后输出求得的方程根和所 需的迭代次数。
//函数功能:用二分法计算并返回方程的根 double Iteration(double x1, double x2, double eps) {
8.1.2线性查找算法的程序实现
#include <stdio.h>
#define N 40
int ReadRecord(int num[], int weight[]);
int LinSearch(int num[], int key, int n);
//主函数
int main(void)
{
int num[N], weight[N], n, pos, key;
double x0; do{
return BinSearch(num, key, mid+1, high); //在后一子表查找 } else if (key < num[mid]) {
return BinSearch(num, key, low, mid-1); //在前一子表查找 } return mid; //找到,返回找到的位置下标 }
序排列的。
int BinSearch(int num[], int key, int low, int high) {
int mid = (high + low) / 2; //取数据区间的中点 if (low > high) //递归结束条件 {

数据结构c语言版第三版习题解答

数据结构c语言版第三版习题解答

数据结构c语言版第三版习题解答数据结构是计算机科学中非常重要的一门学科,它研究如何在计算机中存储和组织数据,以便有效地进行检索和操作。

数据结构的知识对于编写高效的程序和解决复杂的问题至关重要。

在学习和理解数据结构的过程中,解决习题是一种非常有效的方法。

本文将为读者提供《数据结构C语言版(第三版)》习题的解答。

1. 第一章:绪论第一章主要介绍了数据结构的基本概念和内容,包括算法和数据结构的概念、抽象数据类型(ADT)以及算法的评价等。

习题解答中,我们可以通过分析和讨论的方式对这些概念进行加深理解。

2. 第二章:算法分析第二章主要介绍了算法的基本概念和分析方法,包括时间复杂度和空间复杂度的计算方法。

习题解答中,我们可以通过具体的算法实例来计算其时间和空间复杂度,加深对算法分析的理解。

3. 第三章:线性表第三章主要介绍了线性表的概念和实现,包括顺序表和链表两种实现方式。

习题解答中,我们可以通过编写代码实现线性表的基本操作,并分析其时间和空间复杂度。

4. 第四章:栈和队列第四章主要介绍了栈和队列的概念和实现,包括顺序栈、链栈、顺序队列和链队列四种实现方式。

习题解答中,我们可以通过编写代码实现栈和队列的基本操作,并分析其时间和空间复杂度。

5. 第五章:串第五章主要介绍了串的概念和实现,包括顺序串和链串两种实现方式。

习题解答中,我们可以通过编写代码实现串的基本操作,并分析其时间和空间复杂度。

6. 第六章:树第六章主要介绍了树的概念和实现,包括二叉树、哈夫曼树和赫夫曼编码等内容。

习题解答中,我们可以通过编写代码实现树的基本操作,并分析其时间和空间复杂度。

7. 第七章:图第七章主要介绍了图的基本概念和实现,包括图的表示方法和图的遍历算法等。

习题解答中,我们可以通过编写代码实现图的基本操作,并分析其时间和空间复杂度。

8. 第八章:查找第八章主要介绍了查找算法的基本概念和实现,包括顺序查找、二分查找、哈希查找等内容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第八章继承与多态习题一.基本概念与基础知识自测题8.1填空题8.1.1 如果类α继承了类β,则类α称为(1)类,而类β称为(2)类。

(3)类的对象可作为(4)类的对象处理,反过来不行,因为(5)。

如果强制转换则要注意(6)。

答案:(1)基类(2)派生类(3)派生类(4)基类(5)派生类有一些新成员(6)只能派生类强制转换为基类8.1.2 当用public继承从基类派生一个类时,基类的public成员成为派生类的(1)成员,protected成员成为派生类的(2)成员,对private成员是(3)。

公有派生可以使其类的(4),所以公有派生是主流。

答案:(1)public成员(2)protected成员(3)不可访问(4)接口不变8.1.3 利用继承能够实现(1)。

这种实现缩短了程序开发的时间,VC++中的(2)很好地体现了这一点。

答案:(1)代码的复用(2)MFC编程8.1.4 一个派生类只有一个直接基类的情况称为(1),而有多个直接基类的情况称为(2)。

继承体现了类的(3)概念,这在MFC中得到了很好表现,MFC中只采用了(4)。

答案:(1)单继承(2)多重继承(3)层次(4)单继承8.1.5 C++中多态性包括两种多态性:(1)和(2)。

前者是通过(3)实现的,而后者是通过(4)和(5)来实现的。

答案:(1)编译时的(2)运行时的(3)函数和运算符的重载(4)类继承关系(5)虚函数8.1.6 在基类中将一个成员函数说明成虚函数后,在其派生类中只要(1)、(2)和(3)完全一样就认为是虚函数,而不必再加关键字(4)。

如有任何不同,则认为是(5)而不是虚函数。

除了非成员函数不能作为虚函数外,(6)、(7)和(8)也不能作为虚函数。

答案:(1)同虚函数名(2)同参数表(3)同返回类型。

如基类中返回基类指针,而派生类中返回派生类指针是允许的(4)virtual(5)重载(6)静态成员函数(7)内联函数(8)构造函数8.1.7 纯虚函数定义时在函数参数表后加(1),它表明程序员对函数(2),其本质是将指向函数体的指针定为(3)。

答案:(1)=0(2)不定义(3)NULL8.2简答题8.2.1构造函数和析构函数可以继承吗?派生类构造函数各部分的执行次序是怎样的?答:构造函数和析构函数不可以继承。

派生类构造函数各部分的执行次序是:1.调用基类构造函数,按它们在派生类声明的先后顺序,依次调用。

2.调用新增成员对象的构造函数,按它们在类定义中声明的先后顺序,依次调用。

3.派生类的构造函数体中的操作。

8.2.2什么叫派生类的同名覆盖(override)?答:如果派生类声明了一个和某个基类成员同名的新成员(当然如是成员函数,参数表也必须一样,否则是重载),派生类中的新成员就屏蔽了基类同名成员,类似函数中的局部变量屏蔽全局变量。

称为同名覆盖(override)。

8.2.3派生类的析构函数中需完成什么任务?是否要编写对基数和成员对象的析构函数的调用?为什么?答:析构函数的功能是作善后工作,析构函数无返回类型也没有参数,情况比较简单。

派生类析构函数定义格式与非派生类无任何差异,不要编写对基数和成员对象的析构函数的调用,只要在函数体内把派生类新增一般成员处理好就可以了,因为对新增的成员对象和基类的善后工作,系统会自己调用成员对象和基类的析构函数来完成。

8.2.4为什么要使用虚基类?怎样定义虚基类?用一个实例来解释虚基类在其派生类中的存储方式。

答:在多重继承是有可能出现同一基类的两个拷贝,为避免这种情况,可使用虚基类。

虚基类(virtual base class)定义方式如下:class 派生类名:virtual 访问限定符基类类名{...};class 派生类名:访问限定符virtual 基类类名{...};virtual 关键字只对紧随其后的基类名起作用。

如下派生:(a )派生关系(b )存储图存储关系如(b),在职研究生类有两个Person 拷贝。

采用虚基类后存储关系如下:在职研究生类只有一个Person 拷贝。

8.2.5 简单叙述派生类与基类的赋值兼容规则。

答:凡是基类所能解决的问题,公有派生类都可以解决。

在任何需要基类对象的地方都可以采用虚基类后在职研究生类储存图用公有派生类的对象来代替,这条规则称赋值兼容规则。

它包括以下情况:1.派生类的对象可以赋值给基类的对象,这时是把派生类对象中从对应基类中继承来的成员赋值给基类对象。

反过来不行,因为派生类的新成员无值可赋。

2.可以将一个派生类的对象的地址赋给其基类的指针变量,但只能通过这个指针访问派生类中由基类继承来的成员,不能访问派生类中的新成员。

同样也不能反过来做。

3.派生类对象可以初始化基类的引用。

引用是别名,但这个别名只能包含派生类对象中的由基类继承来的成员。

8.2.6在类中定义对象成员称为复合或嵌套,请对比复合与继承的异同之处。

答:成员对象是嵌套的概念,使用成员对象中的成员,只能直接访问(对象名加点号加成员名)公有成员。

在类的成员函数中不能直接访问和处理成员对象的私有和保护成员,而要通过成员对象的接口去间接访问和处理。

某些应用中,对象成员可以代替继承中的基类。

基类在派生类中只能继承一个(间接基类不在讨论之中)不能同时安排两个,否则成员名即使使用域分辨符也会发生冲突,但如果一定要用两个,只能采用成员对象。

所以采用成员对象更加灵活。

两者不是对立的,而是互为补充的。

8.2.7比较派生与模板各自的优点。

答:模板追求的是运行效率,而派生追求的是编程的效率。

通用性是模板库的设计出发点之一,这是由泛型算法和函数对象等手段达到的。

为了运行的效率,类模板是相互独立的,即独立设计,没有使用继承的思想。

对类模板的扩展是采用适配子(adapter)来完成的。

应该说派生类的目标之一也是代码的复用和程序的通用性,最典型的就是MFC,派生类的优点是可以由简到繁,逐步深入,程序编制过程中可以充分利用前面的工作,一步步完成一个复杂的任务。

8.2.8是否使用了虚函数就能实现运行时的多态性?怎样才能实现运行时的多态性?答:不是。

实现动态多态性时,必须使用基类类型的指针变量或引用,使该指针指向该基类的不同派生类的对象,并通过该指针指向虚函数,才能实现动态的多态性。

8.2.9为什么析构函数总是要求说明为虚函数?答:在基类中及其派生类中都动态分配内存空间时,必须把析构函数定义为虚函数,实现撤消对象时的多态性。

根据赋值兼容规则可以用基类的指针指向派生类对象,如果由该指针撤销派生类对象,则必须将析构函数说明为虚函数,实现多态性,自动调用派生类析构函数。

我们总是要求将类设计成通用的,无论其他程序员怎样调用都必须保证不出错,所以必须把析构函数定义为虚函数。

8.2.10什么是抽象类?含有纯虚函数的类是抽象类吗?答:若定义一个类,它只能用作基类来派生出新的类,而不能用来定义对象,则称为抽象类。

含有纯虚函数的类是抽象类。

8.2.11能否不提供源代码,做到用户自行把通用的软件转化为专用软件?怎样实现?答:能不提供源代码,做到用户自行把通用的软件转化为专用软件。

动态联编不一定要源代码,可以只有头文件和对象文件的.obj文件。

软件开发商可在不透露其秘密的情况下发行.obj 形式的软件,然后由程序员利用继承机制,从所购得的类中派生出新类。

能与软件开发商提供的类一起运行的软件也能与派生类一起运行,并能通过动态联编使用这些派生类中重定义的虚函数。

比如通用的财务软件可以转化为某公司的专用软件。

二.编程与综合练习题8.3请用类的派生方式来组织下列动物实体与概念:动物,脊椎动物亚门,节肢动物门,鱼纲,鸟纲,爬行纲,哺乳纲,昆虫纲,鲨鱼,青鱼,海马,鹦鹉,海鸥,喜鹊,蝙蝠,翼龙,蜻蜓,金龟,扬子鳄,袋鼠,金丝猴,虎,蜈蚣,蜘蛛,蝗虫,知了,螃蟹,虾。

解:动物派生出:脊椎动物亚门和节肢动物门。

脊椎动物亚门派生出:鱼纲,鸟纲,爬行纲,哺乳纲。

鱼纲派生出:鲨鱼,青鱼,海马。

鸟纲派生出:鹦鹉,海鸥,喜鹊。

爬行纲派生出:翼龙,金龟,扬子鳄。

哺乳纲派生出:蝙蝠,袋鼠,金丝猴,虎。

节肢动物门派生出:昆虫纲,蜈蚣(多足纲),蜘蛛(蜘形纲),螃蟹,虾(甲壳纲)。

昆虫纲派生出:蜻蜓,蝗虫,知了。

8.4定义商品类及其多层的派生类。

以商品类为基类。

第一层派生出服装类、家电类、车辆类。

第二层派生出衬衣类、外衣类、帽子类、鞋子类;空调类、电视类、音响类;自行车类、轿车类、摩托车类。

要求给出基本属性和派生过程中增加的属性。

解:按题意没有操作,所以只列出数据成员,也不再检验#include <iostream>using namespace std;class Commodity{double price; //价格char name[20];//商品名char manufacturer[20];//生产厂家int items;//数量};class Clothing:public Commodity{//服装类char texture[20];//材料质地};class Electric_Appliance:public Commodity{//家电类enum {Black,White}type;//黑白家电};class Vehicle:public Commodity{//车辆类int wheel_num;//车轮数量};class Shirt:public Clothing{//衬衣类enum {Formal,Casual}Style;//式样:正式、休闲};class Garment:public Clothing{//外衣类enum {Jacket,Coat}Style;//式样:夹克、外套};class Hat:public Clothing{//帽子类;enum {Winter,Summer,Spring_Autumn}Style;//季节风格};class Shoes:public Clothing{//鞋子类enum {Winter,Summer,Spring_Autumn}Style;//季节风格};class Air_Cindition:public Electric_Appliance{//空调bool warm_cool; //是否冷暖float power;//功率};class Television:public Electric_Appliance{//电视类int Size; //尺寸bool isColor;//是否彩色};class Acoustics:public Electric_Appliance{//音响类int speaker_num; //喇叭数目float power; //功率};class Bicycle:public Vehicle{//自行车类int speed_grades; //调速级数int wheel_size; //轮子大小};class Car:public Vehicle{//轿车类float volume; //排气量bool isSkylight; //是否有天窗int box_num; //厢数};class Motorcycle:public Vehicle{//摩托车类float volume; //排气量};int main(){return 0;}8.5以点(point)类为基类,重新定义矩形类和圆类。

相关文档
最新文档