递归练习题

递归练习题
递归练习题

递归程序设计

1.计算最大约数gcd(m,n)可用递归形式定义如下:若m%n等于0,则gcd(m,n)等于n

否则,gcd(m,n)等于gcd(n,m%n)。

#include

using namespace std;

int gcd(int m, int n){

if (m%n == 0)return n;

else return gcd(n, m%n);

}

int main(){

int m, n;

cout << "m=";

cin >> m;

cout << "n=";

cin >> n;

cout <

system("pause");

return 0;

}3.27.2017

int gcd(int m,int n)

{if(m%n==0)return n;

else return gcd(n,m%n);}

int main()

{int n,m;

while(1){

cin>>m>>n;

if(m==0)break;

cout <<"gcd="<

}

system("pause");

return 0;}

编写一递归函数,求最大约数,并测试

#include

using namespace std;

int gcd(int m, int n)

{

if (m%n == 0) return n;

else return gcd(n , m %n );

} int main(){

int m, n;

cout << "n=";

cin >> n;

cout << "m=";

cin >> m;

cout << gcd(m, n);

system("pause"); return 0;

}。

2.编写一递归函数,计算下面的级数: i

i m 1......31211)(++++= #include

using namespace std;

double f(double i ){

if (i == 1)return 1;

else return (1/i *f(i -1));

}

int main(){

int i;

cout << "i=";

cin >> i;

cout << f(i);

system("pause"); return 0; }3.27.2017

double k4(double n )

{if (n ==1)return 1;

else return (1/n +k4(n -1));}

int main()

{double n,m;

while (1){

cin>>n;

if (n==0)break ;

cout <<"k4="<

}

system("pause");

return 0;}

3.编写一递归函数,计算下面的级数:

12.....11594735231)(+++++++=

i i i m #include

using namespace std;

double x( double n )

{

if (n > 0) { if (n == 1)return (1 / 3);

else return n / (2 * n + 1) + x(n - 1);

}

}

int main()

{

cout << x(1) << endl;

cout << x(2) << endl;

cout << x(3) << endl;

system("pause");

return 0;

}

4.编写一函数,逆序输出一个整数n 。函数头如下:

void reverseDisplay(int value)

#include

using namespace std;

void reverseDisplay(int value )

{

if (value > 0){

cout << value % 10;

reverseDisplay(value / 10);

}

}

int main(){

int i;

cout << "i=";

cin >> i;

reverseDisplay(i);

system("pause");

return 0;

}3.27.2017

void k5(int n)

{if(n>0) {cout <

k5(n/10);}}

int main()

{double n,m;

while(1){

cin>>n;

if(n==0)break;

k5(n);}

system("pause");

return 0;}

5.编写一函数,逆序输出一个字符串,函数头如下:

void reverseDisplay(const char *s)

6.编写一递归函数,统计一个指定字符在一个字符串中出现的次数,函数头如下: int count(char *,char )

7.编写一递归函数,计算一个整数中所有数字之和。函数头如下: int sumDigit(long n)

#include

using namespace std;

int sumDigit(long n){

if (n < 10)return n;

else return ((n % 10) + sumDigit(n / 10));

}

int main(){

int m, n;

cout << "n=";

cin >> n;

n=abs(n);

cout << sumDigit(n);

system("pause");

return 0;

}

8. 编写一递归函数,计算x n。

#include

using namespace std;

int p(int x, int n)

{

if (n== 0)return 1;

if (x > 0 && n > 0)

{

if (n == 1)return x;

else return (x*p(x, n - 1));

}

}

int main() {

int x, n;

cout <<"x=";

cin >> x;

cout <<"n=";

cin >> n;

if (x <= 0)cout <<"无法计算"<< endl;

else cout << p(x, n);

cout << endl;

system("pause");

return 0;

}3.27.2017

int k7(int x,int n)

{int t=1;

for(int i=1;i<=n;i++)

t=t*x;

return t;

}

int main()

{int n,x;

while(1){

cin>>x>>n ;

if(n==0)break;

cout <<"k7="<

system("pause");

return 0;

}

编写一递归函数,计算1+2+3+4+…+n。n为正整数#include

using namespace std;

int f(int n){

if (n == 1)return 1;

else return (n + f(n - 1));

}

int main(){

int m, n;

cout << "n=";

cin >> n;

n=abs(n);

cout << f(n);

system("pause");

return 0;

}

10. 编写一递归函数,计算n!

#include

using namespace std;

int j(int n)

{

if (n >= 0)

{

if (n == 1 || n == 0)return 1;

if (n > 1)return (n*j(n - 1));

}

}int main(){

int m, n;

cout << "n=";

cin >> n;

n=abs(n);

cout << j(n);

system("pause");

return 0;

}

11.编写一递归函数 void Inverse(char ch[])将字符串ch逆序输出。

12.编写一递归函数 void Inver_Out(int a[],int n)将数组a中的数据逆序输出。

13. 编写一递归函数void DtoP(int n,int p),实现将十进制数n 转换为p进制数并输出。

14.使用递归调用方法将一个n位整数转换成字符串。

算法设计与分析习题答案1-6章

习题1 1. 图论诞生于七桥问题。出生于瑞士的伟大数学家欧拉(Leonhard Euler ,1707—1783)提出并解决了该问题。七桥问题是这样描述的:一个人是否能在一次步行中穿越哥尼斯堡(现 在叫加里宁格勒,在波罗的海南岸)城中全部的七座桥后回到起点,且每座桥只经过一次, 图是这条河以及河上的两个岛和七座桥的草 图。请将该问题的数据模型抽象出来,并判断此问题是否有解。 七桥问题属于一笔画问题。 输入:一个起点 输出:相同的点 1, 一次步行 2, 经过七座桥,且每次只经历过一次 3, 回到起点 该问题无解:能一笔画的图形只有两类:一类是所有的点都是偶点。另一类是只有二个奇点的图形。 2.在欧几里德提出的欧几里德算法中(即最初的欧几里德算法)用的不是除法而是减法。请用伪代码描述这个版本的欧几里德算法 =m-n 2.循环直到r=0 m=n n=r r=m-n 3 输出m 3.设计算法求数组中相差最小的两个元素(称为最接近数)的差。要求分别给出伪代码和C++描述。 编写程序,求n 至少为多大时,n 个“1”组成的整数能被2013整除。 #include using namespace std; int main() { double value=0; 图 七桥问题

for(int n=1;n<=10000 ;++n) { value=value*10+1; if(value%2013==0) { cout<<"n至少为:"< using namespace std; int main () { double a,b; double arctan(double x);圣经上说:神6天创造天地万有,第7日安歇。为什么是6天呢?任何一个自然数的因数中都有1和它本身,所有小于它本身的因数称为这个数的真因数,如果一个自然数的真因数之和等于它本身,这个自然数称为完美数。例如,6=1+2+3,因此6是完美数。神6天创造世界,暗示着该创造是完美的。设计算法,判断给定的自然数是否是完美数 #include using namespace std; int main() { int value, k=1; cin>>value; for (int i = 2;i!=value;++i) { while (value % i == 0 ) { k+=i;有4个人打算过桥,这个桥每次最多只能有两个人同时通过。他们都在桥的某一端,并且是在晚上,过桥需要一只手电筒,而他们只有一只手电筒。这就意味着两个人过桥后必须有一个人将手电筒带回来。每个人走路的速度是不同的:甲过桥要用1分钟,乙过桥要用2分钟,丙过桥要用5分钟,丁过桥要用10分钟,显然,两个人走路的速度等于其中较慢那个人的速度,问题是他们全部过桥最少要用多长时间? 由于甲过桥时间最短,那么每次传递手电的工作应有甲完成 甲每次分别带着乙丙丁过桥 例如: 第一趟:甲,乙过桥且甲回来

java练习题目+基础编程题50例

【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 【程序3】 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 【程序5】 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 【程序6】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 1.程序分析:利用辗除法。 【程序7】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1.程序分析:利用while语句,条件为输入的字符不为'\n'. 【程序8】 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。 【程序9】 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。 【程序10】 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 【程序11】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 【程序12】

材料科学基础习题及答案

习题课

一、判断正误 正确的在括号内画“√”,错误的画“×” 1、金属中典型的空间点阵有体心立方、面心立方和密排六方三种。 2、位错滑移时,作用在位错线上的力F的方向永远垂直于位错线并指向滑移面上的未滑移区。 3、只有置换固溶体的两个组元之间才能无限互溶,间隙固溶体则不能。 4、金属结晶时,原子从液相无序排列到固相有序排列,使体系熵值减小,因此是一个自发过程。 5、固溶体凝固形核的必要条件同样是ΔG<0、结构起伏和能量起伏。 6三元相图垂直截面的两相区内不适用杠杆定律。 7物质的扩散方向总是与浓度梯度的方向相反。 8塑性变形时,滑移面总是晶体的密排面,滑移方向也总是密排方向。 9.晶格常数是晶胞中两相邻原子的中心距。 10.具有软取向的滑移系比较容易滑移,是因为外力在在该滑移系具有较大的分切应力值。11.面心立方金属的滑移面是{110}滑移方向是〈111〉。 12.固溶强化的主要原因之一是溶质原子被吸附在位错附近,降低了位错的易动性。13.经热加工后的金属性能比铸态的好。 14.过共析钢的室温组织是铁素体和二次渗碳体。 15.固溶体合金结晶的过程中,结晶出的固相成份和液相成份不同,故必然产生晶内偏析。16.塑性变形后的金属经回复退火可使其性能恢复到变形前的水平。 17.非匀质形核时液体内部已有的固态质点即是非均匀形核的晶核。 18.目前工业生产中一切强化金属材料的方法都是旨在增大位错运动的阻力。 19、铁素体是α-Fe中的间隙固溶体,强度、硬度不高,塑性、韧性很好。 20、体心立方晶格和面心立方晶格的金属都有12个滑移系,在相同条件下,它们的塑性也相同。 21、珠光体是铁与碳的化合物,所以强度、硬度比铁素体高而塑性比铁素体差。 22、金属结晶时,晶粒大小与过冷度有很大的关系。过冷度大,晶粒越细。 23、固溶体合金平衡结晶时,结晶出的固相成分总是和剩余液相不同,但结晶后固溶体成分是均匀的。 24、面心立方的致密度为0.74,体心立方的致密度为0.68,因此碳在γ-Fe(面心立方)中的溶解度比在α-Fe(体心立方)的小。 25、实际金属总是在过冷的情况下结晶的,但同一金属结晶时的过冷度为一个恒定值,它与冷却速度无关。 26、金属的临界分切应力是由金属本身决定的,与外力无关。 27、一根曲折的位错线不可能是纯位错。 28、适当的再结晶退火,可以获得细小的均匀的晶粒,因此可以利用再结晶退火使得铸锭的组织细化。 29、冷变形后的金属在再结晶以上温度加热时将依次发生回复、再结晶、二次再结晶和晶粒长大的过程。 30、临界变形程度是指金属在临界分切应力下发生变形的程度。 31、无限固溶体一定是置换固溶体。 32、金属在冷变形后可形成带状组织。 33、金属铅在室温下进行塑性成型属于冷加工,金属钨在1000℃下进行塑性变形属于热加工。

递归习题

1、斐波那契数列 【问题描述】 斐波纳契数列0,1,1,2,3,5,8,13,21,34,55…从第三项起,每一项都是紧挨着的前两项的和。写出计算斐波那数列任意一个数据项的递归程序。 【输入格式】 所求项数 【输出格式】 数据项的值 【输入样例】 10 【输出样例】 34 2、倒序数 【问题描述】 用递归算法写程序,输入一个非负整数,输出这个数的倒序数。 【输入格式】 一个非负整数 【输出格式】 倒序结果 【输入样例】 123 【输出样例】 321 3、十进制转换成八进制数 【问题描述】 用递归算法,把任一给定的十进制数转换成八进制数输出。 【输入格式】 一个正整数,表示需要转换的十进制数。 【输出格式】 一个正整数,表示转换之后的八进制数。 【输入样例】 15 【输出样例】 17 4、求n!的值 【问题描述】 用递归算法,求n!的精确值(n以一般整数输入)。 【输入样例】 10 【输出样例】 10!=3628800

5、求最大公约数 【问题描述】 用递归方法求两个正整数m和n的最大公约数。(m>0,n>0) 【输入格式】 两个数,即m和n的值。 【输出格式】 最大公约数。 【输入样例】 8 6 【输出样例】 gcd=2 6、背包问题 【问题描述】 简单的背包问题,设有一个背包,可以放入的重量为s。现有n件物品,质量分布为w1,为,…,wn(1≤i≤n),均为正整数,从n件物品中挑选若干件,使得放入背包的重量之和正好为s。找到一组解即可。 【输入格式】 第一行是物品总件数和背包的载重量,第二行为各物品的重量。 【输出格式】 各所选物品的序号和重量。 【输入样例】 5 10 1 2 3 4 5 【输出样例】 number:1 weight:1 number:4 weight:4 number:5 weight:5 7、2的幂次方 任何一个正整数都可以用2 的幂次方表示: 如137=2^7+2^3+2^0 同时约定用括号来表示次方即a^b可表示为a(b) 所以137可表示为 2(7)+2(3)+2(0) 进一步:7=2^2+2+2^0 (2^1用2 表示) 3=2+2^0 所以137可表示为:2(2(2)+2+2(0))+2(2+2(2(0))+2(0) 又如:1315=2^10+2^8+2^5+2+1 所以1315最后可表示为:2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) 【输入格式】 正整数(n<=20000) 【输出格式】

热工基础课后题答案

二零一七年,秋

第一章 热力学第一定律 1-1用水银压力计测量容器中的压力,在水银柱上加一段水,若水柱高1020mm ,水银柱高900mm ,当时大气压力计上的度数为b 755mmHg p =。求容器中气体的压力。 解:查表可知:21mmH O=9.80665Pa 1mmHg=133.3224Pa 由题中条件可知 2H O Hg b 1020 mm 9.80665 Pa 900mm 133.3224Pa 755mm 133.3224Pa 230.651 KPa 0.231MPa p p p p =++=?+?+?=≈容器 即容器中气体的压力为0.231MPa 。 1-2容器中的真空度为600mmHg v p =,气压计上的高度是b 755mmHg p =,求容器中气体的绝对压力(用Pa 表示)。如果容器中的绝对压力不变,而气压计上高度为 b 770mmHg p =,求此时真空表的度数(以mmHg 表示). 解:因为 600mmHg=600mm 133.3224Pa=79993.4Pa v p =? b 755mmHg=755mm 133.3224Pa=100658.4Pa p =? 容器中气体的绝对压力为 b v 100658.479993.420665Pa p p p =-=-= 若以mmHg 表示真空度,则 20665 20665Pa= mmHg 155mmHg 133.3224 p == 则当气压计高度为b 770mmHg p =时,真空表的读数为 770mmHg 155mmHg 615mmHg v b p p p '=-=-= 1-3用斜管压力计测量锅炉烟道气的真空度,管子倾斜角30α=?,压力计使用密度 30.8g/cm ρ=的煤油,斜管中液柱长200mm l =,当地大气压力b 745mmHg p =。求烟气

材料科学基础习题与答案

- 第二章 思考题与例题 1. 离子键、共价键、分子键和金属键的特点,并解释金属键结合的固体材料的密度比离子键或共价键固体高的原因 2. 从结构、性能等方面描述晶体与非晶体的区别。 3. 何谓理想晶体何谓单晶、多晶、晶粒及亚晶为什么单晶体成各向异性而多晶体一般情况下不显示各向异性何谓空间点阵、晶体结构及晶胞晶胞有哪些重要的特征参数 4. 比较三种典型晶体结构的特征。(Al 、α-Fe 、Mg 三种材料属何种晶体结构描述它们的晶体结构特征并比较它们塑性的好坏并解释。)何谓配位数何谓致密度金属中常见的三种晶体结构从原子排列紧密程度等方面比较有何异同 5. 固溶体和中间相的类型、特点和性能。何谓间隙固溶体它与间隙相、间隙化合物之间有何区别(以金属为基的)固溶体与中间相的主要差异(如结构、键性、性能)是什么 6. 已知Cu 的原子直径为A ,求Cu 的晶格常数,并计算1mm 3Cu 的原子数。 ( 7. 已知Al 相对原子质量Ar (Al )=,原子半径γ=,求Al 晶体的密度。 8 bcc 铁的单位晶胞体积,在912℃时是;fcc 铁在相同温度时其单位晶胞体积是。当铁由 bcc 转变为fcc 时,其密度改变的百分比为多少 9. 何谓金属化合物常见金属化合物有几类影响它们形成和结构的主要因素是什么其性能如何 10. 在面心立方晶胞中画出[012]和[123]晶向。在面心立方晶胞中画出(012)和(123)晶面。 11. 设晶面(152)和(034)属六方晶系的正交坐标表述,试给出其四轴坐标的表示。反之,求(3121)及(2112)的正交坐标的表示。(练习),上题中均改为相应晶向指数,求相互转换后结果。 12.在一个立方晶胞中确定6个表面面心位置的坐标,6个面心构成一个正八面体,指出这个八面体各个表面的晶面指数,各个棱边和对角线的晶向指数。 13. 写出立方晶系的{110}、{100}、{111}、{112}晶面族包括的等价晶面,请分别画出。

第3章程序与递归:组合、抽象与构造练习题答案解析

第3章程序与递归:组合、抽象与构造 1、关于计算系统与程序,下列说法正确的是_____。 (A)只有用计算机语言编写出来的代码才是程序,其他都不能称其为程序; (B)构造计算系统是不需要程序的,程序对构造计算系统没有什么帮助; (C)任何系统都需要程序,只是这个程序是由人来执行还是由机器自动执行,可以由机器自动执行程序的系统被称为计算系统; (D)程序是用户表达的随使用者目的不同而千变万化的复杂动作,不是使用者实现的而是需要计算系统事先完成的。 答案:C 解释: 本题考查程序,计算系统等的概念; (A)程序= 基本动作指令的一个组合或执行序列, 用以实现复杂的动作,只用计算机语言编写出来的代码称为程序,这个概念太狭隘了,A错误;(B)计算系统的一部分是由程序组成的,所以B错误;(C)计算系统= 基本动作+ 指令+ 程序执行机构,任何系统都需要系统,C完全正确;(D)程序= 基本动作指令的一个组合或执行序列, 用以实现复杂的动作,并不是由用户表达的,随使用者的不同而千变万化的复杂动作。所以D是错的; 具体内容参考第三章视频之“程序的作用和本质”及第三章课件。 2、关于程序,下列说法不正确的是_____。 (A)“程序”是由人编写的、以告知计算系统实现人所期望的复杂动作; (B)“程序”可以由系统自动解释执行,也可以由人解释由系统执行; (C)普通人是很难理解“程序”的,其也和“程序”无关; (D)“程序”几乎和每个人都有关系,如自动售票系统、自动取款机等。 答案:C 解释: 本题考查程序的概念; 程序= 基本动作指令的一个组合或执行序列, 用以实现复杂的动作,所以A,B,D都是正确的;C说普通人很难理解程序,这显然是错误的。所以选C; 具体内容参考第三章视频之“程序的作用和本质”及第三章课件。

热工基础思考题答案

思考题 第一章 1.平衡状态与稳定状态有何区别?热力学中为什幺要引入平衡态的概念? 答:平衡状态是在不受外界影响的条件下,系统的状态参数不随时间而变化的状态。而稳定状态则是不论有无外界影响,系统的状态参数不随时间而变化的状态。可见平衡必稳定,而稳定未必平衡。热力学中引入平衡态的概念,是为了能对系统的宏观性质用状态参数来进行描述。 2.表压力或真空度能否作为状态参数进行热力计算?若工质的压力不变,问测量其压力的 压力表或真空计的读数是否可能变化? 答:不能,因为表压力或真空度只是一个相对压力。若工质的压力不变,测量其压力的压力表或真空计的读数可能变化,因为测量所处的环境压力可能发生变化。 3.当真空表指示数值愈大时,表明被测对象的实际压力愈大还是愈小? 答:真空表指示数值愈大时,表明被测对象的实际压力愈小。 4. 准平衡过程与可逆过程有何区别? 答:无耗散的准平衡过程才是可逆过程,所以可逆过程一定是准平衡过程,而准平衡过程不一定是可逆过程。 5. 不可逆过程是无法回复到初态的过程,这种说法是否正确? 答:不正确。不可逆过程是指不论用任何曲折复杂的方法都不能在外界不遗留任何变化的情况下使系统回复到初态,并不是不能回复到初态。 6. 没有盛满水的热水瓶,其瓶塞有时被自动顶开,有时被自动吸紧,这是什幺原因? 答:水温较高时,水对热水瓶中的空气进行加热,空气压力升高,大于环境压力,瓶塞被自动顶开。而水温较低时,热水瓶中的空气受冷,压力降低,小于环境压力,瓶塞被自动吸紧。 7. 用U形管压力表测定工质的压力时,压力表液柱直径的大小对读数有无影响? 答:严格说来,是有影响的,因为U型管越粗,就有越多的被测工质进入U型管中,这部分工质越多,它对读数的准确性影响越大。 第二章

材料科学基础课后习题答案第二章

第2章习题 2-1 a )试证明均匀形核时,形成临界晶粒的△ G K 与其临界晶核体积 V K 之间的关系式为 2 G V ; b )当非均匀形核形成球冠形晶核时,其△ 所以 所以 2-2如果临界晶核是边长为 a 的正方体,试求出其厶G K 与a 的关系。为什么形成立方体晶核 的厶G K 比球形晶核要大? 解:形核时的吉布斯自由能变化为 a )证明因为临界晶核半径 r K 临界晶核形成功 G K 16 故临界晶核的体积 V K 4 r ; G V )2 2 G K G V b )当非均匀形核形成球冠形晶核时, 非 r K 2 SL G V 临界晶核形成功 3 3( G ;7(2 3cos 3 cos 故临界晶核的体积 V K 3(r 非)3(2 3 3cos 3 cos V K G V 1 ( 3 卸2 3 3cos cos )G V 3 3(書 (2 3cos cos 3 ) G K % G K 与V K 之间的关系如何? G K

G V G v A a3G v 6a2 3 得临界晶核边长a K G V

临界形核功 将两式相比较 可见形成球形晶核得临界形核功仅为形成立方形晶核的 1/2。 2-3为什么金属结晶时一定要有过冷度?影响过冷度的因素是什么?固态金属熔化时是否 会出现过热?为什么? 答:金属结晶时要有过冷度是相变热力学条件所需求的, 只有△ T>0时,才能造成固相的自 由能低于液相的自由能的条件,液固相间的自由能差便是结晶的驱动力。 金属结晶需在一定的过冷度下进行,是因为结晶时表面能增加造成阻力。固态金属熔 化时是否会出现过热现象,需要看熔化时表面能的变化。如果熔化前后表面能是降低的, 则 不需要过热;反之,则可能出现过热。 如果熔化时,液相与气相接触,当有少量液体金属在固体表面形成时,就会很快覆盖 在整个固体表面(因为液态金属总是润湿其同种固体金属 )。熔化时表面自由能的变化为: G 表面 G 终态 G 始态 A( GL SL SG ) 式中G 始态表示金属熔化前的表面自由能; G 终态表示当在少量液体金属在固体金属表面形成 时的表面自由能;A 表示液态金属润湿固态金属表面的面积;b GL 、CSL 、CSG 分别表示气液相 比表面能、固液相比表面能、固气相比表面能。因为液态金属总是润湿其同种固体金属,根 据润湿时表面张力之间的关系式可写出:b SG 》6GL + (SL 。这说明在熔化时,表面自由能的变 化厶G 表w o ,即不存在表面能障碍,也就不必过热。实际金属多属于这种情况。如果固体 16 3 3( G v )2 1 32 3 6 2 (G v )2 b K t K 4 G V )3 G V 6( 4 G v )2 64 3 96 3 32 r K 2 ~G ?, 球形核胚的临界形核功 (G v )2 (G v )2 (G v )2 G b K 2 G v )3 16 3( G v )2

递归基础练习题

递归基础练习题 1. 求1+2+3+……+n的值 2. 求1*2*3*……*n的值 3. 数的全排列问题。将n个数字1,2,…n的所有排列按字典顺序枚举出来 2 3 1 2 1 3 3 1 2 3 2 1 4. 数的组合问题。从1,2,…,n中取出m个数,将所有组合按照字典顺序列出。 如n=3,m=2时,输出: 1 2 1 3 2 3 9. 求两个数的最大公约数。 10. 求两个数的最小公倍数。 5. 小猴子第一天摘下若干桃子,当即吃掉一半,又多吃一个.第二天早上又将剩下的桃子吃一半,又多吃一个.以后每天早上吃前一天剩下的一半另一个.到第10天早上猴子想再吃时发现,只剩下一个桃子了.问第一天猴子共摘多少个桃子? 8. 著名的菲波拉契(Fibonacci)数列,其第一项为1,第二项为1,从第三项开始,其每一项都是前两项的和。编程求出该数列前N项数据。 15. 梯有N阶,上楼可以一步上一阶,也可以一次上二阶。编一个程序,计算共有多少种不同的走法。 6. 有雌雄一对兔子,假定过两个月便可繁殖雌雄各一的一对小兔子。问过n个月后共有多少对兔子? 7. 一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?经过每个村子卖出多少只鸭子? 11. 输入一个数,求这个数的各位数字之和。 12. 角谷定理。输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。求经过多少次可得到自然数1。 如:输入22, 输出 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 STEP=16 13. 将十进制转换为二进制。 14. 计算M=max(a,b,c)/[max(a+b,b,c)*max(a,b,b+c)],其中a,b,c由键盘输入。 16. 某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况? 17. 给出一棵二叉树的中序与后序排列。求出它的先序排列。 18. 求把一个整数n无序划分成k份互不相同的正整数之和的方法总数。 19. 已知一个一维数组A[1..N]。{N<50} 又已知一整数M。如能使数组A中任意几个元素之和等于M,则输出YES,反之则为NO。 20. 要求找出具有下列性质的数的个数(包含输入的自然数n): 先输入一个自然数n(n<=500),然后对此自然数按照如下方法进行处理: ①. 不作任何处理;

材料科学基础习题要点

查看文本 习题 一、名词解释 金属键; 结构起伏; 固溶体; 枝晶偏析; 奥氏体; 加工硬化; 离异共晶; 成分过冷; 热加工; 反应扩散 二、画图 1在简单立方晶胞中绘出()、(210)晶面及[、[210]晶向。 2结合Fe-Fe3C相图,分别画出纯铁经930℃和800℃渗碳后,试棒的成分-距离曲线示意图。 3如下图所示,将一锲形铜片置于间距恒定的两轧辊间轧制。试画出轧制后铜片经再结晶后晶粒大小沿片长方向变化的示意图。 4画出简单立方晶体中(100)面上柏氏矢量为[010]的刃型位错与(001)面上柏氏矢量为[010]的刃型位错交割前后的示意图。 5画图说明成分过冷的形成。 三、Fe-Fe3C相图分析 1用组织组成物填写相图。 2指出在ECF和PSK水平线上发生何种反应并写出反应式。 3计算相图中二次渗碳体和三次渗碳体可能的最大含量。 四、简答题 1已知某铁碳合金,其组成相为铁素体和渗碳体,铁素体占82%,试求该合金的含碳量和组织组成物的相对量。 2什么是单滑移、多滑移、交滑移?三者的滑移线各有什么特征,如何解释?。 3设原子为刚球,在原子直径不变的情况下,试计算g-Fe转变为a-Fe时的体积膨胀率;如果测得910℃时g-Fe和a-Fe的点阵常数分别为0.3633nm和0.2892nm,试计算g-Fe转变为a-Fe的真实膨胀率。 4间隙固溶体与间隙化合物有何异同? 5可否说扩散定律实际上只有一个?为什么? 五、论述题 τC 结合右图所示的τC(晶体强度)—ρ位错密度 关系曲线,分析强化金属材料的方法及其机制。 晶须 冷塑变 六、拓展题 1 画出一个刃型位错环及其与柏士矢量的关系。 2用金相方法如何鉴别滑移和孪生变形? 3 固态相变为何易于在晶体缺陷处形核? 4 画出面心立方晶体中(225)晶面上的原子排列图。 综合题一:材料的结构 1 谈谈你对材料学科和材料科学的认识。 2 金属键与其它结合键有何不同,如何解释金属的某些特性? 3 说明空间点阵、晶体结构、晶胞三者之间的关系。 4 晶向指数和晶面指数的标定有何不同?其中有何须注意的问题? 5 画出三种典型晶胞结构示意图,其表示符号、原子数、配位数、致密度各是什么? 6 碳原子易进入a-铁,还是b-铁,如何解释? 7 研究晶体缺陷有何意义? 8 点缺陷主要有几种?为何说点缺陷是热力学平衡的缺陷?

50道JAVA基础编程练习题

50道JAVA基础编程练习题 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 【程序3】 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 【程序5】 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下 的用C表示。 1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 【程序6】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 1.程序分析:利用辗除法。

工程热力学思考题答案

第九章气体动力循环 1、从热力学理论看为什么混合加热理想循环的热效率随压缩比ε和定容增压比λ的增大而提高,随定压预胀比ρ的增大而降低 答:因为随着压缩比ε和定容增压比λ的增大循环平均吸热温度提高,而循环平均放热温度不变,故混合加热循环的热效率随压缩比ε和定容增压比λ的增大而提高。混合加热循环的热效率随定压预胀比ρ的增大而减低,这时因为定容线比定压线陡,故加大定压加热份额造成循环平均吸热温度增大不如循环平均放热温度增大快,故热效率反而降低。 2、从内燃机循环的分析、比较发现各种理想循环在加热前都有绝热压缩过程,这是否是必然的 答:不是必然的,例如斯特林循环就没有绝热压缩过程。对于一般的内燃机来说,工质在气缸内压缩,由于内燃机的转速非常高,压缩过程在极短时间内完成,缸内又没有很好的冷却设备,所以一般都认为缸内进行的是绝热压缩。 3、卡诺定理指出两个热源之间工作的热机以卡诺机的热效率最高,为什么斯特林循环的热效率可以和卡诺循环的热效率一样 答:卡诺定理的内容是:在相同温度的高温热源和相同温度的低温热源之间工作的一切可逆循环,其热效率都相同,与可逆循环的种类无关,与采用哪一种工质无关。定理二:在温度同为T1的热源和同为T2的冷源间工作的一切不可逆循环,其热效率必小于可逆循环。由这两条定理知,在两个恒温热源间,卡诺循环比一切不可逆

循环的效率都高,但是斯特林循环也可以做到可逆循环,因此斯特林循环的热效率可以和卡诺循环一样高。 4、根据卡诺定理和卡诺循环,热源温度越高,循环热效率越大,燃气轮机装置工作为什么要用二次冷却空气与高温燃气混合,使混合气体降低温度,再进入燃气轮机 答:这是因为高温燃气的温度过高,燃气轮机的叶片无法承受这么高的温度,所以为了保护燃气轮机要将燃气降低温度后再引入装置工作。同时加入大量二次空气,大大增加了燃气的流量,这可以增加燃气轮机的做功量。 5、卡诺定理指出热源温度越高循环热效率越高。定压加热理想循环的循环增温比τ高,循环的最高温度就越高,但为什么定压加热理想循环的热效率与循环增温比τ无关而取决于增压比π 答:提高循环增温比,可以有效的提高循环的平均吸热温度,但同时也提高了循环的平均放热温度,吸热和放热均为定压过程,这两方面的作用相互抵消,因此热效率与循环增温比无关。但是提高增压比,p1不变,即平均放热温度不变,p2提高,即循环平均吸热温度提高,因此循环的热效率提高。 6、以活塞式内燃机和定压加热燃气轮机装置为例,总结分析动力循环的一般方法。 答:分析动力循环的一般方法:首先,应用“空气标准假设”把实际问题抽象概括成内可逆理论循环,分析该理论循环,找出影响循环热效率的主要因素以及提高该循环效率的可能措施,以指导实际

《材料科学基础》习题与思考题电子教案

《材料科学基础》习题与思考题

《材料科学基础教程》复习题与思考题 一、选择与填空 1-1下列组织中的哪一个可能不是亚稳态,即平衡态组织? a)马氏体+残余奥氏体b)上贝氏体c)铁素体+珠光体d)奥氏体+贝氏体 1-2下列组织中的哪一个可能不是亚稳态? a)铁碳合金中的马氏体b)铁碳合金中的珠光体+铁素体 c)铝铜合金中的a +GPZ d铁碳合金中的奥氏体+贝氏体 1-3单相固溶体在非平衡凝固过程中会形成成分偏析: a)若冷却速度越大,则成分偏析的倾向越大; b)若过冷度越大,则成分偏析的倾向越大; c)若两组元熔点相差越大,则成分偏析的倾向越小; d)若固相线和液相线距离越近,贝U成分偏析的倾向越小。 1-4有两要平等右螺旋位错,各自的能量都为E1,当它们无限靠近时,总能量为—a)2E1 b) 0 c) 4E1 1-13两根具有反向柏氏矢量的刃型位错在一个原子面间隔的两个平行滑移面上相向运动以后,在相遇处___________ 。 a)相互抵消b)形成一排间隙原子c)形成一排空位 1-15位错运动方向处处垂直于位错线,在运动过程中是可变的,晶体做相对滑动的方向—。 a)随位错线运动方向而改变b)始终是柏氏矢量方向c)始终是外力方向 1-16位错线张力是以单位长度位错线能量来表示,则一定长度位错的线张力具有— 纲。 a)长度的b)力的c)能量的 1-17位错线上的割阶一般通过—形成。

a)位错的交割b)共格界面c)小角度晶界 1-7位错上的割阶一般通过 _形成。 a)孪生b)位错的交滑移c)位错的交割 1-23刃形位错的割阶部分—。 a)为刃形位错b)为螺形位错c)为混合位错 1-24面心立方晶体中Frank不全位错最通常的运动方式是 _。 a)沿{111}面滑移b)沿垂直于{111}的面滑移c)沿{111}面攀移 1-25位错塞积群的一个重要效应是在它的前端引起______ 。 a)应力偏转b)应力松弛c)应力集中 1-26面心立方晶体中关于Shcockley分位错的话,正确的是_____ 。 a)Shcockle y分位错可以是刃型、螺型或混合型; b)刃型Shcockley分位错能滑移和攀移; c)螺型Shcockley分位错能交滑移。 1-27汤普森四面体中罗-罗向量、不对应罗-希向量、希-希向量分别有个。 a)12, 24, 8,12 b)24, 24, 8,12 c)12,24, 8,6 1-32 ______ ,位错滑移的派—纳力越小。 a)相邻位错的距离越大b)滑移方向上的原子间距越大c)位错宽度越大 1 —33层错和不全位错之间的关系是__ 。 a)层错和不全位错交替出现;b)层错和不全位错能量相同; c)层错能越高,不全位错柏氏矢量模越小;d)不全位错总是出现在层错和完整晶体的交界处。 1 —34位错交割后原来的位错线成为折线,若—。

程序设计基本训练题集

程序设计基本训练题集,给你拿去做着玩吧!! 一、基础题 1. 编程,统计在所输入的50个实数中有多少个正数、多少个负数、多少个零。 2. 编程,输入一个10进制正整数,然后输出它所对应的八进制、十六进制数。 3. 输入20个整数存入一个整型数组,输出其中能被数组中其它(只需其中一个)元素整除的那些数组元素。 4. 输入两个数组(数组元素个数自定),输出在两个数组中都出现的元素(如a[5]={2,3,4,5,6},b[6]={3,5,7,9,10,-1},则输出3、5)。 5. 输入两个数组(数组元素个数自定),输出在两个数组中都不出现的元素(如a[5]={2,3,4,5,6},b[6]={3,5,7,9,10,-1},则输出2、4、6、3、7、9、10、-1)。 6.给定年份year,判别该年份是否闰年,要求: 6-1 一般算法; 6-2 用宏实现:定义一个宏以判别该年份是否闰年。 7.给定一个日期(年/月/日)计算该日期是所在年的第几天。 8. 编写一个函数,处理n行、n列的二维数组:将每一行的元素同除以该行上绝对值最大的元素。 9. 设计一个函数,求给出数的补码。 10.编写一个程序,输入月份号,输出该月份的英文月名,要求用指针数组处理。 11. 编写函数,求m行、n列的二维数组全体元素中负数的个数。 12. 编写函数,返回在一个整数组中出现次数最多的数及其出现次数。 13. 编写函数,在n个元素的一维数组中,统计比相邻元素大的数组元素个数并将统计数返回(不考虑a[0]和a[n-1]),要求以指针变量而不是数组名作参数。 14. 编写函数,在n个元素的一维数组中,找出最大值、最小值并传送到调用函数。 15. 编写一个函数,统计m行n列二维数组中有多少个正数、多少个负数,多少个零,并返回统计结果。16.输入一个数组,删除数组中的负数。 17.有4名学生每个学生考4门课程,要求在用户输入学生学号以后能输出该生的全部成绩,用指针型函数来实现。请编写函数float *search(). main() {static float score[][4]={{60,76,80,90},{45,86,57,90},{58,95,80,71},{78,50,60,85}}; float *search(),p; int I,m; printf(“enter the number of student:”); scanf(“%d”,&m); printf(“the score of NO.%dare:\n”,m); p=search(score,m); for(I=0;I<4;I++) printf(“%52f\t”,*(p+I)); } float *search(float (pointer)[4],int n) {} 18.有4名学生每个学生考4门课程,要求在用户找出有不及格课程的学生学号并输出全部成绩,用指针来实现。 19.编写一个函数实现将一个整数按逆序存放到一个数组中。

算法设计与分析基础课后习题答案

Program算法设计与分析基础中文版答案 习题 5..证明等式gcd(m,n)=gcd(n,m mod n)对每一对正整数m,n都成立. Hint: 根据除法的定义不难证明: 如果d整除u和v, 那么d一定能整除u±v; 如果d整除u,那么d也能够整除u的任何整数倍ku. 对于任意一对正整数m,n,若d能整除m和n,那么d一定能整除n和r=m mod n=m-qn;显然,若d能整除n和r,也一定能整除m=r+qn和n。 数对(m,n)和(n,r)具有相同的公约数的有限非空集,其中也包括了最大公约数。故gcd(m,n)=gcd(n,r) 6.对于第一个数小于第二个数的一对数字,欧几里得算法将会如何处理?该算法在处理这种输入的过程中,上述情况最多会发生几次? Hint: 对于任何形如0<=m

设sqrt(x)是求平方根的函数) 算法Quadratic(a,b,c) 描述将十进制整数表达为二进制整数的标准算法 a.用文字描述 b.用伪代码描述 解答: a.将十进制整数转换为二进制整数的算法 输入:一个正整数n 输出:正整数n相应的二进制数 第一步:用n除以2,余数赋给Ki(i=0,1,2...),商赋给n 第二步:如果n=0,则到第三步,否则重复第一步 第三步:将Ki按照i从高到低的顺序输出 b.伪代码 算法 DectoBin(n) .n]中 i=1 while n!=0 do { Bin[i]=n%2; n=(int)n/2; i++; } while i!=0 do{ print Bin[i]; i--; } 9.考虑下面这个算法,它求的是数组中大小相差最小的两个元素的差.(算法略)对这个算法做尽可能多的改进. 算法 MinDistance(A[0..n-1])

工程热力学思考题参考答案

第八章压气机的热力过程1、利用人力打气筒为车胎打气时用湿布包裹气筒的下部,会发现打气时轻松了一点,工程上压气机缸常以水冷却或气缸上有肋片,为什么? 答:因为气体在压缩时,以等温压缩最有利,其所消耗的功最小,而在人力打气时用湿布包裹气筒的下部或者在压气机的气缸用水冷却,都可以使压缩过程尽可能的靠近等温过程,从而使压缩的耗功减小。 2、既然余隙容积具有不利影响,是否可能完全消除它? 答:对于活塞式压气机来说,由于制造公差、金属材料的热膨胀及安装进排气阀等零件的需要,在所难免的会在压缩机中留有空隙,所以对于此类压缩机余隙容积是不可避免的,但是对于叶轮式压气机来说,由于它是连续的吸气排气,没有进行往复的压缩,所以它可以完全排除余隙容积的影响。 3、如果由于应用气缸冷却水套以及其他冷却方法,气体在压气机气缸中已经能够按定温过程进行压缩,这时是否还需要采用分级压缩?为什么? 答:我们采用分级压缩的目的是为了减小压缩过程中余隙容积的影响,即使实现了定温过程余隙容积的影响仍然存在,所以我们仍然需要分级压缩。 4、压气机按定温压缩时,气体对外放出热量,而按绝热压缩时不向外放热,为什么定温压缩反较绝热压缩更为经济? 答:绝热压缩时压气机不向外放热,热量完全转化为工质的内能,使工质的温度升高,压力升高,不利于进一步压缩,且容易对压气机造成损伤,耗功大。等温压缩压气机向外放热,工质的温度不变,相比于绝热压缩气体压力较低,有利于进一步压缩耗功小,所以等温压缩更为经济。 5、压气机所需要的功可从第一定律能量方程式导出,试导出定温、多变、绝热压缩压气机所需要的功,并用T-S图上面积表示其值。

答:由于压缩气体的生产过程包括气体的流入、压缩和输出,所以压气机耗功应以技术功计,一般用w c 表示,则w c =-w t 由第一定律:q=△h+w t , 定温过程:由于T 不变,所以△h 等于零,既q=w t ,q=T △s ,2 1ln p p R s g =?,则有 多变过程:w c =-w t =△h-q 所以??????????-???? ??-=-111121n n g c p p T R n n w 绝热过程:即q=0,所以 6、活塞式压气机生产高压气体为什么要采用多级压缩及级间冷却的工艺? 答:由于活塞式压气机余隙容积的存在,当压缩比增大时,压气机的产气量减小,甚至不产气,所以要将压缩比控制在一定范围之内,因此采用多级压缩,以减小单级的压缩比。气体压缩以等温压缩为最有利,因此应设法使压气机内气体压缩过程指数n 减小,采用级间冷却可以很好的减小n. 7、叶轮是压气机不可逆绝热压缩比可逆绝热压缩多耗功可用图8-11中的面积m2s 2’nm 表示,这是否即是此不可逆过程的做功能力损失?为什么? 图8-11 答:多消耗的功量并不就是损失的做功能力损失。因为 i=()()m n T m n s s s s T S T -=-=?2' 00 为图中的17nm1. 8、如图8-13所示的压缩过程1-2,若是可逆的,则这一过程是什么过程?他与不可逆绝热压缩过程1-2的区别何在?两者之中哪一过程消耗的功大?大多少? 图8-13

c++递归练习

递归练习 1.求1+2+3+……+n的值. 2.小猴子第一天摘下若干桃子,当即吃掉一半,又多吃一个.第二天早 上又将剩下的桃子吃一半,又多吃一个.以后每天早上吃前一天剩下的一半另一个.到第10天早上猴子想再吃时发现,只剩下一个桃子了.问第一天猴子共摘多少个桃子? 3.求两个数的最大公约数(辗转相除)。 4.梯有N阶,上楼可以一步上一价,也可以一次上二阶。编一个程 序,计算共有多少种不同的走法。 5.自然数的拆分问题。给定自然数n,将其拆分成若干自然数的和。 输出所有解,每组解中数字按从小到大排列。相同数字的不同排列算一组解。如:3=1+1+1 3=1+2 3=3

1216: 数的组合 找出从自然数1、2、... 、n(0

题目描述 任何一个正整数都可以用2的幂次方表示. 例如:137=2^7+2^3+2^0 同时约定次方用括号来表示,即a^b可表示为a(b) 由此可知,137可表示为:2(7)+2(3)+2(0) 进一步:7=2^2+2+2^0 (2^1用2表示) 3=2+2^0 所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如:1315=2^10+2^8+2^5+2+1 所以1315最后可表示为: 2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) 输入 一个正整数n 输出 符合约定的n的0,2表示 样例输入 样例输出

相关文档
最新文档