当前位置:文档之家› 实验6数组-四川大学

实验6数组-四川大学

实验6数组-四川大学
实验6数组-四川大学

实验6 数组

一、实验目的

1. 理解一维数组的基本概念

2. 掌握一维数组的定义、初始化、数组元素的引用

3. 掌握一维数组的输入、输出等基本操作

4. 掌握字符数组的使用

5. 掌握一维数组的有关算法的思路和实现,如冒泡法与选择法排序、数组逆置以及数组元素的查询与插入等常用算法。

二、实验内容

实训1 有10位学生的成绩存放在数组score中,从键盘输入1个数,查找这个成绩是否在数组中,如果在,输出其下标,如果不在,输出0。数组的下标i表示第i位学生的成绩,数组的下标0处不存储成绩。

实验步骤:

1) 在VS2008中新建项目,在项目中新建C++源文件,输入下面程序,并且编译、连接。

//***************************************************************

//* 程序名:实训1.cpp *

//* 主要功能: *

//* 使用顺序查找法查找学生成绩单 *

//* 从最后一位学生到第一位学生依次进行比较,以下标0为监视哨 *

//***************************************************************

#include // 包含输入输出接口文件

using namespace std; // 引用标准命名空间

int main() // 主函数

{

const int n = 10; // 使用常变量定义学生人数

int score[n + 1] = {0, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98};

// 定义成绩数组,有n+1个整型元素,其中下标0处未存放学生成绩

16 int i; // 循环变量

int x; // 等查找的学生成绩

cout<<"请输入待查找的学生成绩:";

cin>>x;

score[0] = x; // 在下标处设置监视哨

21 for(i = n; score[i] != x; i--);

// 计数循环,从后到前循环比较当前元素,循环体为空语句

if(i >= 1)

{

cout<<"查找成功,待查找成绩是第"<

}

else

{

cout<<"未查找到该成绩!"<

}

return 0;

}

2) 运行实训1,待查找成绩分别输入为70、75、80、85、90,观察输出结果。

3) 快速查看数组score中每个元素的值。

提示:

(1)利用Watch窗口查看数组

a. 在第16行int i;处设置一个普通断点;

b. 按F5开始调试

c. 在左下方的监视窗口中输入数组变量名score,即可显示score的信息,将其展开,

就可以查看score的每个元素。其好处是比较清晰,有数组下标和值的对应显示,但数组规模较大时不方便。

(2)一次查看更多数组元素值

在上述监视窗口中,不仅能看到数组的值,还能得到score的首地址,这样就能利用

VS2008的查看内存功能查看数组元素的值。

按Alt+6,在弹出的内存窗口的地址编辑框中输入刚才查

到的score首地址,按回车,即可发现数组score的所有元素

均显示在窗口,如图6-1所示。

图6-1 以16进制数方式显示的内存窗口

但它们是以16进制方式显示的,看起来不太方便,可在

内存窗口中点击鼠标右键,在弹出的右键菜单中选择“4字节

整数”及“不带符号显示”,如图6-2所示,然后内存窗口就

将以十进制数值方式显示内容的值,如图6-3所示。

图6-2 内存窗口右键菜单

图6-3 以十进制数方式显示的内存窗口

4) 在第12行for语句处设置断点,当输入数据分别为70、75、80、85、90时,分别观察第12行for语句的执行次数。

实训2在用户名和密码的存储中,我们一般使用明文保存用户名,使用密文保存密码。在用户登录界面中,用户输入的是用户名和密码的明文,要检查用户名、密码是否正确,需将密码密文转换为明文,然后再与输入的密码进行比较。本例程序用于将教材例4.4得到的密码密文转换为密码明文,以便进行后继处理。

提示:本例首先从键盘输入密码密文,再依次将密文的各字符按规律转换即可。

要将密文的一个字符ch进行转换,首先需得到密文字符ch的序号,如ch为小写字母,则其序号为“ch- 'a'+1”;如为大写字母,则为“ch- 'A'+27”。然后依照规则将密文序号转为明文序号。当得到明文字符的序号num后,如其值在1~26之间,则相应的字符的ASCII码值为num+'a'-1,如果值在27~52之间,则为num-27+'A'。

将密文的字符依次按上述规律转换便可得到明文,最后需为明文字符串加上结束标志。

参考程序如下:

//***************************************************************

//* 程序名:实训2.cpp *

//* 主要功能: *

//* 密码文本加密 *

//* 使用移位加密法,密文序号为明文序号乘3 *

//***************************************************************

#include // 包含输入输出接口文件

#include // 包含字符串相关函数定义的头文件

using namespace std; // 引用标准命名空间

int main() // 主函数

{

char password[20] = ""; // 存储密码的字符数组

14 char encodePass[20] = ""; // 加密后的密码

char ch; // 当前字符

int i; // 循环变量

int n; // 密码字符串长度

int num; // 字符

cout<<"密码:";

cin>>password;

n = strlen(password); // 获取密码长度

for(i = 0; i < n; i++) // 计数循环,对密码字符依次进行处理

{

ch = password[i];

if(ch >= 'a' && ch <= 'z')

{ // 小写字母

num = ch - 'a' + 1; // 计算字母序号

}

else if(ch >= 'A' && ch <= 'Z')

{ // 大字字母

num = ch - 'A' + 27; // 计算字母序号

}

else

{

encodePass[i] = ch; // 其它字符,直接复制

continue; // 直接转向处理下一字符

}

num = num * 3 % 52; // 密文字母序号

if(num == 0) // 处理字符Z

{

num = 52;

}

if(num <= 26)

{

ch = 'a' + num - 1; // 将密文序号转为小写字母

}

else

{

ch = 'A' + num -27; // 将密文序号转为大写字母

}

encodePass[i] = ch; // 将密文字符存储到密文字符数组中

}

53 encodePass[i] = '\0'; // 为密文字符串加上结束标记

cout<<"加密后的密码为:"<

return 0;

}

实验步骤:

1) 在VS2008中新建项目,在项目中新建C++源文件,输入上面程序,并且编译、连接。

2) 运行实训2,输入密文字符串iSkPhbw:,观察输出的明文字符串。

3) 在所有的字母字符中,哪一个字符的明文字符和密文字符是相同的?

4) 将第14行改为:char encodePass[20];,即不对其进行初始化,然后编译运行,输入iSkPhbw 后观察输出的明文字符串。

5) 继续步骤4),去掉程序的第53行,依然输入密文字符串iSkPhbw,观察输出的明文字符串,观察其与第4)结果的异同,并分析为什么会这样。

实训3从键盘输入10位学生的身高,然后使用简单选择法按低到高的顺序进行排序。

提示:选择排序是不断在待排序序列(无序区)中按递增(或递减)次序选择记录,放入有序区中,逐渐扩大有序区,直到整个记录区为有序区为止。

其基本思想是:每一趟(例如第i 趟,i = 1,2,…n-1)在后面n-i 个待排序对象中选出最小的一个,作为有序序列的第i 个(即与原来数组的第i个元素进行交换)。待到第n-1 趟排完后, 待排序对象只剩下1个,就不用再选了。

实训4 编写程序接受用户输入的一行字符(不超过80字符),将其中的大写字母转换为小写字母,小写字母转换为大写字母,其余类型的字符一律不变,然后按输入顺序的逆序输出。如输入为“I am a student2”,则输出为“i AM A STUDENT2”。

提示:使用gets_s()将一行字符读入到字符数组中,然后对字符数组进行循环,在循环中判定字符是否为字母。若是,则将大写字母转换为小写、小写字母转换为大写,并写加到字符数组中。最后使用strlen()求得字符数组中最后一个字符的位置,从字符数组的最后一个字符向前依次输出即可。

三、实验报告要求

1. 根据程序要求对运行结果进行分析。如果程序未能调试通过,分析其原因。

2. 根据实验步骤,说明未能编译通过的原因,并正确进行修改。

3. 总结实验中遇到的问题,理解C语言数组的使用方法,并谈谈本次实验的收获与经验。

4. 在问题描述项中使用NS图描述各实训算法。

5. 实验报告内容及评分标准参见实验1。

6. 实验报告必须于11月23日(第12周周一)前提交至课程中心。

2010年四川大学流体力学试题--附答案

1、简答题(10) (1)设有一速度向量V (x,y,z ),试说明其梯度、散度和旋度所代表的几何意义?对于不可压缩流体和可压缩流体代表的物理意义分别是什么? (2)简述拉格朗日法和欧拉法,写出输运公式及两个推论,并说明其作用? 答:拉格朗日法是通过下列两个方面来描述整个流动情况的:(1)某一运动的流体质点的各种物理量(如密度、速度等)随时间的变化;(2)相邻质点间这些物理量的变化。 欧拉法是通过下列两个方面来描述整个流场情况的:(1)在空间固定点上流体的各种物理量(如速度,压力等)随时间的变化;(2)在相邻的空间点上这些物理量的变化。 输运公式: 0t 0D ( D t d t A d V t ττ ττ?Φ=+Φ?Φ???????? ()() 输运公式的两个推论: 2、利用哈密尔顿算子证明:(10分) (1)b a a b a b ???-???=???)()()( (2)a a a ??+??=??φφφ)( 证明:(1) 3、求不可压缩粘性流体动量方程:V f P V V t u 2?++?=??+??υρ 在柱坐标系下的表达式。(30分) 4、在不可压无界流场中有一对等强度Γ的线涡,方向相反,分别放置在(0,h )和(0,-h )点上,无穷远处有一股来流V ∞,恰好使这两个线涡停留不动,求流线方程(10分) 5、如已知m h m h m kg 37,78,/1000213=-=ρ,图示水坝,求水作用在单位宽度坝面上的合力及其作用点。(10分) 6、椭球1222222=++c z b y a x 以i U V 00=等速运动,试写出:(15分) (1)不可压缩无旋流的基本方程;

实验六 一维数组程序设计

实验六一维数组程序设计 一、实验学时 2学时 二、实验目的 (一)掌握一维数组的定义、初始化方法; (二)掌握一维数组中数据的输入和输出方法; (三)掌握与一维数组有关的程序和算法; (四)了解用数组处理大量数据时的优越性。 三、预习要求 (一)理解数组的概念、利用数组存放数据有何特点; (二)一维数组的定义、初始化方法; (三)一维数组中数据的输入和输出方法。 四、实验内容 (一)下面的几个程序都能为数组元素赋值,请输入程序并运行。比较一下这些赋值方法的异同。 1.在定义数组的同时对数组初始化。 /* c6-1.c */ /*在定义数组的同时对数组初始化*/ #include "stdio.h" void main( ) { int a[4]={0,1,2,3}; printf("\n%d %d %d %d\n",a[0],a[1],a[2],a[3]); } 2.不使用循环对单个数组元素赋值。 /* c6-2.c */ /*不使用循环对单个数组元素赋值*/ #include "stdio.h" void main( ) { int a[4]; a[0]=2;a[1]=4;a[2]=6;a[3]=8; printf("\n%d %d %d %d\n",a[0],a[1],a[2],a[3]); } 3.用循环结构,从键盘输入为每个数组元素赋值,输出各数组元素。 /* c6-3.c */ /*利用循环通过键盘对数组元素赋值*/ #include "stdio.h" void main( ) { int i,a[4]; for(i=0; i<4; i++) scanf("%d",&a[i]); printf("\n"); for(i=0; i<4; i++) printf("%d ",a[i]);

流体力学

计算流体力学的发展及应用 刘光斌 关键词:计算流体力学;发展;应用 摘要:计算流体力学是流体力学的一个分支。它用于求解固定几何形状空间内的流体的动量、热量和质量方程以及相关的其它方程,并通过计算机模拟获得某种流体在特定条件下的有关信息,是分析和解决问题的强有力和用途广泛的工具。对计算流体力学的发展和应用进行了综述并对其发展趋势做了探讨。 1 计算流体力学的发展 20世纪30年代,由于飞机工业的需要,要求用流体力学理论来了解和指导飞机设计,当时,由于飞行速度很低,可以忽略粘性和旋涡,因此流动的模型为Laplace方程,研究工作的重点是椭圆型方程的数值解[1]。利用复变函数理论和解的迭加方法来求解析解。随着飞机外形设计越来越复杂,出现了求解奇异边界积分方程的方法。以后,为了考虑粘性效应,有了边界层方程的数值计算方法,并发展成以位势方程为外流方程,与内流边界层方程相结合,通过迭代求解粘性干扰流场的计算方法。 同一时期,许多数学家研究了偏微分方程的数学理论,Hadamard,Couran,t Friedrichs等人研究了偏微分方程的基本特性、数学提法的适定性、物理波的传播特性等问题,发展了双曲型偏微分方程理论。以后,Cou-ran,t Friedrichs,Lewy等人发表了经典论文[2],证明了连续的椭圆型、抛物型和双曲型方程组解的存在性和唯一性定理,且针对线性方程的初值问题,首先将偏微分方程离散化,然后证明了离散系统收敛到连续系统,最后利用代数方法确定了差分解的存在性;他们还给出了著名的稳定性判别条件:CFL条件。这些工作是差分方法的数学理论基础。20世纪40年代,VonNeumann,Richtmyer,Hop,f Lax和其他一些学者建立了非线性双曲型方程守恒定律的数值方法理论,为含有激波的气体流动数值模拟打下了理论基础。 在20世纪50年代,仅采用当时流体力学的方法,研究较复杂的非线性流动现象是不够的,特别是不能满足高速发展起来的宇航飞行器绕流流场特性研究的需要。针对这种情况,一些学者开始将基于双曲型方程数学理论基础的时间相关方法用于求解宇航飞行器的气体定常绕流流场问题,这种方法虽然要求花费更多的计算机时,但因数学提法适定,又有较好的理论基础,且能模拟流体运动的非定常过程,所以在60年代这是应用范围较广的一般方法[3]。以后由Lax、Kreiss和其他著者给出的非定常偏微分方程差分逼近的稳定性理论,进一步促进了时间相关方法。当时还出现了一些针对具体问题发展起来的特殊算法。 值得一提的是,我国在20世纪50年代也开始了计算流体力学方面的研究[3]。我国早期的工作是研究钝头体超声速无粘绕流流场的数值解方法,研究钝头体绕流数值解的反方法和正方法。以后,随着我国宇航事业的发展,超声速、高超声速绕流数值计算方法的研究工作发展很快。对定常欧拉方程数值解的计算方法进行研究,并给出了钝体超声速三维无粘绕流流场的计算结果。 20世纪70年代,在计算流体力学中取得较大成功的是飞行器跨音速绕流数值计算方法的研究。首先在计算模型方面,又提出了一些新的模型,如新的大涡模拟模型、考虑壁面曲率等效应的新的湍流模式、新的多相流模式、新的飞行器气动分析与热结构的一体化模型等[5]。这就使得计算流体力学的计算模型由最初的Euler和N-S方程,扩展到包括湍流、两相流、化学非平衡、太阳风等问题研究模型在内的多个模型[6]。其中以考虑更多流动机制,如各向异性的非线性(应力/应变关系)湍流研究为重点。研究结果再次证明,万能的湍流模型还不存在,

C语言程序设计实验报告(数组)

C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。

3算法描述流程图

4源程序 #include #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

实验 6-3 数组

实验6-3 数组(三) 1 【实验目的】 (1)掌握字符数组的定义、赋值和输入输出的方法 (2)掌握字符数组和字符串函数的使用 (3)掌握数组的基本操作和排序算法 【实验要求】 (1)熟悉掌握字符数组的定义、赋值和输入输出方法 (2)掌握字符数组和字符串函数的使用 (3)掌握数组的增加元素和删除元素的操作 (4)掌握数组的排序算法(比较、选择和冒泡三种算法,要求至少会一种) 【实验环境】 (1) Microsoft XP操作系统 (2) Microsoft VC++ 6.0 【实验内容】 1、Palindromes_easy version https://www.doczj.com/doc/8d6402202.html,/acmhome/problemdetail.do?&method=showdetail&id=1384 描述 “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。

输入 输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串,每个字符串的长度不超过30。 输出:如果一个字符串是回文串,则输出"yes",否则输出"no". 样例输入: 4 level abcde noon haha 样例输出: yes no yes no 2、分割整数https://www.doczj.com/doc/8d6402202.html,/acmhome/problemdetail.do?&method=showdetail&id=1173 描述:从键盘输入一个长正整数(不超过10位),从高位开始逐位分割并输出。 输入:正整数n,不含前导零。 输出:分割的整数序列,各整数之间用空格格开。注意,最后一个数字后面没有空格! 样例输入:654321 样例输出:6 5 4 3 2 1

2010年四川大学流体力学试题--附答案

2010年流体力学试题

1、简答题(10) (1)设有一速度向量V (x,y,z ),试说明其梯度、散度和旋度所代表的几何意义?对于不可压缩流体和可压缩流体代表的物理意义分别是什么? (2)简述拉格朗日法和欧拉法,写出输运公式及两个推论,并说明其作用? 答:拉格朗日法是通过下列两个方面来描述整个流动情况的:(1)某一运动的流体质点的各种物理量(如密度、速度等)随时间的变化;(2)相邻质点间这些物理量的变化。 欧拉法是通过下列两个方面来描述整个流场情况的:(1)在空间固定点上流体的各种物理量(如速度,压力等)随时间的变化;(2)在相邻的空间点上这些物理量的变化。 输运公式: 0t 0D ( Dt d t A d V t ττττ?Φ=+Φ?Φ????????()() 输运公式的两个推论: 2、利用哈密尔顿算子证明:(10分) (1)b a a b a b ???-???=???)()()( (2)a a a ??+??=??φφφ)( 证明:(1) 3、求不可压缩粘性流体动量方程:V f P V V t u 2?++?=??+??υρ 在柱坐标系下的表达式。(30分) 4、在不可压无界流场中有一对等强度Γ的线涡,方向相反,分别放置在(0,h )和(0,-h )点上,无穷远处有一股来流V ∞,恰好使这两个线涡停留不动,求流线方程(10分) 5、如已知m h m h m kg 37,78,/1000213=-=ρ,图示水坝,求水作用在单位宽度坝面上的合力及其作用点。(10分) 6、椭球122 2222=++c z b y a x 以i U V 00=等速运动,试写出:(15分) (1)不可压缩无旋流的基本方程;

C语言程序设计实验答案数组、指针与字符串

实验06 数组、指针与字符串(4学时) (第6章数组、指针与字符串) 一、实验目的 二、实验任务 6_1(习题6-25)编写并测试3×3矩阵转置函数,使用数组保存3×3矩阵。 6_2(习题6-26)使用动态内存分配生成动态数组来重新完成上题(n阶方阵),使用指针实现函数的功能。 6_3 编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 6_4 使用string类声明字符串对象,重新实现上一小题。 6_5(习题6-27)声明一个Employee类。 其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性,实现并测试这个类。 6_6(习题6-27)声明包含5个元素的对象数组,每个元素都是Employee 类型的对象。 6_7 修改实验4中的people(人员)类。 具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”声明为一个“日期”类内嵌子对象。 用成员函数实现对人员信息的录入和显示。 要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。 在测试程序中声明people类的对象数组,录入数据并显示。

三、实验步骤 1.(编程,习题6-25)编写矩阵转置函数,输入参数为3×3整型数组。 使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入输出。程序名:lab6_1.cpp。 参考运行结果: ★程序及运行结果: //lab6_1.cpp #include using namespace std; void move(int matrix[][3]){ int temp; for(int i=0;i<3;i++) for(int j=0;j>mat[i][j]; } cout<<"\n输入的3×3矩阵为:"<

实验六 一维数组实验报告

*** 软件类实验报告 课程名称:C语言程序设计学号: 姓名: 班级: 指导教师: 开课学期: 学院: ***教务处

⑷一维数组排序。 四、实验过程及内容:(运行结果请抓图到对应题目的下方) 1. 先分析以下程序,写出运行结果,再上机检验。 2.程序填空题。下面程序的功能是9个评委给某个参赛选手打分,去掉一个最高分和一个最低分,求该参赛选手的平均分。填空完成程序。

实验结果: 3. 程序填空题。有数列1,1,2,4,7,13,24…,该数列的规律是从第4项起,每项是它的前三项之和。下列程序的功能是将该数列的前30项存放在一维数组中,输出时每行输出5个数。填空完成程序。 实验结果: 4. 程序改错题。下面程序的功能是将数组中的数按从大到小排序后输出。改正程序中的错误。 实验结果: 5. 程序改错题。某公司从用公用电话传递数据,数据是四位的整数,在传递过程中需要加密,加密规则为每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。改正程序中的错误。

实验结果: 6. 小楚参加了一个研究生考试培训班,共30次课,由于路途较远,每次都是打车去上课,来回的车费分别存储在数组a和b中,其中-1表示未去上课。 编程计算小楚参加培训班共打车花费多少钱?(要求保留1位小数,用循环实现) 输出结果的形式为: s=1234.5 a数组和b数组定义如下: double a[30]={31.0,32.0,30.3,32.8,30.5,30.6,31.0,32.8,-1,31.8,31.9,31.5,32.3,32.3,31.8,32.5 ,31.5,30.3,30.4,32.5,30.2,30.2,30.7,32.1,32.1,31.4,31.9,31.9,-1,30.5}; double b[30]={30.2,30.2,30.3,31.6,32.7,31.5,30.4,32.4,-1,31.0,31.8,32.1,31.6,31.4,32.4,32.1 , 32.5,32.3,32.5,31.4,31.2,30.3,32.3,30.7,31.3,30.2,31.1,30.5,-1,31.9}; 五、实验小结

四川大学大物狭义相对论习题解答

狭义相对论(一) 一.选择题 1.K 系与K '系是坐标轴相互平行的两个惯性系,K '系相对于K 系沿OX 轴正方 向匀速运动。一根刚性尺静止在K '系中,与O 'X '轴成30?角。今在K 系中观察得 该尺与OX 轴成45?角,则 K '系相对于K 系的速度是 [ ] (A )c 32 (B ) c 32 (C )3 c (D )c 31 2.宇宙飞船相对于地面以速度v 作匀速直线飞行,某一时刻飞船头部的宇航员向飞船尾部发出一个光讯号,经过t (飞船上的钟)时间后,被尾部的接收器收 到,则由此可知飞船的固有长度为 (c 表示真空中光速) (A)t c ? (B) t ?υ (C) 2)/(1c t c v -??(D) 2)/(1c t c v -??? [ ] 3.在狭义相对论中,下列说法中哪些是正确的? (1) 一切运动物体相对于观察者的速度都不能大于真空中的光速. (2) 质量、长度、时间的测量结果都是随物体与观察者的相对运动状态而改 变的. (3) 在一惯性系中发生于同一时刻,不同地点的两个事件在其他一切惯性系 中也是同时发生的. (4)惯性系中的观察者观察一个与他作匀速相对运动的时钟时,会看到这时 钟比与他相对静止的相同的时钟走得慢些. (A) (1),(3),(4). (B) (1),(2),(4). (C) (1),(2),(3). (D) (2),(3),(4). [ ] 4.在某地发生两件事,静止位于该地的甲测得时间间隔为4 s ,若相对于甲作匀

速直线运动的乙测得时间间隔为5 s,则乙相对于甲的运动速度是(c表示真空中光速) (A) (4/5) c. (B) (3/5) c. (C)(2/5) c. (D) (1/5) c.[] 5.一宇航员要到离地球为5光年的星球去旅行.如果宇航员希望把这路程缩短为3光年,则他所乘的火箭相对于地球的速度应是:(c表示真空中光速) (A) v = (1/2) c. (B) v = (3/5) c. (C) v = (4/5) c. (D) v = (9/10) c.[]二.填空题 1.狭义相对论的两条基本原理中,相对性原理说的是_________________ ____ ___________________________________________________________;光速不变原理说的是_______________________________________________ ___________ ________________________________. 2.已知惯性系S'相对于惯性系S系以0.5 c的匀速度沿x轴的负方向运动,若从S'系的坐标原点O'沿x轴正方向发出一光波,则S系中测得此光波在真空中的波速为____________________________________. 3.有一速度为u的宇宙飞船沿x轴正方向飞行,飞船头尾各有一个脉冲光源在工作,处于船尾的观察者测得船头光源发出的光脉冲的传播速度大小为____________;处于船头的观察者测得船尾光源发出的光脉冲的传播速度大小为____________. 4.π+介子是不稳定的粒子,在它自己的参照系中测得平均寿命是2.6×10-8s,如果它相对于实验室以0.8 c (c为真空中光速)的速率运动,那么实验室坐标系中测得的π+介子的寿命是______________________s.

四川大学化工原理流体力学实验报告

化工原理实验报告流体力学综合实验 姓名: 学号: 班级号: 实验日期:2016、6、12 实验成绩:

流体力学综合实验 一、 实验目的: 1. 测定流体在管道内流动时的直管阻力损失,作出与Re 的关系曲线。 2. 观察水在管道内的流动类型。 3. 测定在一定转速下离心泵的特性曲线。 二、实验原理 1、求 与Re 的关系曲线 流体在管道内流动时,由于实际流体有粘性,其在管内流动时存在摩擦阻力,必然会引起 流体能量损耗,此损耗能量分为直管阻力损失与局部阻力损失。流体在水平直管内作稳态流 动(如图1所示)时的阻力损失可根据伯努利方程求得。 以管中心线为基准面,在1、2截面间列伯努利方程: 因u 1=u 2,z 1=z 2,故流体在等直径管的1、2两截面间的阻力损失为 ρP h f ?= 流体流经直管时的摩擦系数与阻力损失之间的关系可由范宁公式求得,其表达式为 22 u d l h f ??=λ 由上面两式得: 22u l d P ???= ρλ 而 μρdu = Re 由此可见,摩擦系数与流体流动类型、管壁粗糙度等因素有关。由因此分析法整理可形象地表示为 )(Re,d f ελ= 式中:f h -----------直管阻力损失,J/kg; λ------------摩擦阻力系数; d l .----------直管长度与管内径,m; P ?---------流体流经直管的压降,Pa; ρ-----------流体的密度,kg/m3; 1 1 2 2 图1 流体在1、2截面间稳定流动 f h gz u p P +++=++22221211 2gz 2u ρρ

实验6数组

实验6 数组 一、实验目的: 1、理解数组的作用、特点; 2、掌握一维数组、二维的定义、引用、初始化,能够与循环结合实现批量数据处理(如输入、输出,比较大小,交换等); 3、熟悉打擂台、排序、查找等典型算法。 4、理解数组名作函数参数时,实参向形参传递的是数组首地址,可以利用此特性在函数中修改数组元素的值,从而达到改变实参数组的目的。 二、实验内容 1、(基础题)有一个数列,它的第一项为1,第二项为2,第三项为3,以后每一项都等于它的前三项之和。使用一维数组编程实现功能:计算该数列的前20项并赋值给数组,然后以逆序方式输出,每一行5个数据。如下图所示: 2、(基础题)编程计算数组各元素的平方和,要求如下: (1)void array_input(int array[], int n)的功能是:输入整型数组array 的各元素值,参数n是数组元素的个数; (2)int square_sum(int array[], int n)的功能是:对整型数组array的各元素的平方求和,参数n是数组元素的个数; (3)主函数的功能:定义一个是长度为6的整型数组,通过调用array_input()输入各元素的值,再调用square_sum()得到各元素平方和,最后输出结果; (4)主函数在前,上述两个函数在后面定义。程序运行如下图所示:

3、(基础题)编写程序实现如下功能:先定义两个长度为31的字符数组str1、str2,然后输入两个字符串保存到str1、str2中;现调用字符串处理函数分别进行以下处理: (1)分别计算两个字符串的长度并输出; (2)输出两个字符串中的较大值; (3)再定义一个字符数组str,将str1、str2两个字符串连接存至str中并输出。如下图所示: 程序代码:

四川大学大物光学习题解答

文档 光的干涉(一) 一、选择题 1. 在真空中波长为λ的单色光,在折射率为n 的透明介质中从A 沿某路径传播到B ,若A 、B 两点相位差为3π,则此路径AB 的光程为 (A) 1.5 λ. (B) 1.5 λ/ n . (C)1.5n λ (D) 3 λ. [ ] 2. 在相同的时间,一束波长为λ的单色光在空气中和在玻璃中 (A) 传播的路程相等,走过的光程相等. (B) 传播的路程相等,走过的光程不相等. (C) 传播的路程不相等,走过的光程相等. (D)传播的路程不相等,走过的光程不. [ ] 3.如图,S 1、S 2是两个相干光源,它们到P 点的距离分别为r 1和r 2.路径S 1P 垂直穿过一块厚度为t 1,折射率为n 1的介质板,路径S 2P 垂直穿过厚度为t 2,折射率为n 2的另一介质板,其余部分可看作真空,这 两条路径的光程差等于 (A) )()(111222t n r t n r +-+ (B) ])1([])1([211222t n r t n r -+--+ (C) )()(111222t n r t n r --- (D) 1122t n t n - [ ] 4. 在双缝干涉实验中,两条缝的宽度原来是相等的.若其中一缝的宽度略变窄(缝中心位置不变),则 (A) 干涉条纹的间距变宽. (B) 干涉条纹的间距变窄. (C) 干涉条纹的间距不变,但原极小处的强度不再为零. (D) 不再发生干涉现象. [ ] 5. 在双缝干涉实验中,光的波长为600 nm (1 nm =10-9 m ),双缝间距为2 mm ,双缝与屏的间距为300 cm .在屏上形成的干涉图样的明条纹间距为 (A) 0.45 mm . (B) 0.9 mm . (C)1.2mm (D) 3.1 mm . [ ] 二、填空题 1.如图所示,假设有两个同相的相干点光源S 1和S 2,发出波长为λ 的光.A 是它们连线的中垂线上的一点.若在S 1与A 之间插入厚度为e 、折射率为n 的薄 P S 1S 21-3题图

四川大学化工实验1(流体力学)

学号:2014141492108 姓名:苗育民 专业:冶金工程 班号:143080501 实验日期:2016.4.27 实验成绩: 流体力学综合实验 一、实验目的 (1) 测定流体在管道内流动时的直管阻力损失,作出λ与Re 的关系曲线。 (2) 观察水在管道内的流动类型。 二、实验原理 流体在管道内流动时,由于实际流体有粘性,其在管内流动时存在摩擦阻力,必然会引起流体能量损耗,此损耗能量分为直管阻力损失和局部阻力损失。流体在水平直管内作稳态流动(如图3-1所示)时的阻力损失可根据伯努利方程求得。 图 3-1 流体在1、2截面间稳定流动 以管中心线为基准面,在1、2截面间列伯努利方程 (3-1) 因u 1=u 2,z 1=z 2,故流体在等直径管的1、2两截面间的阻力损失为 (3-2) 流体流经直管时的摩擦系数与阻力损失之间的关系可由范宁公式求得,其表达式为 (3-3) 将式(3-2)代入式(3-3)得 (3-4) 而 (3-5) 由此可见,摩擦系数与流体流动类型、管壁粗糙度等因素有关。由因此分析法整理可形象地表示为 (3-6) f h gz u p P +++=++22 221211 2 gz 2u ρρρ P h f ?= 2 2u d l h f ? ?=λ2 2u l d P ???= ρλμ ρ du = Re ) (Re,d f ε λ=21请

式中:f h -----------直管阻力损失,J/kg ; λ------------摩擦阻力系数; d l .----------直管长度和管内径,m ; P ?---------流体流经直管的压降,Pa ; ρ-----------流体的密度,kg/m3; μ-----------流体黏度,Pa.s ; u -----------流体在管内的流速,m/s ; 流体在一段水平等管径管内流动时,测出一定流量下流体流经这段管路所产生的压降,即可算得f h 。两截面压差由差压传感器测得;流量由涡轮流量计测得,其值除以管道截面积即可求得流体平均流速u 。在已知管径d 和平均流速u 的情况下,测定流体温度,确定流体的密度ρ和黏度μ,则可求出雷诺数Re ,从而关联出流体流过水平直管的摩擦系数λ与雷诺数Re 的关系曲线图。 三、实验设备图 1--压力表;2--水泵;3,4,5,10,11,13,14,15,22,23--小球阀;6,16,17,18,19--球阀;7--水箱;8--电磁阀1;9--计量水箱;12--电磁阀2;20--闸阀;21--涡轮流量计;24--孔板;25--差压传感器;26--电磁阀3;27,28--压力缓冲罐;a--Φ25?2钢管;b--Φ25?2钢管;c--Φ12?2铜管;d--Φ25?2有机玻管 四、实验操作步骤 (1)根据现场实验装置,理清流程,检查设备的完好性,熟悉各仪表的使用方法。 (2)打开控制柜面上的总电源开关,按下仪表开关,检查无误后按下水泵开关。 (3)打开球阀16,调节流量调节阀20使管内流量约为10.5h /m 3 ,逐步减小流量,每次约减少0.5h /m 3 ,待数据稳定后,记录流量及压差读数,待流量减小到约为4h /m 3 后停止实验。

实验6数组——参考答案

实验6 数组 一、一维数组实验 2. 编程:输入长度为10的整型数组并输出;然后将其逆序存放后再输出。例如: Input 10 number: 0 1 2 3 4 5 6 7 8 9 After reversed: 9 8 7 6 5 4 3 2 1 0 #include<> void main() { int i, j, a[10], t; printf("Input 10 number: "); for(i=0; i<10; i++) /*读入数据*/ scanf("%d", &a[i]); printf("origin data: "); for(i=0; i<10; i++) /*输出原始数据*/ printf("%d ", a[i]); printf("\n"); for(i=0,j=9; i

#include <> void main() { int i, n , max, min, a[10], sum; float average; printf("Input n (1 a[max]) max= i; if(a[i] < a[min]) min= i; } printf("max=%-5d index=%d\n", a[max], max); printf("min=%-5d index=%d\n", a[min], min); printf("average=%.2f\n", average); } else printf("数据超出范围"); } 4. 编程:青年歌手参加歌曲大奖赛,有10个评委对她(他)进行打分,试编程求这位选手的平均得分并输出(去掉一个最高分和一个最低分)。 #include <> void main() { int i, max, min; float a[10], ave; printf("请输入10个评委的打分:"); for(i=0, ave=0; i<10; i++) /*输入分数并求累加和*/ {

最新四川大学物理化学期末考试题及答案(B卷)

四川大学期末考试试题 (2010—2011学年第一学期) 课程代码:20307130(Ⅰ)—1 课程名称:物理化学任课教师:李泽荣、何玉萼适用专业:化学、应化、材化专业印数:200份班级:学号:姓名:成绩 注:1、试题字迹务必清晰,书写工整。本卷3页,本页为第1页 2、题间不留空,一般应题卷分开教务处试题编号: 3、务必用16K纸打印

注:1、试题字迹务必清晰,书写工整。本卷3页,本页为第2页 2、题间不留空,一般应题卷分开教务处试题编号: 3、务必用16K纸打印

注:1、试题字迹务必清晰,书写工整。本卷3页,本页为第3页 2、题间不留空,一般应题卷分开教务处试题编号: 3、务必用16K纸打印

2010级物理化学(Ⅰ)-1期末考试题B 卷答案 一、选择题(12分,每题2分) 1、B 2、A 3、B 4、C 5、C 6、D 二、填空题(20分,每空2分) 1、> ;> ;> ;= 2、776.35 3、0.913 ;0.961 4、1 ;2 5、y A >0,B x >x A ;纯A ;纯B 6、-10.823 三、(16分) 解:33.3kJ R P vap m Q Q H n H ==?=?= 4分 kJ 2.32.383324.81)(=??==≈?=nRT pV V p W g R 2分 kJ 1.302.33.33=-=+=?W Q U 2分 1-3vap K J 9.862 .383103.33?=?=?==?b m R T H T Q S 体 2分 -186.9J K R Q Q S T T ?==-=-?环环 2分 0R R G H T S Q Q ?=?-?=-= 2分 kJ 2.3-=-=-?=?-?=?R R W Q U S T U F 2分 四、(12分) 解: ∵ A A B B P x P x P ** +=总 ∴ 13 78.844 A B P P **+= 6分 1182.722 A B P P **+= 联立求解得 kPa P A 5.90=* 6分 kPa P B 9.74=* 五、(20分) 解:1.(7分)

实验6 数组一

实验6 数组(一) 【实验目的】 (1) 掌握一维数组和二维数组的定义、赋值和输入输出的方法。 (2) 掌握与数组有关的算法。 【实验内容】 1. 程序分析 (1) 分析下面的程序,描述程序的功能并给出程序的运行结果。 #include #define N 7 int main() { int arr[N]={0,2,4,6,8,10,12},i,t; for(i=0;i int main() { int arr[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; int i,sum=0; for(i=0;i<4;i++) sum+=arr[i][i]; printf("%d\n",sum); return 0; } 2. 程序改错 (1) 以下程序用于求一个数组中的最大值和最小值。程序中有几处错误,试找出它们后加以修改,并上机验证修改结果。 #include int main() { int i,N=10; double arr[N],max,min; for(i=0;i

for(i=1;imax) max=arr[i]; else min=arr[i]; printf("max=%f,min=%f\n",max,min); return 0; } 3. 程序设计 (1) 学校举办演讲比赛,n个学生参加比赛,8个评委打分。参赛选手的最终得分计算方法为:去除一个最高分和一个最低分后所得的平均分。 【要求】 - 求每位选手的比赛成绩。 - 对比赛结果进行排序 (2) 在下面的5×5魔方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中,然后,检验其是否为魔方矩阵,并将其按如下格式显示到屏幕上。 17241815 23571416 46132022 101219213 11182529

实验6 数组和字符串

实验6 数组和字符串 【实验目的】 ①掌握一维数组和二维数组的基本操作(定义、初始化、输入、赋值、输出)。 ②掌握字符数组和字符串函数的使用。 ③掌握与数组有关的常用算法(排序、查找、数组元素的插入和删除)。 【实验6.1】从键盘输入10个整数存入数组a中,然后输出该数组各个元素,并求其中的最大值、最小值和平均值。 【提示】 (1) 通过循环输入10个整数并存入数组a.。 (2)以a[0]作为最大值、最小值及累加和的初始值,用数组的下标和循环相结合,求出 数组的最大值、最小值和平均值。 (3)输出数组各元素,并输出最大值、最小值和平均值。 注意:平均值是通过除法完成的,应选用适当的数据类型。 答案:#include void main() {int a[10],max,min,sum,i; float aver; for(i=0;i<10;i++) scanf("%d",&a[i]); printf("%d",a[i]); sum=0; for(i=0;i<10;i++) sum=sum+a[i]; aver=sum/10.0; max=a[0];min=a[0]; for(i=0;i<10;i++) { if(maxa[i]) min=a[i]; } printf("max=%d,min=%d,aver=%f",max,min,aver); } 【实验6.2】实行学分制,学生的平均绩点是衡量学生学习的重要依据。成绩等级与绩点的关系如下表所示:

平均绩点=∑∑?所学各课程的学分点绩所学各课程学分 编一程序利用两个一维数组分别输入某学生20门课程的学分xf[20]和对应成绩score[20],计算其平均绩点aver 。 【指导】本题是一个求数组元素累加和的问题。 (1)定义数组及相关的变量:20门课程的成绩用数组score[20]表示,20门课程的学分用数组xf[20]表示。 (2)输入20门课程的成绩及其对应学分保存在数组中。 (3)计算20门课程的学分之和sumxf ,并根据成绩的档次分别取不同的绩点计算所有课程的学分与绩点的乘积之和sumscore 。 (4)平均绩点aver=sumscore/sumxf 。 【参考程序】 #include void main() { float score[20],sumscore=0.0F,sumxf=0.0F,aver; int i,jd,xf[20]; for (i=0; i<20; i++) scanf("%f%d",&score[i],&xf[i]); for (i=0; i<20; i++) { sumxf=sumxf+xf[i]; //计算学分和 if (score[i]>=90) //由成绩确定绩点 jd=4; else if (score[i]>=80) jd=3; else if (score[i]>=70) jd=2; else if (score[i]>=60) jd=1; else jd=0; sumscore=sumscore+xf[i]*jd; //计算学分与绩点的乘积和 } aver=sumscore/sumxf; //计算平均绩点 printf("%.2f\n",aver); } 【实验6.3】请编写程序,它的功能是: 将M 行N 列的二维数组中的数据, 按列的顺序依次放到一维数组中。 例如, 二维数组中的数据为: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是:

四川大学化工原理气体吸收实验

气体吸收实验 1.实验目的 (1)观测气、液在填料塔内的操作状态,掌握吸收操作方法。 (2)测定在不同喷淋量下,气体通过填料层的压降与气速的关系曲线。 (3)测定在填料塔内用水吸收CO2的液相体积传质系数K X a。 (4)对不同填料的填料塔进行性能测试比较。 2.实验原理 (1)气体吸收是运用混合气体中各种组分在同一溶液中的溶解度的差异,通过气液充分接触,溶解度较大的气体组分进入液相而与其他组分分离的操作。 气体混合物以一定气速通过填料塔内的填料层时,与吸收剂液相想接触,进行物资传递。气,夜两项在吸收塔内除物质传递外,其流动相互影响,还具有自己的流体力学特征。填料塔的流体力学特征是吸收设备的重要参数,他包括了压降和液泛的重要规律。 填料塔的流体力学特征是以气体通过填料层所产生的压降来表示。该压降在填料因子、填料层高度、液体喷淋密度一定的情况下随气体速度变化而变化,与压降与气速的关系如图。 气体通过干填料层时,其压降与空塔时,其压降与空气塔气速的函数关系在双对数坐标上为一条直线,其斜率为 1.8-2.0.当有液体喷淋时,气体低速流过填料层,压降与气速的关系几乎与L=0的关系线平行,随着气速的增加出现载点B 与B’,填料层内持液量增加,压降与气速的关系关联线向上弯曲,斜率变大,当填料层持液越积越多时,气体的压降几乎是垂直上升,气体以泡状通过液体,出现液泛现象,P-U线出现载点C,称此点为泛点。 (2)反应填料塔性能的主要参数之一是传质系数。影响传质系数的因素很多,对不同系统和不同吸收设备,传质系数各不相同,所以不可能有一个通用的计算式计算传质系数。 本实验采用水来吸收空气中的CO2,常压下CO2在水中的溶解度比较小,用水吸收CO2的操作中是液膜控制吸收的过程,所以在低浓度吸收时填料的计算式

相关主题
文本预览
相关文档 最新文档