当前位置:文档之家› 实验4 循环伏安法知识分享

实验4 循环伏安法知识分享

实验4 循环伏安法知识分享
实验4 循环伏安法知识分享

实验4循环伏安法

华南师范大学实验报告

学生姓名学号

专业新能源材料与器件年级、班级 2014

课程名称电化学实验实验项目循环伏安法测定电极反应参数实验类型□√验证□设计□综合实验时间2016/4 / 25

实验指导老师吕东生实验评分

一.实验目的

1.了解循环伏安法的基本原理以及应用

2.掌握循环伏安法的实验技术和有关参数的测定方法

二.实验原理

循环伏安法(CV)是重要的电分析化学研究方法之一。该方法使用的仪器简单,操作方便,图谱解析直观,在电化学,无机化学,有机化学,生物化学等许多领域被广泛应用。循环伏安法通常使用三电极系统,一支工作电极(被研究物质起反应的电极),一支参比电极,一支辅助(对)电

极。外加电压加在工作电极与辅助电极之间,反应电流通过工作电极与辅助电极。

对可逆电极反应(电荷交换速率很快,反应由扩散控制的过程),如一定条件下的VO2+/VO2+还原体系,当电压负向扫描时,VO2+在电极上还

原,反应为:VO2++e-+2H+——VO2++H2O,得到一个还原峰。当电极正向扫描时,VO2+在电极上氧化,反应为VO2++H2O- e-—— VO2++2H+,得到一个氧化峰。循环伏安法能迅速提供电活性物质电极反应的可逆性,化学反应历程,电活性物质的吸附等许多信息。

三.实验器材

CHI电化学工作站;玻碳电极;铂电极;Hg/Hg2SO4电极;

0.1mol/L VO2++0.1mol/L VO2++3mol/L H2SO4,三口电解槽

四.实验步骤

1.准备好配置好的0.1mol/L VO2+,0.1mol/L VO2+,3mol/L H2SO4溶液。

2.预处理电极:

1)用去离子水润湿玻碳电极,用砂纸打磨至玻碳电极的表面至光滑,用去离子水冲洗之后用滤纸擦干。

2)用去离子水润湿玻碳电极,用砂纸打磨至电极表面光滑,有光泽,用去离子水冲洗之后用滤纸擦干。

3.将溶液倒入三口槽之后连接好电极,打开CHI电化学工作站,选择“开

路电压“方法,测定开路电压(0.3598V)

4.选择“Cyclic Voltammetry Parameters”, Init E 为开路电压(0.3598V),

Low E 设置为-2V,High E 设置为+2V, Final E 设置为开路电压

(0.3598V),Sweep segments为5,扫描速率为20mV/s,循环次数2

次。以txt格式保存实验数据。

5.更换电解液,按照步骤2的方法处理电极之后,将扫速设置为5mV/s,

Low E为-0.3V,High E为1.3V,循环次数为2次。以txt格式保存实验

数据。

6.在扫描速率分别为10mV/s, 15mV/s, 20mV/s,30mV/s下按照步骤5的实

验条件测量循环伏安曲线,并以txt的格式保存实验数据。

7.清洗电极和电解槽,关闭仪器和电脑

五.实验数据处理与分析

1.作出玻碳电极在-2V~+2V范围内测出的循环伏安曲线图(选第2次扫描

的曲线)。指出玻碳电极上的析氢电位,析氧电位以及另一对氧化峰和

还原峰的电位及其对应的电化学反应。

图1.玻碳电极在0.1mol/L VO2++0.1mol/L VO2++3mol/L H2SO4,-2V~+2V范围内的循环伏安曲线图图1中,点A为玻碳电极在0.1mol/L VO2++0.1mol/L VO2++3mol/L

H2SO4溶液中的析氢电位,E A=-1.904V

点B为玻碳电极在0.1mol/L VO2++0.1mol/L VO2++3mol/L H2SO4溶液中

的析氧电位,E B=1.434V

氧化峰的电位E pc=0.91V,对应的电化学反应为:

VO2++H2O- e-—— VO2++2H+

还原峰的电位E pa=0.874V,对应的电化学反应为: VO2++e-+2H+——

VO2++H2O

2.在同一张图中做出-0.3V~1,1V范围内不同扫速下的循环伏安曲线。列表

总结不同扫速下的测量结果。

扫速

参数

/*10-4

5mV/s 10mv/s 15mV/s 20mV/s 30mV/s

E pa/V 0.251 0.163 0.1733 0.1822 0.1722

E pc/V 0.501 0.766 0.733 0.7156 0.6541

E p/V 0.249 0.603 0.5597 0.5334 0.4819

i pa/A 3.769 4.635 6.28 7.247 8.991

i pc/A 3.227 2.595 3.409 4.239 5.744

i pa/i pc 1.17 1.79 1.84 1.70 1.56

图2.玻碳电极在0.1mol/L VO2++0.1mol/L VO2++3mol/L H2SO4,-0.3~1.1范围内不同扫速的循环伏安曲线图

E p和i pa/i pc的大致变化趋势都是逐渐变小,氧化峰的电位和还原峰的

电位逐渐减少,氧化电流和还原电流的比值逐渐趋向于1.这说明了扫速越大,电对的可逆性越大,但从理论来说,扫速越大,电化学极化会增大,电对可逆性会降低。

3.在同一张图中作出i pa和i pc对v1/2的曲线,并指出这两条曲线是否都通过

原点。

图3.i pc和i pa对v1/2的曲线

由图像可知,两条曲线都没有通过原点。

实验四-循环结构汇编语言程序的设计实验报告

循环结构汇编语言程序设计实验报告

实验四循环结构汇编语言程序设计 一、实验目的 1、学习循环结构的汇编语言程序的设计和调试。 2、学习通过直接对8086计算机的寄存器和存的直接访问,编写更高效简洁的汇编程序。 3、加深掌握计算机整体的工作过程。 3、加深对排序算法的理解。 二、实验任务 编写程序求出数组A中(20个元素)的最大值和最小值(数组没有排序)。 要求至少采用二种不同的排序算法来实现。( 快速排序,归并排序、堆排序、Shell排序、插入排序、冒泡排序、交换排序、选择排序、基数排序……) 三、实验容 为了更好地实现老师所布置的实验任务,我们根据情况选取以下两种方式实

验。 1、利用冒泡排序的方式求解数组A中元素的最大值最小值。设计流程图如 下所示: 2、利用选择排序的方式求得数组A中元素的序列。设计流程图如下所示:

四、实验环境 PC机: winXP/win7(32位)/win7(64位)+winxp 虚拟机 汇编工具:Masm.exe+Link.exe。 五、实验步骤 1)建立和生成的文件 (1)编写的源程序,源程序名为abc、扩展名为.asm (2)源程序经汇编程序Masm.exe汇编(翻译)后生成二进制目标程序,文件名为abc.obj (3)目标程序需要经Link.exe连接生成可执行程序,文件名为abc.exe 2)汇编环境 最基本的汇编环境只需要两个文件:Masm.exe和Link.exe。将这两个文件拷入到已经建好的文件夹(例如 huibian)中,并将文件夹huibian放在硬盘根

目录C :\>下 3)上机步骤 进入DOS窗口中执行。 4)调试程序 进入DEBUG后,调试程序 5)调试成功后重新汇编、连接并生成可执行代码 6)执行程序,并对运行结果截图。 利用冒泡排序求得数组A中元素的最大值最小值的实验结果如下图所示:(说明:输入数据为:13,0,59,900,587,1,657,234,34,48) 利用选择排序对数组A中元素排序得到的序列得实验结果如下图所示:(说明:输入数据为13,0,59,900,587,1,657,234,34,48)

实验4_循环结构程序设计1题目及解答

4.3 循环结构程序设计1 【(1)题中页码均为《C 语言程序设计教程》中的页码 (2)题后为原程序文件名 (3)仅提交名为【*.c 】的源程序文件,可一起提交,也可逐题提交 】 1、 按照右边给出的流程图用while 语句求1~100之间的偶数之和。(007张三t411.c, 007张三t412.c ) 【提示:参见p89—例4.18 ,并按照下面的左流程图书写007张三t411.c ,右流程图书写007张三t412.c 程序运行结果: s=2550 】 2、 按照右边给出的流程图用while 语句求出所有的水仙花数(如135: 153=13+53+33)。(007张三t42.c )【限制用一重循环实现】 【提示: 程序运行结果: 全部水仙花数如下:??153??370??371??407 】 3、 根据公式,求)(1n n 1 4313212 11 ....+????++++ 的前n 项之和。 (007张三t431.c ,007张三t432.c ) 【提示:参见p90—例4.19了解类似算法的实现 参见p93--例4.18了解do-while 语句的应用 007张三t431.c---用while 语句实现, 007张三t432.c 用do —while 语句实现 程序运行时: 程序运行结果: 请输入n :10? 前10项之和=0.91 请输入n :20? 前20项之和=0.95 】

4、求1!+2!+……+n!(007张三441.c和007张三442.c)【要求n≤10】 【提示:参见p90—例4.20,注意当n=10时,结果超过int 的最大值,建议用长整型(long int--%ld)007张三441.c---用while语句实现, 007张三442.c 用do—while语句实现 程序运行时:程序运行结果: 请输入n:1?1!~1!之和=1 请输入n:3?1!~3!之和=9 请输入n:10?1!~10!之和=4037913 请输入n:20?20超出本程序的求解范围! 请输入n:0?0超出本程序的求解范围! 】 5、输出个位数字是6,且能被3整除的所有3位数(007张三45.c)【要求:输出时,每个数字占4位,右对齐】 程序运行结果: 附加题: 1、编制一个能破解4位数字组成的数字密码的程序(即密码不能以0开头),假设数字密码为:1234(007张三4附加1.c)。【程序运行结果: 密码是:1234 】 2、鸡兔同笼问题,已知鸡和兔的总头数为a,总脚数为b,求鸡和兔的有多少只?(007张三4附加21.c,007张三4附加 22.c)【要求:(1)用循环结构实现,存于007张三4附加21.c (2)顺序结构实现,存于007张三4附加22.c 【程序运行时:程序运行结果: 请输入鸡和兔的总头数和总脚数:4 8?当4个头,8只脚时:鸡4只, 兔0只 请输入鸡和兔的总头数和总脚数:4 12?当4个头,12只脚时:鸡2只, 兔2只 】

左右来回循环的流水灯实验报告

青 岛 科 技 大 学 微机原理与接口技术综合课程设计(报告) 题 目 __________________________________ 指导教师__________________________ 学生姓名__________________________ 学生学号__________________________ _______________________________ 院(部)____________________________ 专业________________班 ______年 ___月 ___日 直流电机控制综合实验 周艳平 宋雪英 01 信息科学技术学院 计算机科学与技术0961 2012 12 27

摘要 (2) 1、单片机概述 (2) 2、仿真软件介绍 (2) 3、需求分析 (3) 一、课程设计目的 (3) 二、课程设计要求 (4) 三、实验内容 (4) 1、设计任务与要求 (4) 2、系统分析 (4) 1).硬件电路设计(画出原理图、接线图) (5) 2)软件框图 (7) 3、用keil建项目流程 (8) 4、程序清单 (9) 4、系统调试 (11) 四、设计总结(结论) (12)

摘要 近年来,随着电子技术和微型计算机的发展,单片机的档次不断提高,起应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到广泛的应用、成为现代电子系统中最重要的智能化的核心部件。而AT89C51就是其中一种,它是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMO8位微处理器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。本课程设计介绍一种LED小灯控制系统的设计方法,以单片机作为主控核心,与按键、排阻、电阻、电容等较少的辅助硬件电路相结合,利用软件实现对LED灯进行控制。能够通过按键控制8个LED小灯从左到右依次点亮。 关键字:单片机、LED流水灯 1、单片机概述 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微 型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处 理器、存储器和I/O 接口电路等。因此,单片机只需要和适当的软件及外部设备相结合, 便可成为一个单片机控制系统。 单片机经过1、2、3、3 代的发展,目前单片机正朝着高性能和多品种方向发展,它 们的CPU 功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。 2、仿真软件介绍 (1).Keil uv3 运行Keil uv3

实验4循环伏安法测定电极反应参数实验报告

华南师范大学实验报告 学生姓名学号2014 专业新能源材料与器件年级、班级2014 课程名称电化学实验实验项目循环伏安法测定电极反应参数实验类型□√验证□设计□综合实验时间2016年4月25日 实验指导老师吕东生实验评分

一、实验目的 1.了解循环伏安法的基本原理及应用 2. 掌握循环伏安法的实验技术和有关参数的测定方法。 二、实验原理 循环伏安法(Cyclic Voltammetry)是一种常用的电化学研究方法。该法控制电极电势以不同的速率,随时间以三角波形一次或多次反复扫描,电势范围是使电极上能交替发生不同的还原和氧化反应,并记录电流-电势曲线。根据曲线形状可以判断电极反应的可逆程度,中间体、相界吸附或新相形成的可能性,以及偶联化学反应的性质等。常用来测量电极反应参数,判断其控制步骤和反应机理,并观察整个电势扫描范围内可发生哪些反应,及其性质如何。对于一个新的电化学体系,首选的研究方法往往就是循环伏安法。该方法使用的仪器简单,操作方便,图谱解析直观,在电化学、无机化学、有机化学、生物化学等许多研究领域被广泛使用。循环伏安法通常采用三电极系统,一支工作电极(被研究物质起反应的电极),,一支参比电极,一支对电极。外加电压在工作电极和辅助电极之间,反应电流通过工作电极与辅助电极。 图1 循环伏安法测得的氧化还原曲线 正向扫描的峰电流i p 与v^0.5和C都成线性关系,对研究电极过程具有重要意义。标准 电极电势为:EΘ=(E pa +E pc )/2。所以对可逆过程,循环伏安法是一个方便的测量标准电极 电位的方法。 三、实验器材 CHI电化学工作站;玻碳电极;铂电极;Hg/Hg2SO4电极;0.1 mol/L VO2+ + 0.1 mol/L VO2+ +3 mol/L H2SO4溶液 四、实验步骤 1. 预处理电极

第6章 循环结构程序设计

第6章循环结构程序设计 【计划课时】授课6课时+上机4课时 6.1 概述 循环是在循环条件为真时计算机反复执行的一组指令(循环体)。 循环控制通常有两种方式: ·计数控制——事先能够准确知道循环次数时用之 用专门的循环变量来计算循环的次数,循环变量的值在每次执行完循环体各语句后递增,达到预定循环次数时则终止循环,继续执行循环结构后的语句。 ·标记控制——事先不知道准确的循环次数时用之 由专门的标记变量控制循环是否继续进行。当标记变量的值达到指定的标记值时,循环终止,继续执行循环结构后的语句。 在C语言中可用以下语句构成循环: if … goto while do … while for 6.2if … goto语句循环结构P106 goto是一种无条件转向语句。 一般形式: goto标号; if … goto 可构成当型/直到型循环结构(尽量少用,以提高程序可读性/结构性)。 【例一】 { int n=0,sum=0; loop: sum+=n; ++n; if (sum<=10000) goto loop; printf(“n = %d\n”,n); }

6.3 while 语句循环结构 P107 一般形式 while (条件表达式) 循环体; 用于构成当型循环:先判断后执行/条件为真继续循环,直到条件为假时结束循环。 【注意】条件表达式或循环体内应有改变条件使循环结束的语句,否则可能陷入“死循环”。 【例一】 main() { int n=0; while (n<=2) { n++; printf(“%d”,n); } } 结果:123 【讨论】若去while 语句中的{},结果:3;若将n++移到printf 语句中,结果:012 【例二】 int n=0; while (n++<=2); printf(“%d”,n); 结果:4 【讨论】n=3时,while 条件为假,结束循环,但比较后n 自加了一,所以n=4。 【例三】 main() { int i=0; while (1) { printf(“*”); i++; 【例二】 main() { int n=0,sum=0; loop: if (sum>=10000) goto end; sum+=n; ++n; goto loop; end: printf(“n = %d \n”,n); }

LED灯实验报告

mcs-51单片机接口技术实验 适用:电气类专业本科学生 实验报告 实验一熟悉proteus仿真模拟器,led花样表演 一、实验目的 掌握以下方法: 1.在proteus的环境下,设计硬件原理图; 2.在keilc集成环境下设计c51语言程序; 2.在proteus的环境下,将硬件原理图与软件联接仿真运行。 二、实验环境 1.个人微机,windows操作系统 2.proteus仿真模拟器 3.keilc编程 三、实验题目 基本题:使用8051的并口带动8个led发光二极管显示一种花样表演。提高题:使用一个键切换实现3种以上花样表演。 四、实验类型: 学习、模仿与简单设计型。 五、实验步骤: 0、进入isis,先选择需要的元件,然后设计电原理图,保存文件; 1、在keilc软件集成环境下编写源程序,编译工程文件; 2、将所设计的硬件原理图与目标代码程序相联接; 4、按play键,仿真运行程序。 附,可能用到的元件名称: cpu:at89c51或任一种mcs-51家族cpu; 晶振:crystal; 电容器:capacitors,选22pf 电解电容:cap-elec或genelect10u16v 复位电阻:minres10k 限流电阻:minres330r 按键:button led:led-blue/red/yellow或diode-led (一)接线图如下: (二).基础花样 (四)程序流程图 (五)c程序 #include <> #define uint unsigned int #define uchar unsigned char const tab1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, /*正向流水灯*/ 0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,};/*反向流水灯*/ const tab2[]={0xff,0x00,0xff,0x00,0xff,0x00,}; void delay() { uint i,j; for(i=0;i<256;i++) for(j=0;j<256;j++)

循环结构程序设计练习题

第三单元循环结构练习题 选择题: 1、有以下程序执行后的输出结果是()。 main( ) { int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf("%d\n",s);} A.自然数1~9的累加和 B.自然数1~10的累加和 C.自然数1~9中的奇数之和 D.自然数1~10中的偶数之和 2、以下关于for语句的说法不正确的是()。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先判断表达式,后执行循环体语句 C. for循环中,可以用break跳出循环体 D. for循环体语句中,可以保含多条语句,但要用花括号括起来 3、若i和k都是int类型变量,有以下for语句 for(i=0,k=-1;k=1;k++) printf("*****\n"); 下面关于语句执行情况的叙述中正确的是()。 A.循环体执行两次 B.循环体执行一次 C.循环体一次也不执行 D.构成无限循环 4、已知 int t=0; while(t=1){...} 则以下叙述正确的是()。 A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对 5、设有以下程序段 int x=0,s=0; while(!x!=0)s+=++x; printf("%d",s); 则 A)运行程序段后输出0 B)运行程序段后输出1 C)程序段中的控制表达式是非法的 D)程序段执行无限次 6、设i,j,k均为int型变量,则执行完下面的for语句后,k的值为()。for(i=0, j=10; i<=j; i++, j- -) k=i+j; A.6 B.9 C.10 D.11 7、C语言中,break; 语句可以用于循环语句和( )语句中。 A.if B.switch C.for D.while 8、for(i=0; i<=15; i++) printf("%d", i ); 循环结束后,i 的值为()。 A.14 B.15 C.16 D.17 9、与语句“while(!x)”等价的语句是()。 A. while(x==0) B. while(x!=0) C. while(x==1) D. while(x!=1) 10、下述程序段中,while循环执行次数是()。 int k=0;

实验四循环结构程序设计

实验四循环结构程序设计(一) 一、实验学时 2学时 二、实验目的 (一)掌握用while,do-while,for语句实现循环的方法; (二)掌握在设计条件型循环结构的程序时,如何正确地设定循环条件,以及如何控制循环的次数。 (三)掌握与循环有关的算法。 三、预习要求 预习教材第六章有关while,do-while,for语句的语法格式,并能通过这三种语句编写、调试单层循环结构的程序。 四、实验内容 (一)分析并运行下面程序段,循环体的执行次数是__________。 int a=10,b=0; do { b+=2;a-=2+b;} while(a>=0); (二)当执行以下程序段时,循环体执行的次数是__________。 x = -1; do { x=x*x;} while( !x); (三)编程求 1!+2!+3!+……+20! 的值。 注意:根据题目,考虑所定义的各个变量应该为何种类型。程序结构如下:/* c4-1.c */ /* 求1!+2!+3!+……+20! */ #include "stdio.h" void main( ) { 定义变量i作为循环控制变量; 定义变量p和sum分别存放各个整数的阶乘和阶乘之和; 变量p和sum赋初值; for( i=1; i<=20; i++ ) { 变量p连乘 ; 变量sum累加; } 输出sum的值 ; } (四)编写一个程序,求出两个数m和n的最大公约数和最小公倍数。 编程提示:求最大公约数的方法有三种: 1.从两个数中较小数的开始向下判断,如果找到一个整数能同时被m和n整除,则终止循环。设n为m和n中较小的数,则如下程序段可实现: for(k=n; k>=1; k--) if(m%k==0 && n%k ==0) break; k即为最大公约数。 /* c4-2.c */ /* 求最大公约数算法1 */ #include "stdio.h"

单片机实验报告——LED灯控制器

《微机实验》报告LED灯控制器 指导教师: 专业班级: 姓名: 学号: 联系方式:

一、任务要求 实验目的:加深对定时/计数器、中断、IO端口的理解,掌握定时/计数器、中断的应用编程技术及中断程序的调试方法。 实验内容:利用C8051F310单片机设计一个LED灯控制器 主要功能和技术指标要求: 1. LED灯外接于P0.0端。 2. LED灯分别按2Hz,1Hz和0.5Hz三种不同频率闪动,各持续10s。 3. 在LED灯开始和停止闪烁时蜂鸣器分别鸣响1次。 4. 利用单片机内部定时器定时,要求采用中断方式。 提高要求: 使用按键(KINT)控制LED灯闪烁模式的切换。 二、设计思路 C8051F310单片机片上晶振为24.5MHz,采用8分频后为3.0625MHz ,输入时钟信号为48个机器周期,所以T1定时器采用定时方式1,单次定时最长可以达到的时间为 1.027s,可以满足0.5Hz是的定时要求。 基础部分: 给TMOD赋值10H,即选用T1定时器采用定时方式1,三种频率对应的半周期时间为0.25s、0.5s、1s。计算得需给TH1和TL1为C1H、B1H;83H、63H;06H、C6H。 要使闪烁持续10s,三种模式需要各循环40、20、10次。 用LOOP3:MOV C,PSW.5 ;PSW.5为标志位,进定时器中断后置一 JNC LOOP3 代替踏步程序等待中断,以便中断完后回到主程序继续向下执行。 为了减少代码长度,可以采用循环结构,循环主题中,将R1、R2分别赋给TH1、TL1,R7为循环次数(用DJNZ语句实现);定时中断里,重新给TH1、TL1赋值时同理。这样,循环时只要把定时时间和循环次数赋给R1、R2、R7即可,达到减少代码长度的效果。

循环结构程序设计典型例题

循环结构程序设计典型例题 例1有数列2/3、4/5、6/9、10/15……求此数列前30项的和。 算法分析: 对于数列的题,首先要找出通项公式,或前后项的计算关系公式,根据公式求所需。由于数列的题一般执行次数能确定,用for语句来编写比较方便。 此题,前后项的关系是:后一项的分子是前一项的分母加1,后一项的分母是前一 项的分子加分母。解题思路是用循环语句求各项,并把值累加,因为是求前30项的和,循环执行30次。 1.初值i=2,j=3,s=0; 2.用n从1到30循环 3.s=s+ i/j; 4.c=i; i=j+1; j=c+j; 5输出s; 程序: #in clude mai n() { int i=2,j=3, n,c; float s=0; for(n=1; n<=30 ;n++) { s=s+(float)i/j; c=i; i=j+1; j=c+j; } printf( "n%f” ,s); } 此题中的n与循环体中的执行语句没有数值上的联系,仅仅用做决定循环执行的次数。 例2:下面这个程序,想想它实现的是什么功能? #in clude mai n() { int i,s=0; for(i=1;i<=100;i++) {if(i%5==0) continue; s=s+i; } printf( n“d' ,s); } 在左边的程序中,i从1到100循环,当i是5的倍数时,直接进入下一个i,当i不是5的倍数时,把i累加到s,最后输出s。所以,这个程序实现的是求1~100中间所有非5的倍数的数之和。 例3:输出n~m中(0<*m)能被3整除,且至少有一个数字是5的所有数。 算法分析:

实验四 循环结构程序设计(答案)

实验四循环结构程序设计(解答) 1.改错题 (1)下列程序的功能为:求1~100之和(和值为5050)并输出。请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_1.c存盘。 #include main() { int i,sum=0; i=1; while(i<100) sum=sum+i; i++; printf(“The sum from 1 to 100 is %d\n”,sum); } 改正后的程序: #include main() { int i,sum=0; i=1; while(i<=100) { sum=sum+i; i++; } printf("The sum from 1 to 100 is %d\n",sum); } (2)下列程序的功能为:倒序打印26个英文字母。请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_2.c存盘。 #include main() { char x; x='z'; while(x!='a') { printf("%3d",x); x++; } }

改正后的程序: #include main() { char x; x='z'; while(x!='a'-1) 或while(x>='a') 或while(x!=96) { printf("%3c",x); x- -; } } (3)下列程序的功能为:输出如下的图形,要求顶端的*定位在第21字符位置,请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_3.c存盘。 * *** ***** ******* #include void main() { int i,j; for (i=0;i<4;i++) { for (j=0;j<=20;j++) printf("\n"); for (j=0;j<2*i+1;j++) printf("*"); } } 改正后的程序: #include void main() { int i,j; for (i=0;i<4;i++) { for (j=0;j<=20-i;j++) printf(" "); for (j=0;j<2*i+1;j++) printf("*"); printf("\n"); } } 2.程序填空 (1)下列程序的功能为:用辗转相除法求两个正整数的最大公约数;请填写适当的符号或语句,使程序实现其功能,程序以文件名sy4_4.c存盘。 提示:

循环程序设计习题及答案

模块三循环程序设计习题及答案 一、填空题 1、当在数据处理中要重复执行相同的操作时,宜采用程序结构来实现。 2、循环的3要素是、、。 3、在循环语句体中包含另一个循环语句的用法称为。 4、执行循环语句体中的break语句后将使用包含它的循环语句。 5、要结束当前正在执行循环体语句而直接进入下一循环周期,需要执行语句。 6、在for语句中表达式允许省略,但不能少,语句for( ; ;) ;构成的是循环。 7、在for语句中,省略表达式2时,则循环为循环。 8、执行语句for(i=1;i++<4; );后变量i的值是。 9、要使用循环程序提前结束本次循环周期并开始下一个循环周期,应在循环体内有条件使用语句。 10、在每次循环周期均要执行一次的语句,称为。 11、for语句括号内的3个表达式的作用分别是、和循环控制变量的更新。 二、选择题 1、若k为整形变量,则while循环共循环()。 k=5; while(k>=0) k-1; A、无限循环 B、6次 C、5次 D、4次 2、与while( ! n) ; 中表达式!dn等价的是()。 A、dn>=0 B 、dn!=0 C、dn == 0 D、dn != 1 3、以下程序段,while循环执行的次数是() int k=0;

while( k == 1) k++; A、无限次 B、有语法错,不能执行 C、一次也不执行 D、执行1次 4、在C语言中,当do while语句中的条件为()时,结束该循环。 A、0 B、1 C、TRUE D、非0 5、下面程序段的输出结果是() do { b-=a; a++; }while(b--<0); A、10,-1 B、2,8 C、9,0 D、4,-3 6、以下描述正确的是() A、由于do while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。 B、do while循环由do开始,用while结束,在while(表达式)后面不能写分号 C、在do while循环体中,一定要有能使while后面匠值变为零的操作 D、do while循环中,根据情况可以省略while 7、若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)。 s=c; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是() A、s=a+b; B、s=a+c; C、s=s+c; D、s=b+c; 8、假定a,b,c,d均已定义为整型变量,且a、c均已赋值,a大于0,c大于0,则与程序段for(d=a,b=1;b<=c;b++) d--;功能等价的语句是() A、d=a+b; B、d=a+c; C、d=a-b; D、d=a-c 9、下列关于for循环的说法正确的是() A、for循环只能用于循环次数已经确定的情况

最新实验四分支循环结构程序设计

实验四分支循环结构 程序设计

实验四、分支循环结构程序设计 一、实验目的 1.通过本实验,加深对循环控制结构有关概念的理解。 2.熟练掌握while、do-while和for三种循环控制语句的特点,掌握循环结构程序设计和调试方法。 3.掌握二重循环结构程序的设计方法。 二、实验内容 1.用while循环实现数据统计问题。 数据统计问题:从键盘输入一批任意数量的整数,统计其中不大于100的非负数数值的个数。 2.编写并调试程序,使用do-while循环控制语句实现上面的数据统计问题。调试数据仍参照上面给出的几种情况设计使用。 3.编写并调试程序,使用for循环控制语句实现上面的数据统计问题。4.阶乘累加问题。编写程序,求1+2!+3!+…+n!的值(习题5.9)。三、实验指导 1.用while循环实现数据统计问题。 ⑴编程分析 由于输入数据个数是不确定的,因此每次执行程序时,循环次数都是不 确定的。在进行程序设计时,确定循环控制的方法是本实验的一个关键 问题。循环控制条件可以有多种确定方法: ①使用一个负数作为数据输入结束标志。 ②输入一个数据后通过进行询问的方式决定是否继续输入下一个数据。 ⑵参考程序 l 参考程序一 /* 使用负数作为数据输入结束标志的程序 */ #include "stdio.h" void main() { int m,counter=0; while(1) { printf("请输入一个整数:"); scanf("%d",&m); if(m<0)break; if(m<=100)counter++; printf("\n"); } printf("符合要求的整数个数为: %d\n",counter); } l 参考程序二 /* 通过进行询问的方式决定是否继续输入下一个数据的程序 */ #include "stdio.h" void main() { int m,counter=0; char ask; while(1) { printf("请输入一个整数:"); scanf("%d",&m);

微机接口实验报告(循环彩灯)

目录 第一章需求分析 1.1 设计目的 (1) 1.2 设计任务和要求 (1) 1.3 软硬件运行环境及开发工具 (1) 第二章概要分析 2.1 总体方案和说明 (2) 2.2 8255A芯片图 (3) 2.3 循环彩灯流程图 (4) 第三章详细设计 3.1 硬件设计和实现 (5) 3.2 实验电路图和说明 (6) 3.3 源程序代码 (6) 第四章系统调试和操作说明 4.1 系统调试 (9) 4.2 操作说明 (9) 第五章总结体会 (10) 参考文献 (10) 第一章:需求分析 1.1设计目的 巩固和加深课堂所学知识;熟悉各种指令的使用及条件; 学习掌握一般的软硬件的设计方法和查阅、运用资料的能力; 深入了解和掌握8255A在PC机系统的典型接法和8255A的工作方法及使用编程。 1.2设计任务和要求

任务: 循环彩灯控制系统输出四种参考花型如下:数位为1时表示灯亮 1)00000001 左循环 2)10000000 右循环 3)按10000001,11000011,11100111,11111111 规律递增, 全亮后同时闪烁十次,循环不断。 4)按11110000,00001111 交替闪烁。 要求: 1.画出硬件原理图(接口芯片和外设部分)和实验连线图; 2.功能要求: 1)循环彩灯的循环速度可调; 2)按键要求 ①启动/暂停,按K0开关启动系统,按K1开关停止系统工作。 ②花型变换,由开关K2、K3进行四种花型切换; 1.3软硬件运行环境及开发工具 利用TDN86/88实验平台进行硬件电路的连接,在Wmd86软件下进行程序的调试,直到使循环彩灯按照设计要求运行,实验所使用的实验开发平台是Wmd86,使用的编程语言是汇编。 第二章:概要设计 2.1 总体方案和说明 根据所学内容和对8255A的使用,整个系统硬件采用8086微处理器,和8255A可编程并行接口芯片和8个led彩灯。 Intel 8255A是一种通用的可编程并行接口芯片,由于它是可以编程的,可以通过程序来设置芯片的工作方式,通用性强,使用灵活,可为多种不同的CPU和外设之间提供并行输入/输出的通道;8086微处理器,选择最小工作模式,所有的总线控制信号均由8086产生;8086CPU的地址\数据总线AD15-AD0和地址\状态总线A16/S3-A19/S6是复用的,必须通过地址锁存器把地址总线和数据总线分离。 可编程并行通信接口芯片8255A: 方式0为简单I/O,查询方式,端口A、端口B、端口C均可使用。 方式1为选通I/O,中断方式,端口A、端口B可以使用,选通的输入/输出方式。 方式2为双向I/O,中断方式,只有端口A可以使用,双向的传输方式。 三个8位端口PA、PB、PC 端口A(PA口):有一个8位数据输入锁存器和一个8位数据输入锁存/缓冲器; 端口B(PB口):有一个8位数据输入锁存器和一个8位数据输入/输出,锁存/缓冲器; 端口C(PC口):有一个8位数据输入锁存器和一个8位数据锁存/缓冲器。

循环结构程序设计典型例题

循环结构程序设计典型例题 例1:有数列2/3、4/5、6/9、10/15……求此数列前30项的和。 算法分析: 对于数列的题,首先要找出通项公式,或前后项的计算关系公式,根据公式求所需。由于数列的题一般执行次数能确定,用for语句来编写比较方便。 此题,前后项的关系是:后一项的分子是前一项的分母加1,后一项的分母是前一项的分子加分母。解题思路是用循环语句求各项,并把值累加,因为是求前30项的和,循环执行30次。 1. 初值i=2,j=3,s=0; 2. 用n从1到30循环 3. s=s+ i/j; 4. c=i; i=j+1; j=c+j; 5.输出s; 程序: #include<> main( ) { int i=2,j=3,n,c; float s=0; for(n=1;n<=30;n++) { s=s+(float)i/j; c=i; i=j+1; j=c+j; } printf(“\n%f”,s); } 此题中的n与循环体中的执行语句没有数值上的联系,仅仅用做决定循环执行的次数。 例2:下面这个程序,想想它实现的是什么功能? #include<> main( ) { int i,s=0; for(i=1;i<=100;i++) {if(i%5==0) continue; s=s+i; } printf(“\n%d”,s); } 在左边的程序中,i从1到100循环,当i是5的倍数时,直接进入下一个i,当i不是5的倍数时,把i累加到s,最后输出s。所以,这个程序实现的是求1~100中间所有非5的倍数的数之和。 例3:输出n~m中(0

实验项目四结构化程序设计_循环结构

《程序设计基础I》实验报告实验项目四:结构化程序设计_循环结构

一、实验目的及要求 (1)熟悉掌握用while语句,do-while语句和for语句实现循环的方法。 (2)掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 (3)掌握多重循环的选择时机和使用方法; (4)掌握使用break和continue语句的方法。 二、实验设备(环境)及要求 使用Visual C++ 6.0;windows系列操作系统的环境。 三、实验内容与步骤(要求以“学号_姓名_题号”为名建立项目; 例项目名为:2013050201_***_01) 1.分别用while、do-while、for语句编程,求数列前20项之和:2/1,3/2,5/3,8/5,13/8······算法提示: 1)定义实变量sum、term、a、b、c,整变量i 2)初始化:sum=0,分子a=2,分母b=1 3)初始化:i(计数器)=1 4)计算第i项term =a/b 5)累加sum=sum+term 6)计算c=a+b,更新b= a,更新a=c 7)计数器加1,i++ 8)重复4、5、6、7,直到i>20 9)输出2位精度的结果

把每一次迭代结果输出,程序应做怎样的修改? 3输入正数n ,要求输出Fibonacci 数列的前n 项。1,1,2,3,5,8…… #include 开始 结束 term=0 sum=0 i=1 i ≤20? i=i+1 sum=sum+term term=term *i 输出sum 是 否 #include int main() {float term,sum;int i; term=1,i=1,sum=0; while(i<=20) {term=term*i; sum=sum+term; printf("sum=%.1f\n",sum); i++; } printf("sum=%f\n",sum); return 0; }

循环结构程序设计典型例题

循环结构程序设计典型 例题 -CAL-FENGHAI.-(YICAI)-Company One1

循环结构程序设计典型例题 例1:有数列2/3、4/5、6/9、10/15……求此数列前30项的和。 算法分析: 对于数列的题,首先要找出通项公式,或前后项的计算关系公式,根据公式求所需。由于数列的题一般执行次数能确定,用for语句来编写比较方便。 此题,前后项的关系是:后一项的分子是前一项的分母加1,后一项的分母是前一项的分子加分母。解题思路是用循环语句求各项,并把值累加,因为是求前30项的和,循环执行30次。 1. 初值i=2,j=3,s=0; 2. 用n从1到30循环 3. s=s+ i/j; 4. c=i; i=j+1; j=c+j; 5.输出s; 程序: #include<> main( ) { int i=2,j=3,n,c; float s=0; for(n=1;n<=30;n++) { s=s+(float)i/j; c=i; i=j+1; j=c+j; } printf(“\n%f”,s); } 此题中的n与循环体中的执行语句没有数值上的联系,仅仅用做决定循环执行的次数。 例2:下面这个程序,想想它实现的是什么功能 #include<> main( ) { int i,s=0; for(i=1;i<=100;i++) {if(i%5==0) continue; s=s+i; } printf(“\n%d”,s); } 在左边的程序中,i从1到100循环,当i是5的倍数时,直接进入下一个i,当i 不是5的倍数时,把i累加到s,最后输出s。所以,这个程序实现的是求1~100中间所有非5的倍数的数之和。 例3:输出n~m中(0

循环灯电路的制作与调试实验报告[1]

实验报告 循环灯电路的制作与调试 一:设计方案与基本原理 电路的核心是一个由三只三极管及外围电路组成的循环震荡器。但电源接通后,三只三极管争先导通,由于三只三极管的参数或电容器,电阻器的参数不可能完全一致,总会有差异, 所以3只三极管不会同时导通.假如三极管VT1最先导通,它的集电极电压接近零电压后,使电容器C2的左端为零电压,因为电容器C2两端的电压不能突变,所以三极管VT2不会再导通,而转为截止状态(发光二极管VD2点亮).三极管VT2的截止,使它的集电极电压接近电源截止,使它的集电极电压接近电源电压,通过电容器C2的偶合作用使三极管VT3的基极为高电压,三极管VT3因此处于导通饱和状态.上述过程很快就会完成,此时三极管VT1和VT3处于导通饱和状态,而三极管VT2处于截止状态. 随着时间的延续,电源电压通过电阻器R3不断对电容器C2进行充电,使三极管VT2的基极电压不断升高,达到一定程度时,三极管VT2开始导通,并由截止状态变为导通饱和状态.由于三极管VT2突变为导通饱和状态,它的集电极电压随之下降,通过电容器C3的耦合作用使三极管VT3的基极电压也下跳.这样使三极管VT3由饱和状态变为截止状态.此时三极管VT3处于截止状态. 紧接着电源又开始通过电阻R5对电容器C3进行充电,使三极管VT3的基极电压升高,三极管VT3开始导通并由截止状态变为导通饱和状态.又通过电容器C1的耦合作用使三极管VT1的基极电压也下跳.这样使三极管VT1由饱和状态变为截止状态.此时三极管VT2和VT3都处于导通饱和状态,而三极管VT1处于截止状态,而另外两只三极管是处在饱和状态.与截止状态三极管相对应的发光二极管正极可以通过电阻得到一个高电压,发光二极管就会亮起来. 二:电路参数的调整 改变电路元件的参数可以改变发光二极管的闪亮时间.在循环灯电路中可以改变电解电容器的容量来达到改变发光二极管闪亮时间的效果.电解电容器的容量越大,充放电时间越长,循环灯的循环时间也越长.电解电容器的容量越小,循环的频率越快.此电路中电解电容器的容量可以在33-220μF的范围内选择.当然改变电阻器R1,R3,R5的阻值也可以改变循环的频率,只是在改变电阻值的时候要考虑三极管的放大倍数与工作状态,保证三极管能可靠的饱和与截止. 电路中电阻器R2,R4,R6的阻值一般在1-2.7KΩ左右,由于它们是发光二极管的限流电阻器,所以发光二极管的亮度较低,这是此电路的缺点.那么能不能减小这些电阻器的阻值呢?实践证明如果这些电阻器的电阻值过小,电路不容易启动.因为在接通电源的瞬间,电源电压不仅通过基极电源的瞬间,电源电压不仅通过基极电源的瞬间,电源电压不仅通过基极电阻向三极管基极注入电流.集电极负载电阻太小,会导致3只三极管全部饱和而不能产生振荡. 三:思考故障处理 制作不成功绝大部分是因为对元器件不熟悉,焊接技术不熟练,而产生的安装错误和焊接问题.对于元器件的安装错误,可对照电路原理图和电路板安装图进行仔细检查三极管的管脚和发光二极管的极性.对于焊接质量问题,可以手捏住元器件进行晃动,看看是否有虚焊,看看电路板铜箔一面有没有多余的连焊.使用焊锡要适量,使用过多或者过少都可能产生

循环结构程序设计:三种循环语句

一、循环结构(Iteration Structure)的概述 1.目的 为了解决含有重复处理内容的问题,必须采用循环语句(Loop Statement)来编程实现。 2.类型 (1)当型循环结构 (2)直到型循环结构 二、循环语句 1.while语句 ①功能:实现当型循环结构。 ②形式 while(表达式){ 循环体 } ③特点:先判断后执行。 ④举例:(累加和问题)编程计算整数1~100的和。 int i ; //循环变量 int sum = 0 ; //累加和清0 i = 1 ; //循环变量i赋初值 while( i <= 100){ sum = sum + i ; //循环变量累加到sum中 i = i + 1; //改变循环变量i的值 } 2.do-while语句 ①功能:实现直到型循环结构。 ②形式 do{ 循环体

}while(表达式); //注意最后的分号 ③特点:先执行后判断。 ④举例:修改上例。 /*利用do-while语句编程实现整数1~100的和。*/ int i ; //循环变量 int sum = 0 ; //累加和清0 i = 1 ; //循环变量i赋初值 do{ sum = sum + i ; //循环变量累加到sum中 i = i + 1; //改变循环变量i的值 }while(i<=100);//注意最后的分号 3.for语句 ①功能:实现当型循环结构。 ②形式 for(表达式1;表达式2;表达式3){ 循环体 } ③特点:先判断后执行;使用频率最高。 ④举例:修改上例。 /*使用for语句编程计算整数1~100的和。*/ int i ; //循环变量 int sum = 0 ; //累加和清0 for( i = 1 ; i <=100 ; i++ ){//第一个表达式完成循环变量i赋初值;第三个表达式实现改变循环变量i的值 sum = sum + i ; //循环变量累加到sum中 } 4.几种循环语句的比较 ①由于while语句和for语句均实现当型循环结构,两者是完全等价的。 for(表达式1;表达式2;表达式3){

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