C++第八章习题解答
- 格式:doc
- 大小:372.00 KB
- 文档页数:27
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语言程序设计教程第三版课后习题参考答案第一章: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章-编译预处理及位运算习题答案编译预处理习题一.单项选择题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.位运算是对运算对象按二进制位进行操作的运算,运算的对象是____数据,以___的形式参与运算。
一、单项选择题题目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具有确定的含义,分别代表读、写和追加方式。
第八章 多元函数微分学习题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语言概述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语言的各个方面,提升我们的编程能力和解决问题的能力。
希望本文对读者有所帮助。
第八章继承与多态习题一.基本概念与基础知识自测题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)类为基类,重新定义矩形类和圆类。