C 课后习题答案第七章

C  课后习题答案第七章
C  课后习题答案第七章

C++作业答案

第7章继承

7.1 选择题

1.在c++中,类与类之间的继承关系具有( c )。

(a) 自反性 (b) 对称性 (c) 传递性 (d) 反对称性

2.下列关于类的继承描述中,( a,b )是错误的。

(a) 派生类可以访问基类的所有数据成员,调用基类的所有成员函数

(b) 派生类也是基类,所以基类具有派生类的全部属性和方法

(c) 继承描述类的层次关系,派生类可以具有与基类相同的属性和方法

(d) 一个基类可以有多个派生类,一个派生类可以有多个基类

3.当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的( a )。

(a) public 成员 (b)private成员

(c) protected成员 (d)友员

4.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的( b )。

(a) public 成员 (b)private成员

(c) protected成员 (d)友员

5.当一个派生类保护继承一个基类时,基类中的所有公有成员和保护成员成为派生类的( c )。

(a) public 成员 (b)private成员

(c) protected成员 (d)友员

6.不论派生类以何种方式继承基类,都不能使用基类的( b )。

(a) public 成员 (b)private成员

(c) protected成员 (d)public 成员和protected成员

7.下面描述中,错误的是( b, c )。

(a) 在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问

(b) 在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问

(c) 在基类定义的public和protected成员在保护继承的派生类中不可见

(d) 在派生类中不可见的成员要变成可访问的需进行访问声明

8.在c++中,不能被派生类继承的函数是( b,c )。

(a) 成员函数 (b)构造函数

(c) 析构函数 (d)静态成员函数

9.在创建派生类对象时,构造函数的执行顺序是( d )。

(a) 对象成员构造函数、基类构造函数、派生类本身的构造函数

(b) 派生类本身的构造函数、基类构造函数、对象成员构造函数

(c) 基类构造函数、派生类本身的构造函数、对象成员构造函数

(d) 基类构造函数、对象成员构造函数、派生类本身的构造函数10.当不同的类具有相同的间接基类时,有特点( d )。

(a) 各派生类对象将按继承路线产生自己的基类版本

(b) 派生类对象无法产生自己的基类版本

(c) 为了建立惟一的间接基类版本,应该必须改变类格

(d) 为了建立惟一的间接基类版本,应该声明虚继承

7.2 阅读下列程序,写出执行结果

1.#include

class BASE

{ public:

void get( int i,int j,int k,int l )

{ a = i; b = j; x = k; y = l; }

void print()

{ cout << "a = "<< a << '\t' << "b = " << b << '\t'

<< "x = " << x << '\t' << "y = " << y << endl;

}

int a,b;

protected:

int x, y;

};

class A: public BASE

{ public:

void get( int i, int j, int k, int l )

{ BASE obj3;

obj3.get( 50, 60, 70, 80 );

obj3.print();

a = i;

b = j; x = k; y = l;

u = a + b + obj3.a ; v = y - x + obj3.b;

}

void print()

{ cout << "a = " << a << '\t' << "b = " << b << '\t'

<< "x = " << x << '\t' << "y = " << y << endl;

cout << "u = " << u << '\t' << "v = " << v << endl;

}

private:

int u, v ;

};

void main()

{ BASE obj1;

A obj2;

obj1.get( 10, 20, 30, 40 );

obj2.get( 30, 40, 50, 60 );

obj1.print();

obj2.print();

}

答案:

a = 50

b = 60 x = 70 y = 80

a = 10

b = 20 x = 30 y = 40

a = 30

b = 40 x = 50 y = 60

u = 120 v = 70

2. #include

class BASE1

{ public:

BASE1( int i ) { cout << "调用基类BASE1的构造函数:" << i << endl ; }

};

class BASE2

{ public:

BASE2( int j ) { cout << "调用基类BASE2的构造函数:" << j << endl ; }

};

class A: public BASE1, public BASE2

{ public:

A( int a, int b, int c, int d ) : BASE2(b), BASE1(c), b2(a), b1(d) { cout << "调用派生类A的构造函数:" << a+b+c+d << endl; } private:

BASE1 b1;

BASE2 b2;

} ;

void main()

{ A obj( 1, 2, 3, 4 ); }

答案:

调用基类BASE1的构造函数:3

调用基类BASE2的构造函数:2

调用基类BASE1的构造函数:4

调用基类BASE1的构造函数:1

调用派生类A的构造函数:10

7.3 编程题

1.定义一个rectangle类,它包含两个数据成员length和width;以及包含用于求长方形面积的成员函数。再定义rectangle的派生类rectangular,

它包含一个新数据成员height和用来求长方体体积的成员函数。在main函数中,使用两个类,求某个长方形的面积和某个长方体的体积。

解答:

#include

class rectangle

{

public:

rectangle( float l,float w )

{ length = l;width = w; }

float area()

{ return( length*width ); }

float getlength() { return length; }

float getwidth() { return width; }

private:

float length;

float width;

};

class rectangular:public rectangle

{ public:

rectangular( float l,float w,float h ) : rectangle( l,w )

{ height = h; }

float getheight() { return height; }

float volume() { return area() *height; }

private:

float height;

};

void main()

{ rectangle obj1( 2,8 );

rectangular obj2( 3,4,5 );

cout << "length=" << obj1.getlength() << '\t' << "width=" << obj1.getwidth() << endl;

cout << "rectanglearea=" << obj1.area() << endl;

cout << "length=" << obj2.getlength() << '\t' << "width=" << obj2.getwidth();

cout << '\t'<< "height=" << obj2.getheight() << endl;

cout << "rectangularvolume=" << obj2.volume() << endl;

}

2. 假设某销售公司有销售经理和销售员工,月工资的计算办法是:销售经理的固定月薪为8000元并提取销售额的千分之五作为工资;销售员工只提取销售额的千分之五作为工资。编一程序,定义一个基类employee,它包含三个数据成员number、name和salary,以及用于输入编号和姓名的构造函数。

由employee类派生salesman类,再由salesman类派生salesmanager类。salesman类包含两个新数据成员 commrate和sales,还包含用于输入销售额并计算销售员工工资的成员函数pay()和用于输出的成员函数print()。salesmanager类包含新数据成员 monthlypay,及用于输入销售额并计算销售经理工资的成员函数pay()、用于输出的成员函数print()。在main函数中,测试你的类结构,求若干个不同员工的工资。

解答:略。

3.试写出所能想到的所有形状(包括二维的和三维的),生成一个形状层次类结构。生成的层次结构以Shape作为基类,并由此派生出TwoDimShape 类和ThreeDimShape类。它们的派生类是不同形状类。定义层次结构中的每一个类,并用main函数进行测试。

解答:略

(完整版)模拟电路第七章课后习题答案

第七章 习题与思考题 ◆◆ 习题 7-1 在图P7-1所示的放大电路中,已知R 1=R 2=R 5=R 7=R 8=10k Ω,R 6=R 9=R 10=20k Ω: ① 试问R 3和R 4分别应选用多大的电阻; ② 列出u o1、u o2和u o 的表达式; ③ 设u I1=3V ,u I2=1V ,则输出电压u o =? 解: ① Ω=Ω==k k R R R 5)10//10(//213,Ω≈Ω==k k R R R 67.6)20//10(//654 ② 1111211010I I I o u u u R R u -=-=- =,2226525.1)2010 1()1(I I I o u u u R R u =+=+=, 2121217932)5.1(10 20 )(I I I I o o o u u u u u u R R u +=---=-- = ③ V V u u u I I o 9)1332(3221=?+?=+= 本题的意图是掌握反相输入、同相输入、差分输入比例运算电路的工作原理,估算三种比例电路的输入输 出关系。 ◆◆ 习题 7-2 在图P7-2所示电路中,写出其 输出电压u O 的表达式。 解: I I I I o u R R u R R u R R u R R u ])1[()()1(4 5124 512 ++=--+ = 本题的意图是掌握反相输入和同相输入比例 电路的输入、输出关系。

◆◆ 习题 7-3 试证明图P7-3中,)(1122 1 I I o u u R R u -= )+( 解: 11 2 1)1(I o u R R u + = ))(1()1()1()1()1()1(122 122112122111221221121I I I I I I I o o u u R R u R R u R R u R R u R R R R u R R u R R u -+=+++ -=+++-=++- = 本题的意图是掌握反相输入和同相输入比例电路的输入、输出关系。 ◆◆ 习题 7-4 在图P7-4所示电路中,列出u O 的表达式。 解: 反馈组态应为深度电压串联负反馈,因此有uu uf F A &&1= I o R R I o uf uu u R R u u R R u R R R R R A R R R F )1()1(11 7373737373313+=???→?+=?+=+=?+==若&&

C语言程序设计第四版第六章答案-谭浩强

1、用筛选法求100之内的素数。解: #include #include int main() {int i,j,n,a[101]; for (i=1;i<=100;i++) a[i]=i; a[1]=0; for (i=2;i int main() {int i,j,min,temp,a[11]; printf("enter data:\n"); for (i=1;i<=10;i++)

{printf("a[%d]=",i); scanf("%d",&a[i]); } printf("\n"); printf("The orginal numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); 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("\nThe sorted numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); return 0; } 3、求一个3×3的整型矩阵对角线元素之和。解: #include int main() { int a[3][3],sum=0; int i,j; printf("enter data:\n"); for (i=0;i<3;i++) for (j=0;j<3;j++) scanf("%3d",&a[i][j]); for (i=0;i<3;i++) sum=sum+a[i][i]; printf("sum=%6d\n",sum);

c语言第二版第七章答案

7.1 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。 参考程序如下: #include int aa(int m,int n) //求最大公约数 { int k; if(m int aa(int n) { int i; int flag; // flag标志 for(i=2;i<=sqrt(n);i++) { if(n%i==0) break; } if(i>sqrt(n)) flag=1; else flag=0;

return(flag); } main() { int n,flag; // flag标志 printf("\nInput n:"); scanf("%d",&n); flag=aa(n); if(flag==1) printf("%d is a prime number.\n",n); else printf("%d is not a prime number.\n",n); } 7.4 写一个函数,使给定的一个3*3的二维整型数组转置,即行列互换。 参考程序如下: #include main() { int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int b[3][3],i,j; printf("array a:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%5d",a[i][j]); printf("\n"); } printf("After switch:\n"); aa(a,b); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%5d",b[i][j]); printf("\n"); } } void aa(int a[3][3],int b[3][3]) { int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) b[j][i]=a[i][j]; } 说明:当数组名作函数参数时,形参也必须是同类型的数组名,形参数组名的实质是一个指针变量,存放的第0行第0列的元素的地址;这样,子函数中a[i][j]就是主函数中的a[i][j]; 7.11写一个函数,用“起泡法”对输入的10个字符按由小到大的顺序排列 参考程序如下: main()

计算机网络课后题答案第七章

第七章网络安全 7-01 计算机网络都面临哪几种威胁?主动攻击和被动攻击的区别是什么?对于计算机网 络的安全措施都有哪些? 答:计算机网络面临以下的四种威胁:截获(interception),中断(interruption),篡改 (modification),伪造(fabrication)。 网络安全的威胁可以分为两大类:即被动攻击和主动攻击。 主动攻击是指攻击者对某个连接中通过的PDU 进行各种处理。如有选择地更改、删除、 延迟这些PDU。甚至还可将合成的或伪造的PDU 送入到一个连接中去。主动攻击又可进一步 划分为三种,即更改报文流;拒绝报文服务;伪造连接初始化。被动攻击是指观察和分析某一个协议数据单元PDU 而不干扰信息流。即使这些数据对 攻击者来说是不易理解的,它也可通过观察PDU 的协议控制信息部分,了解正在通信的协议 实体的地址和身份,研究PDU 的长度和传输的频度,以便了解所交换的数据的性质。这种被 动攻击又称为通信量分析。 还有一种特殊的主动攻击就是恶意程序的攻击。恶意程序种类繁多,对网络安全威胁

较大的主要有以下几种:计算机病毒;计算机蠕虫;特洛伊木马;逻辑炸弹。 对付被动攻击可采用各种数据加密动技术,而对付主动攻击,则需加密技术与适当的 鉴别技术结合。 7-02 试解释以下名词:(1)重放攻击;(2)拒绝服务;(3)访问控制;(4)流量分析; (5)恶意程序。 答:(1)重放攻击:所谓重放攻击(replay attack)就是攻击者发送一个目的主机已接收 过的包,来达到欺骗系统的目的,主要用于身份认证过程。(2)拒绝服务:DoS(Denial of Service)指攻击者向因特网上的服务器不停地发送大量 分组,使因特网或服务器无法提供正常服务。 (3)访问控制:(access control)也叫做存取控制或接入控制。必须对接入网络的权限 加以控制,并规定每个用户的接入权限。 (4)流量分析:通过观察PDU 的协议控制信息部分,了解正在通信的协议实体的地址和 身份,研究PDU 的长度和传输的频度,以便了解所交换的数据的某种性质。这种被动攻击又 称为流量分析(traffic analysis)。

分析化学第7章课后习题答案概要

第七章氧化还原滴定 1.条件电位和标准电位有什么不同?影响电位的外界因素有哪些? 答:标准电极电位E′是指在一定温度条件下(通常为25℃)半反应中各物质都处于标准状态,即离子、分子的浓度(严格讲应该是活度)都是1mol/l(或其比值为1)(如反应中有气体物质,则其分压等于1.013×105Pa,固体物质的活度为1)时相对于标准氢电极的电极电位。 电对的条件电极电位(E0f)是当半反应中氧化型和还原型的浓度都为1或浓度比为,并且溶液中其它组分的浓度都已确知时,该电对相对于标准氢电极电位(且校正了各种外界因素影响后的实际电极电位,它在条件不变时为一常数)。由上可知,显然条件电位是考虑了外界的各种影响,进行了校正。而标准电极电位则没有校正外界的各种外界的各种因素。 影响条件电位的外界因素有以下3个方面; (1)配位效应; (2)沉淀效应; (3)酸浓度。 2.是否平衡常数大的氧化还原反应就能应用于氧化还原中?为什么? 答:一般讲,两电对的标准电位大于0.4V(K>106),这样的氧化还原反应,可以用于滴定分析。 实际上,当外界条件(例如介质浓度变化、酸度等)改变时,电对的标准电位是要改变的,因此,只要能创造一个适当的外界条件,使两电对的电极电位超过0.4V ,那么这样的氧化还原反应也能应用于滴定分析。但是并不是平衡常数大的氧化还原反应都能应用于氧化还原滴定中。因为有的反应K虽然很大,但反应速度太慢,亦不符合滴定分析的要求。 3.影响氧化还原反应速率的主要因素有哪些? 答:影响氧化还原反应速度的主要因素有以下几个方面:1)反应物的浓度;2)温度;3)催化反应和诱导反应。 4.常用氧化还原滴定法有哪几类?这些方法的基本反应是什么? 答:1)高锰酸钾法.2MnO4+5H2O2+6H+==2Mn2++5O2↑+8H2O. MnO2+H2C2O4+2H+==Mn2++2CO2+2H2O 2) 重铬酸甲法. Cr2O72-+14H++Fe2+===2Cr3++Fe3++7H2O CH3OH+Cr2O72-+8H+===CO2↑+2Cr3++6H2O 3)碘量法3I2+6HO-===IO3-+3H2O, 2S2O32-+I2===2I-+2H2O Cr2O72-+6I-+14H+===3I2+3Cr3++7H2O 5.应用于氧化还原滴定法的反应具备什么条件? 答:应用于氧化还原滴定法的反应,必须具备以下几个主要条件: (1)反应平衡常数必须大于106,即△E>0.4V。 (2)反应迅速,且没有副反应发生,反应要完全,且有一定的计量关系。 (3)参加反应的物质必须具有氧化性和还原性或能与还原剂或氧化剂生成沉淀的物质。 (4)应有适当的指示剂确定终点。 6.化学计量点在滴定曲线上的位置与氧化剂和还原剂的电子转移数有什么关系? 答:氧化还原滴定曲线中突跃范围的长短和氧化剂与还原剂两电对的条件电位(或标准电位)相差的大小有关。电位差△E较大,突跃较长,一般讲,两个电对的条件电位或标准电位之差大于0.20V时,突跃范围才明显,才有可能进行滴定,△E值大于0.40V时,可选用氧化还原指示剂(当然也可以用电位法)指示滴定终点。 当氧化剂和还原剂两个半电池反应中,转移的电子数相等,即n1=n2时,则化学计量点的位

C语言第六章习题带答案

练习6-1答案 一、选择题 1.已知函数abc的定义为: void abc() {……} 则函数定义中void的含义是( A )。 A.执行函数abc后,函数没有返回值B.执行函数abc后,函数不再返回C.执行函数abc后,可以返回任意类型 D.以上三个答案全是错误的 2.已知:int p();,p是( C )。 A.int型变量 B.函数p的调用 C.一个函数声明,该函数的返回值是int型的值 D.强制类型转换表达式中的变量 3.以下正确的函数形式是( D )。 A.double fun(int x, int y) B.fun(int x, y) { z=x+y; return z; } { int z; return z; } C.fun(x, y) D.double fun(int x, int y) { int x, y; double z; z=x+y; return z; } { double z; z=x+y; return z; } 4.以下说法正确的是( C )。 A.定义函数时,形参的类型说明可以放在函数体内 B.return后边的值不能为表达式 C.如果函数值的类型与返回值表达式的类型不一致,以函数值类型为准 D.如果形参与实参的类型不一致,以实参类型为准 5.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( B )。 A.float 型B.int型C.long型D.double型6.下面函数调用语句含有实参的个数为( B )。 func((exp1, exp2), (exp3, exp4, exp5)); A.1 B.2 C.4 D.5 7.以下程序的功能是计算函数F(x, y, z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。 #include #include float f(float, float); main() {float x, y, z, sum; scanf("%f%f%f", &x, &y, &z); sum=f( ①B )+f( ②C ); (注:或者选择sum=f( ①C )+f( ②B )) printf("sum=%f\n", sum); } float f(float a, float b) {float value; value=a/b;

第七章 课后习题答案

第七章课后习题答案 二、单项选择题 1、2003年6月2日杜某将自己家的耕牛借给邻居刘某使用。6月8日刘某向杜某提出将耕牛卖给自己,杜某表示同意。双方商定了价格,并约定3天后交付价款。但6月10日,该头耕牛失脚坠下山崖摔死。对于该耕牛死亡的财产损失,应当由谁来承担?(C) A.杜某 B.杜某与刘某各承担一半 C.刘某 D.杜某承担1/3,刘某承担2/3 本题涉及交付时间的确定问题。依《合同法》第140条规定,标的物在订立合同之前已为买受人占有的,合同生效的时间为交付时间。本题中,刘某已经占有了杜某的耕牛。6月8日双方达成买卖协议,该时间即为标的物的交付时间。再依《合同法》第142条规定,标的物毁损、灭失的风险,在标的物交付之前由出卖人承担,交付之后由买受人承担,但法律另有规定或者当事人另有约定的除外。本题中,刘某和杜某对风险负担未有约定,耕牛已经交付于刘某,故刘某应承担该风险责任。本题正确选项为C。 2、甲方购买一批货物,约定于6月15日提货,但其因没有安排好汽车而未能提货。当天傍晚,出卖人的仓库遭雷击起火,货物被烧。你认为应如何确定损失的承担? A、出卖人,因为货物是在其控制之下 B、出卖人,因为货物所有权没有转移 C、买受人,因为他未能按时提货 D、双方分提,因为谁都没有过错 【答案】C 【考点】买卖合同的风险承担 【详解】根据《合同法》第143条的规定:因买受人的原因致使标的物不能按约定的期限交付的,买受人应当自违反约定之日起承担标的物毁损、灭失的风险。因此C正确。 3、甲向乙购进一批玉米,双方约定,合同履行地在乙所在城市S市。5月1日乙为甲代办托运运往M县。在运输过程中,5月3日甲与丙签订协议,将将批玉米转让给丙,在M县火车站交货。5月4日由于遇到洪爆发,火车在运输途中出轨,玉米损失。该损失应由谁承担? A、甲承担 B、乙承担 C、丙承担

C语言第七章习题答案

7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。 hcf(u,v) int u,v; { int a,b,t,r; if(u>v) { t=u;u=v;v=t; } a=u;b=v; while((r=b%a)!=0) { b=a;a=r; } return(a); } lcd(u,v,h) int u,v,h; { int u,v,h,l; scanf("%d,%d",&u,&v); h=hcf(u,v); printf("H.C.F=%dn",h); l=lcd(u,v,h); printf("L.C.d=%dn",l); return(u*v/h); } #include

void main() { int u,v,h,l; scanf("%d,%d",&u,&v); h=hcf(u,v); printf("H.C.F=%dn",h); l=lcd(u,v,h); printf("L.C.D=%dn",l); } 7.2 求方程根 float x1,x2,disc,p,q; greater_than_zero(a,b) float a,b; { x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); } equal_to_zero(a,b) float a,b; { x1=x2=(-b)/(2*a);} smaller_than_zero(a,b) float a,b; { p=-b/(2*a);

q=sqrt(disc)/(2*a); } main() { float a,b,c; printf("n输入方程的系数a,b,c:n"); scanf("%f,%f,%f",&a,&b,&c); printf("n 方程是:% 5.2f*x*x+%5.2f*x+%5.2f=0n",a,b,c); disc=b*b-4*a*c; printf("方程的解是:n"); if(disc>0) { great_than_zero(a,b); printf("X1=%5.2ftX2=%5.2fnn",x1,x2); } else if(disc==0) { zero(a,b); printf("X1=%5.2ftX2=%5.2fnn",x1,x2); } else { small_than_zero(a,b,c); printf("X1=%5.2f+%5.2fitX2=%5.2f-%2.2fin",p,q,p,q);

物理化学第七章课后题答案

7.13 电池电动势与温度 的关系为 263)/(109.2/10881.10694.0/K T K T V E --?-?+= (1)写出电极反应和电池反应; (2)计算25℃时该反应的Θ Θ Θ ???m r m r m r H S G ,,以及电池恒温可逆放电时该反应 过程的。 (3)若反应在电池外在相同温度下恒压进行,计算系统与环境交换的热。 解:(1)电极反应为 阳极 +-→-H e H 22 1 阴极 --+→+Cl Hg e Cl Hg 222 1 电池反应为 (2)25 ℃时 {} V V E 3724.015.298109.215.19810881.10694.0263=??-??+=-- 1416310517.115.298108.510881.1)( -----??=???-?=??K V K V T E

因此, 1193.35)3724.0309.964851(--?-=???-=-=?mol kJ mol kJ zEF G m r 1111464.1410157.1309.964851-----??=?????=??=?K mol J K mol J T E zF S m r 11357.3164.1415.2981093.35--?-=??+?-=?+?=?mol kJ mol kJ S T G H m r m r m r 11,365.479.1615.298--?=??=?=mol kJ mol kJ S T Q m r m r (3)1,57.31-?-=?=mol kJ H Q m r m p 7.14 25℃时,电池AgCl s AgCl kg mol ZnCl Zn )()555.0(1-?电动势E=1.015V ,已知,,7620.0)(2V Zn Zn E -=+ΘV Ag AgCl Cl E 2222.0)(=-Θ,电池电动势的温度系数141002.4)( --??-=??K V T E p (1)写出电池反应; (2)计算电池的标准平衡常数; (3)计算电池反应的可逆热; (4)求溶液中2ZnCl 的标准粒子活度因子。 解:(2)ΘΘ Θ= -k F RT E E ln z 左右可以得到331088.1?=Θk (3)P m r m r T E TzF S T Q )( ,??=?=得到 =m r Q ,-23.131-?mol kJ (4)3 3 2)(4)(Θ ±± ==b b r a ZnCl a

C语言程序设计第四版第七章答案 谭浩强

第七章函数 7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 maxyueshu(m,n) int m,n; { int i=1,t; for(;i<=m&&i<=n;i++) {if(m%i==0&&n%i==0) t=i; } return(t); } minbeishu(m,n) int m,n; {int j; if(m>=n) j=m; else j=n; for(;!(j%m==0&&j%n==0);j++); return j; } main() {int a,b,max,min; printf("enter two number is: "); scanf("%d,%d",&a,&b); max=maxyueshu(a,b); min=minbeishu(a,b); printf("max=%d,min=%d\n",max,min); } 7.2求方程的根,用三个函数分别求当b2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。 #include"math.h" float yishigen(m,n,k) float m,n,k; {float x1,x2; x1=(-n+sqrt(k))/(2*m); x2=(-n-sqrt(k))/(2*m); printf("two shigen is x1=%.3f and x2=%.3f\n",x1,x2); } float denggen(m,n) float m,n; {float x; x=-n/(2*m); printf("denggen is x=%.3f\n",x); }

分析化学课后习题答案第七章

第七章重量分析法和沉淀滴定法 思考题 1.沉淀形式和称量形式有何区别?试举例说明之。 答:在重量分析法中,沉淀是经过烘干或灼烧后再称量的。沉淀形式是被测物与沉淀剂反应生成的沉淀物质,称量形式是沉淀经过烘干或灼烧后能够进行称量的物质。有些情况下,由于在烘干或灼烧过程中可能发生化学变化,使沉淀转化为另一物质。故沉淀形式和称量形式可以相同,也可以不相同。例如:BaSO4,其沉淀形式和称量形式相同,而在测定Mg2+时,沉淀形式是MgNH4PO4·6H2O,灼烧后所得的称量形式却是Mg2P2O7。 2.为了使沉淀定量完全,必须加人过量沉淀剂,为什么又不能过量太多? 答:在重量分析法中,为使沉淀完全,常加入过量的沉淀剂,这样可以利用共同离子效应来降低沉淀的溶解度。沉淀剂过量的程度,应根据沉淀剂的性质来确定。若沉淀剂不易挥发,应过量20%~50%;若沉淀剂易挥发,则可过量多些,甚至过量100%。但沉淀剂不能过量太多,否则可能发生盐效应、配位效应等,反而使沉淀的溶解度增大。 3.影响沉淀溶解度的因素有哪些?它们是怎样发生影响的?在分析工作中,对于复杂的情况,应如何考虑主要影响因素? 答:影响沉淀溶解度的因素有:共同离子效应,盐效应,酸效应,配位效应,温度,溶剂,沉淀颗粒大小和结构等。共同离子效应能够降低沉淀的溶解度;盐效应通过改变溶液的离子强度使沉淀的溶解度增加;酸效应是由于溶液中H+浓度的大小对弱酸、多元酸或难溶酸离解平衡的影响来影响沉淀的溶解度。若沉淀是强酸盐,如BaSO4,AgCl等,其溶解度受酸度影响不大,若沉淀是弱酸或多元酸盐[如CaC2O4、Ca3(PO4)2]或难溶酸(如硅酸、钨酸)以及与有机沉淀剂形成的沉淀,则酸效应就很显着。除沉淀是难溶酸外,其他沉淀的溶解度往往随着溶液酸度的增加而增加;配位效应是配位剂与生成沉淀的离子形成配合物,是沉淀的溶解度增大的现象。因为溶解是一吸热过程,所以绝大多数沉淀的溶解度岁温度的升高而增大。同一沉淀,在相同质量时,颗粒越小,沉淀结构越不稳定,其溶解度越大,反之亦反。综上所述,在进行沉淀反应时,对无配位反应的强酸盐沉淀,应主要考虑共同离子效应和盐效应;对弱酸盐或难溶酸盐,多数情况应主要考虑酸效应,在有配位反应,尤其在能形成较稳定的配合物,而沉淀的溶解度又不太大时,则应主要考虑配位效应。 4.共沉淀和后沉淀区别何在?它们是怎样发生的?对重量分析有什么不良影响?在分析化学中什么情况下需要利用共沉淀? 答:当一种难溶物质从溶液中沉淀析出时,溶液中的某些可溶性杂质会被沉淀带下来而混杂于沉淀中,这种现象为共沉淀,其产生的原因是表面吸附、形成混晶、吸留和包藏等。后沉淀是由于沉淀速度的差异,而在已形成的沉淀上形成第二种不溶性物质,这种情况大多数发生在特定组分形成稳定的过饱和溶液中。无论是共沉淀还是后沉淀,它们都会在沉淀中引入杂质,对重量分析产生误差。但有时候利用共沉淀可以富集分离溶液中的某些微量成分。 5.在测定Ba2+时,如果BaSO4中有少量BaCl2共沉淀,测定结果将偏高还是偏低?如有Na2S04、Fe2(SO4)3、BaCrO4共沉淀,它们对测定结果有何影响?如果测定S042-时,BaSO4中带有少量BaCl2、Na2S04、BaCrO4、Fe2(S04)3,对测定结果又分别有何影响? 答:如果BaSO4中有少量BaCl2共沉淀,测定结果将偏低,因为M BaO<M BaSO4。如有Na2S04、Fe2(SO4)3、BaCrO4共沉淀,测定结果偏高。如果测定S042-时,BaSO4中带有少量BaCl2、Na2S04、BaCrO4、Fe2(S04)3,对测定结果的影响是BaCl2偏高、Na2S04偏低、BaCrO4偏高、Fe2(S04)3偏低。 6.沉淀是怎样形成的?形成沉淀的性状主要与哪些因素有关?其中哪些因素主要由沉淀本质决定?哪些因素与沉淀条件有关?

C语言第七章复习题(不含答案)

1.下列对C语言字符数组的描述中错误的是( )。 (A)字符数组可以存放字符串 (B)字符数组中的字符串可以整体输入、输出 (C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 (D)不可以用关系运算符对字符数组中的字符串进行比较 2.不能把字符串:Hello!赋给数组b的语句是( )。 (A)char b[10]={'H','e','l','l','o','!'}; (B)char b[10];b="Hello!"; (C)char b[10];strcpy(b,"Hello!"); (D)char b[10]="Hello!"; 3.若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是( )。 (A)a[g-c] (B)a[4] (C)a['d'-'c'] (D)a['d'-c] 4.以下程序的输出结果是( ) (A) 20 (B) 21 (C) 22 (D)23 main() { int i, k, a[10], p[3]; k=5; for (i=0;i<10;i++) a[i ]=i; for (i=0;i<3;i++) p[i ]=a[i *(i+1)]; for (i=0;i<3;i++) k+=p[i] *2; printf("%d\n",k); 5.以下程序的输出结果是( )。 (A) 1,5,9 (B) 1,4,7 (C) 3,5,7 (D)3,6,9 main() { int i, x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%d,",x[i][2-i]); 6.下面程序运行的结果是( )。 (A) 2ba56 (B) 6521 (C) 6 (D) 62 main() { char ch[7]={“65ab21“}; int i,s=0 for(i=0;ch[i]>='0' && ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf("%d\n",s); } 7.合法的数组定义是( )。 (A)int a[]="string"; (B)int a[5]={0,1,2,3,4,5}; (C)char s[6]="string"; (D)char a[]={0,1,2,3,4,5}; 8.函数调用:strcat(strcpy(str1,str2),str3)的功能是( )。 (A)将串str1复制到串str2中后再连接到串str3之后 (B)将串str1连接到串str2之后再复制到串str3之后 (C)将串str2复制到串str1中后再将串str3连接到串str1之后

计量课后习题第七章答案

习题 解释概念 (1)分类变量 (2)定量变量 (3)虚拟变量 ( 4)虚拟变量陷阱 (5)交互项 (6)结构不稳定 (7)经季节调整后的时间序列 答:(1)分类变量:在回归模型中,我们对具有某种特征或条件的情形赋值1,不具有某种特征或条件的情形赋值0,这样便定义了一个变量D : 1,0,D ?=??具有某种特征不具有某种特征 我们称这样的变量为分类变量。 (2)具有数值特征的变量,如工资、工作年数、受教育年数等,这些变量就称为定量变量。 (3)在回归模型中,我们对具有某种特征或条件的情形赋值1,不具有某种特征或条件的情形赋值0,这样便定义了一个变量D : 1,0,D ?=??具有某种特征不具有某种特征 我们称这样的变量为虚拟变量(dummy variable )。 (4)虚拟变量陷阱是指回归方程包含了所有类别(特征)对应的虚拟变量以及截距项,从而导致了完全共线性问题。 (5)交互项是指虚拟变量与定量变量相乘,或者两个定量变量相乘或是两个虚拟变量相乘,甚至更复杂的形式。比如模型: 12345i i i i i i i household lwage female married female married u βββββ=++++?+ female married ?就是交互项。 (6)如果利用不同的样本数据估计同一形式的计量模型,可能会得到1β、2β不同的估计结果。如果估计的参数之间存在着显著性差异,就称为模型结构不稳定。 (7)一些重要的经济时间序列,如果是受到季节性因素影响的数据,利用季节虚拟变量或者其他方法将其中的季节成分去除,这一过程被称为经季节调整的时间序列。

C语言课后习题

习题 第三章 #include #include int main() { int d,p; double r,a,m; scanf("%d %d %lf",&d,&p,&r); a=(p/(p-d*r)); m=log(a)/log(1+r); if(p>0&&d>0) { if(d<=m*p) printf("%.1f",m); else printf("God"); } else printf("0.0"); return 0; } 勾股数 #include int main() { int a,b,c,n; scanf("%d",&n); for(a=1;a<=n;a++) { for(b=1;b<=n;b++) { for(c=1;c<=n;c++) { if(c*c==a*a+b*b) { if(a<=b) { printf("%d %d %d\n",a,b,c); } }

} } } return 0; } 第四章 计算分段函数值 #include int main() { float x,y; scanf("%f",&x); if(x<1) y=x; else if(x>=1&&x<10) y=2*x-1; else if(x>=10) y=3*x-11; printf("%.2f",y); return 0; } 找出三个数中最大的数 #include int main() { int a,b,c,max; scanf("%d%d%d",&a,&b,&c); max=a>b?a:b; if(c>max) max=c; printf("%d",max); return 0; } 10844成绩等级评分 #include int main() { int x; scanf("%d",&x); if(x>=0&&x<=100) { switch(x/10) { case 10:

计学第七章课后练习答案

第七章 课后练习答案 7.1 (1)已知:96.1%,951,25,40,52/05.0==-===z x n ασ。 样本均值的抽样标准差79.0405== = n x σ σ (2)边际误差55.140 5 96.12/=? ==n z E σ α 7.2 (1)已知:96.1%,951,120,49,152/05.0==-===z x n ασ。 样本均值的抽样标准差14.249 15== = n x σ σ (2)边际误差20.449 1596.12 /=? ==n z E σ α (3)由于总体标准差已知,所以总体均值μ的95%的置信区间为 20.412049 1596.11202 /±=? ±=±n z x σ α 即()2.124,8.115 7.3 已知:96.1%,951,104560,100,854142/05.0==-===z x n ασ。 由于总体标准差已知,所以总体均值μ的95%的置信区间为 144.16741104560100 8541496.11045602 /±=? ±=±n z x σ α 即)144.121301,856.87818( 7.4 (1)已知:645.1%,901,12,81,1002/1.0==-===z s x n α。 由于100=n 为大样本,所以总体均值μ的90%的置信区间为: 974.181100 12645.1812 /±=? ±=±n s z x α 即)974.82,026.79(

(2)已知:96.1%,951,12,81,1002/05.0==-===z s x n α。 由于100=n 为大样本,所以总体均值μ的95%的置信区间为: 352.281100 1296.1812 /±=? ±=±n s z x α 即)352.83,648.78( (3)已知:58.2%,991,12,81,1002/05.0==-===z s x n α。 由于100=n 为大样本,所以总体均值μ的99%的置信区间为: 096.381100 1258.2812 /±=? ±=±n s z x α 即)096.84,940.77( 7.5 (1)已知:96.1%,951,5.3,25,602/05.0==-===z x n ασ。 由于总体标准差已知,所以总体均值μ的95%的置信区间为: 89.02560 5.39 6.1252 /±=? ±=±n z x σ α 即)89.25,11.24( (2)已知:33.2%,981,89.23,6.119,752/02.0==-===z s x n α。 由于75=n 为大样本,所以总体均值μ的98%的置信区间为: 43.66.11975 89.2333.26.1192 /±=? ±=±n s z x α 即)03.126,17.113( (3)已知:645.1%,901,974.0,419.3,322/1.0==-===z s x n α。 由于32=n 为大样本,所以总体均值μ的90%的置信区间为: 283.0419.332 974.0645.1419.32 /±=? ±=±n s z x α 即)702.3,136.3(

C语言第六章数组习题

C语言第六章数组习题 第六章数组 6.1 选择题 [题]在C语言中,引用数组元素时,其数组下标的数据类型允许是_____. A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 [题]以下对一维整型数组a的正确说明是_____。 A)int a(10);B)int n=10,a[n]; C)int n;D)#define SIZE 10 scanf(\%d,&n);int a[SIZE]; int a[n]; [题]若有说明:int a[l0];则对a数组元素的正确引用是_____。 A) a[10] B)a[3.5] C)a(5) D)a[10-10] [题]在C 语言中,一维数组的定义方式为:类型说明符数组名_____。 A)[常量表达式] B)[整型表达式] C)[整型常量]或[整型表达式] D)[整型常量] [题]以下能对一维数组a进行正确初始化的语句是_____。 A)int a[l0]=(0,0,0,0,0); B)int a[l0]={}; C)int a={0};D)int a[10]={10*1}; [题]以下对二维数组a的正确说明是_____。

1 A)int a[3]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); [题]若有说明:int a[3][4];则对a数组元素的正确引用是_____。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1) [题]若有说明:int a[3][4];则对a数组元素的非法引用是_____。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] [题]以下不能对二维数组a进行正确初始化的语句是_____。 A)int a[2][3]={0}; B)int a[3]={{1,2},{0}}; C)int a[2][3]={{l,2},{3,4},{5,6}}; D)int a[3]={1,2,3,4,5,6}; [题]若有说明:int a[3][4]={0};则下面正确的叙述是_____。 A)只有元素a[0][0]可得到初值0 B)此说明语句不正确 C)数组a中各元素都可得到初值,但其值不一定为0 D)数组a中每个元素均可得到初值0 [题]若有说明:int a[3][4];则数组a中各元素_____。 2

c语言 第6章作业

书面作业8 专业理科学号3120101717 姓名马凌浩 习题6 一、选择题 1.设float x=2.5, y=4.7; int a=7;,printf(“%.1f”, x+a%3*(int)(x+y)%2/4)的结果为 A 。 A.2.5 B.2.8 C.3.5 D.3.8 2.执行下列程序段的输出结果是 C 。 int a = 2; a += a *= a -= a *= 3; printf("%d", a); A.-6 B.12 C.0 D.2 3.设字符型变量x 的值是064,表达式“~ x ^ x << 2 & x”的值是 A 。 A.0333 B.333 C.0x333 D.020 4.设a 为整型变量,不能正确表达数学关系:1010 && a<15 D.!(a<=10) && !(a>=15) 5.设以下变量均为int 类型,表达式的值不为9 的是 C 。 A.(x=y=8,x+y,x+1) B.(x=y=8,x+y,y+1) C.(x=8,x+1,y=8,x+y) D.(y=8,y+1,x=y,x+1) 二.填空题 1 .-127 的原码为11111111 、反码为10000000 、补码为10000001 。 2.逻辑表达式x && 1 等价于关系表达式if(x==0) 表达式的值为0;else 表达式的值为1;。3.设int a=5, b=6; 则表达式(++a==b--)? ++a : --b 的值是7 。 4.设c = 'w', a = 1, b = 2, d = -5, 则表达式'x'+1>c, 'y'!=c+2, -a-5*b<=d+1, b==(a=2)的值 分别为 1 、0 、 1 、 1 。 5.运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为c1=2,c2=5 。 #include int main(void) { int c1 = 0, c2 = 0; char ch; while((ch = getchar()) !=?#?) switch(ch){ case …a?: case …h?: c1++; default: c2++; } printf(“c1=%d,c2=%d\n”, c1, c2); return 0; }

相关文档
最新文档