实验1-顺序和分支结构题目及参考答案
- 格式:pdf
- 大小:456.53 KB
- 文档页数:11
2020高考热点物质制备实验中的顺序问题近年来,高考物质制备实验题中实验顺序问题成为新的热点,包括装置组装顺序、试剂添加顺序、实验操作顺序等,而学生解答时不知道回答问题的角度,无所适从,导致频频失分。
现将物质制备实验题中实验顺序问题设问角度、答题模板总结如下,期望对学生备考有所帮助。
一、装置组装顺序:1.发生装置→净化装置→干燥装置→收集装置→尾气吸收装置。
2.先除杂,后除水,加热灼烧放末尾。
二、仪器装配顺序:在装配仪器时,应从下而上,从左至右,先塞好后固定;三、试剂添加顺序:试剂添加顺序主要从安全、环保、实验效果、速率控制等方面考虑。
1.从安全的角度考虑。
(1)液体混合时防止混合产生的热量导致局部过热而是液体迸溅,将密度大的液体倒入密度小的液体中。
①浓硫酸稀释:一定要把浓硫酸沿器壁慢慢注入盛有水的烧杯里,并用玻璃棒不断搅拌。
②乙酸乙酯制备:先沿着试管内壁慢慢向乙醇中倒入浓硫酸并不断振荡,冷却后再加乙酸。
③硝基苯制备:沿着试管内壁慢慢向浓硝酸中倒入浓硫酸并不断振荡,冷却后再加苯。
(2)蒸馏和有机制备实验:加沸石防止暴沸,一定注意要在加热前加入沸石。
(3)银氨溶液配制:向稀AgNO3溶液中逐滴滴加稀氨水至沉淀刚好完全消失;防止氨水过量生成雷酸银(AgONC),在受热或撞击时有爆炸的道危险,同时银氨溶液本身也将失去灵敏性。
2.从保护环境的角度考虑。
溴苯制备:先加苯,再加溴,最后加铁粉。
因溴挥发性极强,若先加溴,会导致溴大量蒸发,污染环境。
先加入苯后再加溴,加入的溴就会溶解在苯里,形成溴的苯溶液,这样溴的挥发性就大大降低了。
3.从实验效果的角度考虑。
(从药品浓度、用量、溶解度、络合、水解酸碱性等方面)(1)检验溴乙烷水解产物:先加稀硝酸中和NaOH,再加AgNO3溶液;(2)检验糖类水解产物:先加NaOH溶液中和硫酸,再加新制Cu(OH)2悬浊液,加热煮沸;(3)侯氏制碱法:先向饱和食盐水中通氨气,后通CO2;CO₂在NaCl中的溶解度很小,先通入NH₃使食盐水显碱性,能够吸收大量CO₂气体,产生高浓度的HCO₃-,才能析出NaHCO₃晶体。
生物实验报告册答案生物实验报告册答案实验一:观察细胞结构在这个实验中,我们观察了细胞的结构。
细胞是生物体的基本单位,通过观察细胞结构,我们可以更好地理解生物体的组成和功能。
首先,我们使用显微镜观察了植物细胞和动物细胞的外观。
植物细胞通常呈现出方形或长方形的形状,而动物细胞则多为圆形或不规则形状。
植物细胞具有细胞壁和细胞膜,而动物细胞只有细胞膜。
此外,我们还观察到细胞质、细胞核和细胞器等结构。
细胞质是细胞内的液体,包含许多重要的有机分子和细胞器。
细胞核是细胞的控制中心,其中包含了遗传信息。
细胞器则是细胞内的各种功能结构,如线粒体、内质网和高尔基体等。
实验二:观察光合作用光合作用是植物细胞中的重要过程,通过光合作用,植物可以将阳光转化为化学能,供自身生长和发育所需。
我们在实验中使用了一片叶子,将其暴露在不同光照条件下,并观察了叶子的变化。
我们发现,在充足的光照条件下,叶子呈现出绿色,并且生长茂盛。
而在光照不足的情况下,叶子的颜色变得苍白,生长也受到抑制。
这是因为光合作用需要光能来驱动,光能被植物叶绿素吸收后,通过一系列化学反应将其转化为化学能。
如果光照不足,植物无法进行充分的光合作用,无法产生足够的能量来支持生长。
实验三:观察细胞分裂细胞分裂是生物体生长和繁殖的基础过程。
在这个实验中,我们观察了细胞分裂的不同阶段。
通过显微镜观察,我们可以看到细胞分裂的两个主要阶段:有丝分裂和无丝分裂。
有丝分裂是指细胞在分裂过程中形成染色体,然后将其平均分配给两个子细胞。
无丝分裂则是指细菌等单细胞生物通过简单的分裂方式产生新的细胞。
观察细胞分裂的过程,不仅可以了解细胞的增殖机制,还可以帮助我们更好地理解生物体的生长和发育过程。
结论通过这次实验,我们对细胞的结构、光合作用和细胞分裂等生物学基础知识有了更深入的了解。
细胞是生物体的基本单位,了解细胞的结构和功能对于理解生物体的组成和生命活动具有重要意义。
同时,光合作用和细胞分裂是生物体生长和繁殖的基础过程,对于生物的生存和繁衍起着至关重要的作用。
实验二 分支结构程序设计实验1、实验目的和要求:掌握汇编语言分支程序的设计方法;2、实验内容:编程序求分段函数Y 的值。
已知变量X 为16位带符号数, 分段函数的值要求 保存到字单元Y 中。
函数定义如下:1 (当X>0)Y = 0 (当x=0)—1 (当X<0)3、实验仪器与器材:计算机及EMU8086汇编软件等。
4、实验原理:分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。
分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。
程序流程图是根据解题分析所绘制的程序执行流程图。
5、实验过程与测试数据(含电路图/程序流程框图):6、实验分析:自己分析7、实验体会:自己总结实验参考程序:DATA SEGMENTX DW -128Y DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AXMOV AX,XCMP AX,0JG ISPNJZ ISZNMOV Y,-1JMP FINISHISPN: MOV Y,1JMP FINISHISZN: MOV Y,0FINISH: MOV AH,4CHINT 21HCODE ENDSEND START思考题:把程序修改成如下的分段函数的值—1 (当X>=0)Y=1 (当X<0)。
实验二顺序结构与选择结构程序设计一、实验目的及要求1.理解C语言程序的顺序结构;2.掌握常用的C语言语句,熟练应用赋值、输入、输出语句;3.了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”);4.学会正确使用逻辑运算符和逻辑表达式;5.熟练掌握if语句和switch语句。
二、实验内容1、已知圆半径r=1.5,圆柱高h=3, 求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。
2、输入一个华氏温度,要求输出摄氏温度。
公式为c=5/9*(f-32)。
3、有3个整数a、b、c,由键盘输入,编程序按从小到大的顺序将它们排序并输出。
4、编程序计算下面的函数:e x-1 0<x<1y= |x|+2 3≤x≤4sin(x2) 当x取其他值时5、输入一个整数m,判断它能否被7、11、17整除,如果能被以上三个数之一整除,则输出它能被整除的信息,否则输出m不能被7、11、17整除的信息。
6、电文加密的算法是:将字母A变成字母G,a变成g,B变成H,b变成h,依此类推,并且U变成A,V变成B,等等。
从键盘输入一个电文字符,输出其相应的密码。
7、企业发放的奖金根据利润提成。
若利润I≤10万元,奖金可提10%;若10万<I≤20万时,则低于等于10万元的部分按10%提成,高于10万元部分,可提成7.5%;若20万<I≤40万时,低于等于20万元的部分仍按上述办法提成,高于20万元部分按5%提成;按类似的办法,若40万<I≤60万元时,高于40万元部分按3%提成;若60万<I≤100万元时,高于60万元的部分按1.5%提成;若I>100万时,超过100万元部分按1%提成。
从键盘输入当月利润I,求应发奖金总数。
三、实验结果分析对实验结果进行检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。
**大学数学与信息工程学院《 Python 程序设计》实验报告实验名称:班级:实验地址:实验 3 Python姓名:日期:基本数据种类及分支构造学号:一、实验目的:[ 实验目的和要求]1、娴熟掌握Python 三种数字种类及其应用2、娴熟判断条件表达式的真假3、娴熟掌握Python 分支构造二、实验环境:1、计算机,局域网,软件三、实验内容和要求:(直接将实验步骤及截图写在题当今面,结果一定截图)1、复数 z=-3+4j ,用 Python 程序求得对应的实部和虚部并计算z 的绝对值,并思虑输出的绝对值代表什么含义?2、请将以下数学表达式用Python 程序写出来,并运算结果247 3 41)x5代码:a=2**4b=7c=3d=4e=5x=(a+b-c*d)/eprint(x)2)x(1 32 )(16 mod 7) / 7代码:a=3**2b=1c=16d=7x=(a+b)*(c%d)/7print(x)3、编写程序,依据输入的长和宽,计算矩形的面积并输出。
要求:输入语句input 实现同步赋值。
lw=input(' 请输入矩形的长和宽,以空格分开:')length,width=map(float,lw.split())s=length*widthprint(" 矩形面积为:",s)4、编写程序 ,用户输入一个三位以上的整数(假如不是三位数则提示输入错误),输出其百位以上的数字。
比如用户输入1234,则程序输出12。
(提示:使用整除运算。
)代码:a=eval(input(' 请输入一个三位以上的整数:'))b=int(a/100)if(a<99):print(' 输入错误 ')else:print(b)------------------------------------------------------------------------------------------------------------------------------5、已知某课程的百分制分数 mark,将其变换为 5 分制 ( 优、良、中、及格、不及格 ) 的评定等级grade ,评定条件以下:(注意:不要存在冗余条件)优 mark 90良 80 mark 90成绩等级 = 中 70 mark 80及格 60 mark 70不及格 mark 60代码:mark=eval(input(' 请输入你的分数:'))if mark>=90:print(' 优 ')elif 90>mark>=80:print(' 良 ')elif 80>mark>=70:print(' 中 ')elif 70>mark>=60:print(' 及格 ')elif mark<60:print(' 不及格 ')6、(1)编写计算n 的阶乘的程序,n 由用户输入。
一、实验目的1. 理解和掌握机构的基本组成和运动规律。
2. 学会使用实验仪器对机构进行结构分析。
3. 通过实验加深对机构运动简图的绘制和理解。
二、实验仪器与设备1. 机构结构分析实验台2. 钢尺3. 铅笔4. 毫米纸5. 计算器三、实验原理机构是由若干个构件通过运动副连接而成的,能够实现一定运动的系统。
本实验主要研究平面机构的结构分析,包括构件的数目、运动副的类型、自由度的计算等。
四、实验步骤1. 观察实验台上的机构,了解其组成和运动规律。
2. 数清机构中的构件数目,确定运动副的类型。
3. 根据实验台上的机构,绘制机构运动简图。
4. 使用公式计算机构的自由度。
5. 分析实验结果,总结实验经验。
五、实验数据记录与处理1. 机构构件数目:N = 52. 运动副类型:转动副、移动副、高副3. 机构运动简图:根据实验台上的机构,绘制出机构运动简图。
4. 自由度计算:(1)转动副数目:R = 3(2)移动副数目:P = 2(3)高副数目:H = 1(4)机构自由度:F = 3N - 1 - 2P - H = 35 - 1 - 22 - 1 = 8六、实验结果与分析1. 通过观察实验台上的机构,我们可以看到机构由5个构件组成,其中包括3个转动副、2个移动副和1个高副。
2. 根据机构运动简图,我们可以清晰地了解机构的运动规律。
3. 通过计算,我们得出机构的自由度为8,说明该机构具有一定的运动能力。
七、实验总结1. 本实验使我们深入了解了机构的基本组成和运动规律。
2. 通过实验,我们学会了使用实验仪器对机构进行结构分析。
3. 实验过程中,我们认识到机构自由度在机构设计中的重要性。
八、实验报告评价1. 实验数据记录完整,计算过程清晰。
2. 实验步骤规范,实验结果准确。
3. 实验总结具有针对性,能够反映出实验的收获。
九、实验改进建议1. 在实验过程中,注意观察机构的运动状态,以便更好地理解机构的运动规律。
2. 在绘制机构运动简图时,注意比例尺的选取,确保图形的准确性。
一、实验背景选择分支结构是程序设计中非常重要的一种结构,它可以根据不同的条件判断,选择执行不同的代码块。
在Java、C、Python等多种编程语言中,选择分支结构都有着广泛的应用。
为了加深对选择分支结构的理解,本次实验通过具体的实例来演示选择分支结构的实现方法。
二、实验目的1. 理解选择分支结构的原理和语法;2. 掌握if-else语句、switch-case语句等选择分支结构的用法;3. 能够运用选择分支结构解决实际问题。
三、实验环境1. 操作系统:Windows 102. 编程语言:Java3. 开发工具:Eclipse四、实验内容1. 实验一:if-else语句(1)实验目的:掌握if-else语句的基本用法。
(2)实验内容:编写一个Java程序,根据用户输入的年龄,判断用户是青少年、中年还是老年人。
(3)实验步骤:① 创建一个名为AgeDemo的Java类;② 在主函数中,声明一个变量age,用于存储用户输入的年龄;③ 使用Scanner类获取用户输入的年龄;④ 使用if-else语句判断年龄,并输出相应的结果。
(4)实验代码:```javaimport java.util.Scanner;public class AgeDemo {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入您的年龄:");int age = scanner.nextInt();if (age >= 18 && age <= 30) {System.out.println("您是青少年。
");} else if (age >= 31 && age <= 60) {System.out.println("您是中年人。
1、用下面的scanf函数输入数据,使a=10, b=20, c1='A', c2='a', x=1.5, y=-3.75, z=67.8,请问在键盘上如何输入数据?scanf("%5d%5d%c%c%f%f%*f,%f", &a,&b,&c1,&c2,&x,&y,&z);2、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf函数输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字第三次作业1、有3个整数a,b,c,由键盘输入,输出其中最大的数。
2、有一个函数:x x<1y= 2x-1 1<=x<103x-11 x>=10写一段程序,输入x,输出y的值。
3、给出一百分制成绩,要求输出成绩等级A、B、C、D、E。
90分以上为A,80-89分为B,70-79为C,60-69为D,60分以下为E。
4、给一个不多于5位的正整数,输出这个数是几位数。
第四次作业1、给一个不多于5位的正整数,要求:a.求出它是几位数;+b.分别输出每一位数字;c.按逆序输出各位数字,例如:原数为321,应输出123。
2、教材P112页第5.8题(if语句解法创建一个独立文件,switch语句解法创建一个独立文件第五次作业1、输入两个正整数m和n,求其最大公约数和最小公倍数。
(经典题)2、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数,并输出。
3、求s=a+aa+aaa+aaaa+....+(a...a)之值,其中a是一个数字,n表示a的位数。
1、输入两个字符串,使用指针p将两个字符串按次序复制到数组c中。
例:输入“zhe"和"jiang",将"zhejiang"保存在数组c中。
实验1、2:线性表的应用参考代码一、实验预备知识1.复习C中编写函数的相关内容。
2.复习如何用主函数将多个函数连在一起构成一个C完整程序。
二、实验目的1.掌握线性表的顺序和链式存储结构2.熟练运用线性表在顺序存储方式下的初始化、创建、输出、插入和删除运算3.熟练运用线性表在链式存储方式下的创建、输出、插入和删除运算三、实验要求1.编写初始化并创建线性表和输出线性表的算法。
2.编写对线性表插入和删除运算算法,要判断位置的合法性和溢出问题。
3.编写有序表的插入和删除运算算法。
4.编写一个主函数,将上面函数连在一起,构成一个完整的程序。
5.将实验源程序调试并运行,写出输入、输出结果,并对结果进行分析。
四、实验内容顺序表实验内容:1.给定的线性表为L=(12,25,7,42,19,38),元素由键盘输入。
2.初始化并建立顺序表。
(开辟的存储空间大小为8)3.编写顺序表输出算法。
4.依次插入3、21、15、99四个数,分别插入在第1、8、4和12位置,每插入一次都要输出一次顺序表。
5.删除第1,第9和第12个位置上的元素,每删除一个元素都要输出一次顺序表。
6.编写一个排序算法,对线性表中元素从小到大排列。
7.向有序表分别插入20和50,插入后表仍然有序。
(修改开辟的存储空间大小为15)单链表实验内容:1.给定的线性表为L=(12,25,7,42,19,38),元素由键盘输入。
2.建立一个带表头结点的单链表(前插入法和尾插入法均可)。
3.编写单链表输出算法。
4.依次插入3、21、15、99四个数,分别插入在第1、8、4和12位置,每插入一次都要输出一次单链表。
5.删除第1,第9和第12个位置上的元素,每删除一个元素都要输出一次单链表。
6.编写一个排序算法,对链表中元素从小到大排列。
7.向有序链表分别插入20和50,插入后表仍然有序。
五、实验结果顺序表源程序:#include <iostream>using namespace std;const int MAXSIZE=8; //做有序表插入操作时,将8改为15typedef int DataType;typedef struct{DataType data[MAXSIZE];int length;}SeqList;void Init_SeqList(SeqList &L);//创建空顺序表算法void Show_SeqList(SeqList L);//顺序表输出算法void Create_SeqList(SeqList &L);//顺序表创建算法int Insert_SeqList(SeqList &L,DataType x,int i);//顺序表的插入算法int Delete_SeqList(SeqList &L,int i);//顺序表的删除算法int Locate_SeqList(SeqList L,DataType x);//顺序表的按值查找算法void Sort_SeqList(SeqList &L);//顺序表的排序算法int Insert_SeqList_sort(SeqList &L,DataType x);//有序表的插入算法void Merge(SeqList LA,SeqList LB,SeqList &LC);//两个有序顺序表的合并算法void menu(); //菜单算法void main(){ menu(); }void menu()//菜单算法{SeqList L;Init_SeqList(L);int m;while(1){cout<<"\n根据所做操作选择以下数字序号:"<<endl;cout<<"1:创建顺序表2:执行插入操作3:执行删除操作"<<endl;cout<<"4:执行输出操作5:执行查找操作6:执行排序操作"<<endl;cout<<"7:执行有序表的插入操作8:执行有序表的合并操作0:退出"<<endl;int n,i,x;cin>>n;switch (n){case 1:{Create_SeqList(L);break;}case 2:{cout<<"请输入插入位置:";cout<<endl<<"请输入插入元素值:";cin>>x;cout<<endl;m=Insert_SeqList(L,x,i);if (m==1)cout<<"插入操作成功!"<<endl;elseif (m==0)cout<<"插入位置不合法!"<<endl;elsecout<<"发生溢出!"<<endl;break;}case 3:{cout<<"请输入删除位置:";cin>>i;cout<<endl;m=Delete_SeqList(L,i);if (m==1)cout<<"删除操作成功!"<<endl;elseif (m==0)cout<<"删除位置不合法!"<<endl;elsecout<<"空表!"<<endl;break;}case 4:{Show_SeqList(L);break;}case 5:{cout<<"请输入所要查找的元素值:";cin>>x;cout<<endl;m=Locate_SeqList(L,x);if (m==0)cout<<"所查找元素不在顺序表中!"<<endl;elsecout<<"所查找元素是顺序表的第"<<m<<"个元素!"<<endl;}case 6:{Sort_SeqList(L);cout<<"排序操作完成!"<<endl;break;}case 7:{cout<<endl<<"请输入插入元素值:";cin>>x;cout<<endl;m=Insert_SeqList_sort(L,x);if (m==1)cout<<"插入操作成功!"<<endl;elsecout<<"发生溢出!"<<endl;break;}case 8:{SeqList L1,L2,L3;Init_SeqList(L1);Init_SeqList(L2);Init_SeqList(L3);cout<<"创建有序表1:"<<endl;Create_SeqList(L1);Sort_SeqList(L1);cout<<"创建有序表2:"<<endl;Create_SeqList(L2);Sort_SeqList(L2);cout<<"有序表1:"<<endl;Show_SeqList(L1);cout<<"有序表2:"<<endl;Show_SeqList(L2);Merge(L1,L2,L3);cout<<"合并后:"<<endl;Show_SeqList(L3);break;}case 0:return;}}}void Init_SeqList(SeqList &L)//创建空顺序表算法{=0;}void Show_SeqList(SeqList L)//顺序表输出算法{if==0)cout<<"空表!"<<endl;elsefor(int i=0;i<;i++)cout<<[i]<<" ";cout<<endl;}void Create_SeqList(SeqList &L)//顺序表创建算法{cout<<"请输入元素个数:";cin>>;cout<<"依次输入各个元素的值:"<<endl;for(int i=0;i<;i++)cin>>[i];}int Insert_SeqList(SeqList &L,DataType x,int i)//顺序表的插入算法{if(MAXSIZE<=return -1;if(i<1||i>+1)return 0;for(int j=;j>=i-1;j--)[j+1]=[j];[i-1]=x;++;return 1;}int Delete_SeqList(SeqList &L,int i)//顺序表的删除算法{if ==0)return -1;if(i<1||i>return 0;for(int j=i;j<;j++)[j-1]=[j];;return 1;}int Locate_SeqList(SeqList L,DataType x)//顺序表的按值查找算法{int i=0;while(i<&&[i]!=x)i++;if(i< )return i+1;elsereturn 0;}void Sort_SeqList(SeqList &L) //排序算法{int i,k,j;DataType temp;for(i=0;i<;i++){k=i;for(j=i+1;j<= -1;j++)if [j]< [k])k=j;if(i!=k){temp= [i];[i]= [k];[k]=temp;}}}int Insert_SeqList_sort(SeqList &L,DataType x)//有序表的插入算法{if(MAXSIZE<=return -1;int i=0;while(i<&&[i]<x)i++;for(int j=;j>=i;j--)[j+1]=[j];[i]=x;++;return 1;}void Merge(SeqList LA,SeqList LB,SeqList &LC)//两个有序顺序表的合并算法{int i,j,k;i=j=k=0;while(i<&&j<{if[i]<[j]){[k]=[i];i++;k++;}else{[k]=[j];j++;k++;}}while(i<{[k]=[i];i++;k++;}while(j<{[k]=[j];j++;k++;}=k;}输入输出结果:图1-1主菜单图1-2顺序表的创建和输出操作图1-3 顺序表的插入操作图1-4顺序表的删除操作图1-5顺序表的排序操作图1-6有序表的插入操作图1-7两个有序表的合并操作单链表的源程序:#include "iostream"using namespace std;typedef int DataType;typedef struct node{DataType data;struct node *next;}LNode,*LinkList;void Init_LinkList(LinkList &L);//创建空单链表void Create1LinkList(LinkList &L,int n);//前插入法创建单链表的算法void Create2LinkList(LinkList &L,int n);//后插入法创建单链表的算法void PrintLinkList(LinkList L);//单链表的输出算法int InsertLinkList(LinkList &L,int i,DataType x);//单链表的插入算法int DeleteLinkList(LinkList &L,int i);//单链表的删除算法void Select_Sort_LinkList(LinkList &L);//链表的排序算法(选择排序)void Insert2(LinkList L,DataType x);//有序表的插入void Merge(LinkList L1,LinkList L2,LinkList &L3);//两个有序表的合并算法void menu();//菜单函数int main(){menu();return 0;}void Init_LinkList(LinkList &L)//创建空单链表{L=new LNode;L->next=NULL;}void Create1LinkList(LinkList &L,int n)//前插入法创建单链表的算法{LNode *s;for(int i=1;i<=n;i++){s=new LNode;cout<<"请输入第"<<i<<"个元素的值:";cin>>s->data;s->next=L->next;L->next=s;}}void Create2LinkList(LinkList &L,int n)//后插入法创建单链表的算法{LNode *s,*r=L;for(int i=1;i<=n;i++){s=new LNode;cout<<"请输入第"<<i<<"个元素的值:";cin>>s->data;r->next=s;r=s;}r->next=NULL;}void PrintLinkList(LinkList L)//单链表的输出算法{if(L->next==NULL){cout<<"空表!"<<endl;return;}cout<<"当前单链表为:"<<endl;LNode *p=L->next;while(p){cout<<p->data<<" ";p=p->next;}cout<<endl;}int InsertLinkList(LinkList &L,int i,DataType x)//单链表的插入算法{int j=0;LNode *p=L,*s;while(p&&j<i-1){p=p->next;j++;}if(!p||j>i-1)return 0;s=new LNode;s->data=x;s->next =p->next ;p->next =s;return 1;}int DeleteLinkList(LinkList &L,int i)//单链表的删除算法{if(L->next ==NULL)return -1;int j=0;LNode *p=L,*q;while((p->next !=NULL)&&(j<i-1)){p=p->next ;j++;}if((p->next==NULL)||(j>i-1))return 0;q=p->next ;p->next =q->next ;delete q;return 1;}void Select_Sort_LinkList(LinkList &L)//链表的排序算法(选择排序){if(L->next ==NULL){cout<<"空表,不需要排序!"<<endl;return;}LNode *p,*q,*s;DataType temp;if(L->next==NULL) return;for(p=L->next;p->next!=NULL;p=p->next){s=p;for(q=p->next;q!=NULL;q=q->next){if(q->data<s->data)s=q;}if(s!=p){temp=s->data; s->data=p->data; p->data=temp;}}cout<<"排序成功!"<<endl;}void Insert2(LinkList L,DataType x)//有序表的插入{LNode *p=L,*s;while(p->next!=NULL&&p->next->data<x)p=p->next;s=new LNode;s->data=x;s->next=p->next;p->next=s;cout<<"插入操作成功!"<<endl;}void Merge(LinkList L1,LinkList L2,LinkList &L3)//两个有序表的合并算法{LNode *p1,*p2,*p3,*s;p1=L1->next ;p2=L2->next ;L3=p3=new LNode;L3->next =NULL;while(p1&&p2){s=new LNode;if(p1->data <p2->data ){s->data =p1->data ;p1=p1->next ;}else{s->data =p2->data ;p2=p2->next ;}p3->next =s;p3=s;}if(p1)p3->next =p1;if(p2)p3->next =p2;}void menu()//菜单函数{LinkList L;Init_LinkList(L);int m;while(1){cout<<"\n根据所做操作选择以下数字序号:"<<endl;cout<<"1:前插入创建单链表2:尾插入创建单链表3:执行插入操作"<<endl;cout<<"4:执行删除操作5:执行输出操作6:执行排序操作"<<endl;cout<<"7:执行有序表的插入操作8:执行有序表的合并操作0:退出"<<endl;int n,i,x;cin>>n;switch (n){case 1:{cout<<"请输入结点个数:";cin>>i;Create1LinkList(L,i);PrintLinkList(L);break;}case 2:{cout<<"请输入结点个数:";cin>>i;Create2LinkList(L,i);PrintLinkList(L);break;}case 3:{cout<<"请输入插入位置:";cin>>i;cout<<endl<<"请输入插入元素值:";cin>>x;cout<<endl;if (InsertLinkList(L,i,x)==1)cout<<"插入操作成功!"<<endl;elsecout<<"插入位置不合法!"<<endl;break;}case 4:{cout<<"请输入删除位置:";cin>>i;cout<<endl;m=DeleteLinkList(L,i);if (m==1)cout<<"删除操作成功!"<<endl;elseif(m==-1)cout<<"空表!"<<endl;elsecout<<"删除位置不合法!"<<endl;break;}case 5:{PrintLinkList(L);break;}case 6:{Select_Sort_LinkList(L);break;}case 7:{cout<<endl<<"请输入插入元素值:";cin>>x;cout<<endl;Insert2(L,x);break;}case 8:{LinkList L1,L2,L3;Init_LinkList(L1);Init_LinkList(L2);Init_LinkList(L3);cout<<"创建有序表1:"<<endl;cout<<"请输入结点个数:";cin>>i;Create2LinkList(L1,i);Select_Sort_LinkList(L1);cout<<"创建有序表2:"<<endl;cout<<"请输入结点个数:";cin>>i;Create2LinkList(L2,i);Select_Sort_LinkList(L2);cout<<"有序表1:"<<endl;PrintLinkList(L1);cout<<"有序表2:"<<endl;PrintLinkList(L2);Merge(L1,L2,L3);cout<<"合并后:"<<endl;PrintLinkList(L3);break;}case 0:return;}}}输入输出结果:图2-1主菜单图2-2创建单链表(用头插入法)图2-3创建单链表(用尾插入法)图2-4单链表的插入操作图2-5单链表的插入操作(插入位置不合法情况)图2-6单链表的删除操作图2-7单链表的删除操作(删除位置不合法情况)图2-8单链表的排序操作图2-9有序表的插入操作图2-10两个有序表的合并操作建议:代码较长,为了方便阅读和调试,可写成多文件结构!。
实验一(1)编程求37+29的值,实习VC环境。
#include<stdio.h>void main(){int a,b,sum;a=37;b=29;sum=a+b;printf("sum=%d",sum);}(2)从键盘输入三个整数,求出最大数并输出。
#include<stdio.h>void main(){int a,b,c,y;int max(int x,int y);printf("input a,b,and c:");scanf("%d,%d,%d",&a,&b,&c);y=max(a,b);y=max(y,c);printf("\nmax=%d\n",y);}int max(int x,int y){int z;if(x>y) z=x;else z=y;return(z);}(3)通过上机实践,运行下列程序并分析输出结果。
A 程序代码#include<stdio.h>void main(){char ch='a';printf("%c对应的ASCII码是:%d\n",ch,ch);}程序输出结果:a对应的ASC||码是:97B 程序代码#include<stdio.h>void main(){int a=168;float b=123.456;float x=35.567,y;printf("a=%5d\n",a);printf("a=%-5d\n",a);printf("b=%6.2f\n",b);printf("b=%e\n",b);y=(int)(x*100+0.5)/100.0;printf("x=f,y=%f\n",x,y);}程序输出结果:a=168a=168b=123.46b=1.234560e+002x=f,y=35.567001C程序代码#include<stdio.h>void main(){int a=168;printf("十进制数%d对应的八进制数是%o\n",a,a);printf("十进制数%d对应的十六进制数是%x\n",a,a); }程序输出结果:十进制数168对应的八进制数是250十进制数168对应的十六进制数是a8实验二2.1顺序结构2.1.1已知a=1.5,b=5.3,c=2.9,计算s=-4ac的结果并输出。
实验四分支结构程序设计实验一、实验目的1.掌握分支结构程序设计的基本设计方法;2.掌握条件转移指令和无条件转移指令的使用方法; 3.掌握指令对标志寄存器中各标志位的影响情况;4.掌握多分支结构程序设计的三种方法:树型结构法、地址常数表法和指令常数表法。
二、实验要求1.学会使用DEBUG 的T 命令,跟踪检查指令对标志位的影响情况; 2.学会使用DEBUG 中的P 命令,对INT 指令的跟踪方法; 3.学会利用设置断点调试程序的方法;4.了解大写、小写字母及数字在计算机内的表示方法及转换方法。
三、实验内容1.编写程序,已知在DATA 开始的内存单元中,连续存放着三个一位十六进制数,找出其中最大数及最小数,存放在指定的内存单元中。
2.编写程序,从键盘输入若干个任意字符,如果是小写字母a ~z 之间的字符,请将它们转换成相应的大写字母,若为其它字符,则保持不变,将转换后的新字符保存在指定的存储单元中。
四、解题思路1.先对DATA 内存单元连续存放三个一位十六进制数。
先对DATA 内存单元里的前两个数据比较,较大的数据再和第三个数据比较,从而得到最大数据存到MAX 内存单元里。
把两次比较得到的两个较小的数据进行比较,从而得到最小数据存到MIN 内存单元里。
两个无符号数据比较后,用JA/JNBE、JAE/JNB/JNC/、JB/JNAE/JC和JBE/JNA来判别两数的大小关系,这些条件转移指令是把进位标志CF 和零标志位ZF 结合起来判别的。
2.先开辟20个字节的内存单元DATA 用来存储输进来字符串和修改后的字符串。
对字符串的输入是以‘#’为结束字符的,当字符的个数少于20时,只要输入的字符串是以‘#’结尾,就代表字符串输入结束(其中结束字符‘#’也是字符串中的一个字符存储到内存单元里)。
每次输入一个字符,就对其进行判别。
若输入的字符在字符‘a ’到‘z ’之间,那么就对其进行转换成对应的大写字母(方法把小写字母的值减去32即可),然后再存到指定的内存单元中;否则,直接把输入的字符存到指定的内存单元中去。
实验流程题
以下是一个实验流程题的示例:
实验目的:研究温度对植物生长的影响。
实验步骤:
(1)选择两个大小相同、生长状况良好的植物,分别标记为A和B。
(2)将A植物放入温度为20℃的环境中,将B植物放入温度为30℃的环境中。
(3)观察并记录两个植物的生长情况,包括株高、叶片数量、颜色等。
(4)持续观察一段时间,记录数据并进行分析。
实验结果:
(1)A植物在20℃环境中生长良好,株高、叶片数量和颜色均正常。
(2)B植物在30℃环境中生长不良,株高较低、叶片数量较少、颜色较浅。
实验结论:温度对植物生长有显著影响,高温环境可能对植物生长产生不良影响。
注意:这只是一个示例,具体的实验流程题需要根据不同的实验目的和内容进行设计。
试验一熟悉汇编环境以及初级程序的编写与调试一实验目的1.熟悉掌握DEBUG的常用命令,学会用DEBUG调试程序。
2.了解数据在存储器中的存取方法以及堆栈中数据的压入与弹出。
3.掌握各种寻址方法及简单指令的执行过程。
二试验要求1.实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析。
2.本实验要求在PC机上进行。
3.本实验只要求在DEBUG调试程序状态下进行,包括汇编程序、调试程序、执行程序。
三实验内容1.熟悉DEBUG的常用命令(1)汇编命令A格式:○1A 【段寄存器名】:【偏移地址】○2A 【段地址】:【偏移地址】○3A 【偏移地址】○4A功能:用该命令可以将汇编语言程序直接汇编进入内存。
当键入A命令后,显示段地址和偏移地址等待用户键入汇编指令,每键入一条汇编指令回车后,自动显示下一条指令的段地址和偏移地址,再键入下一条汇编指令,直到汇编语言程序全部键入,又显示下一条地址时可直接键入回车回到提示符“—”为止。
其中○1的段地址在段地址寄存器中,因此在使用该命令时必须将段地址寄存器送入段地址,○3的段地址在CS中,○4的段地址在CS中,偏移地址为100H。
(2)执行程序命令G和单步执行程序T功能:用该G命令可直接执行汇编语言程序;用T命令可单步执行汇编语言程序并显示当前寄存器内容(3)显示内存命令D格式:○1D [地址]○2D [地址范围]○3D功能:显示指定内存范围的内容。
(4)修改存储单元内容命令E格式:○1E [地址][内容表]○2E[地址]功能:○1用命令所给定的内容表去代替指定地址范围的内存单元内容。
○2一个单元一个单元的连续修改单元内容。
其中:内容表为一个十六进制数或一串十六进制数,也可以是用单引号括起的一串字符。
(5)检查和修改寄存器内容命令R格式:○1R○2R [寄存器名]功能:○1显示CPU内部所有寄存器的内容和全部标志位的状态。
○2显示和修改一个指定寄存器的内容和标志位的状态。
小学科学实验报告范例(部编版带答案分
析)
本文为小学科学实验报告的范例,内容涵盖了实验步骤、实验材料、实验记录、实验结果及实验分析等方面。
实验目的
探究天然气与空气的性质和特点,了解并应用实验中所使用仪器的结构与功能。
实验过程
1. 实验材料准备:
- 实验气瓶、天平、烧杯、试管、互相匹配的瓶塞、火柴和蜡烛、气口嘴等。
2. 实验步骤:
- 步骤1:将气瓶中混合气充成蓝色荧光的天然气,调整气瓶
底部的杯水平位并试压。
- 步骤2:向气瓶中加入几毫升水,并封口振荡。
- 步骤3:用烧杯烧热水,待水热死后溅入冷水试管中,迅速
放在气瓶口上。
- 步骤4:把气瓶倒置,加入一小块蜡烛燃烧,再把瓶塞插入
气瓶口。
- 步骤5:观察、摇动气瓶,用试管扣回气瓶口,将试管斜摆,逐渐将口向上翻,观察混合气质量变化。
实验记录
通过实验,我们得到了如下实验记录:
实验结果
经过实验,我们得到了以下实验结果:
- 热水中的气体会自由滚动并溢出;\\
- 混合气体中的天然气被水吸附,气体缓慢地往试管中下滑;- 弯曲试管时,气体经受到的压强降低。
实验分析
通过对实验结果的观察,我们得到了以下实验分析:
- 气体受热后内压力增加,气体流动性增强,活动分子的速度也增大,相应地,表现为气体的容易扩散性;
- 活动的分子因速度大且有amore active原子之间的相互作用而导致分子之间发生碰撞,碰撞后,气分子向各个方向快速移动。
具体实验流程数据及分析可见参考资料。
参考资料
小学科学教育实验报告范例(含答案解说)【部编版】。
分支结构程序设计[实验目的]1、进一步理解逻辑量的表示方法。
2、掌握C语言的逻辑运算符及逻辑表达式的正确使用。
3、熟练掌握if 语句与switch语句的正确应用。
[实验内容和步骤]1、有如下函数,请编程,输入x的值,输出y的值。
x (x<1)y= 2x-1 (1<=x<10)3x-11 (x>=10)#include <stdio.h>void main() {int x , y ;printf("Please input x : ") ;scanf("%d" , &x) ;if ( x < 1)y = x ;else if ( x >=1 && x < 10)y = 2 * x - 1 ;elsey = 3 * x - 11 ;printf("y = %d\n" , y) ;}2、根据学生成绩档次输出:成绩A档输出“85~100”成绩B档输出“70~84”成绩C档输出“60~69”其它输出“不及格”#include <stdio.h>void main() {int score ;printf("Please Input score: ") ;scanf( "%d" , &score ) ;if ( score >=85 && score <= 100)printf("85 ~ 100\n") ;else if (score >= 70 && score < 85)printf("70 ~ 84\n") ;else if (score >= 60 && score < 70)printf("60 ~ 69\n") ;elseprintf("bujige\n") ;}[问题讨论]1、对于多分枝选择结构何时使用if语句的嵌套,何时使用switch语句?2、 switch语句中break语句的作用是什么?。
※声明:1.实验所属课本原件为《Visual Basic程序设计教程(第4版)(□主编龚沛曾□编者杨志强陆慰民谢步瀛)》;2.实验答案代码采用红色字体突出;3.仅提供课本前七个实验的代码,之后的实验上课考试均不涉及故不作;4.教学平台上机实验、课本篇后实验,两者题目操作略有差异,作业以前者要求为准,故以下答案代码为前者代码,如对后者代码有所需求请私信;5.本文为作者原创,复制转载请注明出处;6.如果对代码有所疑问,或者略感繁琐想直接要已完成实验,请私信;7.浏览、复制、下载后请给作者一个合理的评价,感激不尽。
实验1-1编制简单的欢迎界面程序。
要求:在屏幕上显示“欢迎学习Visual Basic”;在文本框Text1中输入姓名;单击命令按钮“你输入的姓名是”,在Label3标签显示在文本框中输入的姓名。
“学号-1-1.frm”和“学号-1-1.vbp”文件名保存。
以后每个实验项目的命名规则都是如此,即“学号-实验号-实验题目”“”和“”)图2.1.1 实验1.1运行界面Private Sub Command1_Click()Label3.Caption = Text1.TextEnd Sub实验1-2模仿教学篇例1.1,将事件过程中的自上而下移动改为自右向左移动,同时考虑If Label1.Left < 0 Then Label1.Left = Form1.Width End SubSub MyMove()Label1.Move Label1.Left - 50, Label1.TopIf Label1.Left < 0 Then Label1.Left = Form1.WidthEnd SubPrivate Sub Command1_Click()Timer1.Interval = 200End SubPrivate Sub Command2_Click()Timer1.Interval = 0Call MyMoveEnd SubPrivate Sub Form_Load()Timer1.Interval = 0End SubPrivate Sub Timer1_Timer()Call MyMoveEnd Sub实验1-3“学号-1-3”为项目名保存。