作为一名专为他人授业解惑的人民教师,很有必要精心设计一份教案,编写教案有利于我们科学、合理地支配课堂时间。快来参考教案是怎么写的吧!以下是小编整理的《实验安全教案范文》,供大家参考,更多范文可通过本站顶部搜索您需要的内容。
第一篇:实验安全教案范文
第1课时 化学实验安全教案
第一章 从实验学化学
单元规划:
化学是一门以实验为基础的科学,要让学生学好化学,首先要了解化学学科的这一特征,并引导学生通过实验去学习化学。实验是了解物质性质的最好方法,也是认识元素周期律的最佳途径;通过实验可以感受化学反应与能量的关系,认识并研究能量的利用问题;通过实验还能切实了解材料、环境、绿色化学等问题。教科书把化学实验列为第一章体现了课程标准所反映的教学思想。此外,教科书不仅把“化学实验”作为专题内容,还把它安排在第一章,突出了化学实验的基础性,既起到与初中化学实验以及化学知识的衔接,又为高中化学新知识的学习穿针引线,通过实验把学生引入化学世界,由此决定了本章教学内容的基础性和重要性。
第一节:化学实验基本方法。在强调化学实验安全性的基础上,通过“粗盐的提纯”实验,复习过滤和蒸发等操作。对于蒸馏,则是在初中简易操作的基础上,引入使用冷凝管这一较正规的操作。在复习拓宽的基础上又介绍了一种新的分离和提纯方法——萃取。本节还结合实际操作引入物质检验的知识。这样由已知到未知,由简单到复杂,逐步深入。
第二节:化学计量在实验中的应用。在化学基本概念的基础上,通过实验介绍一定物质的量浓度溶液的配制方法。溶液的配制方法是化学实验基本方法和技能,也是对化学知识的应用。而物质的量的有关知识,作为化学实验中的计量来呈现,从而突出实验主题。
第一节 化学实验基本方法 第1课时 化学实验安全
一、教学目标:
【知识与技能】
复习初中相关实验、预习本节内容,让学生获取实验安全方面的知识,加强实验操作能力。 【过程与方法】
通过亲自实验和教师指导,让学生认识实验安全的重要性,同时加强学生实验操作能力。 【情感态度与价值观】 增强学生的实验安全意识,让学生体会到化学实验对学好化学的重要性和注意实验安全对做好化学实验的重要性。
二、教学重点:
增强学生的实验安全意识。
三、教学难点:
了解事故的处理方法。
四、教学器材:
多媒体课件,投影仪
教学过程设计
一、导入新课
【引言】化学是一门以实验为基础的自然科学。人们对科学规律的发现是通过对自然现象的反复观察、探究和验证逐步完成的。化学研究主要用的是实验法,所以,学习化学也离不开实验。掌握实验方法以及完成化学实验所需的技能,是学好化学的关键。同学们在高中阶段学习化学的第一章就是从实验学化学。那么就让我们一起从实验推开高中化学的大门吧。
【多媒体播放】《憨豆先生爆笑之化学实验》,让学生谈谈观看完视频后的感想。
【过渡】生命最可贵,安全第一位。学习和研究化学,经常要进行实验,安全是顺利进行实验及避免伤害和事故的保障。我们这节课主要是跟大家一起探讨化学实验安全方面的问题。
二、推进新课
【板书】第1课时 化学实验安全
【复习提问】
1、在初中我们所学习的化学基本实验操作有哪些?
固体、液体药品的取用,物质的加热、气体的收集及一些基本仪器的使用(如天平、量筒的使用)
2、根据你的经验,谈谈在进行化学实验的过程中应该要注意哪些安全问题呢?
教学环节一:遵守实验室规则
【过渡】化学实验室是我们进行化学实验的主要产所,俗话说:“无规矩不成方圆。”只有明确了实验室规则,我们才能更好的利用实验室。
【板书】
一、遵守实验室规则
【多媒体展示】化学实验室规则,让学生朗读。
【强调】未经允许,不能私自进入实验室做实验,更不能使用危险药品做实验。 教学环节二:了解安全措施 【板书】
二、了解安全措施
1、常见危险化学品的分类及标志
【过渡】我们首先来了解一下什么是化学品,化学品是指各种元素组成的纯净物和混合物,无论是天然的还是人造的,都属于化学品。 据美国化学文摘登录,全世界已有的化学品多达700万种,其中已作为商品上市的有10万余种,经常使用的有7万多种,每年全世界新出现化学品有1000多种。
【多媒体展示】常见危险化学品的分类及标志(比比谁记得快)
2、药品的存放及注意事项 【多媒体播放】《常见化学品的存放》视频; 【多媒体展示】归纳练习
3、常见实验事故的处理方法
【过渡】实验过程难免出现一些实验事故,出现事故并不可怕,关键是要有正确的处理方法。一般情况下需要了解以下几方面实验事故的处理办法。
【多媒体展示】常见实验事故的处理方法,让学生朗读。 教学环节三:掌握正确的操作方法
【过渡】正确的操作方法是实验成功和人身安全的保障。 【板书】
三、 掌握正确的操作方法
1、认识常用的化学仪器及使用方法
【多媒体展示】一些常用化学仪器(让学生抢答仪器名称及简单介绍其使用方法) 【归纳总结】(1)能给固体药品加热的仪器有:试管、坩埚、燃烧匙
(2)能给液体药品加热的仪器有:试管、蒸发皿、烧杯、烧瓶(要垫石棉网)
2、药品(固体、液体)取用方法 【多媒体展示】(1)药品的取用原则 (2)药品的取用方法 【提问】固体的取用要注意什么?
1)装固体粉末时,先倾斜试管,把盛有药品的药匙或纸槽小心地送入试管的底部,然后使试管直立起来,让药品全部落到底部。(一斜二送三直立)
2)块状药品或金属颗粒放入玻璃容器时,先把容器横放,把药品放到容器口,再把容器慢慢竖立起来,使药品缓缓地滑到容器的底部,以免打破容器。(一横二放三慢竖)
3)托盘天平的使用
固体称量用天平,先平放后调零;用纸先将盘底垫,易潮易腐放烧杯;左物右码不要乱,右加游码等于左;取码用镊手不沾,先大后小游码添;完毕砝码归盒中,游码回到零刻度。
【提问】液体的取用要注意什么?
1)倾倒:标签向手心,瓶口要紧挨着试管口,使液体缓缓地倒入试管。倒完液体,立即盖紧瓶盖,把瓶子放回原处。(一放、二向、三挨、四流)
2)量筒量取一定量的液体:量筒是一种量器,只能用来量取液体,不能长期存放药品,也不能作为反应的容器。不能用来量过冷或过热的液体,不宜加热。量筒必须放平,视线要跟量筒内液体的凹液面的最低处保持水平,三线一齐再读数。
3)滴管取液体:用手指捏紧橡胶头,赶出空气,然后把滴管伸入试剂瓶中,放开手指,试剂即被吸入。取出滴管,把它悬空放在试管上方,用拇指和食指捏挤橡胶头,试剂便滴入试管。
使用滴管时要注意:取液后的滴管,应保持橡胶头在上,不要平放或倒置,防止试液倒流,腐蚀橡胶头;不要把滴管当在实验台,以免玷污滴管。用过的滴管要立即用清水洗干净。
3、给物质加热方法
【过渡】给物质加热的主要仪器是酒精灯,它由灯体、灯芯、灯帽三个部分构成,其火焰分为外焰、内焰、焰心,其中外焰的温度最高,因此我们是用它的外焰给物质加热的。掌握酒精灯的正确使用方法,是防止发生失火和爆炸等事故的重要保障。
【多媒体展示】加热操作中涉及到的问题,学生思考回答。 (1)点燃酒精灯时能否用旁边同学的酒精灯点燃? (2)酒精少于1/3时,用于加热会有什么后果?
【强调】有的同学在做实验时,可能酒精燃烧剩余量少于1/3了,就立马向燃着的灯里添加酒精。这样的做法是绝对要禁止的,否则容易失火,甚至发生爆炸。
(3)能否直接用口吹灭酒精灯?
(4)给液体加热时,液体不超试管体积多少? (5)热的容器能否直接放实验台或直接用水冲洗? (6)点燃H
2、CO、CH4等易燃气体前应该怎么做?
【归纳总结】使用酒精灯时应注意的事项:两查两禁一不可。
“两查”:检查灯心是否浸入酒精中,检查酒精灯中酒精是否多于容积的三分之一 “二禁”:禁止向燃着的灯里添加酒精,禁止用酒精灯去引燃另一只酒精灯 “一不可”:不可用嘴吹灭酒精灯,应该用灯帽盖灭火焰
给药品加热时要把仪器擦干(放炸裂),先进行预热,然后固定在药品的下方加热;加热固体药品,药品要铺平,要把试管口稍向下倾斜,以防止水倒流入试管而使试管破裂;加热液体药品时,液体体积不能超过试管容积的1/3,要把试管向上倾斜45°角,并不能将试管口对着自己或别人;加热完毕不能用冷水立即冲洗,防炸裂。
4、气体的收集方法 (1)
(2)排水法:不溶于水且不与水反应的气体。如H
2、O
2、N
2、NO等。
Cl2可用排饱和食盐水法收集;CO2可用排饱和NaHCO3溶液法收集。
5、仪器的洗涤
1、清洗方法:振荡、刷洗、药洗;
2、洗净标志:既不聚成水滴也不成股流下;
3、放置凉干:试管倒放在试管架上,其它仪器放在指定的地方。
6、操作中应注意的事项
实验中要做到五防:a.防爆炸;b.防暴沸;c.防失火;d.防中毒; e.防倒吸。 其具体操作如下:
①点燃可燃气体(如H
2、CO、CH
4、C2H4等)之前应先检验纯度,防止不纯气体点燃爆炸。 ②H2还原CuO和CO还原Fe2O3等实验,在加热CuO或Fe2O3之前应先通入H2或CO将实验装置内的空气排出后再加热,防止H2或CO与装置中的空气混合受热爆炸。
③给液体试剂长时间加热时,要在反应容器内加碎瓷片(也叫沸石),防止暴沸。 ④浓硫酸与水的混合时,应注意将浓硫酸沿器壁慢慢加入水中,边加边搅拌,冷却。
【介绍讲解】大多数化学药品都有不同程度的毒性。有毒化学药品可通过呼吸道、消化道和皮肤进入人体而发生中毒现象。如 HF 侵入人体,将会损伤牙齿、骨骼、造血和神经系统;烃、醇、醚等有机物对人体有不同程度的麻醉作用;三氧化二砷、氰化物、氯化高汞等是剧毒品,吸入少量会致死。
⑤做有毒的(如Cl
2、CO、SO
2、H2S、NO、NO2等)实验时应在通风橱中进行,尾气应用适当试剂吸收,防止污染空气。
⑥若用加热法制取气体,且用排水法收集时,收集完气体应先将导管移出水面,再熄灭酒精灯,防止倒吸。
【提问】你知道哪些防倒吸装置?(让学生思考、交流) 【多媒体展示】常用的防倒吸装置
教学环节四:重视并逐步熟悉污染物和废弃物的处理方法
1、有害气体的处理
【讲解】像H2O(g)、N
2、O
2、CO2等环境无毒害,无需处理,可直接排放,H2S、NO
2、Cl
2、SO2等有毒尾气可用碱液吸收,CO可用燃烧法处理或收集再利用。
2、废液的处理
【讲解】酸性废液可用石灰乳中和;碱性废液可用硫酸中和(能用硫酸时,就不用盐酸或硝酸,可减少两者挥发导致的污染)
3、固体废弃物的处理
【讲解】固体废弃物不能随意丢弃,更不能拿出实验室(应放到指定容器里)
三、随堂练习
1、下实验操作,正确的是( B ) A、取用固体大颗粒药品一般用手拿
B、往试管里装粉末状药品时,试管应先横放再直立
C、向酒精灯内添加酒精时,不得超过酒精灯容积的三分之一
D、试管、烧杯、量筒、集气瓶都不能用于在酒精灯火焰直接加热。
2、下列有关化学实验操作中“先”与“后”的说法不正确的是( D )
A、高锰酸钾加热制备氧气,用排水法收集满氧气后,先移出导管,后撤酒精灯 B、给试管加热时,先给试管来回均匀加热,后固定药品位置局部加热 C、大量碱液流到桌子上,先用醋酸溶液中和,后用抹布抹去
D、在测定溶液的pH时,先用蒸馏水湿润,后用玻璃棒醮取溶液点在试纸中部,再与标准比色卡比较
3、下列盛放试剂的方法正确的是( D ) A、浓硝酸存放在带橡皮塞的棕色玻璃瓶中 B、汽油或煤油存放在带橡皮塞的棕色玻璃瓶中
C、碳酸钠溶液或氢氧化钙溶液存放在配有磨口玻璃塞的棕色瓶中 D、硝酸银溶液存放在配有磨口玻璃塞的棕色瓶
4、下列实验操作中,主要不是从安全因素考虑的是( A ) A.酒精灯在不使用时,必须盖上灯帽
B.给试管里的固体加热时,试管口应略向下倾斜,外壁干燥后再预热 C.给试管里的液体加热时,试管口应略向上倾斜(约45°角),外壁干燥后再预热 D.用氢气还原氧化铜时,应先通一会儿氢气,再加热氧化铜
5、下列实验操作正确的是( C ) A.把没用完的药品倒回原试剂瓶中保存
B.配制稀硫酸时,先在量筒内放好水,再缓缓地加入一定量的浓硫酸 C.用天平称量药品质量时,先加质量大的砝码,再加质量小的砝码 D.用排水取气法收集气体时,导管应插入试管底部
6、下列做法有错误且危险的是( C ) A.用钢瓶储运干燥的液氧
B.碳酸钠饱和溶液保存在带玻璃塞的试剂瓶中
C.用质量分数为30%的过氧化氢溶液消除面部色斑
D.当不慎在皮肤上沾上少量浓硫酸时,应立即用大量水冲洗
7.2005年3月29 日,京沪高速公路淮安段,发生一起违章驾驶相撞,使槽罐车中32 t液氯快速泄漏,造成大批人员伤亡、大片农田被毁和重大经济损失的恶性案件。对于在事故发生时的下列各种应急处理,你认为正确的是( B )
A.附近居民切忌惊慌,用毛巾护住口鼻,朝顺风方向逃逸或向避风的沟塘低洼处转移 B.要快速地将翻落的氯槽罐安全起吊,并用碱液稀释中和泄漏的液氯
C.液氯的流淌速度很慢,居民不必惊慌,可以放心地撤退到家中,关紧门窗
D.检修或现场抢救时,如果没有防毒面具,可以佩戴用浓的烧碱溶液浸泡过的湿口罩 8.下列说法正确的是( C ) A.铅笔芯的主要成分是金属铅
B.CO气体有毒,在生有炉火的居室中多放几盆水,可吸收CO C.含磷洗衣粉的大量使用会造成水体富营养化
D.绿色食品是指使用过化肥和农药生产出来的农副产品
第二篇:实验一数据恢复实验教案
实验一 windows平台逻辑层
数据恢复实验1(误删除的数据恢复)教案
一、实验目的
通过运用软件对误删除的硬盘或者其他设备的数据进行恢复,使学生了解windows平台逻辑层数据恢复原理。通过这个实验,使学生能够深入理解并掌握数据恢复软件的使用方法,并能熟练运用这些软件对存储设备设备进行数据恢复。
二、实验意义
通过上机实验,巩固理论课所学的基本知识,进一步熟悉存储介质数据修复和恢复方法及过程,提高自身的对存储介质逻辑层恢复技能。
三、实验内容
(一)熟悉EasyRecovery Pro的操作界面和该软件的使用,掌握该软件对误删除数据的恢复方法,并运用该软件对硬盘进行逻辑层误删除数据恢复。
(二)熟悉R-Studio的操作界面和该软件的使用,掌握该软件对误删除数据的恢复方法,并运用该软件对硬盘进行逻辑层误删除数据恢复。
四、实验环境
(一)硬件
1.CPU:Intel P4系列以上 2.内存:512M以上 3.硬盘可用空间:1G以上 4.其他辅助输入、输出设备
(二)操作系统:Win9x/WinNT/Win2000/WinXP/Win7
(三)实验软件:EasyRecovery Pro6.
21、R-Studio5.0
五、实验原理
现实中很多人不知道删除、格式化等硬盘操作丢失的数据可以恢复,以为删除、格式化以后数据就不存在了。事实上,上述简单操作后数据仍然存在于硬盘中,懂得数据恢复原理知识的人只需几下便可将消失的数据找回来,不要觉得不可思议,在了解数据在硬盘、优盘、软盘等介质上的存储原理后,你也可以亲自做一回魔术师。
我们向硬盘里存放文件时,系统首先会在文件分配表内写上文件名称、大小,并根据数据区的空闲空间在文件分配表上继续写上文件内容在数据区的起始位置。然后开始向数据区写上文件的真实内容,一个文件存放操作才算完毕。
删除操作却简单的很,当我们需要删除一个文件时,系统只是在文件分配表内在该文件前面写一个删除标志,表示该文件已被删除,他所占用的空间已被"释放", 其他文件可以使用他占用的空间。所以,当我们删除文件又想找回他(数据恢复)时,只需用工具将删除标志去掉,数据被恢复回来了。当然,前提是没有新的文件写入,该文件所占用的空间没有被新内容覆盖。
什么样的数据可以恢复?简单一句话,只要硬盘的物理形态没有改变,数据就可以恢复。我们普通在电脑上对磁盘上的操作(删除或者格式化)并没有改变磁盘的本体物理性质,所以原则上是都可以恢复。一般的做法是在电脑上使用文件恢复软件,比如德国Kroll Ontrack公司的Easy Recovery,美国的R-Studio,俄罗斯的PC3000,或者美国诺顿的NDD以及中国的DiskGenius都可以轻松的进行磁盘的初级恢复操作,使用软件基本上可以完成针对一般的数据删除的恢复(包括Shift + Del或低格的删除)。
EasyRecovery 是数据恢复公司 Ontrack 的产品,它是一个硬盘数据恢复工具,能够帮你恢复丢失的数据以及重建文件系统。它不会向你的原始驱动器写入任何东西,它主要是在内存中重建文件分区表使数据能够安全地传输到其他驱动器中。你可以从被病毒破坏或是已经格式化的硬盘中恢复数据。
Easy Recovery首先的功能就是磁盘诊断。功能包括Drive tests、Smart tests、Size Manager、Jumper Viewer、Partition tests和Data Advisor。
Drive tests用来检测潜在的硬件问题;
Smart tests用来检测、监视并且报告磁盘数据方面的问题;
Size Manager可以看见一个树型目录,可以看出每个目录的使用空间; Jumper Viewer是Ontrack的另外一个工具,单独安装EasyRecovery是不被包含的;
Partition tests类似于windows 2000/xp里的chkdsk.exe,不过是图形化的界面,更强大,更直观;
Data Advisor是用向导的方式来创建可以在16位下分析磁盘状况的启动软盘。
Easy Recovery最核心的功能就是Data Recovery(数据恢复),对于恢复被删除的文件,在EasyRecovery主界面中选择“数据修复”,然后选择DeletedRecovery”进入修复删除文件向导,在第一步首先选择被删除文件所在分区,单击“下一步”按钮,软件会对该分区进行扫描,完成后会在窗口左边窗格中显示该分区的所有文件夹(包括已删除的文件夹),右边窗格显示已经删除了的文件,可先浏览到被删除文件所在文件夹,然后就可以在右边的文件栏中看到该文件夹下已经删除的文件列表,选定要恢复的文件。 单击“下一步”按钮,先在“恢复到本地驱动器”处指定恢复的文件所保存的位置,这个位置必须是在另外一个分区中。单击“下一步”按钮即开始恢复文件,最后会显示文件恢复的相关信息,单击“完成”按钮后,就可以在设置的恢复的文件所保存的位置找到被恢复的文件。
文件夹的恢复也和文件恢复类似,只需选定已被删除的文件夹,其下的文件也会被一并选定,其后的步骤与文件恢复完全相同。另外,文件恢复功能也可由“数据修复”中的“AdanceRecovery”来实现。
R-Studio 是功能超强的数据恢复、反删除工具,采用全新恢复技术,为使用 FAT12/16/
32、NTFS、NTFS5(Windows 2000系统)和 Ext2FS(Linux系统)分区的磁盘提供完整数据维护解决方案!同时提供对本地和网络磁盘的支持,此外大量参数设置让高级用户获得最佳恢复效果。R-Studio新增加的版本增加了RAID重组功能,可以虚拟重组的RAID类型包括,RAID0,RAID5,其中重组RAID5可以支持缺少一块硬盘。
具体功能有:采用 Windows资源管理器操作界面;
通过网络恢复远程数据(远程计算机可运行Win95/98/ME/NT/2000/XP、Linux、UNIX 系统);
支持 FAT12/16/
32、NTFS、NTFS5 和 Ext2FS文件系统;能够重建损毁的RAID阵列;
为磁盘、分区、目录生成镜像文件;恢复删除分区上的文件、加密文件(NTFS 5)、数据流(NTFS、NTFS 5);
恢复FDISK或其它磁盘工具删除过得数据、病毒破坏的数据、MBR 破坏后的数据;
识别特定文件名; 把数据保存到任何磁盘; 浏览、编辑文件或磁盘内容等等。
六、实验步骤
(一)r-studio操作步骤 1.数据恢复。
将你要恢复文件的硬盘连在计算机上,点击桌面“r-studio图标”,打开r-studio软件(见图1)。
图1 2.打开任意磁盘或者分区,右边显现文件有红色叉的表示删除的文件(见图2)。
图2 3.勾选该文件,“右击”选择“恢复标记文件”,设置文件输出路径,便可以恢复文件了(见图3)。
图3 打开文件恢复的存放路径,看看有没有成功的恢复文件!
4.点击某分区,右击选择“扫描”,进行“文件系统设置”选项设置后,点击“扫描”开始扫描磁盘(见图4)。
图4 5.扫描磁盘(见图5)。
图5 6.完成磁盘扫描(见图6)。
图6 7.双击“红色盘符”,然后双击“额外找到的文件”,就可看到此文件系统下的恢复文件(见图7)。
图7 8.按你想要的方式给你恢复的文件分类,勾选你要恢复的一类文件或者某一文件(见图8)。
图8 9.右击选择“恢复标记的内容”,设置恢复的路径,此路径不能在此次扫描的磁盘中(见图9)。
图9 10.打开文件路径检查是否成功恢复文件。
(二)EasyRecovery Pro操作步骤
1.双击EasyRecovery Pro图标,打开EasyRecovery Pro主界面(见图10)。
图10 2.主界面的左上角,分别列出了该软件主要的四大块功能,分别是:磁盘诊断、数据恢复、文件修复和邮件修复(见图11)。
图11 3.点击“数据恢复”,进入数据恢复界面,里面有数据恢复的相关模块(见图12)。
图12 4.对于被误删除的文件(本实验以误删除文件为例,误格式化文件同理),点击“删除恢复”,进入删除恢复界面(见图13)。
图13 5.选择误删除文件的分区,点击“下一步”可以看到该优盘中被删除的一些文件(见图14)。
图14 6.点击右下角的“过滤器选项”可以设定过滤规则(见图15)。
图15 7.若文件较多,可以使用“查找”功能(见图16)。
图16 8.也可以选取某个文件,点击“查看文件”按钮,进行查看。 9.选取要恢复的文件,按“下一步”继续(见图17)。
图17 10.选取恢复数据以及报告的目的地,按“下一步”继续(见图18)。
图18 11.数据恢复完成,可以将此报告打印或保存(见图19)。
图19 12.按“完成”保存恢复状态,退出程序(见图20)。
图20 13.查看已恢复出来的文件(见图21)。
图21
七、实验结果
第三篇:《大学物理实验》教案实验22 衍射光栅
实验 22 衍射光栅
一、实验目的:
1.观察光栅的衍射光谱,理解光栅衍射基本规律。 2.进一步熟悉分光计的调节和使用。
3. 测定光栅常数和汞原子光谱部分特征波长。
二、实验仪器:
分光计、光栅、汞灯。
三、 实验原理及过程简述:
1.衍射光栅、光栅常数 光栅是由大量相互平行、等宽、等距的狭缝(或刻痕)构成。其示意图如图 1 所示。
图2
光栅上若刻痕宽度为 a,刻痕间距为 b,则 d=a 十 b 称为光栅常数,它是光栅基本参数之一。 2.光栅方程、光栅光谱
根据夫琅和费光栅衍射理论,当一束平行单色光垂直入射到光栅平面上时, 光波将发生衍射,凡衍射角
满足光栅方程: 图1 , k 0 , ± 1 , ± 2... (1)时,光会加强。式中λ为单色光波长, k 是明条纹级数。衍射后的光波经透镜会聚后,在焦平面上将形成分隔得较远的一系列对称分布的明条纹,如图 2 所示。 如果人射光波中包含有几种不同波长的复色光,则经光栅衍射后,不同波长光的同一级( k )明条纹将按一定次序排列,形成彩色谱线,称为该入射光源的衍射光谱。图 3 是普 0通低压汞灯的第一级衍射光谱。它每一级光谱中有四条特征谱线:紫色λ14358 A ;绿色λ 0 0 025461 A ;黄色两条 λ3=5770 A 和λ45791 A 。
3.光栅常数与汞灯特征谱线波长的测量 由方程(1)可知,若光垂直入射到光栅上,而第一级光谱中波长λ1 已知,则测出它相应的衍射角为 1 ,就可算出光栅常数 d;反之,若光栅常数已知,则可由式(1)测出光源发射的各特征谱线的波长 i 。 角的测量可由分光计进行。
4.实验内容与步骤
a.分光计调整与汞灯衍射光谱观察 (1)调整好分光计。
(2)将光栅按图 4 所示位置放于载物台上。通过调平螺丝 a 1 或 a 3 使光栅平面与平行光管光轴垂直。然后放开望远镜制动螺丝,转动望远镜观察汞灯衍射光谱,中央( K 0 )零级为白色,望远镜转至左、右两边时,均可看到分立的四条彩色谱线。若发现左、右两边光谱线不在同一水平线上时,可通过调平螺丝 a 2 ,使两边谱线处于同一水平线上。
(3)调节平行光管狭缝宽度。狭缝的宽度以能够分辨出两条紧靠的黄色谱线为准。
b.光栅常数与光谱波长的测量
第四篇:滴水实验教案
滴水实验教学设计
金晖小学 四年级 张耀仙
一、教学内容:北师大版四年级上册数学好玩----滴水实验
二、教学目标:
1、结合现实的问题情境,能够从数学的角度发现 、提出问题,综合运用已有知识和经验分析问题和解决问题的策略,增强应用意识和实践能力,并渗透节约用水的意识。
2、针对“滴水实验”任务,能够提出解决问题的思路,制定简单的解决问题方案;并能根据方案,经历有目的、有设计、有合作的用实验收集数据的过程,积累“从头到尾”思考问题的数学经验;在解决问题的过程中,发展学生独立思考、合作探究、反思质疑的学习意识和能力。
3、在综合运用所学知识解决问题的过程中,了解所学知识与方法之间的联系,加深对所学内容的理解。
三、学情分析:
对于四年级学生而言,已经具备了关于年、月、日的一些基础知识,以及会运用计算器进行独立计算,但是对于独立设计完善的实验方案,是有一定的困难的。
四、教学重、难点:
经历滴水实验的过程,初步感受研究问题的基本方法,学习从数学的角度分析生活中的很多常见问题。
教学准备:课前让学生对ml的知识做一个了解、课件、纸杯、空矿泉水瓶、烧杯、计算器、手表
五、教学过程:
一、创设情境,激发兴趣。
1、教师:请大家看几幅图片,并播放资料:我国水资源现状:我国水资源人均占有量只有2300立方米,约为世界人均水平的四分之一,属于缺少国家,全国已有300多个城市缺水,已有29%的人正在饮用不良水。
2、观看完这些图片,你有什么感受?
3、通过以上的交流,我们知道了水资源是一种有限的而且非常宝贵的自然资源,并非取之不尽,用之不竭;在日常生活中你见到过哪些浪费水的想象?学生交流
二、自主探究,合作交流 (出示课件)
师:面对这一滴一滴的水滴,你能提出一些数学问题吗? 生1:像这样那一天会滴多少水呢? 生2: 一年会浪费多少水呢? „„
师:同学们提出的问题都不错,都能从数学的角度去分析问题。想要说明到底浪费多少 ?最好从数学的角度来分析,统计出一组数据。那么我们怎么才能统计出浪费的水量呢?
生:做个实验。
1、提出任务
师:这个想法很好,用事实来说话!那么我就把同学提出的问题定为我们的活动任务。(出示课件、教师板书课题:滴水实验)
“设计滴水试验,推算出一个没有拧紧的水龙头一年大约浪费多少水。” 师:看到这个活动任务,你有问题吗? 生1:问题里的数字太大了。 师:哪个数字? 生1:一年。
师:那你的意思就是说一年的时间太长了。
生2:老师,我们不可能去用盆、桶去接一年的水,然后在算。
师:那你们的意思是这个活动任务太大了,是个大问题。如何解决这个大问题呢? 老师先给大家独立思考的时间,想想有没有什么好办法能解决这个问题。 (学生先独立思考然后在小组里进行交流,最后汇报) 师:有哪个小组想把自己组的想法说给大家听一听?
生1:先看一分钟滴多少水,再算一小时滴多少水,再算一天,最后算一年的。 师:这个想法真不错。(教师根据学生的回答板书:一分钟、一时、一天、一年)其他组有不同的想法吗?
生2:先算一分、再算一时、再算一天、再算一星期、再算一个月、最后算一年。 师:想法也不错。
生3:先看一秒滴多少,再算一分、一时、一天、一年。
师:他们的想法有相同之处。大家都认为要算一年浪费的水量是个大问题,那他们想的都是通过什么来解决这个大问题的?
生:通过小问题。
师:说的对。通过把大问题化解成一个个小问题,小问题解决了那大问题就自然而然的就解决了。
2、设计方案
师:这个问题解决了,那怎样得到数据呢? 生:亲自做实验。 师:如果这个数据经过我们自己动手去得到的话,那就更有说服力。 那怎样在我们的这个场地去做这个实验呢?设计什么实验可以解决这个问题呢?
(学生在小组里进行交流,然后汇报。) 师:谁有好的想法?
生1:可以用一个纸杯,用圆珠笔的笔芯在纸杯的底部钻一个洞,要注意洞的大小。要与一个没拧紧的水龙头往下滴的水的大小差不多。再往纸杯里倒水,就可以了。
师:你真有想法。在纸杯底部钻一个洞来代替一个没拧紧的水龙头。
同学们的想法有了,实验器材大家也准备了,那怎样来操作这个实验呢?(出示课件:温馨提示)
(学生小组讨论、设计具体的实验方案。)
师:老师看到每个小组的成员都发挥了自己的聪明才智,想出了切实可行的实验方案。请小组来汇报一下你们小组是怎样设计实验方案的。
生1:先拿一个纸杯,再拿一个钻了洞的纸杯,然后在将矿泉水瓶中的水倒进钻了洞的纸杯中,用纸杯接好水,同时用手表计时一分钟,最后将纸杯中是水倒进量杯中观察,得到一分钟滴水的数据。再用计算器一次算出一时、一天、一年。
师:大家评价一下这个小组的方案。
生:非常好,分工很明确,步骤很详细。(学生不约而同的鼓掌)
3、动手实验,填写报告
师:大家刚才想了这么好的实验方案,你们想快点得到数据吗? 生:想。
师:那我们现在就用我们自己设计的实验方案开始动手实验。 (请各组开始动手实验,收集数据,试验过后,请填写实验报告。)
4、交流实验结果
师:看大家都有收获,谁想先谈谈。
生1:我们小组第一次实验没有成功,杯子钻的洞大小了。第二次注意了洞的大小,得到的数据是一分钟大约是30ml。第三次差不多。一时:30×60=1800ml 一天:1800×24=43200ml 一年:43200×365=15768000ml 生2:我们小组也是做了几次实验,得到是数据不一样。 师:你们认为是什么原因导致数据不一样呢? 生3:钻的洞的大小、计时等的原因。
生4; 我们小组做了几次实验得到的数据是一分钟大约是20ml。一时:20×60=1200ml 一天:1200×24=28800ml 一月:28800 ×30=864000ml一年:864000×12=10368000ml „„ 师:为什么数据会不同呢? 生5:因为水滴的快慢不同。
师:根据大家实验的数据,借助日常生活中的物品,请描述1分钟漏掉的水大约有多少?刚才每个小组都得到实验数据,一年的滴水量,假如把他们装在矿泉水瓶中,可以装多少瓶呢?学生动手计算并交流得到的数据是惊人的。
(出示课件)
师:一个没有拧紧的水龙头,一个月漏掉的水够一个人用一个月的。我们用事实数据说明了节约用水的重要性,哪怕是一滴水,我们也要节约!
三、实践运用,拓展创新
师:听完这些,同学们有什么感想呢?你想到可以怎样节约用水?
生1:我们要节约每一滴水。我们可以用洗菜、洗衣服的水冲厕所;洗手的时候用盆接水洗。
生2:洗澡时间断放水淋浴,搓洗时及时关水,避免过长时间冲淋。盆浴后的水可用于洗衣、洗车、冲洗厕所、拖地等。
„„
师:同学们的感受很深,介绍的方法也很好,也希望大家从现在做起、从小事做起,节约用水。
四、反思总结,自我建构
教师:今天,我们通过数学实验、计算器综合运用了数学知识,解决了身边的一些实际问题。同时,我们也体会到小小一滴水引发的数据触目惊心。回顾今天的学习活动,我们做了什么?你有哪些收获呢?
第五篇:实验三教案
国家二级C机试培训资料
第三课
第三课
教学内容:一维数值数组相关算法
教学目的:掌握一维数值数组相关算法的考题
教学内容:
一、一维数值数组相关算法种类
数组元素排序,查找,求最值,计算平均值,逆序,移动。
二、课堂练习
第一套
1、程序填空题(求平均值)
给定程序的功能是计算 scroe 中 m 个人的平均成绩 aver,将低于 aver的成绩放在 below 中,通过函数名返回人数。 例如,当 score={10,20,30,40,50,60,70,80,90},m=9 时,函数返回的人数应该是 4,below={10,20,30,40}。
#include < stdio.h > #include < string.h > int fun(int score[], int m, int below[]) { int i, j = 0 ;
float aver = 0.0 ;
for(i = 0 ; i < m ; i++) aver += score[i] ;
aver /= (float) m ;
for(i = 0 ; i < m ; i++)
/**************found**************/
if(score[i] < aver) below[j++] = ___1___ ;
return j ; }
main()
{ int i, n, below[9] ;
int score[9] = {10, 20, 30, 40, 50, 60, 70, 80, 90} ; /**************found**************/
n = fun(score, 9, ___2___) ;
printf( " Below the average score are: " ) ; /**************found**************/
for (i = 0 ; i < n ; i++) printf("%d ", ___3___) ; }
2、程序改错题(选择法排序)
给定程序 modi.c 中,函数 fun 的功能是:用选择法对数组中的 n 个元素按从小到大的顺序进行排序。 请改正程序中的错误,使它能得出正确结果。
注意:不要改动 main 函数。 #include < stdio.h > #define N 20
void fun(int a[],int n) { int i,j,t,p;
for (j=0;j< n-1;j++)
{
攀枝花学院计算机基础教研室
第1页 共13页 国家二级C机试培训资料
/************found************/
p=j
for (i=j;i< n;i++)
if(a[i]< a[p])
/************found************/
p=j;
t=a[p];a[p]=a[j];a[j]=t;
} }
main()
{ int a[N]={9,6,8,3,-1},i,m=5;
printf("排序前的数据:");
for(i=0;i< m;i++) printf("%d",a[i]);printf(" ");
fun(a,m);
printf("排序后的数据:");
for (i=0;i< m;i++) printf("%d",a[i]);printf(" "); }
第三课
3、程序设计题(求最值及位置)
请编写一个函数 fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标, 最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中 x 是数组名, n 是 x 中的数据个数,max 存放最大值,index存放最大值所在元素的下标。
注意:部分源程序存在文件 prog.c 中。 请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。
#include < stdlib.h > #include < stdio.h > void fun(int a[], int n , int *max, int *d ) { } main()
{ int i, x[20], max , index, n = 10;
randomize() ;
for (i=0;i < n;i++) {x[i] = rand()%50; printf("%4d", x[i]) ; }
printf(" ");
fun( x, n , &max, &index);
printf("Max =%5d , Index =%4d ",max, index ); } 第二套
1、程序填空题(折半法查找)
N 个有序整数数列已放在一维数组中,给定下列程序中,函数 fun() 的功能是:利用折半查找算法查找整数 m 在数组中的位置。若找到,则返回其下标值;反之,则返回"Not be found!"。 折半查找的基本算法是:每次查找前先确定数组中待查的范围:low 和 high(low< high),然后把 m 与中间位置(mid)中元素的值进行比较。如果 m 的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中;反之,下次查找范围落在中间位置之前的元素中。直到 low >high,查找结束。
试题程序:
#include < stdio.h > #define N 10
攀枝花学院计算机基础教研室
第2页 共13页 国家二级C机试培训资料
int fun(int a[],int m)
{ int low=0,high=N-1,mid;
while(low< =high)
{ mid=___1___;
if(m< a[mid])
high=___2___;
else if(m >a[mid])
low=mid+1;
else return(mid);
}
__3___(-1); }
main()
{ int i,a[N]={-3,4,7,9,13,24,67,89,100,180},k,m;
printf("a 数组中的数据如下:");
for(i=0;i< N;i++) printf("%d",a[i]);
printf("Enter m: "); scanf("%d",&m);
k=fun(a,m);
if (k >=0) printf("m=%d,index=%d ",m,k);
else printf("Not be found! "); }
第三课
2、程序改错题(按条件求平均值)
给定程序 modi.c 中,函数 fun 的功能是:按顺序给 s 所指数组中的元素赋予从 2 开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在 w 所指的数组中,若 s 所指数组中元素的个数不是 5 的倍数,多余部分忽略不计。 例如,s 所指数组有 14 个元素,则只对前 10 个元素进行处理,不对最后的 4 个元素求平均值。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动 main 函数。
#include #define SIZE 20
fun(double *s,double *w) { int k,i; double sum;
for (k=2,i=0;i< SIZE;i++)
{ s[i]=k; k+=2; }
/************found************/
sun=0.0;
for(k=0,i=0;i< SIZE;i++)
{ sum+=s[i];
/************found************/
if (i+1%5==0)
{ w[k]=sum/5;sum=0;k++; }
}
return k; }
main()
{ double a[SIZE],b[SIZE/5];
int i,k;
攀枝花学院计算机基础教研室
第3页 共13页 国家二级C机试培训资料
k=fun(a,b);
printf("The original data: ");
for (i=0;i< SIZE;i++)
{ if(i%5==0) printf(" ");
printf("%4.0f",a[i]);
}
printf(" The result: ");
for(i=0;i< k;i++) printf("%6.2f ",b[i]);
printf(" "); }
第三课
3、程序设计题(元素循环右移)
请编写函数 fun,函数的功能是:移动一维数组中的内容;若数组中有 n个整数,要求把下标从 0 到 p(含 p,p 小于等于 n-1)的数组元素平移到数组的最后。 例如,一维数组中的原始内容为: 1,2,3,4,5,6,7,8,9,10;p 的值为 3。移动后,一维数组中的内容应为: 5,6,7,8,9,10,1,2,3,4。
注意:部分源程序存在文件 prog.c 中。 请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。
#include < stdio.h > #define N 80
void fun(int *w, int p, int n) { main()
{ int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
} int i,p,n=15;
printf("The original data: "); for(i=0; i< n; i++)printf("%3d",a[i]); printf(" Enter p: ");scanf("%d",&p); fun(a,p,n);
printf(" The data after moving: "); for(i=0; i< n; i++)printf("%3d",a[i]); printf(" "); }
三、课后练习
1、程序填空题(奇数位置元素排序)
请补充函数 fun(),该函数的功能是:把数给 aa 中元素下标为奇数的元素按从大到小的顺序重新保存在原数组中,其它元素位置不变。 例如,输入“33,67,42,58,25,76,85,16,41,56”,则输出“33,76,42,67,25,58,85,56,41,16”。
注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include < stdio.h > #define N 10
攀枝花学院计算机基础教研室
第4页 共13页 国家二级C机试培训资料
void fun(int aa[]) { int i, j, t;
for (【1】; i< N; i=i+2)
{ for(j=i; j< N; j=j+2)
if(aa[i]< aa[j])
{
【2】;
aa[j]=aa[i];
【3】;
}
} }
main() { int i;
int aa[N]={33,67,42,58,25,76,85,16,41,56};
clrscr();
printf(" *** original list *** ");
for(i=0;i< N; i++)
printf ("%4d",aa[i]);
fun(aa);
printf(" *** new list *** ");
for(i=0;i< N;i++)
printf("%4d",aa[i]); }
2、程序填空题(等步长交换)
第三课
函数 fun 的功能是:将形参 a 所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参 n 中存放数组中数据的个数,若 n 为奇数,则中间的元素不动。
例如:若 a 所指数组中的数据依次为:
1、
2、
3、
4、
5、
6、
7、
8、9,则调换后为:
6、
7、
8、
9、
5、
1、
2、
3、4。
#include < stdio.h > #define N 9
void fun(int a[], int n) { int i, t, p;
/**********found**********/
p = (n%2==0)?n/2:n/2+___1___; for (i=0; i< n/2; i++) { t=a[i];
/**********found**********/
a[i] = a[p+___2___];
/**********found**********/
}
第5页 共13页 ___3___ = t;
攀枝花学院计算机基础教研室 国家二级C机试培训资料
} main()
第三课
{ int b[N]={1,2,3,4,5,6,7,8,9}, i;
}
3、程序填空题(数组元素引用)
给定程序的功能是把 a 数组中的 n 个数,和 b 数组中逆序的 n 个数一一对应相乘、求平方,结果存在 c 数组中。 例如:当 a 数组中的值是:
1、
3、
5、
7、8,b 数组中的值是:
2、
3、
4、
5、8调用该函数后,c 中存放的数据是:6
4、2
25、400、4
41、256 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确结果。
#include < stdio.h > void fun(int a[], int b[], int c[], int n) { int i;
for (i=0; i< n; i++)
/**************found**************/
___1___ = (a[i] * b[n-1-i]) *(a[i] * b[n-1-i]); }
main()
{ int i, a[100]={1,3,5,7,8}, b[100]={2,3,4,5,8}, c[100]; /**************found**************/
fun(___2___, 5);
printf("The result is: ");
/**************found**************/
for (i=0; i< 5; i++) printf("%d ", ___3___);
printf(" "); }
4、程序填空题(求最值及位置)
函数 fun 的功能是:找出一维整型数组元素中最大的值和它所在的下标, 最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。 主函数中 x 是数组名, n 是 x 中的数据个数,max 存放最大值,index 存放最大值所在元素的下标。
#include < stdlib.h > #include < stdio.h > void fun(int a[], int n , int *max, int *d ) { int i,base,subscript;
base=a[0];
subscript=0;
攀枝花学院计算机基础教研室
第6页 共13页 printf(" The original data : "); for (i=0; i< N; i++) printf("%4d ", b[i]); printf(" "); fun(b, N);
printf(" The data after moving : "); for (i=0; i< N; i++) printf("%4d ", b[i]); printf(" "); 国家二级C机试培训资料
for(i=1;i< n;i++) {
if(a[i] >__1_____) {
subscript=i;
base=a[i];
}
}
*max=base;
__2____=subscript; }
main()
{ int i, x[20], max , index, n = 10;
randomize() ;
for (i=0;i < n;i++) {x[i] = rand()%50; printf("%4d", x[i]) ; }
printf(" ");
fun( x, n , &max, &index);
printf("Max =%5d , Index =%4d ",max, index ); }
5、程序填空题
第三课
给定程序的功能是将 n 个人员的考试成绩进行分段统计,考试成绩放在a 数组中,各分段的人数存到 b 数组中:成绩为 60 到 69 的人数存到 b[0]中,成绩为 70 到 79 的人数存到 b[1],成绩为 80 到 89 的人数存到 b[2],成绩为 90 到99 的人数存到 b[3],成绩为 100 的人数存到 b[4],成绩为 60 分以下的人数存到b[5]中。 例如,当 a 数组中的数据是:9
3、8
5、7
7、6
8、
59、
43、9
4、7
5、98。 调用该函数后,b 数组中存放的数据应是:
1、
2、
1、
3、0、2。
#include < stdio.h > void fun(int a[], int b[], int n) { int i;
for (i=0; i< 6; i++) b[i] = 0;
/**************found**************/
for (i=0; i< ___1___; i++)
if (a[i] < 60) b[5]++;
/**************found**************/
___2___ b[(a[i]- 60)/10]++; }
main()
{ int i, a[100]={ 93, 85, 77, 68, 59, 43, 94, 75, 98}, b[6]; /**************found**************/
fun(___3___, 9);
printf("the result is: ");
for (i=0; i< 6; i++) printf("%d ", b[i]);
printf(" "); }
6、程序改错题
给定程序 modi.c 中,在主函数中从键盘输入若干个数放入数组中,用 0结束输入并放在最后一个元素中。下列程序中,函数 fun 的功能是:计算数组元素中值为正数的平均值(不包括 0)。 例如:数组中元素中的值依次为:39,-47,21,2,-8,15,0,则程序的运行结果为:19.250000。 请改正程序中的错攀枝花学院计算机基础教研室
第7页 共13页 国家二级C机试培训资料
误,使它能得出正确结果。 注意:不要改动 main 函数。
#include < conio.h > #include < stdio.h > double fun(int x[]) { ************found************/
int sum=0.0;
int c=0,i=0;
while (x[i]!=0)
{ if (x[i] >0)
{ sum+=x[i];c++;}
i++;
}
/************found************/
sum=c;
return sum; }
main()
{ int x[1000];int i=0;
clrscr();
printf(" Please enter some data (end with 0):");
do
{ scanf("%d",&x[i]);}
while (x[i++]!=0);
printf("%f ",fun(x)); }
第三课
7、程序改错题
给定程序 modi.c 中,函数 fun 的功能是:求出 a 所指数组中最大数和次最大数(规定最大数和次最大数不在 a[0]和 a[1]中,依次和 a[0]、a[1]中的数对调。 例如数组中原有的数为:
7、
10、
12、0、
3、
6、
9、
11、
5、8, 输出的结果为:
12、
11、
7、0、
3、
6、
9、
10、
5、8。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动 main 函数。
#include < conio.h > #include < stdio.h > #define N 20
int fun(int *a,int n) { int i,m,t,k;
for (i=0;i< 2;i++)
{
/************found************/
m=0;
for (k=i;k< n;k++)
/************found************/
if(a[k] >a[m]) k=m;
t=a[i];a[i]=a[m];a[m]=t;
} }
攀枝花学院计算机基础教研室
第8页 共13页 国家二级C机试培训资料
main()
{ int x,b[N]={11,5,12,0,3,6,9,7,10,8},n=10,i;
clrscr();
for (i=0;i< n;i++) printf("%d ",b[i]);
printf(" ");
fun(b,n);
for(i=0;i< n;i++) printf("%d ",b[i]);
printf(" "); }
8、程序改错题
第三课
给定程序 modi.c 中函数 fun 的功能是:给一维数组 a 输入任意 4 个整数,并按下例的规律输出。例如输入
1、
2、
3、4,程序运行后将输出以下方阵。
4 1 2 3 3 4 1 2 2 3 4 1 1 2 3 4
请改正函数 fun 中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main 函数。 #include < stdio.h > #define M 4
/**************found**************/ void fun(int a) { int i,j,k,m;
printf("Enter 4 number : ");
for(i=0; i< M; i++) scanf("%d",&a[i]);
printf(" The result : ");
for(i=M;i >0;i--)
{ k=a[M-1];
for(j=M-1;j >0;j--)
/**************found**************/
a[j]=a[j+1];
a[0]=k;
for(m=0; m< M; m++) printf("%d ",a[m]);
printf(" ");
} }
main()
{ int a[M];
fun(a); printf(" "); }
9、程序改错题
给定程序中,函数 fun()的功能是:使数组中的元素的值缩小 5 倍。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。
#include< stdio.h > #include< conio.h > float m[10];
攀枝花学院计算机基础教研室
第9页 共13页 国家二级C机试培训资料
/**********************found***********************/ int fun(void) { int j;
printf(" ");
for(j=0;j< 10;j++)
{ /**********************found***********************/
printf("%f ",m[j]%5);
} }
main() { int i;
for(i=0;i< 10;i++)
{ m[i]=i+20;
printf("%f ",m[i]);
}
fun(); }
10、程序改错题
第三课
给定程序 modi.c 的功能是:读入一个整数 m(5≤m≤20),函数getarr 调用函数 rnd 获得 m 个随机整数,函数 sortpb 将这 m 个随机整数从小到大排序。 例如,若输入整数 7,则应输出:3 10 17 28 32 36 47。 请改正程序中的错误,使它能得出正确结果。
注意:不要改动 main 函数 #include "conio.h" #include "stdio.h" sortpb ( int n, int *a ) { /************found************/
int i, j, p, t
for ( j = 0; j < n-1 ; j++ )
{ p = j;
/************found************/
For ( i = j + 1; i < n ; i ++ )
if ( a[p] > a[i] ) p = i;
if ( p != j )
{ t = a[j]; a[j] = a[p]; a[p] = t; }
} }
double rnd ( )
{ static t = 29, c = 217, m = 1024, r = 0;
r =( r*t + c )%m; return( ( double )r/m ); }
getarr( int n, int *x ) { int i;
for( i = 1; i < = n; i++, x++ ) *x = ( int )( 50*rnd() ); }
攀枝花学院计算机基础教研室
第10页 共13页 国家二级C机试培训资料
putarr( int n, int *z ) { int i;
for( i = 1; i < = n; i++, z++ )
{ printf( "%4d", *z );
if ( !( i%10 ) ) printf( " " );
}
printf(" "); }
main()
{ int aa[20], n;
clrscr();
printf( " Please enter an integer number between 5 and 20: " );
scanf( "%d", &n );
getarr( n, aa );
printf( " Before sorting %d numbers: ", n ); putarr( n, aa );
sortpb( n, aa );
printf( " After sorting %d numbers: ", n ); putarr( n, aa ); }
11、程序设计题
第三课
请编写函数 fun,其功能是:计算并输出给定数组(长度为 9)中每相邻两个元素之平均值的平方根之和。 例如,给定数组中的 9 个元素依次为 12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,输出应为:s=35.951014。
注意:部分源程序在文件 prog.c 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。
#include < stdio.h > #include < math.h > double fun(double x[9]) { } main()
{ double s,a[9]={12.0,34.0,4.0,23.0,34.0,45.0,18.0,3.0,11.0};
int i;
printf(" The original data is : ");
for(i=0;i< 9;i++)printf("%6.1f",a[i]); printf(" ");
s=fun(a);
printf("s=%f ",s); }
12、程序设计题
请编写一个函数 fun (int *a,int n,int *odd,int *even),函数的功能是分别求出数组 a 中所有奇数之和以及所有偶数之和。形参 n 给出数组元素的个数,整型指针 odd 返回偶数之和,even 返回奇数之和。 例如:a 数组中各数组元素的值依次为:1,9,2,3,11,6,则调用函数 fun后,指针 odd 返回偶数之和 8,even 返回奇数之和 24。
注意:部分源程序保存在文件 prog.c 中。 请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。
#include < stdio.h > #include < conio.h > 攀枝花学院计算机基础教研室
第11页 共13页 国家二级C机试培训资料
#define N 20
fun ( int *a, int n, int *odd, int *even ) { } main( )
{ int a[N]={1,9,2,3,11,6}, i, n=6, odd, even;
clrscr( );
printf ( "The original data is : " );
for ( i = 0; i < n; i ++ ) printf ( "%5d", *(a+i) );
printf(" ");
fun ( a, n, &odd, &even );
printf ( "The sum of odd numbers: %d ", odd );
printf ( "The sum of even numbers: %d ", even ); }
13、程序设计题
第三课
请编写函数 fun,函数的功能是:统计各年龄段的人数。N 个年龄通过调用随机函数获得,并放在主函数的 age 数组中;要求函数把 0 至 9 岁年龄段的人数放在 d[0]中,把 10 至 19 岁年龄段的人数放在 d[1]中,把 20 至 29 岁年龄段的人数放在 d[2]中,其余依此类推,把 100 岁(含 100)以上年龄的人数都放在 d[10]中。结果在主函数中输出。
注意:部分源程序存在文件 prog.c 中。 请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。
#include < stdio.h > #define N 50 #define M 11
void fun( int *a, int *b) { } double rnd()
{ static t=29,c=217,m=1024,r=0;
r=(r*t+c)%m; return((double)r/m); }
main()
{ int age[N], i, d[M];
for(i=0; i< N;i++)age[i]=(int)(115*rnd());
printf("The original data : ");
for(i=0;i< N;i++) printf((i+1)%10==0?"%4d ":"%4d",age[i]);
printf(" ");
fun( age, d);
for(i=0;i< 10;i++)printf("%4d---%4d : %4d ",i*10,i*10+9,d[i]);
printf(" Over 100 : %4d ",d[10]); }
14、程序设计题
请编写一个函数 void fun (int x, int pp[], int *n),它的功能是:求出能整除 x 且不是奇数的各整数,并放在数组 pp 中, 这些除数的个数由 n 返回。
注意:部分源程序存在文件 prog.c 中。 请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。
#include < conio.h > 攀枝花学院计算机基础教研室
第12页 共13页 国家二级C机试培训资料
#include < stdio.h > void fun ( int x, int pp[], int *n ) { } main( )
{ int x, aa[1000], n, i ;
clrscr() ;
printf( " Please enter an integer number: " ) ; scanf("%d", &x) ;
fun(x, aa, &n ) ;
for( i = 0 ; i < n ; i++ )
printf("%d ", aa[i]) ;
printf(" ") ; }
15、程序设计题
第三课
请编一个函数 double Acc(int k, double dd[]), 它的功能是:求出数组 dd 中前 k 个数的小数部分的和, 并返回此值。 例如:输入 4 和 101.9
1、213.8
7、345.7
9、420.83,则输出 3.4。
注意:此程序保存在 prog.c 中。 请勿改动主程序 main、函数 WriteData 和函数 compute 中的任何内容,仅在函数Acc 的花括号中填入你编写的若干语句。
#include < conio.h > #include < stdio.h > #define M 20
double Acc( int k, double dd[] ) { } main() { int i, m;
double x, tt[M];
clrscr();
printf(" Please enter number of numbers: ");
scanf("%d", &m );
printf(" Please enter %d decimal numbers: ",m);
for( i = 0; i < m; i++ )
{ scanf("%lf", &x ); tt[i] = x ; }
printf( " The sum of their decimal part is: %lf ", Acc(m, tt)); }
攀枝花学院计算机基础教研室
第13页 共13页