实验5
- 格式:doc
- 大小:72.50 KB
- 文档页数:8
C语言实验五实验报告——数组一、实验目的:1.了解数组的概念和基本使用方法;2.掌握一维数组和二维数组的定义、初始化、赋值及基本运算实现;二、实验内容与方法1.理论部分数组是一些具有相同类型的数据元素按一定顺序排列组合而成的集合,在程序设计中它是一个变量列表,由若干相同数据类型的元素组成。
通常用一个名字和一个下标来表示,下标可理解为数组元素在数组中的位置编号。
数组的特点:数组是根据顺序排列的元素的集合;所有的元素必须是相同类型。
数组的定义方法:1. 定义数组,数组元素类型 + 数组名[元素的个数];2. 元素的个数必须是整型常量或变量,定义时必须明确、指定元素的个数;3. 声明一个数组时,除了要指定数组的类型外,还要指定数组的名称;4. 数组定义完后,需要对其中的每个元素进行初始化。
可以在定义数组时赋初值,也可以通过赋值符号,对数组元素逐个进行赋值。
数组的初始化:1. 元素个数之间用逗号分开,最后1个元素后无逗号;2. 支持部分元素初始化;3. 定义和初始化可以一步完成。
二维数组数组可分为一维和多维数组。
一维数组可以看作是包含多个元素的向量,而二维数组可以看做是包含了多个一维数组的矩阵。
二维数组有行号和列号,因此,它同样需要两个下标。
数组元素类型数组名[行数][列数];数组元素类型数组名[ ][ ] = { {元素1, 元素2, ……}, {元素1, 元素2, ……}, ……{元素1, 元素2, ……}}2.实验代码**问题1:**定义一个一维数组a,包含有5个元素,分别为1,2,3,4,5;**问题2:**定义一个一维数组a,接收用户从键盘输入的5个数值,分别打印存储的各个元素。
三、实验结果与分析结果分析:定义了一个5个元素的一维数组a,并初始化了各个元素的值,其元素分别为1,2,3,4,5.循环遍历一遍数组a,并打印数组元素。
程序执行正常。
3.针对问题3:定义一个二维数组a,由4行3列组成,每个元素初始化为0,打印存储的各个元素;程序运行结果如下:四、实验总结:该实验主要是通过对C语言数组的理论知识和基本操作进行练习,加深了对数组的了解和掌握。
最新实验5实验报告实验目的:本次实验旨在探究[具体实验主题]的基本原理和应用,通过实际操作加深对[相关科学概念]的理解,并学会使用[相关实验设备或技术]进行科学探究。
实验原理:[在此部分详细描述实验的理论基础,包括涉及的科学概念、公式、定律等。
例如,如果是物理实验,可以解释相关的物理原理和计算方法。
]实验材料:- [实验设备1]- [实验设备2]- [实验设备3]- [其他辅助材料]实验步骤:1. 准备阶段:确保所有实验设备和材料齐全,并按照安全规范进行初步设置。
2. 操作阶段:详细描述实验的具体步骤,包括设备的组装、调试、样品的准备和实验的操作流程。
3. 数据收集:记录实验过程中的所有关键数据和观察结果。
4. 结果分析:对收集到的数据进行整理和分析,使用适当的图表或计算方法来展示结果。
5. 结论总结:根据实验结果,得出结论并讨论其与理论预期的一致性或差异。
实验结果:[在此部分展示实验数据和结果,可以使用图表、曲线等形式来直观地呈现。
]实验讨论:- 分析实验结果与预期的差异及其可能的原因。
- 探讨实验过程中遇到的问题和解决方案。
- 讨论实验结果对相关领域的潜在影响和应用前景。
实验结论:[总结实验的主要发现,以及这些发现对理解相关科学概念和技术发展的意义。
]建议与反思:- 对实验方法或过程提出改进建议。
- 反思实验过程中的学习经验,包括成功的做法和需要改进的地方。
参考文献:- [列出实验报告中引用的所有文献和资料来源。
]附录:- [包括实验过程中的额外数据、计算过程、图表等补充材料。
]。
实验五实验报告实验五实验报告引言:实验五是一项关于物理实验的研究,通过实验数据的收集和分析,我们旨在探究某一特定物理现象或验证某一物理理论。
本次实验的主题是XXXXX(根据实际情况填写),以下将详细介绍实验的目的、实验装置和步骤、实验结果以及对结果的分析和讨论。
一、实验目的本次实验的目的是XXXXX(根据实际情况填写)。
通过实验的进行,我们希望探究XXXXX的规律,并验证相应的物理理论。
同时,通过实验数据的收集和分析,我们还可以对实验装置和测量方法的准确性进行评估。
二、实验装置和步骤本次实验所使用的装置主要包括XXXXX(列举实验装置的名称)。
在实验过程中,我们按照以下步骤进行操作:1. 步骤一:XXXXX(具体操作内容)2. 步骤二:XXXXX(具体操作内容)3. 步骤三:XXXXX(具体操作内容)4. 步骤四:XXXXX(具体操作内容)5. 步骤五:XXXXX(具体操作内容)三、实验结果在实验过程中,我们记录了一系列实验数据,并进行了相关的数据处理。
以下是实验结果的总结:1. 结果一:XXXXX(具体实验结果)2. 结果二:XXXXX(具体实验结果)3. 结果三:XXXXX(具体实验结果)四、结果分析和讨论基于实验结果,我们进行了进一步的分析和讨论。
以下是对实验结果的分析和讨论:1. 分析一:XXXXX(对结果进行详细分析)2. 分析二:XXXXX(对结果进行详细分析)3. 分析三:XXXXX(对结果进行详细分析)通过对实验结果的分析,我们可以得出如下结论:XXXXX(根据实验结果和分析得出结论)。
五、实验误差和改进在实验过程中,我们还需要对实验误差进行评估,并提出相应的改进方法。
以下是对实验误差和改进的讨论:1. 误差评估:XXXXX(对实验误差进行评估)2. 改进方法:XXXXX(提出改进方法)通过对实验误差的评估和改进方法的提出,我们可以进一步提高实验的准确性和可靠性。
结论:通过本次实验,我们成功地实现了实验目的,并得出了相应的结论。
实验训练5:存储过程与函数的构建与使用一、存储过程与函数的概念存储过程和函数都是数据库中的可执行代码,可以被多次调用和重复使用。
存储过程是一组预定义的SQL语句集合,可以在数据库中定义和存储。
而函数是一个独立的代码块,它接收输入参数并返回一个值。
二、存储过程的构建与使用1. 创建存储过程在MySQL中,创建存储过程需要使用CREATE PROCEDURE语句。
例如:CREATE PROCEDURE myproc()BEGINSELECT * FROM mytable;END;这个例子创建了一个名为myproc的存储过程,它会查询mytable表中的所有数据。
2. 调用存储过程使用CALL语句可以调用已经创建好的存储过程。
例如:CALL myproc();这个语句会执行myproc存储过程中定义的SQL语句。
3. 存储过程参数我们可以给存储过程添加参数来使其更加灵活。
例如:CREATE PROCEDURE myproc(IN p1 INT, IN p2 VARCHAR(50)) BEGINSELECT * FROM mytable WHERE column1 = p1 AND column2 = p2;END;这个例子创建了一个带有两个输入参数p1和p2的存储过程,它会查询mytable表中column1等于p1并且column2等于p2的数据。
4. 存储过程变量除了参数之外,存储过程还可以使用变量来存储中间结果。
例如:CREATE PROCEDURE myproc(IN p1 INT)BEGINDECLARE v1 INT;SET v1 = p1 * 2;SELECT * FROM mytable WHERE column1 = v1;END;这个例子创建了一个带有一个输入参数p1和一个变量v1的存储过程,它会将p1乘以2并将结果存储在v1变量中,然后查询mytable表中column1等于v1的数据。
五. 讨论分析当初始值选取离零点较远时将导致算法无法使用,例如第三题,将初始值改为2就无法计算出结果了,显示如下例如求020sin 35=-+-x x e x 的根,其中控制精度1010-=eps ,最大迭代次数40=M ,在steffensen 加速迭代方法的程序中,我们只需改动:it_max=40; ep=1e-10, 其余不变 。
利用以上程序,我们只需输入:phi=inline('exp(5*x)-sin(x)+(x)^3-20');[x_star,index,it]=steffensen(phi,0.5)可得:x_star = 0.637246094753909index = 0it = 41观察上述结果,index = 0,it = 41表明迭代失败,所以使用以上方法估计的时候,应该尽量估计出解的范围,偏离不应过大,距离增加迭代次数增加,也有可能迭代失败六. 改进实验建议根据上述分析,我认为,应该先对函数作一个简图,方便知道解的大概位置,然后我们才将这个大概值代入Newton 法或者Steffensen 中进行求解。
当然,我们可以用其他数学软件实现Newton 迭代法,我们可以用z-z 超级画板,其操作流程为:牛顿迭代法的公式是:x n+1=x n-f(x n)/f'(x n)。
下面我们就用牛顿迭代法设计程序求方程f(x)=ln(x)+2*x-6的近似解。
(一)观察方程f(x)=0的零点位置(1)显示坐标系的坐标刻度。
(2)作出函数y=ln(x)+2*x-6的图像,如下图所示:可以观察到方程的根在区间[2,3]上,我们可以设定近似解的初始值为2。
(二)设计求方程近似解的程序(1)在程序工作区中输入:f(x){ln(x)+2*x-6;}执行后,返回结果为:>> f(x) #这表示在计算机已经完成了函数f(x)的定义。
(2)定义f(x)的导函数g(x),在程序工作区中输入:Diff(f(x),x);执行后,返回结果为:>> 2+1/x #得到了f(x)的导函数。
C语⾔实验五最简单的C语⾔程序设计实验5:最简单的C语⾔程序设计⼀、实验⽬的:(1)掌握C语⾔中使⽤最多的⼀种语句——赋值语句的使⽤⽅法。
(2)掌握各种类型数据的输⼊输出的⽅法,能正确使⽤各种格式转换符。
(3)进⼀步掌握编写程序和调试程序的⽅法。
⼆、实验内容和步骤:1、通过下⾯的程序掌握各种格式转换符的正确使⽤⽅法。
(1)输⼊以下程序:/* Note:Your choice is C IDE */# includeint main( ){int a,b;float d,e;char c1,c2;double f,g;long m,n;unsigned int p,q;a=61,b=62;c1='a';c2='b';d=3.56;e=-6.87;f=3157.890121;g=0.123456789;m=50000;n=-60000;p=32768;q=40000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);printf("f=%15.6f,g=%15.12f\nm=%1d\np=%u,q=%u\n",f,g,m,n,p,q);显⽰结果:(2)运⾏此程序并分析结果。
(3)在此基础上,将程序第10~14⾏改为c1=a,c2=b;f=3157.890121;g=0.123456789;d=f;e=g;运⾏程序,分析结果。
/* Note:Your choice is C IDE */#include"stdio.h"int main(){int a,b;float d,e;char c1,c2;double f,g;long m,n;unsigned int p,q;a=61;b=62;c1=a;c2=b;f=3157.890121;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\n",f,g,m,n,p,q);}显⽰结果:(4)⽤sizeof运算符分别检测程序中各类型的数据占多少字节。
《实验活动5不同价态含硫物质的转化》教案、导学案
一、实验目的:
1、掌握不同价态含硫物质的分析方法;
2、理解不同价态含硫物质的转化和过程;
3、获得针对不同价态含硫物质的调控技术。
二、实验原理:
含硫物质在环境和生物过程中的价态转化具有显著的环境意义。
一般情况下,含硫物质可以以硫酸根、亚硫酸根、亚硫醇等有机形式存在,以及无机形式的硫元素存在。
它们在环境中可以相互转化,也可以由其他无机和有机元素转化而来。
它们可以在植物体内累积、迁移和转化,也可以在土壤、水质中转化并影响物种的生态过程。
三、实验材料和方法:
1、实验可以采用典型的无机、有机含硫物质和硫环物质模拟实验,包括SO
2、H2S、CH3SH、SO42-、HS-等,运用多种仪器设备和技术分析不同价态含硫物质的转化情况;
2、采用一定量的硫元素(或有机物质),放入离心管中,并加足量氯化钠溶液以及除去杂质物质(通常为碳酸根);
3、在不同温度和水溶液条件下,将管子进行加热、离心、分离等操作,得出不同价态含硫物质的分离结果;
4、在各种操作条件下,运用ICP-MS、ICP-OES等仪器,分析不同价态含硫物质的转化情况;
5、根据分析结果,结合实验所使用的操作条件,获得环境中不同价态含硫物质的转化情况及相关调控技术。
四、实验结果:
实验结果可以表明:在硫元素介质下,含硫物质的价态可以从硫酸根和亚硫酸根转变成硫元素形式;在氯化钠介质下,硫元素以及硫酸根和亚硫酸根可以转变成亚硫醇等有机形式存在;
同时,实验可以得出控制不同价态含硫物质在环境中的转化的相关技术,可以有效的调控环境中含硫物质的浓度,从而减少对环境的危害。
最新实验五实验报告实验目的:本次实验旨在验证和理解最新的科学理论,通过具体的实验操作来探究现象背后的原理,并记录实验过程中的观察和数据,以便进行后续的分析和讨论。
实验材料:1. 专业实验仪器一套2. 化学试剂若干,包括但不限于实验五所需的特定化学品3. 计量工具,如天平、量筒4. 记录工具,如笔记本、相机或录像设备5. 安全防护装备,如实验服、护目镜、手套实验步骤:1. 准备工作:穿戴好安全防护装备,检查实验仪器是否正常工作,准备所有需要的化学试剂和计量工具。
2. 实验操作:按照实验指导书的步骤,精确计量所需的化学试剂,并按照顺序进行混合或反应。
3. 观察记录:在实验过程中,详细记录下每一步的操作细节,以及观察到的现象和数据变化。
4. 数据分析:对收集到的数据进行初步分析,尝试解释实验现象,并与理论预测进行对比。
5. 结果讨论:基于实验结果,讨论可能的误差来源,以及实验结果对理论的支持或挑战。
6. 实验总结:撰写实验报告,总结实验过程、结果和讨论,提出可能的改进措施和后续研究方向。
实验结果:(此处应填写实验过程中得到的具体数据和观察结果,以及对这些结果的初步分析。
)结论:(此处应总结实验的主要发现,以及这些发现对理解相关科学原理的意义。
)建议:(此处应提出根据实验结果得出的建议,包括如何改进实验设计,以及未来研究的方向。
)注意事项:- 确保所有实验操作符合实验室安全规范。
- 实验数据应准确无误,避免因操作失误导致的误差。
- 实验后应彻底清理实验区域,妥善处理所有化学废物。
(注:以上内容为根据标题“最新实验五实验报告”生成的一般性实验报告框架,具体内容需根据实际实验细节进行填充和调整。
)。
实验五核磁共振实验实验五核磁共振(NMR )实验核磁共振现象是⼀种利⽤原⼦核在磁场中的能量变化来获得关于核信息的技术,由美国科学家柏塞尔(E.M.Purcell)和瑞⼠科学家布洛赫(E.Bloch)于1945年12⽉和1946年1⽉分别独⽴发现, 他们共享了1952年诺贝尔物理学奖。
⾃然界约有270种稳定的同位素,其中有105种核具有磁性,可以观察其核磁共振。
研究得⽐较深⼊的有1H ,19F ,13C,11B 等核。
50多年来,由核磁共振转化为探索物质微观结构和性质的⾼新技术已取得了惊⼈的进展。
现今,核磁共振已成为化学、物理、⽣物、医药等研究领域中必不可少的实验⼯具,是研究分⼦结构、构型构象、分⼦动态等的重要⽅法。
⼀、实验⽬的与要求1. 学习核磁共振的基本原理,观测CuSO 4、HF 、FeCl 3等⽔溶液的1H 和19F 核磁共振信号;2. 测量这些溶液中1H 和19F 的g 因⼦及旋磁⽐γ、共振线宽和弛豫时间; 3. 学习⽤核磁共振⽅法测量磁场不均匀性的⽅法;4. 熟练掌握双踪⽰波器的操作,提⾼对实验中多种影响因素进⾏综合分析的能⼒;⼆、实验原理和仪器:1.核磁矩的⼀些基本概念核磁共振(Nuclear Magnetic Resonance ,NMR)的研究对象是具有磁矩的原⼦核,即存在⾃旋运动的原⼦核。
在量⼦⼒学中知道原⼦核的⾃旋⾓动量为:)1(+=I I P (5-1)其中I 为⾃旋量⼦数(对于质⼦I=1/2)、π=2h ,h 为普朗克常数。
相应的核磁矩⼤⼩为 )1I (I g )1I (I M2e g P M 2e g P N +µ=+==γ=µ (5-2)式中g 为朗德因⼦、27N 10050787.5M2e -?==µ J/T ,称核磁⼦、e 为质⼦的电量、M 为质⼦的质量、γ为旋磁⽐,对于确定的核是⼀常数。
不同的核g 值也不同,需要⽤实验测得,如质⼦的g P =5.5851、中⼦的g n =-3.82。
5实验平行光管的调整和使用实验一:调整平行光管光路目的:了解平行光管的工作原理,掌握调整平行光管光路的方法。
材料:平行光管、调节螺丝、光源步骤:1.将光源放在适当的位置,以保证光线直接射向平行光管。
2.打开平行光管,将其放在光源前面,调节平行光管上的调节螺丝,使其与光源的光线平行。
3.在屏幕上观察到一条直线的投影后,调整平行光管的位置和角度,使其投影尽可能直线并与其他光源的投影平行。
4.通过观察投影结果和调整螺丝,逐步调整光管光路。
5.重复上述步骤,直到投影线条直线且平行,并能避免产生明显的光晕或光斑。
结果:成功调整平行光管光路,确保其投影直线且平行。
实验二:使用平行光管进行实验目的:利用平行光管进行实验,观察其在不同条件下的变化。
材料:平行光管、凸透镜、平凸透镜、平透镜、凹透镜、屏幕。
实验一:平行光经凸透镜的折射步骤:1.将平行光管放在适当位置,并调整光路以保证光线平行。
2.放置凸透镜,并调整凸透镜的位置,使光线通过凸透镜后能够形成对焦的投影在屏幕上。
3.记录屏幕上的投影结果。
实验二:平行光经平凸透镜的折射步骤:1.将平行光管放在适当位置,并调整光路以保证光线平行。
2.放置平凸透镜,并调整平凸透镜的位置,使光线通过平凸透镜后能够形成对焦的投影在屏幕上。
3.记录屏幕上的投影结果。
实验三:平行光经平透镜和凹透镜的折射步骤:1.将平行光管放在适当位置,并调整光路以保证光线平行。
2.放置平透镜,并调整平透镜的位置,使光线通过平透镜后能够形成对焦的投影在屏幕上。
3.记录屏幕上的投影结果。
4.更换为凹透镜,重复步骤2和步骤3,记录屏幕上的投影结果。
结果:根据实验记录,可以观察到平行光经不同透镜的折射现象,进而探究光通过透镜后的特性和变化。
实验四:平行光管的投影测距目的:利用平行光管进行投影测距实验,掌握其测距原理和方法。
材料:平行光管、测距仪、屏幕。
步骤:1.将光源和测距仪放置在适当的位置。
2.调整平行光管的位置和光路,使其与测距仪的尺度线平行。
实验活动5:一定溶质质量分数的氯化钠溶液的配制(含答案)顺平县腰山镇中学学生化学实验报告单实验题目:实验活动5:一定溶质质量分数的氯化钠溶液的配制班级:日期:指导教师:第组姓名:同组人:【实验目的】1、练习配制一定溶质质量分数的溶液。
2、加深对溶质的质量分数概念的理解。
【实验用品】托盘天平、烧杯、玻璃棒、药匙、量筒、胶头滴管。
氯化钠、蒸馏水。
【实验步骤】1、配制质量分数为6%的氯化钠溶液。
(1)计算:配制50g质量分数为6%的氯化钠溶液所需氯化钠和水的质量分别为:氯化钠3g;水47g。
(2)称量:用托盘天平称量所需的氯化钠,放入烧杯中。
(3)量取:用量筒量取所需的水(水的密度可近似看做1g/cm3),倒入盛有氯化钠的烧杯中。
(4)溶解:用玻璃棒搅拌,使氯化钠溶解。
整个配制过程以下图所示。
图9-21配制肯定溶质质量分数的溶液2、配制质量分数为3%的氯化钠溶液。
用已配好的质量分数为6%的氯化钠溶液(密度约为1.04g/cm3),配制50g质量分数为3%的氯化钠溶液。
(想一想:由浓溶液配制稀溶液时,计算的依据是什么?)溶液稀释前后,溶质的质量稳定(1)计算:配制50g质量分数为3%的氯化钠溶液所需质量分数为6%的氯化钠溶液和水的质量分别1为:6%的氯化钠溶液25g(体积24mL);水25g。
(2)量取:用量筒量取所需的氯化钠溶液和水,倒入烧杯中。
(3)混匀:用玻璃棒搅拌,使溶液混合均匀。
3、把配制好的上述两种氯化钠溶液划分装入试剂瓶中,盖好瓶塞并贴上标签(标签中应包括药品名称和溶液中溶质的质量分数),放到试剂柜中。
【问题与交流】1、用托盘天平称量氯化钠时,有哪些注意事项?①称量前先要调平天平的平衡;②调平衡后,在左、右两托盘上应各放一张同样大小的白纸;③要遵循“左物右码”的原则,左边放称量的药品,右边放砝码。
2、用量筒量取液体,读数时应注意什么?读数时视线应与量筒内凹液面的最低处保持水平,既不能仰视读数,也不能俯视读数。
实验课程:单片机原理及应用实验名称:实验五 ----电子秒表显示器 实验日期:2013年4月 12 日 一、 实验目的掌握定时/计数器的工作原理,熟悉定时/计数器中断法编程与调试内容。
二、 实验内容1、 按图绘制实验五电路原理图:2、采用12MHz 晶振,50ms T0定时方式1 +中断(20次中断为1s )法编程:3、 实现如下功能 程序运行开始时先显示“ 00” ,随后显示数值逐渐增大。
待计数到 59后,自动从“ 00”开始。
4、 观察仿真结果,完成实验报告。
三、 实验要求提交的实验报告中应包括电路原理图,T0定时方式1中断原理阐述,源程序(含编程分析与源程序),运行效果图,实验小结。
提交实验报告的电子邮件主题及存盘 1、电路原理图电路分析 上图为实验原理图。
电路由 80C51芯片,两个开关LED 显示器,电阻,还包括 时钟电路和复位电路组成。
上拉电阻接在P0 口,因为P0 口内部没有上拉电阻,为使漏极开路有效,必须通过外接上拉电阻与电源连通。
数码管的初始显示值为 00:当1s 产生时,秒计数器加1:秒计数到60时清零,并从“00” 重新开始,如此周而复始的进行下去。
定时器T0每50ms 产生一次中断,每产生20次中断时, 秒计数器加1并将数值显示在数码管上,其中P0 口显示十位,P1 口显示个位,定时1s 无限循 环。
2、T0定时方式1中断原理阐述当M1M0=01时(定时器的工作与方式 1。
方式1为16位的定时/计数器,满计数值为2A 16,1 Pt.O.KOy I A JIPL3.AJJPf LI P(.6.X ;4FC J &.A ZGPCJ.'J C T 吃跑I 名.wmP2.4W : 讯a 鬭jnI-Lr:..Ir-1C2XprL.1科T 甩1F3£^XD Pin 讥=^7/wrn飞MFTF3JJTC^.7Wr?Lrj 二初值不能自动重装。
定时器Tx工作于方式1的逻辑结构框图如下图,当Tx工作于方式由THx作为高8位,TLx作为低8位,构成一个16位的计数器。
实验五(2009-5-15)一、实验名称:指针二、实验目的:(1)指针变量的定义、使用,以及指针变量作函数参数;(2)使用指针进行数组操作;(3)使用指针进行字符串操作。
三、实验项目1、利用指针作为参数,编写交换变量值的函数swap1 (int *x, int *y),利用该函数交换数组a和数组b中的对应元素值。
#include <iostream.h>void swap1 (int *x, int *y){int a[3]={1,2,3};int b[3]={4,5,6};int i,t;cout<<"交换前数组A为:"<<endl;for(i=0;i<3;i++)cout<<a[i]<<' ';cout<<endl;cout<<"交换前数组B为:"<<endl;for(i=0;i<3;i++)cout<<b[i]<<' ';cout<<endl;x=a;y=b;for(i=0;i<3;i++){ t=*(x+i);*(x+i)=*(y+i);*(y+i)=t;}cout<<"交换后数组A为:"<<endl;for(i=0;i<3;i++)cout<<*(x+i)<<' ';cout<<endl;cout<<"交换后数组B为:"<<endl;for(i=0;i<3;i++)cout<<*(y+i)<<' ';cout<<endl;}void main(){int *x; int *y;swap1 (x,y);}2、利用引用方式进行函数参数传递,编写交换变量值的函数swap2 (int &x, int &y),利用该函数交换数组a和数组b中的对应元素值。
#include<iostream.h>void swap(int &x,int &y){ int temp;temp=x;x=y;y=temp;}void main(){ int a[3]={1,2,3};int b[3]={4,5,6};int i;int *x,*y;x=a;y=b;cout<<"交换前数组A为:"<<endl;for(i=0;i<3;i++)cout<<a[i]<<' ';cout<<endl;cout<<"交换前数组B为:"<<endl;for(i=0;i<3;i++)cout<<b[i]<<' ';cout<<endl;for(i=0;i<3;i++)swap(*(x+i),*(y+i));cout<<"交换后数组A为:"<<endl;for(i=0;i<3;i++)cout<<*(x+i)<<' ';cout<<endl;cout<<"交换后数组B为:"<<endl;for(i=0;i<3;i++)cout<<*(y+i)<<' ';cout<<endl;3、使用指针作为函数参数,编写一个求数组中最大值和最小值的函数MaxAndMin,并返回它们所在数组中的位置。
要求:使用指针指向一维数组,该函数的返回类型为void。
#include<iostream.h>void MaxAndMin(int *x){ int a[7]={3,7,6,5,4,1,2};int i;cout<<"数组是"<<endl;for(i=0;i<7;i++)cout<<a[i]<<' ';cout<<endl;x=a;int n=1,m=1,max=a[0],min=a[0];for(i=0;i<7;i++)if(max<*(a+i)){max=*(a+i);n=i+1;}for(i=0;i<7;i++)if(min>*(a+i)){min=*(a+i);m=i+1;}cout<<"数组中最大的数是:"<<max<<endl<<"它是数组的第"<<n<<"个元素"<<endl<<"数组中最小的数是:"<<min<<endl<<"它是数组的第"<<m<<"个元素"<<endl;}void main(){int *x;MaxAndMin(x);}4、定义一个函数 search(int list[],int n,int x),在数组list中查找元素x,若找到则返回相应下标,否则返回 -1。
要求,在main函数中调用search,main函数。
#include<iostream.h>void search(int list[],int n,int x){int i,j=0;for(i=0;i<n;i++){if(list[i]!=x)j++;else cout<<j<<endl;if(j==n)cout<<"-1"<<endl;}void main (){int list[3];int n=3;int x,i;for(i=0;i<n;i++)cin>>list[i];cin>>x;search(list,n,x);}5、连续输入一批以 # 结束的字符串(字符串的长度不超过80),遇 ## 则全部输入结束。
统计并输出每个字符串的有效长度。
例:括号内是说明输入:hello 12#abc+0## (连续输入2 个字符串"hello 12"和"abc+0")输出:8 ("hello 12"的有效长度是8)5 ("abc+0"的有效长度是5)#hello 12#abc+0#1234567890iop##18513#include<iostream.h>void main(){ int i,j=0;char s[80];cout<<"Enter a string please:"<<endl;cin.getline(s,80,'\n');for(i=0;s[i]!='\0';i++){if(s[i]!='#')j++;else {cout<<j<<endl;j=0;}if(s[i]=='#'&&s[i+1]=='#')s[i+1]='\0';}}四、选做实验题(下列问题也在上机考试测试范围内,要求用指针实现以下问题)1、编程实现从键盘输入一个字符串,将其字符顺序颠倒后重新存放,并输出这个字符串。
#include<iostream.h>#include<string.h>void main(){ int i;char a[80], b[80];cout<<"Enter a string please:"<<endl;cin.getline(a,80,'\n');for(i=0;a[i]!='\0';i++){b[i]=a[strlen(a)-i-1];}for(i=0;i<strlen(a);i++)cout<<b[i];}2、不用函数strcat(),编程实现字符串连接函数strcat()的功能,将字符串srcStr连接到字符串dstStr的尾部。
#include<iostream.h>#include<string.h>void main(){ int i,j,k;char a[80], b[80],c[80];cout<<"Enter string1 please:"<<endl;cin.getline(a,80,'\n');cout<<"Enter string2 please:"<<endl;cin.getline(b,80,'\n');for(i=0;a[i]!='\0';i++)c[i]=a[i];for(j=0;b[j]!='\0';j++)c[i+j]=b[j];c[i+j]='\0';for(k=0;k<strlen(a)+strlen(b);k++)cout<<c[k];3、用指针数组编程实现:从键盘任意输入一个数字表示月份值n,程序输出该月份的英文表示,若n不在1~12之间,则输出“Illegal month”。
#include<iostream.h>void main(){ int n;char*month_name[12]={"January","February","March","April","May","June","July","August","September","October","Nove mber","December"};cout<<"Enter month please:"<<endl;cin>>n;if(n<=12&&n>=1)cout<<*(month_name+n-1)<<endl;elsecout<<"Illegal month"<<endl;}4、编写一个子串截取函数,viod substr(char *source,int start,int length,char *dest); source是源字符串指针,start是截取的开始位置,length是要截取的子串的长度,dest是指目标串指针5编写一个函数delchar(char *s, char c),该函数将字符串s中出现的所有c字符删除。