实验五 参考答案
c程序设计实验参考答案
main( )
{ float a,b,c;
float s,v;
scanf("%f,%f,%f,%f",&a,&b,&c);
s=a+b+c;
v=s/3.0;
printf("\n%7.1f,%7.1f",s,v);
}
实验五参考答案
一.1、a=10,b=30,c=10
}
2、main()
{int i;
double m=100000,n,s;
n=0.01;
s=0;
for(i=1;i<=30;i++)
{s+=n;
n=n*2;
}
printf("%f %f\n",s,m*30 );
}
实验八参考答案:
一.1、s=12345
2、7,
5,
3,
3、<1,2>=6
二.1、% for(j=k;j>0;j--)
第4行改为scanf("%d",&a[i]);
第12行改为printf("av=%d\n",av);
四.1、分析:C中数组长度必须是确定大小,即指定N的值。排序的方法有多种,取出其中两种作为参考。
方法一:起泡排序
从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比
{ case 10:
case 9: ch='A'; break;
case 8: ch='B'; break;
实验五 队列的应用(参考答案)
实验五、队列的应用一、实验原理:一种“先进先出”(FIFO---First In First Out)的数据结构:即插入在队尾一端进行,而删除在队头进行。
键盘缓冲区问题:设计算法实现模拟键盘缓冲区问题。
假设有两个进程同时存在于一个应用程序之中,第一个进程连续在屏幕上显示字符“X”,第二个进程不断检查键盘上是否有输入,若有则读入用户键入的字符,将其保存到键盘缓冲区之中。
程序约定当用户键入一个逗号“,”,则表示第一进程结束,系统开始显示那些在键盘缓冲区中的字符;接着继续执行第一个进程,即,在屏幕上显示字符“X”;当用户输入“;”的时候,刚结束整个程序。
算法提示:为了充分利用缓冲区的空间往往将缓冲区设计成循环队列的结构,并为循环队列结构的缓冲区设置一个队首指针和一个队尾指针。
每输入法一个字符到缓冲区中,就将尾指针后移,链入缓冲区的循环队列之中;每输出一个字符号,就将队头指针前移,将它从缓冲队列中删除。
参考代码:/*键盘缓冲区问题*/#define MAXSIZE 20#define TRUE 1#define FALSE 0#include "stdio.h"#include "conio.h"#include "dos.h"typedef char elemtype;typedef struct{elemtype elem[MAXSIZE];int front, rear;}queuetype;int enque(queuetype *s, elemtype x) /*数据入队列*/{if (( s->rear+1)%MAXSIZE==s->front ) /*队列已满*/return (FALSE);else{s->rear=(s->rear+1) % MAXSIZE;s->elem[s->rear]=x;return(true);}}elemtype delqueue (queuetype *s ) /*数据出队列*/{if (s-front==s->rear) /*队列为空*/return(NULL);else /*队列非空*/{s->front=(s->front+1)%MAXSIZE;return(s->elem[s->front]);}}main(){char ch1,ch2;queuetype *p;int t,f;p=(queuetype *)malloc(sizeof(queuetype));p->front=0;p->rear=0;while(1) /*开始交替执行*/{while(1) /*第一个进程的执行*/{if(kbhit()) /*检测是否有键盘输入*/{ch1=bdos(7,0,0); /*中断调用,键入字符存入ch1*/f=enqueue( p, ch1 ); /*字符入循环队列*/if ( f== FALSE ){printf(" The queue is already full !\n");break;}}if ( ch1==';' || ch1==',' )break; /*第一个进程正常结束情况*/printf("X"); /*执行第一个进程*/}ch2=delqueue(p);while( ch2 != NULL ){putchar(ch2); /*在屏幕上显示输入缓冲区中的内容*/ch2=delqueue(p); /*字符出队列*/}getchar(); /*为看清屏幕内容, 在此暂停, 按回车继续if (ch1==';'||f==FALSE) /*程序结束*/break;else /*继续执行*/ch1=''; /*先置空ch1*/}}。
信号与信号处理实验参考答案
信号与信号处理实验参考答案实验⼀熟悉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系统冲激响应的数值解。
实验五、五水合硫酸铜结晶水的测定
实验五 五水合硫酸铜结晶水的测定一、实验目的1.掌握利用废铜粉制备硫酸铜的方法;2.练习减压过滤、蒸发浓缩和重结晶等基本操作;3.了解结晶水的测定方法,认识物质热稳定性和分子结构的关系。
二、实验原理利用废铜粉灼烧氧化法制备CuSO 4·5H 2O :先将铜粉在空气中灼烧氧化成氧化铜,然后将其溶于硫酸而制得:2Cu + O 2=== 2CuO (黑色)CuO + H 2SO 4 === CuSO 4 + H 2O 由于废铜粉不纯,所得CuSO 4溶液中常含有不溶性杂质和可溶性杂质FeSO 4、Fe 2(SO 4)3及其他重金属盐等。
Fe 2+ 离子需用氧化剂H 2O 2溶液氧化为Fe 3+ 离子,然后调节溶液pH ≈4.0,并加热煮沸,使Fe3+ 离子水解为Fe(OH)3沉淀滤去。
其反应式为 2Fe 2+ + 2H + + H 2O 2 === 2Fe 3+ + 2H 2O Fe 3+ + 3H 2O === Fe(OH)3↓ + 3H + CuSO 4·5H 2O 在水中的溶解度,随温度的升高而明显增大,因此粗硫酸铜中的其他杂质,可通过重结晶法使杂质在母液中,从而得到较纯的蓝色水合硫酸铜晶体。
水合硫酸铜在不同的温度下可以逐步脱水,其反应式为CuSO 4·5H 2O === CuSO 4·3H 2O + 2H 2O CuSO 4·3H 2O === CuSO 4·H 2O + 2H 2O CuSO 4·H 2O === CuSO 4 + H 2O 1 mol CuSO 4结合的结晶水的数目为24HOCuSO nn 。
三、实验仪器及试剂托盘天平,瓷坩埚,泥三角,酒精灯,烧杯(50mL ),电炉,布氏漏斗,吸滤瓶,精密pH 试纸,蒸发皿,表面皿,水浴锅,量筒(10mL )。
废铜粉, H 2SO 4(2mol ·L -1), H 2O 2(3%), K 3[Fe(CN)6](0.1mol ·L -1), NaOH(2mol ·L -1),无水乙醇。
实验思考题参考答案(2)
ቤተ መጻሕፍቲ ባይዱ
实验七
脱水蒜片的制作
1、蒜片护色的原理是什么? • 使蔬菜处于碱性环境中,防止蔬菜体内叶绿素在酸性条 件下被破坏。
实验八 糖水桔子罐头的制作
1、糖水水果加工中变色的主要因素有哪些?怎样防止变 色? • 原料的品种和成熟度、加工和杀菌的温度、成品储藏的 温度。 • 控制原料的品种和成熟度;严格各工序的操作;在罐内 加入某些保护剂或酶类。
实验五 蛋黄酱的制作 1、各组分在蛋黄酱中的作用是什么? 蛋黄在该体系中发挥乳化剂的作用;油、醋、盐、糖除调 味的作用以外,还在不同程度上起到防腐、稳定产品的作 用;香辛料主要是增加产品的风味。 2、乳化的操作条件对产品的质量有何影响? 影响产品的稠度和口感。
实验六 调味类罐头(豆豉鲮鱼)的制作 调味类罐头(豆豉鲮鱼)
工程力学实验报告答案
一、实验目的1. 了解工程力学实验的基本方法和步骤。
2. 通过实验,掌握力学基本理论在工程实际中的应用。
3. 培养实验操作技能,提高实验数据分析能力。
二、实验内容1. 材料力学实验:拉伸试验、压缩试验、弯曲试验。
2. 建筑力学实验:静力平衡实验、超静定结构受力分析实验。
三、实验步骤1. 实验一:拉伸试验(1)将试样固定在拉伸试验机上,调整试验机至预定位置。
(2)缓慢加载,记录加载过程中的力值和位移值。
(3)观察试样变形情况,记录断裂位置。
(4)分析试验数据,绘制拉伸曲线,计算弹性模量、屈服强度等指标。
2. 实验二:压缩试验(1)将试样固定在压缩试验机上,调整试验机至预定位置。
(2)缓慢加载,记录加载过程中的力值和位移值。
(3)观察试样变形情况,记录断裂位置。
(4)分析试验数据,绘制压缩曲线,计算抗压强度、弹性模量等指标。
3. 实验三:弯曲试验(1)将试样固定在弯曲试验机上,调整试验机至预定位置。
(2)缓慢加载,记录加载过程中的力值和位移值。
(3)观察试样变形情况,记录断裂位置。
(4)分析试验数据,绘制弯曲曲线,计算抗弯强度、弹性模量等指标。
4. 实验四:静力平衡实验(1)搭建静力平衡实验装置,调整实验参数。
(2)观察实验现象,记录实验数据。
(3)分析实验数据,验证静力平衡原理。
5. 实验五:超静定结构受力分析实验(1)搭建超静定结构实验装置,调整实验参数。
(2)观察实验现象,记录实验数据。
(3)分析实验数据,验证超静定结构受力分析原理。
四、实验结果与分析1. 拉伸试验根据实验数据,绘制拉伸曲线,计算弹性模量E=...(单位:MPa),屈服强度σs=...(单位:MPa),抗拉强度σb=...(单位:MPa)。
2. 压缩试验根据实验数据,绘制压缩曲线,计算抗压强度σc=...(单位:MPa),弹性模量E=...(单位:MPa)。
3. 弯曲试验根据实验数据,绘制弯曲曲线,计算抗弯强度σb=...(单位:MPa),弹性模量E=...(单位:MPa)。
初中化学九年级《实验五托盘天平的使用》(化学-人教版-九年级上册)
实验五托盘天平的使用(化学-人教版-九年级上册)总分数22分时长:不限题型单选题题量11总分221(2分)(2016常德市)某同学欲配制50g 5%的氯化钠溶液,下列说法中正确的是()A.用蒸馅水洗涤试剂瓶后立即盛装配好的氯化钠溶液B.用500mL的烧杯量取所需要的水C.用托盘天平准确称取氯化钠固体2.5gD.氯化钠固体溶解时用玻璃棒搅拌的目的是增大其在水中的溶解度2(2分)(2017常德中考)下列关于水和溶液的说法中不正确的是()A.用肥皂水可以区分软水和硬水B.净化水的常用方法有:吸附、沉淀、过滤、蒸馅C.配制6%氯化钠溶液的先后步骤是:称量、计算、溶解D.地球上总的水储量很大但可利用的淡水资源很少3(2分)(2018衡阳市中考)下列实验装置或操作正确的是()熄灭酒精灯实验室制取二氧化碳读取液体体积NaCl称取一定质量的氯化钠4(2分)(2018怀化市中考)下列实验方法正确的()A.将氯化钠固体直接放在天平的右盘称量B.将pH试纸浸入到待测液中,测溶液的pHC.粗盐提纯实验过程中,蒸发结晶时,在蒸发皿中出现较多量固体时停止加热D.过滤时用玻璃棒在漏斗中搅拌以加速过滤5(2分)(2018益阳市中考)下列基本实验操作正确的是()灼热的蒸发皿,桌面蒸发皿的放置检查气密性称量NaCl6(2分)(2017邵阳中考)在“粗盐难溶性杂质的去除”实验中,操作步骤为溶解、过滤、蒸发、计算产率。
下列各步骤中的一些做法正确的是()A.溶解:用玻璃棒搅拌以加速溶解B,过滤:直接将粗盐水倒入漏斗中C.蒸发:等蒸发皿中水分蒸干便停止加热D.计算产率:将精盐直接转移到天平的托盘上称量7(2 分)(2017岳阳中考)下列实验基本操作正确的是(A.滴加液体B.--D读取'液体体积C.测定浴'液pH氢氧化钠固体称量氢氧化钠固体8(2分)(2016娄底市)托盘天平左、右两边各放一只质量相等的烧杯,在两只烧杯中加入等质量、等质量分数的稀盐酸,此时天平保持平衡。
数据库系统与应用教程(刘金岭)实验五参考答案
实验四简单查询和连接查询2. 简单查询实验用Transact-SQL语句表示下列操作,在“学生选课“数据库中实现其数据查询操作:(1) 查询数学系学生的学号和姓名。
select sno,snamefrom Swhere Sdept='MA'(2) 查询选修了课程的学生学号。
select distinct(sno)from sc;(3) 查询选修课程号为‘C2’的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
select distinct(sno),gradefrom scwhere cno='C2'order by grade desc,sno asc;(4) 查询选修课程号为‘C2’的成绩在80-90 分之间的学生学号和成绩,并将成绩乘以系数0.8 输出。
select distinct(sno),grade*0.8 as'sore'from scwhere cno='C2'and grade between 80 and 90;(5) 查询数学系(MA)或计算机科学系(CS)姓张的学生的信息。
select*from Swhere dept in('MA','CS')and sname like'张%';(6) 查询缺少了成绩的学生的学号和课程号。
select sno,cnofrom scwhere grade is null;3. 连接查询实验用Transact-SQL语句表示,并在“学生选课”数据库中实现下列数据连接查询操作:(1) 查询每个学生的情况以及他(她)所选修的课程。
select S.*,amefrom S JION sc ON s.sno=sc.sno JION c ON o=o(2) 查询学生的学号、姓名、选修的课程名及成绩。
select s.sno,sname,cname,gradefrom S JION sc ON s.sno=sc.sno JION c ON o=o(3) 查询选修‘离散数学’课程且成绩为90 分以上的学生学号、姓名及成绩。
实验五描绘小灯泡的伏安特性曲线
实验五 描绘小灯泡的伏安特性曲线一、实验目的描绘小灯泡的伏安特性曲线,并分析曲线的变化规律。
二、实验原理根据部分电路欧姆定律,R U I =可得RU I 1=,即在I-U 坐标系中,图线的斜率等于电阻的倒数。
三、实验器材学生电源(4~6V 直流),小电珠(“4V 0.7A ”或“3.8V 0.3A ”),电流表(内组较小),电压表(内组很大),开关和导线。
四、实验步骤(1)确定电流表、电压表的量程,照图连好电路。
(注意开关应断开,滑动变阻器与灯泡并联部分电阻为零)。
(2)闭合开关S ,调节滑动变阻器,使电流表、电压表有较小的明显示数,记录一组电压U 和电流I 值。
(3)用同样的方法测量并记录约12组U 值和I 值。
(4)断开开关S ,整理好器材。
(5)在坐标纸上,以U 为横坐标、I 为纵坐标建立直角坐标系,并根据表中数据描点,连接各点得到I -U 图线,(注意:连接各点时,不要出现折线)【数据处理】【结论】描绘出的图线是一条线。
它的斜率随电压的增大而,这表明小灯泡的电阻随电压(温度)升高而五、实验探究用本实验提供的方法,测量并描绘发光二极管的伏安特性曲线。
六、巩固练习1.如图所示,电流表的示数是A,电压表的示数是V.2.某同学研究三种导电元件的伏安特性,他根据实验中所测得的数据,分别绘制了I-U图线,如图所示,下列说法正确的是A.图(1)的元件可以作为标准电阻使用B.图(2)的阻值随电压升高而增大C.图(3)的阻值随电压升高而增大D.只有图(2)才是可能的。
3.两个电阻R1、R2的电流I和电压U的关系如图所示。
由图可知,两电阻的阻值之比R1:R2等于A.1:3 B.3:1 C. 1 :3 D. 3:14.如图所示,滑动变阻器R1的最大阻值是200欧,定值电阻的阻值R2=300欧,A、B两端的电压恒定,且U AB=8V。
当开关S断开时,移动滑片P,R2两端的电压变化范围是,当开关S闭合时,移动滑片P,R2两端的电压变化范围是5.为了测定小灯泡的伏安特性曲线,需要测得的电压范围尽可能大些,如从0~4V或0~3.8V.为此,应选下图中的那个电路?参考答案:1.0.48A,2.20V 2.A B 3.A 4.4.8~8V,0~8V 5.(1)。
C语言程序设计实验五 参考答案
答案:
#include<stdio.h>
void main()
{
int i,j,num=0;
for(i=3;i<=1000;i++)
{
for(j=2;j<=1000;j++)
if(i%2==0)
break;
5-4从键盘输入一个整数n,计算2n+1与++n之和。要求计算两数之和用函数实现。
答案:
#include<stdio.h>
void main()
{
int a;
int sum(int n);
printf("input n:\n");
scanf("%d",&a);
sum(a);
}
int sum(int n)
if(i%2!=0)
{
printf("%5d",i);
num++;
if(num%10==0)
printf("\n");
}
}
printf("\n");
}
*************************************************************************************************************实验三*******************************************
c语言程序设计实验五参考答案实验解答实验五参考答案编程语言c语言吧c语言答案
中考物理实验操作考试简答题及参考答案
中考物理实验操作考试简答题及参考答案实验一测量液体的密度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 应化一班 扈培杰 703 宿舍考试特辑系列
物理化学实验课后题答案总结
实验五 燃烧热的测定
1、在本实验中,哪些是体系,哪些是环境?体系和环境通过哪些途径进行热交换?这些热交 换对结果的影响怎样? 答:氧弹、内筒及氧弹周围的水支架等是体系;恒温夹套、夹套与内筒之间的空气层以及外 界大气是环境;体系通过热辐射、热传导以及热对流的方式向环境中传递热量。这些热交换 可能会造成量热出现偏差,造成测量值不准(总热交换的形式不可知,故无法断定测量值是 偏大还是偏小)。 2、量热容器内的水温为什么要比恒温夹套内水温低?低多少为合适?为什么? 答:这样可以抵消与外部热交换的热量,减小实验误差。低 0.7-1℃合适,因为实验造成的水 温变化仅仅为 1.5-2.0℃,故低 0.7-1℃足以抵消热交换造成的偏差。
实验十三 三组分液-液平衡相图的测绘
1、本实验所用的滴定管(盛苯的)、锥形瓶、分液漏斗液管、滴管为什么要干燥? 答:若不干燥。则配置的溶液中水含量与要求的值有所偏差,影响实验相图的绘制。 2、绘制溶解度曲线时,若先配溶液所取的体积不是记录表中规定的数值,对测绘溶解度曲线 的准确性有没有影响?记录表中规定的数值是根据什么原则确定的?配溶液时读取所用的各 组分体积不准确会带来什么影响? 答:无影响。记录表中规定的数值,是根据取点尽量均匀、均匀分布在相图中的原则确定的, 配溶液时,读取所用的各组分体积不准确时,会使溶解度曲线与实际有偏差,影响系线。 3、当体系总组成在溶解度曲线上方及下方时,体系的相数有什么不同?在本实验中是如何判 断体系总组成正处于溶解度曲线上的?此时分几相? 答:在曲线上方时为一相,下方时为两相。在本实验中,溶液恰好由澄清变浑浊或者由浑浊 变澄清时,可以认为体系的总组成正处于溶解度曲线上,此时为两相 4、温度升高,此时三组分溶解度曲线会发生什么样的变化?在本实验中应当注意哪些问题, 以防止温度变化影响实验的准确性? 答:温度升高,溶解度曲线下移,且峰变窄。本实验中要注意滴定的速度、称量的速度等等。 5、测绘系线时,如何保证取得真正的在室温下达到平衡的共轭水层?你认为用什么方法可以 检验液-液共存的两相体系达到平衡? 答:静置时间足够长,保证体系与环境进行充分的热交换,以达到室温。向溶液中滴入少量 苯、乙醇或水,观察是否由清变浑浊,若变浑浊,则液-液共存的两相体系达到平衡。 6、从测量精度来看,体系质量分数用几位有效数字表示? 答:用 3 位有效数字表示 7、当温度、压力恒定时,单相区的自由度数是多少? 答:f*=C+ψ+0=3-1+0=2
实验5交换机的配置和应用(参考答案)
实验5交换机的配置与应用一实验目的在熟悉交换机外部结构的基础上,了解交换机的物理连接方法和基本参数的配置方法。
二实验要求1.设备要求:计算机至少1台(装有Windows 2000/XP/2003操作系统、装有网卡),二层交换机1台,直连UTP线1根,Console电缆1根。
2.每组2人,合作完成。
三实验预备知识交换机的基本操作主要包括硬件连接和基本参数的配置。
从外形上看,交换机与集线器非常相似,但二者在工作原理上完全不同:前者工作在物理层、各端口共享总线,在物理拓扑上看似星型网,但在工作原理上属于总线型;而后者却需要相关配置才能发挥应有的作用,例如地址学习、数据帧过滤和按生成树传递。
图5.1 交换机外观图5.2 一种控制端口外观对以太网交换机进行配置可以有多种方法,其中使用终端控制台查看和修改交换机的配置是最基本、最常用的一种。
随以太网交换机的不同,配置方法和配置命令也有很大差异。
Cisco2924以太网交换机带有24个端口,并具有10/100M自适应功能。
下面,已Cisco2924以太网交换机组成的如图5.3所示的局域网为例,介绍其简单的配置方法。
1. 实验拓扑PC Switch_ACom1 Console图5.3 PC机与交换机的控制台端口相连终端控制台的连接和配置通过控制台查看和修改交换机的配置需要一台PC机或一台简易的终端,但是该PC机或简易终端应该能够仿真VT100终端。
实际上,Windows 2000 Server 中的“超级终端”软件可以对VT100终端进行仿真。
PC机或终端需要一条电缆进行连接,它一段与交换机的控制台端口相连,如图5.1所示,另一端与PC机或终端的串行口(DB9口或DB25口)相连。
2.超级终端设置利用PC机作为控制终端使用,在连接完毕后可以通过以下步骤进行设置:①启动Windows XP操作系统,通过“开始”→“程序”→“附件”→“通信”→“超级终端”进入超级终端程序;②选择交换机使用的串行口COM1,并将该串口设置为9600波特、8个数据位、1个停止位、无奇偶校验和硬件流量控制,如图5.4所示;图5.4 设置超级终端的串行口③登录交换机:单击“回车”键,系统将收到交换机的回送信息,进入交换机的用户模式,如图5.5所示。
实验5.内部类
第一题.目的:验证内部类对象总与创建它的外部类对象关联 (1)第二题.定义一个Father类 (1)第三题.修改BankAccount (2)第四题.拷贝自身重要数据 (3)第五题.连锁店问题 (4)第六题.修改外围类对象数据,影响内部类行为 (4)第七题.迭代器的局部类实现 (6)第一题参考答案 (7)第二题参考答案 (7)第三题参考答案 (8)第四题参考答案 (10)第五题参考答案 (10)第六题参考答案 (11)第七题参考答案 (11)实验五. 内部类,局部类,匿名类背景知识内部类内部类对象的创建局部类匿名类实验目的1.掌握内部类,局部类,匿名类概念2.学习定义内部类,局部类,匿名类。
3.学习创建内部类,局部类,匿名类对象。
实验内容和步骤第一题.目的:验证内部类对象总与创建它的外部类对象关联1.定义一个类A,它有一个内部类B.2.定义B的方法g,它访问A的数据成员。
3.定义A的方法f,它访问B的数据成员,注意必须指明那个内部类对象的数据成员。
4.确保类A有方法修改A的域。
5.确保类B有方法print,输出A的域。
6.定义类C,它只有一个main方法。
在main方法体内创建A类对象a。
a作为外围对象创建B类对象b;7.验证:每个内部类对象,都有一个相关联的外部类对象,就是创建它的外部类对象。
方法:首先对象b调用print,打印a的域,然后修改a的域,最后b再次调用print,打印a的域,打印结果应该与对a的修改一致,从而说明b与a相关联。
第二题.定义一个Father类它包括:1.内部类Son,表示儿子的类,包括a)数据域phone,表示儿子电话号。
b)内部类构造方法c)CallFather方法,给父亲打电话,打印“xxx给yyy打电话”即可,xxx是儿子电话号,yyy是父亲电话号。
2.数据域phone,表示父亲电话号。
3.Son数组,保存儿子。
4.count,保存儿子个数5.构造函数。
6.给儿子打电话的方法CallSon,打印“给xxx打电话”即可,xxx是儿子电话号。
实验五 数值积分参考答案.doc
5 . (广义积分)计算广|sec3xdx一实验目的:1加深理解积分理论中分割、近似、求和、取极限的思想方法;2 了解定积分近似计算的矩形法、梯形法与抛物线法;3会用MATLAB语言编写求定积分近似值的程序,会用MALAB中的命令求定积分。
二实验准备素材见附件。
三实验内容1.(不定积分)用int计算下列不定积分,并用diff验证「p dx ( dx rJxsin/dx J 仃忘J 771 Jarcsinxdx2.(定积分)用trapz,int计算下列定积分(里卜Fx『e* sin(2x)dx dx3.(椭圆的周长)用定积分的方法计算椭圆9 4 的周长jj(l + 兀 + y)dxdy4.(二重积分)计算积分%2+/-2^ syms x;g 1 =int(x. *sin(x). *sin(x))gl = x*(-l/2*cos(x)*sin(x)+l/2*x)+l/4*sin(x)A2-l/4*x A2 clear;syms x;dl=diff(x*(-l/2*cos(x)*sin(x)+l/2*x)+l/4*sin(x)A2-l/4*x A2)syms x;eg2)必g2=int(l/(l +cos(x)))g2 =tan(l/2*x)clear;syms x;d2=diff(tan( l/2*x))syms x;g3=int( l/(exp(x)+1))g3 =log(exp(x))-log(exp(x)+1)clear;syms x;d3=diff(exp(x))-log(exp(x)+l))syms x;g4=int(finverse(sin(x)))g4 =x*asin(x)+(l -x A2)A(l/2)clear;syms x;d4=diff(x*asin(x)+( 1 -x A2)A(l/2))syms x;g5=int(sec(x).A3)g5 =l/2/cos(x)A2*sin(x)+l/2*log(sec(x)+tan(x)) clear;syms x;d5=diff(l/2/cos(x)A2*sin(x)+l/2*log(sec(x)+tan(x))) 7.2x=10e-100:0.001:l;y=sin(x)./x;trapz(x,y)clear all;syms x;int('sin(x)/x',x,O,l) x=0:0.001:l;y=x.A x;trapz(x,y)clear all;syms x;syms esp;x 1 =log(esp) ;x2=log(l);int('exp(x);x,x 1 ,x2)注释:根据公式x.A x=exp(x*log(x)) clear all;syms x;x 1 =log(l Oe-100) ;x2=log(l);int('exp(x);x,x 1 ,x2) x=0:0.001:2*pi; y=exp(x). *sin(2 *x); trapz(x,y) clear all;syms x; int('exp(x)*sin(2*x)',x,0,2*pi) x=0:0.001:l;y=exp(-x.*x);trapz(x,y) clear all;syms x;int('exp(-x*x)',x,0,1)7.3syms x;int('(4*sqrt((36・4*x*x)/9));x,0,3)7.4clear;syms x y;» int(int(l +x+y,y, 1 -sqrt(l -x.A2),l +sqrt(l-x.A2)),x,-1,1)7.5mt('exp(-x*x)/(l+x*x*x*x)','x',-inf,inf)int('tan(x)/sqrt(x)','x,,0,1)int(,sin(x)/sqrt(l-x*x),;x,,0,1)。
实验五 连接查询参考答案
--创建学生视图if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_stu]') and OBJECTPROPERTY(id, N'IsView') = 1)drop view [dbo].[v_stu]gocreate view v_stuasselect sid, sname, ssexy, sbdate, Datediff(year, sbdate, getdate()) as sage, stele,ugrade.gid, gname, gyear,udept.did, dname, daddr, dtele, demail,uteacher.tid, tname, tsexy, tbdate, tfield, tprof, tele, qq, email, msnfrom ustudent, ugrade, udept, uteacherwhere ustudent.gid=ugrade.gid and ugrade.did=udept.did and ugrade.tid=uteacher.tid--创建选修课程视图if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_sc]') and OBJECTPROPERTY(id, N'IsView') = 1)drop view [dbo].[v_sc]gocreate view v_scasselect ustudent.sname, usc.*, cname, credit, pcid, chour, cattr, cnumfrom ustudent, usc, ucoursewhere ustudent.sid=usc.sid and usc.cid=ucourse.cid--1、显示所有学生的详细信息,包括学号、姓名、性别、年龄、班级名称,入学年份select sid, sname, ssexy, sage, gname, gyearfrom v_stu--2、显示信息科学与技术系同学的名单,包括学号、姓名、性别、年龄、班级名称、入学年份select sid, sname, ssexy, sage, gname, gyearfrom v_stuwhere dname='信息科学与技术系'--3、显示选修了“数据库”的所有同学的学号、姓名select sid, snamefrom v_scwhere cname='数据库'--4、显示白云同学的班主任老师的姓名、联系电话select tname, telefrom v_stuwhere sname='白云'--5、显示白云同学所在院系的名称、办公地点与联系电话select dname, daddr, dtelefrom v_stuwhere sname='白云'--6、统计计算机科学与技术系每个同学已经修完的学分,显示学号、姓名、学分总数select v_stu.sid, v_stu.sname, sum(v_sc.credit)from v_stu, v_scwhere v_stu.sid=v_sc.sid and v_stu.dname='计算机科学与技术系'group by v_stu.sid, v_stu.sname--7、显示李山同学已修课程及期末成绩select sid, sname, cname, score2from v_scwhere sname='李山'--8、显示计算机科学与技术系、信息科学与技术系的班级名称、入学年份、班导名称与联系电话select distinct gname, gyear, tname, telefrom v_stuwhere dname in ('计算机科学与技术系', '信息科学与技术系')--9、显示2006年入学的同学的学号、姓名、班级名称select sid, sname, gnamefrom v_stuwhere gyear='2006'--10、显示已修数据库的同学的学号、姓名及期末成绩select sid, sname, score2from v_scwhere cname='数据库'--11、显示平均成绩75分以上的课程名称与平均成绩select cname, cast(avg(score2) as dec(5,2)) as '平均成绩'from v_scgroup by cid, cnamehaving avg(score2)>75--12、显示平均成绩80分以上同学的学号、姓名与平均成绩select sid, sname, cast(avg(score2) as dec(5,2)) as '平均成绩'from v_scgroup by sid, snamehaving avg(score2)>80--13、显示一周课时数为6节及以上的教师的姓名与研究领域select tname, tfieldfrom uteacherwhere tid in (select tidfrom ujobtablegroup by tidhaving sum(len(timeseg))>=6)--14、按照班级统计期末平均成绩,显示班级名称与平均成绩select gname, cast(avg(score2) as dec(5,2)) as '平均成绩'from v_stu, uscwhere v_stu.sid=usc.sidgroup by gid, gname--15、按照学期统计计算机科学与技术系的期末平均成绩select term, cast(avg(score2) as dec(5,2)) as '平均成绩'from v_stu, uscwhere v_stu.sid=usc.sid and v_stu.dname='计算机科学与技术系' group by term--16、统计每个院系一周的课时数,显示院系名称与课时数select dname, sum(len(timeseg))from ujobtable, uteacher, udeptwhere ujobtable.tid=uteacher.tid and uteacher.did=udept.didgroup by udept.dname--17、显示没有选修任何课程的学生学号、姓名、班级名称select sid, sname, gnamefrom v_stuwhere sid not in (select sid from usc)--18、显示上过李飞老师的课的学生的学号、姓名与联系电话select sid, sname, stelefrom ustudentwhere gid in (select gidfrom ujobtable, uteacherwhere ujobtable.tid=uteacher.tid and uteacher.tname='李飞')--19、显示一周6节课及以上的课程名称、学分select cname, creditfrom ucoursewhere cid in (select cidfrom ujobtablegroup by cidhaving sum(len(timeseg))>=6)--20、显示一周6节课及以上班级名称select gnamefrom ugradewhere gid in (select gidfrom ujobtablegroup by gidhaving sum(len(timeseg))>=6)--21、查询周四上午第3节有课的同学的学号、姓名与班级名称select sid, sname, gnamefrom v_stu, ujobtablewhere v_stu.gid=ujobtable.gid and week='4' and timeseg like '%3%'--22、显示没有不及格课程的班级的名称select distinct gnamefrom ugrade, ustudent, uscwhere ugrade.gid=ustudent.gidand ustudent.sid=usc.sidand ustudent.gid not in (select distinct gidfrom ustudent, uscwhere ustudent.sid=usc.sid and usc.score2<60)--23、显示已修数据库的同学的信息,包括学号、姓名、班级名称select v_stu.sid, v_stu.sname, gnamefrom v_stu, v_scwhere v_stu.sid=v_sc.sid and v_ame='数据库'--24、显示不及格1门以上的同学学号、姓名、门数select sid, sname, count(cid)from v_scwhere score2<60group by sid, snamehaving count(cid)>1--25、统计每个班级的最高分,显示班级名称、成绩select gname, max(score2) as '最高分'from v_sc, ustudent, ugradewhere v_sc.sid=ustudent.sid and ustudent.gid=ugrade.gidgroup by ugrade.gid, gname--26、显示一周8节课及以上的学生的名单,显示学号、姓名、班级select distinct sid, sname, gnamefrom v_stu, ujobtablewhere v_stu.gid in (select gidfrom ujobtablegroup by gidhaving sum(len(timeseg))>8)--27、显示计算机科学与技术1班一周上课的时间、地点,课程名称select week, timeseg, room, cnamefrom ujobtable, ugrade, ucoursewhere ujobtable.gid=ugrade.gid and ujobtable.cid=ucourse.cid and ugrade.gname='计算机科学与技术1班'--28、统计教授上课的课时数,显示姓名、课时数select tname, sum(len(timeseg))from ujobtable, uteacherwhere ujobtable.tid=uteacher.tid and uteacher.tprof='教授'group by uteacher.tid, uteacher.tname--29、显示没有班导师的班级名称、院系名称select gname, dnamefrom ugrade, udeptwhere ugrade.did=udept.did and ugrade.tid is null--30、显示指导两个班级以上的班导的姓名、所指导的班级名称select tname, gnamefrom uteacher, ugradewhere uteacher.tid=ugrade.tidand uteacher.tid in (select uteacher.tidfrom uteacher, ugradewhere uteacher.tid=ugrade.tidgroup by uteacher.tidhaving count(ugrade.gid)>1)。
上机实验五 循环结构程序设计一(带参考答案)
上机实验五循环结构程序设计(一)一.目的要求1.掌握while、do-while、for语句的语法规则、执行流程。
2.比较3种循环语句的异同。
3.按题目要求,完成代码。
二.实验内容思考问题:3种循环的异同点?能否相互转换?for循环控制单元的表达式与while循环中表达式是如何对应的?第1题、分别用while、do-while、for语句编程,求数列前20项之和:2/1,3/2,5/3,8/5,13/8······算法提示:1)定义实变量sum、term、a、b、c,整变量i2)初始化:sum=0,分子a=2,分母b=13)初始化:i(计数器)=14)计算第i项term =a/b5)累加sum=sum+term6)计算c=a+b,更新b= a,更新a=c7)计数器加1,i++8)重复4、5、6、7,直到i>209)输出2位精度的结果编写程序:方法一,用while语句:#include<stdio.h>void main(){float s=0, a=2,b=1,c;int i=1;while(i<=20){s=s+a/b;c=a+b;b=a;a=c;i++;}printf(“s=%.2f”,s);}方法二,用do-while语句:#include<stdio.h>void main(){float s=0,a=2,b=1,c;int i=1;do {s=s+a/b;c=a+b;b=a;a=c;i++;} while(i<=20);printf(“s=%.2f”,s);}方法三,用for语句:#include<stdio.h>void main(){float s=0,a=2,b=1,c;int i;for(i=1;i<=20;i++){s=s+a/b;c=a+b;b=a;a=c;}printf(“s=%.2f”,s);}第2题、计算多项式的值:s=1!+2!+3!+4!+ (20)算法提示:该多项式迭代公式为:term=term*i,sum=sum+term注意:哪些变量需要初始化?变量应采用什么类型?编写程序:#include<stdio.h>void main(){int i;double s=0,fact=1;for(i=1;i<=20;i++){fact*=i;s=s+fact;}printf(“s=%f”,s);}把每一次迭代结果输出,程序应做怎样的修改?第3题、输入x和n,计算并输出下式的值:s=x/1+x/3+……+x/n参考答案:#include <stdio.h>int main(){int n,i;float x,s=0;printf("请输入x,n,以,分隔");scanf("%f,%d",&x,&n);for(i=1;i<=n;i+=2){s+=(x/i);}printf("\ns=%f",s);}第4题、输入一批正整数,求出其中的偶数之和。
C语言实验报告实验五参考答案
C语言实验报告实验五参考答案实验五一维数值数组(参考答案)1、设计程序sy5-1.c,计算n门课程的平均分。
例如:若有5门课程的成绩是:90.5.72.80.61.5.55,则平均分是:71.80.算法分析:先求n门课的成绩总和,(累加求和),再用累和除以课程数。
参考答案:includevoid main()double score[30]。
sum=0,aver;int n,i;printf("Inputn:");scanf("%d",&n);printf("请依次输入%d门课程的成绩",n);for(i=0;i<n;i++)scanf("%lf",&score[i]);sum=sum+score[i];aver=sum/n;printf( "\nAverage scoreis: %5.2f\n"。
aver);运行结果:2、设计步伐sy5-2.c,对输入的10个整数按倒序寄存后输出成效。
算法阐发:利用“半数交流”算法,最前面的元素和末了面的元素交流,逐步向中央挨近。
可利用两个下标变量i和XXX。
参考答案:includeint main()int a[10]={1,2,3,4,5,6,7,8,9,10};int i,j,t;for( i=0,j=9.i<j。
i++,j--)//逐一向中,交换。
直到已没有元素没交换t=a[i]。
a[i]=a[j]。
a[j]=t;}// a[i]-数组前端的数,a[j]-数组后端的数printf("交流后数组元素是:");for(i=0;i<10;i++)printf("%5d",a[i]);//%5d,5透露表现宽度printf("\n");//输出完所有的数后换行return 0;运行结果:3、设计程序sy5-3.c,输入10个整数,找出其中的最大数及其所在的下标。
《无机化学实验》习题及参考答案
引言概述:无机化学实验是化学专业学生培养实际操作能力和实验观察、分析和判断能力的重要环节。
本文将针对无机化学实验中常见的习题进行解析,帮助学生更好地理解实验原理和实验步骤,并提供参考答案供学生参考。
正文内容:1.实验一:酸碱滴定实验1.1题目:测定含有硫酸铵的溶液中铁的浓度。
1.2小点详细阐述:1.2.1实验原理:利用硫酸铵与亚铁离子亚铁铵盐,再通过酸碱滴定法测定亚铁离子的浓度。
1.2.2实验步骤:1.2.2.1取适量溶液,加入过量的硫酸铵和硫酸。
1.2.2.2加入几滴二苯胺指示剂,溶液呈酸性。
1.2.2.3加入氨水使溶液碱性。
1.2.2.4用标准溶液进行滴定直至溶液变色。
1.2.2.5计算亚铁离子的浓度。
1.3参考答案:按照实验步骤操作,滴定终点时记录滴定液的体积,根据滴定反应计算亚铁离子的浓度。
2.实验二:重量分析实验2.1题目:测定含有铁离子的水样中铁离子的含量。
2.2小点详细阐述:2.2.1实验原理:利用重量分析法,通过称量和烘干的方式确定样品中铁离子的质量。
2.2.2实验步骤:2.2.2.1将水样蒸发至干燥,得到样品。
2.2.2.2称取样品质量。
2.2.2.3加入硝酸,使铁离子转化成硫酸铁盐。
2.2.2.4再次烘干样品至恒定质量。
2.2.2.5计算铁离子的含量。
2.3参考答案:根据实验步骤操作,计算铁离子的含量。
3.实验三:络合反应实验3.1题目:测定氨合铜离子的配位数。
3.2小点详细阐述:3.2.1实验原理:利用络合反应,通过比色法测定配位化合物中金属离子的配位数。
3.2.2实验步骤:3.2.2.1取适量氨合铜离子溶液。
3.2.2.2加入过量酸溶液,将氨合铜离子酸化。
3.2.2.3加入过量的氨水,络合反应。
3.2.2.4加入巯基甲脲指示剂,溶液呈红色。
3.2.2.5比色法测定络合物浓度,计算配位数。
3.3参考答案:按照实验步骤操作,通过比色法测定络合物浓度,计算配位数。
4.实验四:还原分析实验4.1题目:测定食盐中氯离子的含量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五字符数组(参考答案)
1、设计程序sy5-1.c,编写程序实现对4个字符串的升序排序。
算法分析:
4个字符串的升序排序,和4个整数的排序一样,可以用冒泡法,唯一不同的是在两两比较时要用字符串的比较函数,而在条件满足时,交换的三条赋值语句,同样需要用字符串的赋值函数。
参考答案:
# include <stdio.h>
# include <string.h>
void main()
{
char str[20],s[4][20];
int i,j;
printf("Input 4 strings:\n");
for(i=0;i<4;i++)//输入字符串
gets(s[i]); //gets函数的参数s[i],表示第i行的首地址,即给第i行赋值for(j=0;j<3;j++) //用冒泡法处理字符串的排序
for(i=0;i<3-j;i++)
if(strcmp(s[i],s[i+1])>0) //strcmp字符串的比较函数
{ strcpy(str,s[i]); //strcmp字符串的比较函数
strcpy(s[i],s[i+1]);
strcpy(s[i+1],str);
}
printf("The sorted string:\n");
for(i=0;i<4;i++)
printf("%s\n",s[i]); //可以用puts(s[i])代替
}
运行结果:
2、设计程序sy5-2.c,写一程序,要求将字符串a的第n个字符之后的内容由字符串b替代,a,b,n由运行时输入。
算法分析:
要将字符串a的第n个字符之后的内容由字符串b替代,这时把字符串看成数组来处理,a的第n个
字符之后即字符数组下标为i=n开始用字符数组b[0],b[1]------b[j]---来替代,直到b数组的‘\0’结束,注意这个循环没有写入b数组的’\0’,所以赋值结束后,还得给字符数组a[i]赋值为’\0’。
参考答案:
# include <stdio.h>
# include <string.h>
void main()
{
char a[100],b[100];
int n,i,j;
printf("Input string a:");
gets(a);
printf("Input string b:");
gets(b);
printf("Input n:");
scanf("%d",&n);
for(i=n,j=0;b[j]!='\0';i++,j++) //a的第n个字符之后的内容由字符串b替代
a[i]=b[j];
a[i]='\0'; //给新的字符数组a末尾加上结束标志’\0’
printf("The result is :%s\n",a);
}
运行结果:
3、设计程序sy5-3.c,写一程序,输入一个字符串,要求将该字符串所有奇数位置上的字母转换为大写字母(若该位置上不是小写字母则不转换),结果输出到显示器。
算法分析:
把字符数组的奇数位置即从小标为i=0,2,4,6---直到s[i]=’\0’结束,逐一去判断当前位置的s[i]是否是小写字母,如果是则转换。
参考答案:
# include <stdio.h>
# include <string.h>
void main()
{
char s[100];
int i;
printf("Input a string:");
gets(s);
for(i=0;s[i]!='\0';i+=2) //i=i+2—步长,即所有的奇数位置
if(s[i]>='a'&&s[i]<='z') //判断s[i]是否是小写字母,如果是转换为大写字母
s[i]-=32;
printf("The result is:%s\n",s);
}
运行结果:
4、设计程序sy5-4.c,写一程序,要求将一个数字字符串转换为一个整数。
例如,有字符串“-1234567”程序将它转换为整数-1234567。
算法分析:
输入数字字符串后,首先要分析整数还是负数,然后逐一去遍历字符串的每一位数字字符并转换为数字并进行累加。
参考答案:
# include <stdio.h>
# include <string.h>
void main()
{
char s[100];
int i=0;
long n=0; //输入的数值字符串长度未限制,所以n定义为长整数
printf("请输入数值字符串付给字符数组s:");
gets(s);
if(s[0]=='-') //如果条件成立,有效数值小标就从1开始
i=1;
for( ; s[i]!='\0';i++) //将字符串中的所有数字字符转换为整数
n=n*10+(s[i]-'0'); //n为绝对值
if(s[0]=='-') //如果是负数,把n还原
n=-n;
printf("n=%ld\n",n);
}
运行结果:
5、设计程序sy5-5.c,有3个字符串,要求找出其中的最小者。
算法分析:
3个字符串的求最值算法和求3个整数的最小值的方法相同,先求前两个数的最小值,再将最小值和第三个数比较。
不同的是比较和赋值时一定要用字符串的比较和赋值函数。
参考答案:
#include <stdio.h>
#include <string.h>
void main()
{
char string[20],str[3][20];
int i;
for(i=0;i<3;i++) //等待从键盘接收3个字符串
gets(str[i]); //str[i]是一维字符数组名
if(strcmp(str[0],str[1])<0) //求前两个字符串的最小值存在数组string中strcpy(string,str[0]);
else
strcpy(string,str[1]);
if(strcmp(str[2],string)<0) //再将前两个的最小值和第三个字符串比较strcpy(string,str[2]);
printf("最小字符串:%s",string);
printf("\n");
}
运行结果:。