实验六 参考答案
- 格式:doc
- 大小:90.00 KB
- 文档页数:4
信号与信号处理实验参考答案实验⼀熟悉MATLAB 环境2、(2)粗略描绘下列各函数的波形说明:MA TLAB 中有函数ttt c ππsin )(sin = ④ f(t)=sint/tt=-3*pi:0.01*pi:3*pi; t1=t/pi; y=sinc(t1); plot(t,y); hold onplot(t,0)⑤在⾃⼰的⼯作⽬录work 下创建Heaviside 函数的M ⽂件,该⽂件如下:function f=Heaviside(t)f=(t>0) %t>0时f 为1,否则f 为0在命令窗⼝输⼊如下语句,就能绘出u(t)的波形。
t=-1:0.01:3; f=Heaviside(t); plot(t,f) axis([-1 3 –0.2 1.2]) ⑥t=-1:0.01:2;g=Heaviside(t)-Heaviside(t-1); plot(t,g);axis([-1 2 -0.2 1.2]) hold on plot(t,0)4、分别⽤for 和while 循环结构编写程序,求出s=∑=632k k=1+2+22+23+…+262+263并考虑⼀种避免循环的简洁⽅法来进⾏求和。
程序如下: s=1; for k=1:63s=s+2^k;s运⾏结果是:s =1.8447e+019(2)s=1;k=1;while k<=63s=s+2^k;k=k+1;ends运⾏结果:s =1.8447e+019(3)k=0:63;s=sum(2.^k)实验⼆信号的卷积与系统的响应和阶跃响应1.n=0:20;hn=0.9.^n;xn=[0,0 ones(1,8),0,0];yn=conv(hn,xn);stem(yn)3. 利⽤MA TLAB绘制下列信号的卷积积分f1(t)*f2(t)的时域波形。
(1)f1(t)=2[u(t+1)-u(t-1)], f2(t)=u(t+2)-u(t-2)(2)f1(t)=tu(t), f2(t)=u(t)(3)f1(t)=u(t)-u(t-4), f2(t)=sin(лt)u(t);(4)f1(t)=e-2t u(t), f2(t)=e-t u(t)(1) 先编写实现连续信号卷积的通⽤函数sconv(),程序如下:function[f,k]=sconv(f1,f2,k1,k2,p)%计算连续信号卷积积分f(t)=f1(t)*f2(t)%f:卷积积分f(t)对应的⾮零样值向量%k:f(t)的对应时间向量%f1:f1(t)⾮零样值向量%f2:f2(t)⾮零样值向量%k1:f1(t)的对应时间向量%k2:序列f2(t)的对应时间向量%p:取样时间间隔f=conv(f1,f2); %计算序列f1与f2的卷积ff=f*p;k0=k1(1)+k2(1); %计算序列f的⾮零样值的起点位置k3=length(f1)+length(f2)-2; %计算卷积和f的⾮零样值的宽度k=k0:p:((k3-(0-k0)/p)*p); %确定卷积和f⾮零样值的时间向量subplot(2,2,1)plot(k1,f1) %绘制f1(t)title('f1(t)')xlabel('t')ylabel('f1(t)')subplot(2,2,2)plot(k2,f2)title('f2(t)')xlabel('t')ylabel('f2(t)')subplot(2,2,3)plot(k,f);h=get(gca,'position');h(3)=2.5*h(3);set(gca,'position',h) %将第三个⼦图的横坐标范围扩为原来的2.5倍title('f(t)=f1(t)*f2(t)') xlabel('t')ylabel('f(t)')p=0.01;k1=-1:p:1;f1=2*ones(1,length(k1));k2=-2:p:2;f2=ones(1,length(k2));[f,k]=sconv(f1,f2,k1,k2,p)(2)p=0.01;k1=0:p:10;k2=0:p:10;f2=ones(1,length(k2)); [f,k]=sconv(f1,f2,k1,k2,p)第(2)题图上实验⼆信号的卷积与系统的响应1.n=0:20;hn=0.9.^n;xn=stepseq(2,0,20)-stepseq(10,0,20);yn=conv(hn,xn);stem(yn)2.(1)p=0.01;k1=-2:p:2;f1=2*(u(k1+1)-u(k1-1));f2=u(k2+2)-u(k2-2);[f,k]=sconv(f1,f2,k1,k2,p)p=0.01;k1=-1:p:10;f1=k1.*u(k1);k2=k1;f2=u(k2);[f,k]=sconv(f1,f2,k1,k2,p)(3)p=0.01;k1=-4:p:10; f1=u(k1)-u(k1-4);k2=k1;f2=sin(pi*k2).*u(k2); [f,k]=sconv(f1,f2,k1,k2,p)5.已知描述某连续系统的微分⽅程为:y’’(t)+5y’(t)+8y(t)=3f’’(t)+2f(t)绘出系统的冲激响应波形,求出t=0.5s, 1s, 1.5s, 2s系统冲激响应的数值解。
实验:怎样用滑动变阻器改变灯泡亮度
A.连入变阻器时,应该使滑片位于变阻器值最大的位置。
B.开关、电流表应该接在靠近电源电流流出的一端。
C.连接电路时,应该先将开关断开。
D.电流表应该与灯泡串联,并且使它的正接线柱靠近电源正极一端。
2、在探究“用滑动变阻器改变灯泡亮度”的实验中,小王把开关、小灯泡、滑动变阻器、电源用导线连接好后,闭合开关,小灯泡亮了;他想改变小灯泡的亮度;但无论怎样调节滑动变阻器,小灯泡的亮度就是不变。
(1)请你指出小王在实验中关于滑动变阻器的连接可能存在的两种错误方式:
①__________________________________________________________________________
②__________________________________________________________________________
(2)请你用笔画线代替导线,将实物图中的滑动变阻器接在A、B两接线柱上,使
滑动变阻器能改变小灯泡的亮度。
3、如图所示,是小明探究怎样用滑动变阻器改变灯泡亮度设计的实验电路图,当开关S闭合,要使灯泡变亮,滑动变阻器的滑片P应向哪一端移动?
参考答案:
1、B
2、(1)①导线都接了滑动变阻器的上接线柱。
②导线都接了滑动变阻器的下接线柱。
(2)滑动变阻器的接线柱一上一下连到A、B接线柱。
3、向左端或(A端)移动。
实验一霍尔效应及其应用【预习思考题】1.列出计算霍尔系数、载流子浓度n、电导率σ及迁移率μ的计算公式,并注明单位。
霍尔系数,载流子浓度,电导率,迁移率。
2.如已知霍尔样品的工作电流及磁感应强度B的方向,如何判断样品的导电类型?以根据右手螺旋定则,从工作电流旋到磁感应强度B确定的方向为正向,若测得的霍尔电压为正,则样品为P型,反之则为N型。
3.本实验为什么要用3个换向开关?为了在测量时消除一些霍尔效应的副效应的影响,需要在测量时改变工作电流及磁感应强度B的方向,因此就需要2个换向开关;除了测量霍尔电压,还要测量A、C间的电位差,这是两个不同的测量位置,又需要1个换向开关。
总之,一共需要3个换向开关。
【分析讨论题】1.若磁感应强度B和霍尔器件平面不完全正交,按式(5.2-5)测出的霍尔系数比实际值大还是小?要准确测定值应怎样进行?若磁感应强度B和霍尔器件平面不完全正交,则测出的霍尔系数比实际值偏小。
要想准确测定,就需要保证磁感应强度B和霍尔器件平面完全正交,或者设法测量出磁感应强度B和霍尔器件平面的夹角。
2.若已知霍尔器件的性能参数,采用霍尔效应法测量一个未知磁场时,测量误差有哪些来源?误差来源有:测量工作电流的电流表的测量误差,测量霍尔器件厚度d的长度测量仪器的测量误差,测量霍尔电压的电压表的测量误差,磁场方向与霍尔器件平面的夹角影响等。
实验二声速的测量【预习思考题】1. 如何调节和判断测量系统是否处于共振状态?为什么要在系统处于共振的条件下进行声速测定?答:缓慢调节声速测试仪信号源面板上的“信号频率”旋钮,使交流毫伏表指针指示达到最大(或晶体管电压表的示值达到最大),此时系统处于共振状态,显示共振发生的信号指示灯亮,信号源面板上频率显示窗口显示共振频率。
在进行声速测定时需要测定驻波波节的位置,当发射换能器S1处于共振状态时,发射的超声波能量最大。
若在这样一个最佳状态移动S1至每一个波节处,媒质压缩形变最大,则产生的声压最大,接收换能器S2接收到的声压为最大,转变成电信号,晶体管电压表会显示出最大值。
火焰是由各种燃烧生成物、中间物、高温气体、碳氢物质以及无机物质为主体的高温固体微粒构成的。
火焰的热辐射具有离散光谱的气体辐射和连续光谱的固体辐射。
不同燃烧物的火焰辐射强度、波长分布有所差异,但总体来说,其对应火焰温度的 1 ~ 2 μ m 近红外波长域具有最大的辐射强度。
例如汽油燃烧时的火焰辐射强度的波长。
火焰传感器是机器人专门用来搜寻火源的传感器,当然火焰传感器也可以用来检测光线的亮度,只是本传感器对火焰特别灵敏。
火焰传感器利用红外线对对火焰非常敏感的特点,使用特制的红外线接受管来检测火焰,然后把火焰的亮度转化为高低变化的电平信号,输入到中央处理器中,中央处理器根据信号的变化做出相应的程序处理。
火焰传感器是探测在物质燃烧时,产生烟雾和放出热量的同时,也产生可见的或大气中没有的不可见的光辐射。
火焰传感器又称感光式火灾传感器,它是用于响应火灾的光特性,即探测火焰燃烧的光照强度和火焰的闪烁频率的一种火灾传感器。
火焰传感器实验简介6.1讯方公司传感器实验2 1、通过该实验项目,学生能够了解火焰传感器的硬件电路和工作原理;2、通过该实验项目,学生能够学会编写火焰传感器的程序。
1、编写一个读取火焰传感器输出电平信号的程序;2、将火焰检测状态做简单的处理显示,正常无火焰状态为0,检测到火焰状态为1;3、用按键KEY1控制ZIGBEEN是否发送数据。
6.4.1硬件部分1、ZIGBEE调试底板一个;图6-1 ZIGBEE调试底板2、20PIN转接线一条和带USB的J-Link仿真器一个;图6-2 J-Link仿真器实验内容6.3实验目的6.2实验设备6.4电源开关电源传感器C端口指示灯 2J-LINK接口ZigBee_DEBUG复位键节点按键拨码开关ZigBe按键红外发射指示灯1ZigBee复位键可调电阻传感器A端口传感器B端口方口USB线,另一端连接电上电指示灯20PIN转接线,另一端接转接板实验六 传感器之火焰篇33、转接板一个;图 6-3 转接板4、9~12V 电源适配器2个;图6-4 电源适配器5、带普通USB 线的ZIGBEE 仿真器一个;图6-5 ZIGBEE 仿真器普通USB 线10PIN 转接线20PIN 转接线接口10PIN 转接线接口串口接口电源(上)和状态指示灯讯方公司 传感器实验4 6、智能网关一台;图6-6 智能网关7、ZIGBEE 模块两个;图 5-7 ZIGBEE 模块8、火焰传感器一个;图 6-8 火焰传感器ZigBee 模块组合接口电源及开关开关按钮显示屏SD 卡USB 下载数据线+5V 输入 TTL 信号输出 GND 输入输出信号指示灯,低有效火焰感应探头模拟信号输出灵敏度调节旋钮,顺时针增大实验六 传感器之火焰篇59、10PIN 转接线和传感器连接线各一条。
小学科学实验题目与参考答案实验一:魔法饮料材料:透明杯、水、溶液A(酸性溶液)、溶液B(碱性溶液)、红、蓝、黄三种食用色素实验步骤:1. 在透明杯中倒入一杯水。
2. 将红色食用色素滴入水中,搅拌均匀,观察颜色变化。
3. 将蓝色食用色素滴入水中,搅拌均匀,观察颜色变化。
4. 将黄色食用色素滴入水中,搅拌均匀,观察颜色变化。
5. 分别将溶液A和溶液B滴入不同的杯中,观察颜色变化。
参考答案:1. 当加入红色食用色素时,水的颜色变为红色。
2. 当加入蓝色食用色素时,水的颜色变为蓝色。
3. 当加入黄色食用色素时,水的颜色变为黄色。
4. 当将溶液A滴入杯中时,若溶液A为酸性溶液,则水的颜色不变;若溶液A为碱性溶液,则水的颜色会发生变化。
5. 当将溶液B滴入杯中时,若溶液B为碱性溶液,则水的颜色不变;若溶液B为酸性溶液,则水的颜色会发生变化。
实验二:水的沸点材料:温度计、烧杯、火源、水实验步骤:1. 将烧杯中注入适量的水。
2. 将温度计插入水中。
3. 将烧杯放置在火源上,用火加热水。
4. 在水受热的过程中,观察温度计上的温度变化。
参考答案:1. 当水开始受热时,温度会逐渐上升。
2. 当水温达到100摄氏度时,水开始沸腾。
3. 沸腾时水的温度保持不变,直到水完全蒸发。
4. 实验结果表明,水的沸点为100摄氏度。
实验三:电流的传导材料:电池、导线、小灯泡、图钉、纸夹实验步骤:1. 将电池的正极和负极用导线连接起来。
2. 在导线的末端连接小灯泡。
3. 用图钉将另一端的导线固定在纸夹上。
4. 等待片刻,观察小灯泡是否亮起。
参考答案:1. 当电池的正极和负极被导线连接后,电流开始传导。
2. 如果小灯泡亮起,则说明电流成功通过导线传导到小灯泡,小灯泡发出光亮。
3. 如果小灯泡不亮或闪烁,说明电流无法正常传导,可能是导线接触不良或电池电量不足所致。
通过以上的实验题目与参考答案,我们可以帮助小学生们更好地理解科学知识,培养他们的动手实践能力和探索精神。
初中化学沪教版(全国)九年级下册第六章溶解现象基础实验6粗盐的初步提纯巩固练习一、选择题1.粗盐提纯的实验中,有关仪器的选择及目的均正确的是A.药匙:取用粗盐B.量筒:溶解粗盐C.分液漏斗:制作过滤器D.表面皿:蒸发滤液2.粗盐提纯实验中的一些操作,包含化学变化的是A.量取液体B.称量固体C.过滤D.点燃酒精灯3.已知:20℃时,NaC1的溶解度为36g/100g水,现称取10g粗盐,经过溶解、过滤、蒸发、转移等步骤,除去泥沙得到尽可能多的精盐。
下列操作正确且合理的是A.A B.B C.C D.D4.下列除杂可行的是( )A.A B.B C.C D.D5.实验室蒸发食盐水,不需要用到的仪器是A.蒸发皿B.玻璃棒C.酒精灯D.试管夹6.玻璃棒在化学实验中有多种用途,下列操作使用错误的是A.配制溶液时搅拌,加速溶解B.捣碎固体药品C.蒸发过程中搅拌,使受热均匀D.沿玻璃棒倾倒液体7.下列实验操作不能..达到实验目的的是()A.通过溶解、过滤、蒸发操作去除粗盐中难溶性杂质B.称量2.5g氯化钠、量取47.5mL水溶解配制50g5%的氯化钠溶液C.向某固体中加入稀盐酸检验固体中是否含有碳酸盐D.将燃着的木条伸入集气瓶中区分氧气和空气两瓶气体8.下列有关实验操作的分析中,正确的是()A.配制氯化钠溶液:量取水时俯视读数,导致配制溶液浓度偏小B.测定空气中氧气含量:红磷量不足,导致测定结果偏低C.排水法收集氧气:导管口刚有气泡冒出就收集,则收集的氧气更纯净D.去除粗盐中难溶性杂质:蒸发滤液时待蒸发皿中滤液蒸干才停止加热,这样产率会更高9.下列有关“粗盐中难落性杂质去除的实验”说法中正确的是()A.溶解:向10m水中逐渐加入粗盐至恰好形成饱和溶液B.过滤:为了加快过滤速度,应该用玻璃棒在漏斗中不断搅拌C.蒸发:待蒸发皿中水分完全蒸干才能停止加热D.误差分析:量取10m水时仰视读数,会使精盐产率偏低10.如图所示的转化关系(“→”表示反应一步实现,部分反应物和反应条件略去),下列各组物质按照甲、乙、丙的顺序不符合要求的是A.C、CO2、COB.KOH、K2SO4、KNO3C.H2O2、H2O、O2D.Ca(OH)2、CaCO3、CaCl211.在“一定质量分数的氯化钠溶液的配制”和“粗盐中难溶性杂质的提纯两个实验中,下列说法错误的是()A.溶液配制步骤包括计算、称量、溶解、装瓶贴签B.两个实验中都需要玻璃仪器有烧杯、玻璃棒C.在粗盐提纯中蒸发时,有大量固体析出时就停止加热,用余热蒸干D.配制溶液时,量取水时仰视读数会导致溶质的质量分数偏大12.化学科学的发展离不开定量研究.下列有关定量实验的误差分析中,不正确的是()A.配制10%的氯化钠溶液时,若烧杯内有水会导致所配溶液溶质的质量分数偏小B.粗盐提纯实验中,若蒸发过程中晶体飞溅会导致测得的氯化钠纯度偏低C.测定空气中氧气含量的实验中,铜粉质量的多少不影响实验结果D.用白磷燃烧探究质量守恒的实验中,白磷质量的多少不影响实验结果13.除去食盐水中氯化钙、氯化镁和硫酸钠杂质得到纯净的食盐的操作过程有①加过量氯化钡溶液②过滤③加过量碳酸钠溶液④蒸发结晶⑤加适量盐酸⑥加过量的氢氧化钠溶液,下列操作顺序不正确的是()A.③①⑥②⑤④B.①⑥③②⑤④C.⑥①③②⑤④D.①③⑥②⑤④14.能依次按溶解、过滤、蒸发三个步骤分离的混合物是()A.混有泥沙的食盐B.碳粉和氧化铜粉C.硝酸钾和氯化钠D.水和醋酸15.下列有关除去粗盐中难溶性杂质并计算产率实验的说法中,正确的是()A.量取水时,必须使视线与凹液面的最低处保持水平B.溶解时,必须将称量出来的粗盐全部倒入烧杯中C.过滤时,必须使玻璃棒紧靠在单层滤纸一边D.蒸发时,必须将所得溶液中的水分完全蒸干二、实验题16.下图为某学生进行粗盐提纯实验中过滤操作的示意图,试回答:(1)漏斗中液体的液面应该(填“高”或“低”)____于滤纸的边缘。
中考物理实验操作考试简答题及参考答案实验一测量液体的密度1、调节天平分几步?怎样调节?答:分两步①将天平放在水平台上,游码归零。
②调节天平两端的平衡螺母,使横梁平衡。
2、调横梁平衡时,若指针左偏,应怎样调节右端的平衡螺母?答:此题可依实验要求回答。
调节横梁平衡时,若指针左偏,向右调节平衡螺母;若指针右偏,向左调节平衡螺母(简记:“左偏右调,右偏左调)3、天平横梁平衡的标志是什么?答:指针指在分度盘的中线处,或在中线两端左右摆动幅度相同。
4、调好的天平换了位置后,可否直接使用?答:不可以,要有重新调节天平平衡的过程。
5、在用天平称量质量时,可否调节平衡螺母使之平衡?答:不可以,应调节游码。
6、测定密度的原理是什么?答: =m/v7、用量筒测体积,读数时应注意什么?答:待量筒里的液面平稳后,视线平视液面的最低处(水银凸面的最高处)所对的刻线读数。
8、在用天平测量质量时,在什么情况下向右轻移游码?答:加减最小砝码都不能使天平平衡时,可采用向右移动游码,使天平恢复平衡9、在用天平测量质量时,向右轻移游码起什么作用?答:向右移动游码等于向右盘添加更小质量的砝码。
10、怎样用天平测量液体的质量?答:①用天平测出容器的质量m1。
②容器内装上液体,用天平测出容器和液体总质量m2。
③计算液体质量m0(m0=m2-m1)。
11、怎样用量筒测出固体的体积?答:①量筒内装入适量的水,记录水的体积V1②将固体全部浸没在水中,记录水面到达的刻度值V2③计算固体体积V0(V0=V2-V1)12、测定液体的密度,需要测出哪些数据?需要计算哪些数据?答:测量数据:①烧杯和液体的总质量m1②烧杯和剩余液体的总质量m2③倒入量筒内适量液体的体积V计算数据:①倒入量筒内液体的质量m0(m0=m1-m2)②液体密度:( =m0/v=m1-m2/v)实验二探究杠杆的平衡条件1、在实验前发现杠杆左端低右端高,应怎样调节杠杆两端的螺母?答:可根据实际情况回答:左端低,右端高,平衡螺母向右调。
实验六甲基丙烯酸甲酯的本体聚合一、目的要求:1、了解本体聚合的原理,2、熟悉有机玻璃的制备方法。
二、原理:聚甲基丙烯酸甲酯(PMMA),俗称有机玻璃。
有机玻璃广泛用在工业、农业、军事、生活等的各个领域,如飞机、汽车的透明窗玻璃、罩盖等。
在建筑、电气、医疗卫生、机电等行业也广泛使用,如制造光学仪器、电器、医疗器械、透明模型、装饰品、广告铭牌等。
每年全世界要消耗数以百万吨的有机玻璃及其制品。
工业上制备有机玻璃主要采用本体、悬浮聚合法,其次是溶液和乳液法。
而有机玻璃的板、棒、管材制品通常都用本体浇铸聚合的方法来制备。
如果直接做甲基丙烯酸甲酯的本体聚合,则由于发热而产生气体只能得到有气泡的聚合物。
如果选用其它聚合方法(如悬浮聚合等)由于杂质的引入,产品的透明度都远不及本体聚合方法。
因此,工业上或实验室目前多采用浇注方法。
即:将本体聚合迅速进行到某种程度(转化率10% 左右)做成单体中溶有聚合物的粘稠溶液(预聚物)后,再将其注入模具中,在低温下缓慢聚合使转化率达到 93 ~ 95% 左右,最后在 100 ℃下聚合至反应完全。
其反应方程式如下:甲基丙烯酸甲酯在过氧化苯甲酰引发剂存在下进行如下聚合反应:本实验采用本体聚合法制备有机玻璃。
本体聚合是在没有介质存在的情况下只有单体本身在引发剂或光、热等作用下进行的聚合,又称块状聚合。
体系中可以加引发剂,也可以不加引发剂。
按照聚合物在单体中的溶解情况,可以分为均相聚合和多相聚合两种:聚合物溶于单体,为均相聚合,如甲基丙烯酸甲酯,苯乙烯等的聚合;聚合物不溶于单体,则为多相聚合,如氯乙烯,丙烯腈的聚合。
本体聚合的产物纯度高、工序及后处理简单,但随着聚合的进行,转化率提高,体系黏度增加,聚合热难以散发,系统的散热是关键。
同时由于黏度增加,长链游离基末端被包埋,扩散困难使游离基双基终止速率大大降低,致使聚合速率急剧增加而出现所谓自动加速现象或凝胶效应,这些轻则造成体系局部过热,使聚合物分子量分布变宽,从而影响产品的机械强度;重则体系温度失控,引起爆聚。
实验六参考答案(参考答案)
(1) 设计程序sy6-1.c,输入一个字符串,将其中的大写字母都改为对应的小写字母,其他字符不变。
例如,若输入"Ab,cD",则输出"ab,cd"。
算法分析:
使用for循环遍历字符串,在遍历的过程中,如果该元素是大写字母时,能过str[i]=str[i]+32把大写字母置换成相应小写字母
参考答案:
#include<stdio.h>
#include<string.h>
void main()
{
char str[100];
int i;
printf("请输入一个字符串:");
gets(str);
for(i=0;str[i]!='\0';i++)
if(str[i]>='A'&&str[i]<='Z') str[i]=str[i]+32;
printf("输出转换后的字符串:");
puts(str);
}
运行结果:
(2) 设计程序sy6-2.c,输入一个字符串,删除其中所有的小写字母'c'。
例如,若输入字符串"ac abc bcdef",则应输出字符串" a ab bdef"
算法分析:
在原字符数组中删除指定字符时,当遍历的字符不等于要删除的字符时,在原数组中赋值。
注意在赋值的时候,元素下标不同步,所以用j做为删除后的下标,并且是赋一个值,其下标自动加1,所以最后j的值为数组的长度,另外为了保证字符数组能正确输出,所以在最后要人为加一个\0
参考答案:
#include<stdio.h>
#include<string.h>
void main()
{
int i;
char str[20];
printf("请输入一个字符:");
gets(str);
for(i=0;str[i]!='\0';i++)
if(str[i]!='c')str[j++]=str[i]; //将指定字符c删除
str[j]= '\0';
printf("请输入一个字符:");
puts(str);
}
运行结果:
(3) 设计程序sy6-3.c,输入一个字符串,统计其中'a' 到'z' 26 个英文小写字母各自出现的次数。
例如运行时输入字符串:abcdefgabcdeabc 后,则输出的结果应该是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
算法分析:
用a数组的a[0](其中0下标是'a'-'a')存放'a'字符的个数,a[1](其中1下标是'b'-'a')存放'b'字符的个数,a[str[i]-'a'](其中str[i]-'a'下标是str[i]字符对应存储个数的下标)存放str[i]字符的个数。
因此在程序中只需用str[i]-'a'作为a下标的元素进行自加即可。
参考答案:
#include<stdio.h>
void main()
{
char str[100];
int i,a[26]={0}; //分别统计26小写字母的个数,初始时都为0个
printf("请输入一个字符串:");
gets(str);
for(i=0;str[i]!='\0';i++)
if(str[i]>='a'&&str[i]<='z') //是小写字母才统计
a[str[i]-'a']++; //str[i]-'a'作为a数组下标的元素进行自加,
//即可使相应统计个数的元素值加一for(i=0;i<26;i++) //输出统计结果
printf("%c:%-3d",'a'+i,a[i]);
}
运行结果:
(4) 设计程序sy6-4.c,将一个数字字符串转换为一个整数(不得调用C 语言提供的将字符串转换为整数的函数)。
例如,若输入字符串"-1234",则函数把它转换为整数值-1234。
算法分析:
将数字字符转换成数字的做法是,将该数字字符减去'0'字符,在转换时需要逐个字符判断为数字字符才转换,不是不转换。
为了保证转换的数字为一个原顺序的整数,则把s*10后再把转换后的数字累加入s中。
最后再对字符串中的第一个字符进行判断看是否是‘-’;
如果是,则把s置成-s即可
参考答案:
#include<stdio.h>
void main()
{
char str[100];
int i,s=0;
printf("请输入一个字符串:");
gets(str);
for(i=0;str[i]!='\0';i++) //逐一把每个数字字符转换累加到数s中
if(str[i]>='0'&&str[i]<='9') s=s*10+str[i]-'0';
if(str[0]=='-') s=-s; //判断符号位
printf("result=%d\n",s);
}
运行结果:
(5) 设计程序sy6-6.c,将放在字符串数组中的M 个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。
例如,字符串数组中的M 个字符串为:AAAA BBBBBBB CC 则合并后的字符串的内容应是:AAAABBBBBBBCC。
算法分析:
首先对p串初始化为'\0'再将s中的每个字符串连接在p串的后边。
但要注意将string.h 包含在程序中
参考答案:
#include <stdio.h>
#include <string.h>
#define M 3
#define N 80
main()
{ char s[M][N]={"AAAA","BBBBBBB","CC"},p[100]={'\0'}; //p用来存放合并后的新串int i;
for(i=0;i<M;i++)
strcat(p,s[i]); //字符串连接
printf("\n结果是: \n%s\n",p);
}
运行结果:。