实验8-1 指针
数字电子技术基础实验-8选1数据选择器74LS151
数字电⼦技术基础实验-8选1数据选择器74LS1518选1数据选择器74LS151简介74LS151是⼀种典型的集成电路数据选择器,为互补输出的8选1数据选择器,它有3个地址输⼊端CBA,可选择D0~D7 8个数据源,具有两个互补输出端,同相输出端Y和反相输出端W。
74LS151引脚图选择控制端(地址端)为C~A,按⼆进制译码,从8个输⼊数据D0~D7中,选择⼀个需要的数据送到输出端Y,G为使能端,低电平有效。
(1)使能端G=1时,不论C~A状态如何,均⽆输出(Y=0,W=1),多路开关被禁⽌。
(2)使能端G=0时,多路开关正常⼯作,根据地址码C、B、A的状态选择D0~D7中某⼀个通道的数据输送到输出端Y。
如:CBA=000,则选择D0数据到输出端,即Y=D0。
如:CBA=001,则选择D1数据到输出端,即Y=D1,其余类推。
74LS151功能表数据选择器的应⽤数据选择器除实现有选择的传送数据外,还有其他⽤途,下⾯介绍⼏种典型应⽤。
(1)逻辑函数产⽣器从74LS151的逻辑图可以看出,当使能端G=0时,Y是C、B、A和输⼊数据D0~D7的与或函数。
式中mi是C、B、A构成的最⼩项。
显然。
当Di=1时,其对应的最⼩项mi在与或表达式中出现,当Di=0时,对应的最⼩项就不出现。
利⽤这⼀点,不难实现组合逻辑函数。
已知逻辑函数,利⽤数据选择器构成函数产⽣器的过程是,将函数变换成最⼩项表达式,根据最⼩项表达式确定各数据输⼊端的⼆元常量。
将数据选择器的地址信号C、B、A作为函数的输⼊变量,数据输⼊D0~D7,作为控制信号,控制各最⼩项在输出逻辑函数中是否出现,使能端G始终保持低电平,这样8选1数据选择器就成为⼀个3变量的函数产⽣器。
例1 试⽤8选1数据选择器74LS151产⽣逻辑函数解:把式变换成最⼩项表达式:显然D3、D5、D6、D7,都应该等于1,⽽式中没有出现的最⼩项m0,m1,m2,m4的控制变量D0、D1、D2、D4都应该等于0,由此可画出该逻辑函数产⽣器的逻辑图:、例2 试⽤与上例相同的8选1数据选择器产⽣从表中可以看出,凡使L值为1的那些最⼩项,其控制变量应该等于1,即D1、D2、D4、D7等于1(对应XYZ:001、010、100、111),其他控制变量均等于0。
实验8 空气横掠单管强迫对流换热系数测定实验
实验8 空气横掠单管强迫对流换热系数测定实验一、实验目的1. 测算空气横掠单管时的平均换热系数h 。
2. 测算空气横掠单管时的实验准则方程式13Re Pr nNu C =⋅⋅。
3. 学习对流换热实验的测量方法。
二、实验原理 1对流换热的定义对流换热是指在温差存在时,流动的流体与固体壁面之间的热量传递过程。
2、牛顿冷却公式根据牛顿冷却公式可以测算出平均换热系数h 。
即:h=)(f W t t A Q-Q A t=⋅∆ w/m 2·K (8-1)式中:Q — 空气横掠单管时总的换热量, W ; A — 空气横掠单管时单管的表面积,m2;w t — 空气横掠单管时单管壁温 ℃;f t — 空气横掠单管时来流空气温度 ℃;t ∆— 壁面温度与来流空气温度平均温差,℃;3、影响h 的因素1).对流的方式: 对流的方式有两种; (1)自然对流 (2)强迫对流 2).流动的情况:流动方式有两种;一种为雷诺数Re<2200的层流,另一种为Re>10000的紊流。
Re — 雷诺数, Re vud =, 雷诺数Re 的物理定义是在流体运动中惯性力对黏滞力比值的无量纲数。
上述公式中,d —外管径(m ),u —流体在实验测试段中的流速(m/s ),v —流体的运动粘度(㎡/s )。
3).物体的物理性质: Pr — 普朗特数,Pr=αν= cpμ/k 其中α为热扩散率, v 为运动粘度, μ为动力粘度;cp 为等压比热容;k 为热导率; 普朗特数的定义是:运动粘度与导温系数之比 4).换面的形状和位置 5).流体集体的改变 相变换热 :凝结与沸腾4、对流换热方程的一般表达方式强制对流:由外力(如:泵、风机、水压头)作用所产生的流动 强迫对流公式为(Re,Pr)Nu f =自然对流:流体因各部分温度不同而引起的密度差异所产生的流动。
自然对流公式为Nu=f (Gr ,Pr ) 1).Re=vul =雷诺数Re 的定义是在流体运动中惯性力对黏滞力比值的无量纲数Re=UL/ν 。
九年级化学下册第1课时 酸碱指示剂 几种常见的酸课件
乳酸、氨基酸、脂肪酸 碳酸
导入新课
学习目标 1知道石蕊、酚酞两种酸碱指示剂的变色规律; 2.认识几种常见的酸,知道盐酸、硫酸的性质和 用途。
讲授新课
一 酸、碱与指示剂作用
【实验8-1】将8支试管分成两组,每组的4支试管中分别 加入白醋、苹果汁、石灰水和氢氧化钠溶液。向其中一 组试管中加入紫色石蕊溶液,向另一组试管中加入无色 酚酞溶液。观察现象。
实 验 放置一会儿后的现象
脱水性
“白水”写 黑字
木棍变黑
水滴布穿
纸上显出黑色字迹
蘸有浓硫酸的部位变黑 滴有浓硫酸的部位变黑
甚至烧成洞
浓硫酸能夺取含碳、 氢、氧等元素组成 的化合物里的“水 分” ( 氢、氧元素 ) 生成黑色的炭和水。
为什么会产生这些现象?你受到哪些启发? 化学变化
讲授新课
【实验10-4】将浓硫酸沿烧杯壁缓慢地注入盛有水的烧 杯里,用玻璃棒不断搅拌,并用手触碰烧杯外壁,有什 么感觉?
显示红色 不变色
遇酸液 遇酸液
遇碱液 紫色 石蕊溶液
遇碱液 无色 酚酞溶液
显示蓝色 显示红色
讲授新课
著名化学家波义耳在一 次试验中不小心将盐酸溅到 紫罗兰花瓣上,过一会儿他 生活中除了紫罗兰,惊课奇前地大发家现搜,集紫到色的的红花瓣上 色或紫色的花瓣和果实是不是也可以作指示剂 出现了红点点。波义耳对这 呢?你能设计一个的方案试试吗? 一意外的发现做出了各种假 设,经过多次试验验证、探 究普遍规律,终于获得成功。
手的感觉
发热或烫
分 析 浓硫酸溶于水放出大量的热
操作:酸入水、沿杯壁、缓慢倒、不断搅拌 注意:切不可将水倒进浓硫酸里。
讲授新课
稀释浓硫酸不 同操作的比较
实验8-1 数据分析
实验8-1 数据分析一、实验目的1.理解数据挖掘的一般流程。
2.掌握数据探索和预处理的方法。
3.使用PHSTAT软件,结合Excel对给定的数据进行手工预处理。
4.使用WEKA软件,对给定的数据进行预处理。
二、实验内容在D盘中以“班级-学号-姓名”命名一个文件夹,将下发的数据拷贝到该文件夹下,根据不同要求,对下发的文件进行相应的数据分析和处理。
0. 数据集介绍银行资产评估数据,数据里有12个属性,分别是id(编号), age(年龄), sex(性别), region(地区), income(收入),married(婚否), children(子女数), car(是否有私家车), save_act(是否有定期存款), current_act(是否有活期账户), mortgage(是否有资产抵押), pep(目标变量,是否买个人理财计划Personal Equity Plan)。
1.数据探索之数据质量分析新建“1-数据质量分析.xlsx”文件,导入“”文件数据,请你用EXCEL对其进行数据质量分析。
【要求】(1)请找出表中的含有缺失值的记录。
(2)请你用PHSTAT软件绘制“income(收入)”属性的箱线图和点比例图,筛选出异常值。
(3)计算Whisker上限、Whisker下限,并利用高级筛选,找出该属性的异常值记录。
【提示】(1)请找出表中的含有缺失值的记录。
方法1:条件格式法1)选取A1:L601区域。
2)开始 --> 条件格式 --> 新建规则(N)...,在"新建格式规则"对话框中,选择空值。
如图8-1所示。
图8-1 “新建格式规则”对话框3)点击“格式(F)…”按钮,设置特殊格式,高亮显示。
如图8-2所示。
图8-2 设置条件格式方法2:1)缺失值定位。
“开始”“编辑 / 查找和选择”“定位”对话框“定位条件”按钮。
2)“定位条件”对话框选择“空值”,如图8-3所示。
C语言程序设计及实验指导练习及习题参考答案(8--10)
C语言程序设计及实验指导练习及习题参考答案(8--10) 8练习参考答案1、练习8-1.如果有定义:intm,n=5,某p=&m;与m=n等价的语句是BA.m=某p;B.某p=某&n;C.m=&n;D.m=某某p;8-2.设计一个程序计算输入的两个数的和与差,要求自定义一个函数um_diff(floatop1,floatop2,float某pum,float某pdiff),其中op1和op2是输入的两个数,某pum和某pdiff是计算得出的和与差。
解答:#includeintmain(void){floatop1,op2,um,diff;voidum_diff(floatop1,floatop2,float某pum,float某pdiff);printf(“inputop1andop2:“);canf(“%f%f”,&op1,&op2);um_d iff(op1,op2,&um,&diff);printf(“%f+%f=%f;%f-%f=%f\\n”,op1,op2,um,op1,op2,diff);return0;}voidum_diff(floatop1,floatop2,float某pum,float某pdiff){某pum=op1+op2;某pdiff=op1–op2;}8-3.两个相同类型的指针变量能不能相加?为什么?解答:不能。
因为指针变量是一种特殊的变量,指针变量的值存放的是所指向变量的地址,两个地址相加并不能保证结果为一个有效的地址值,因而在C语言中指针变量相加是非法的。
8-4.根据表8.2所示,这组数据的冒泡排序其实循环到第6遍(即n-2)时就已经排好序了,说明有时候并不一定需要n-1次循环。
请思考如何改进冒泡排序算法并编程实现(提示:当发现一遍循环后没有数据发生交换,说明已经排好序了)。
解答:设置一个标志变量flag,进入一轮循环前设置为0,在循环中有发生数据交换就改写flag值为1。
STM8教程实验8-定时器TIM1
STM8教程实验8-定时器TIM1例程⼋ TIM1这⼀节,我们将向⼤家介绍如何使⽤STM8的定时器中的基本定时功能,STM8的定时器功能⼗分强⼤,有TIM1⾼级定时器,也有TIM2、TIM3等通⽤定时器,还有TIM4基本定时器。
在STM8S参考⼿册⾥⾯,定时器的介绍占了1/3的篇幅,⾜见其重要性。
这⼀节,我们分别介绍TIM1的基本定时功能16位⾼级控制定时器(TIM1)简介:TIM1由⼀个16位的⾃动装载计数器组成,它由⼀个可编程的预分频器驱动。
TIM1有4个通道,分别是1到4。
分别对应于四个不同的捕获/⽐较通道。
⾼级控制定时器适⽤于许多不同的⽤途:基本的定时测量输⼊信号的脉冲宽度(输⼊捕获)产⽣输出波形(输出⽐较,PWM和单脉冲模式)对应与不同事件(捕获,⽐较,溢出,刹车,触发)的中断与TIM5/TIM6或者外部信号(外部时钟,复位信号,触发和使能信号)同步⾼级控制定时器⼴泛的适⽤于各种控制应⽤中,包括那些需要中间对齐模式PWM的应⽤,该模式⽀持互补输出和死区时间控制。
⾼级控制定时器的时钟源可以是内部时钟,也可以是外部的信号,可以通过配置寄存器来进⾏选择。
TIM1的时基单元包括,如下图所⽰:● 16位向上/向下计数器● 16位⾃动重载寄存器●重复计数器●预分频器16位计数器,预分频器,⾃动重载寄存器和重复计数器寄存器都可以通过软件进⾏读写操作。
⾃动重载寄存器由预装载寄存器和影⼦寄存器组成。
可在在两种模式下写⾃动重载寄存器:●⾃动预装载已使能(TIM1_CR1寄存器的ARPE位置位)。
在此模式下,写⼊⾃动重载寄存器的数据将被保存在预装载寄存器中,并在下⼀个更新事件(UEV)时传送到影⼦寄存器。
●⾃动预装载已禁⽌(TIM1_CR1寄存器的ARPE位清除)。
在此模式下,写⼊⾃动重载寄存器的数据将⽴即写⼊影⼦寄存器。
更新事件的产⽣条件:●计数器向上或向下溢出。
●软件置位了TIM1_EGR寄存器的UG位。
电路实验8、9、10注意事项
交流电源使用注意事项:
2. 调节时切忌动作过大
操作: 操作:在交流电源通电且已经调零的情况下,接好电 路,然后顺时针稍微旋转一下输出旋钮,同时注意观 察交流电源的电压指示表和电流指示表,确定无异常 之后,再继续调节,使电路中的交流电流表的示数达 到指定值,再进行记录。 说明: 说明:若观察到交流电源的电压指示表指针指零,而 交流电源的电流指示表示数很大甚至满偏,说明电路 中有短路现象,应立即逆时针旋转输出旋钮,使交流 电源输出为零,检查电路。排除故障之后,方可继续 操作。
观察到此现象说明 电路中有短路,应 立即调零、检查电 路、排除故障。
交流电源使用注意事项:
3. 通电时间不要长
操作: 操作:在调节好所需电流,记录下电压、相位角或者 功率值之后,应及时将交流电源调零。尤其是在记完 最后一个步骤的数据之后。 说明: 说明:实验中用到的0.8A是比较大的电流,测量用的 R、L、C均会发热,特别是R、L,时间过长,发热过 大,会将元件R的外壳熔变形,而且在用手取元件时, 可能会被烫伤。另外,元件发热也会影响测量数值。
5. 特别是在装置架上的AC0~24V损坏的情况下, 特别是在装置架上的AC0 24V损坏的情况下 AC0~ 损坏的情况下, 要使用台式交流源(如下图所示) 更要注意: 要使用台式交流源(如下图所示)时,更要注意:
(1)它的调节旋钮虽然有指示(短白线),但是它指零时, 未必电源输出就是零,还是要强调:空载+通电确认 (2)它只有电压输出指示表 (3)它的电压输出可以达到50V,一不小心电压加大了,更 容易出问题、发生危险
交、直流稳压电源源的输 出电压指示表 交流电源的输 出电流指示表
挂箱的电 源开关
交流电源的 输出调节旋钮
交流电源使用注意事项:
C语言课程 课后练习 参考答案
实验6-1课后练习:1.选择题(1)B (2)C(3)A(4)D(5)C (6)C (7)D 2.阅读程序,写出运行结果3020103.阅读程序,写出运行结果20104. 阅读程序,写出运行结果1 2 35.阅读程序,写出运行结果7 8 96.阅读程序,写出运行结果97.阅读程序,写出运行结果#include <stdio.h>int digit(int n,int k);int main(){ int n,k;printf("Enter n,k: ");scanf("%d %d",&n,&k);printf("\nThe result is:%d\n",digit(n,k));return 0;}int digit(int n,int k){ int d;while(k>0){ d=n%10;n=n/10;k--;}return d;}8.程序填空#include <stdio.h>double max(double a,double b);int main(){ double x,y;prinf("please input two double numbers:"); scanf("%lf %lf"),&x,&y;printf("%.2f\n",max(x,y));return 0;}double max(double a,double b){return (a>b?a:b);}9.原版#include <stdio.h>int check(int n,int d);int main(){ int n,d;printf("Enter n,d: ");scanf("%d %d",&n,&d);if(check(n,d)==1)printf("The digit %d is in data %d",d,n); elseprintf("The digit %d is not in data %d",d,n); return 0;}int check(int n,int d){ int temp;while(n>0){ temp=n%10;if(temp==d)return 1;n=n/10;}return 0;}改进版#include <stdio.h>int check(int n,int d);int main(){ int n,d,position;printf("Enter n,d: ");scanf("%d %d",&n,&d);position=check(n,d);if(check(n,d)>0)printf("The digit %d is in data %d,position is %d",d,n,position);elseprintf("The digit %d is not in data %d",d,n);return 0;}int check(int n,int d){ int temp,position=1;while(n>0){ temp=n%10;if(temp==d)return position;position++;n=n/10;}return 0;}实验6-2课后练习1.选择题(1)B (2)C(3)B(4)B(5)C (6)B (7)D (8)D (9)C(10)B(11)A2.填空(1) 函数中声明有局部变量,若声明中带有static,则该局部变量采用静态存储方式,在编译时分配空间,若函数中未显式设定初始值,则系统将其自动初始化,函数被调用结束时,该空间不释放。
STM8教程实验8-定时器TIM1
例程八 TIM1这一节,我们将向大家介绍如何使用STM8的定时器中的基本定时功能,STM8的定时器功能十分强大,有TIM1高级定时器,也有TIM2、TIM3等通用定时器,还有TIM4基本定时器。
在STM8S参考手册里面,定时器的介绍占了1/3的篇幅,足见其重要性。
这一节,我们分别介绍TIM1的基本定时功能16位高级控制定时器(TIM1)简介:TIM1由一个16位的自动装载计数器组成,它由一个可编程的预分频器驱动。
TIM1有4个通道,分别是1到4。
分别对应于四个不同的捕获/比较通道。
高级控制定时器适用于许多不同的用途:基本的定时测量输入信号的脉冲宽度(输入捕获)产生输出波形(输出比较,PWM和单脉冲模式)对应与不同事件(捕获,比较,溢出,刹车,触发)的中断与TIM5/TIM6或者外部信号(外部时钟,复位信号,触发和使能信号)同步 高级控制定时器广泛的适用于各种控制应用中,包括那些需要中间对齐模式PWM的应用,该模式支持互补输出和死区时间控制。
高级控制定时器的时钟源可以是内部时钟,也可以是外部的信号,可以通过配置寄存器来进行选择。
TIM1的时基单元包括,如下图所示:● 16位向上/向下计数器● 16位自动重载寄存器● 重复计数器● 预分频器16位计数器,预分频器,自动重载寄存器和重复计数器寄存器都可以通过软件进行读写操作。
自动重载寄存器由预装载寄存器和影子寄存器组成。
可在在两种模式下写自动重载寄存器:● 自动预装载已使能(TIM1_CR1寄存器的ARPE位置位)。
在此模式下,写入自动重载寄存器的数据将被保存在预装载寄存器中,并在下一个更新事件(UEV)时传送到影子寄存器。
● 自动预装载已禁止(TIM1_CR1寄存器的ARPE位清除)。
在此模式下,写入自动重载寄存器的数据将立即写入影子寄存器。
更新事件的产生条件:●计数器向上或向下溢出。
●软件置位了TIM1_EGR寄存器的UG位。
●时钟/触发控制器产生了触发事件。
实验1-8 库珀的表象心理旋转实验
实验1-8 库珀的表象心理旋转实验目的1、通过重复库珀等人的实验,研究不同角度正反字母“R”的心理旋转反应时,证实表象心理旋转的存在。
2、熟悉和掌握反应时测量技术在研究信息加工过程中的应用。
背景知识表象是大脑对客观事物的直观表征。
20世纪70年代以来,关于表象的研究迅速发展,其中表象心理旋转就是表象研究的一个重要的方面。
1973年,库珀(Copper)等人用不同倾斜角度的正的和反的字母来研究表象的旋转。
实验要求被试在看到呈现的字母后,不管其具体方位和倾斜角度如何,尽快判断该字母是正的还是反的,并按键作出反应。
如果反应错误,该次试验在以后还会重复,直到反应正确。
结果表明:当图片旋转180°时,反应时最长(无论正反),而当图片旋转0°和360°时(即正位图片),反应时最短。
这说明样本偏离正位的度数越大,所需的心理旋转越多,时间也就越长。
对表象的问题,前人已经进行过了很多研究,也提出了不少理论。
其中比较有影响的有结构理论、功能理论和相互作用理论。
结构理论的主要观点是表象和知觉在内部结构和产生机制方面有某些类似。
他们应用了一种称为“视觉缓冲器”的结构来解释表象产生的机制,这一结构中包含无数“细胞”组成的一个阵列,在产生视觉表象时,这个阵列中的一些相应的“细胞”被激活,从而使人产生相应的表象。
人在视察一个表象时,“缓冲器”中的不同细胞就被激活,而这些相应的“缓冲器”曾以相同的方式产生过相应的实际知觉。
表象具有一定的空间延展度和空间分辨率(Kosslyn,Ball&Reiser,1978;Pinker&Kosslyn,1978)。
功能理论主要研究的是表象的功能作用,以及我们是如何操纵表象进行知觉活动的。
该理论认为,当我们在头脑中比较两个物体时通常是通过想像这两个物体的重叠来进行的。
如果有必要的话,先想像其中一个,对它进行操作(如旋转)以便和另一个相匹配。
这种操作与对真实物体的操作是一致的。
实验八带传动的滑动率和效率测定
实验八 带传动的滑动率和效率测定一、概述带传动是靠带与带轮间的摩擦力来传递运动和动力的。
在传递转矩时传动带的紧边和松边受到的拉力不同。
由于带是弹性体,受力不同时,带的变形量也不相同。
紧边拉力大,相应的伸长变形量也大。
在主动轮上,当带从紧边转到松边时,拉力逐渐降低,带的弹性变形逐渐变小而回缩,带的运动滞后于带轮。
也就是说,带与带轮之间产生了相对滑动。
而在从动轮上,带从松边转到紧边时,带所受的拉力逐渐增加,带的弹性变形量也随之增大,带微微向前伸长,带的运动超前于带轮。
带与带轮间同样也发生相对滑动。
这种由于带的弹性变形而引起的带与带轮之间的滑动,称为弹性滑动。
这种弹性滑动在带传动中是不可避免的,其结果是使从动带轮的圆周速度低于主动轮的圆周速度,使传动比不准确,并引起带传动效率的降低以及带本身的磨损。
带传动中滑动的程度用滑动率ε表示,其表达式为%100)1(1122121⨯-=-=n D nD v v v ε (8-1) 式中21v v 、分别为主动轮、从动轮的圆周速度,m/s ;21n n 、分别为主动轮、从动轮的转速,r/min ;21D D 、分别为主动轮、从动轮的直径,mm 。
如图8-1所示,带传动的滑动随有效拉力(有效圆周力)F 的增减而增减,表示这种关系的F -ε曲线称为滑动曲线(曲线1)。
当有效拉力F 小于临界点F '时,滑动率ε与有效拉力F 成线性关系,带处于弹性滑动工作状态。
当有效拉力F 超过F '点以后,滑动率急剧上升,此时带处于弹性滑动与打滑同时存在的工作状态。
当有效拉力等于m ax F 时,滑动率近于直线上升,带处于完全打滑的工作状态。
图中曲线2为带传动的效率曲线,即表示带传动效率η与有效拉力F 之间关系的F -η曲线。
当有效拉力增加时,传动效率逐渐提高,当有效拉力超过点F '时以后,传动效率急剧下降。
带传动最合理的状态,应使有效拉力F 等于或稍低于临界点F ',这时带传动的效率最高,滑动率%2~%1=ε,并且还有余力负担短时间(如起动)的过载。
实验8-1 指针基本概念
实验8-1 指针基本概念【知识点回顾】1.指针和指针变量1)内存地址:内存存储单元的编号,从0开始,以字节为单位2)指针:一个内存地址有且仅有一个内存存储单元对应,即一个地址“指向”一个单元,故将地址称为指针3)指针变量:C语言中允许将地址作为数据值,用一个变量来存放。
存放指针的变量称为指针变量。
2.指针变量使用三步骤1)声明:一般形式如:类型说明符*指针变量名;2)初始化:一般形式如:指针变量=&变量;3)访问数据:一般形式如:*指针变量3.指针运算符1)间接访问运算符“*”2)取地址运算符“&”4.printf和scanf是否使用指针对比:假定有int x,y;int *px=&x,*py=&y;1)不使用指针的输入输出语句:scanf(“%d %d”,&x,&y);printf(“%d %d”,x,y);2)使用指针的输入输出语句:scanf(“%d %d”,px,py);printf(“%d %d”,*px,*py);5.打印地址信息:1)使用%p占位符2)使用%x占位符【典型例题】1.例题1,指针的基本使用方法#include <stdio.h>int main(){int data=100;//第一种指针变量定义方式:声明与初始化分两步完成int * pd; //声明指针变量pd=&data; //初始化指针变量,注意细节,data变量必须之前声明过//下面是第二种指针变量定义方式:声明与初始化一步完成//int * pd = &data; //声明指针变量,同时初始化指针变量printf("Direct access: data = %d\n", data); //变量的直接访问printf("Indirect access: data = %d\n",*pd); //变量的间接访问printf("The address of data is %p\n", &data);//变量的地址输出printf("The address of data is %p\n",pd); //指针变量的输出return 0;}程序运行效果如下:2.例题2,两数求和。
C-lab
实验目的:
1.学会独立使用该系统 2.了解在该系统上如何编辑、编译、连接和运行一 个 C程序; 3.通过运行简单的容
1. 2. 参考P370,熟悉上机运行C方法; 完成第一章中的3个例题;
注:将例1.2中"int a,b,sum;"和"sum=a+b;"的 ";"去掉进行编译,仔细分析编译信息窗口,进 行修改调试,直到不出现错误。
实验内容:
1.P183-例7.5 P193-例7.9 例7.10 3.完成课后习题:5、8、18
(提示:year%4==0&&year%100!=0||year%400==0)
P201-例7.14
2.用函数调用方法实现十个数由大到小排序。
(提示:year%4==0&&year%100!=0||year%400==0)
P201-例7.14
2.用函数调用方法实现十个数由大到小排序。
实验8 指针
实验目的:
1. 掌握调用函数是实参与形参的对应关系,以及
‚值传递‛‚地址传递‛的方式。 2. 熟悉怎样利用函数实现指定的任务。 3. 熟悉函数的嵌套调用的方法。 4. 熟悉全局变量和局部变量的概念和用法。
printf(‚圆周长:
}
l=%7.3f\n‛,l);
实验4 选择结构程序设计
实验目的:
1.了解C语言表示逻辑量的方法(0代表假,非0代 表真); 2. 学会正确使用逻辑运算符和逻辑表达式; 3. 熟练掌握if语句的使用(包括if语句的套); 4. 熟练掌握多分支选择语句—switch语句; 5. 结合程序掌握一些简单的算法。 实验内容:
C语言程设计实验与案例周信东主编实验八 指针
实验6 指针学号:1700200224姓名:莫新锋实验日期:一、实验目的和要求(1)掌握指针的概念、指针变量定义和引用。
(2)掌握指针的运用方法。
(3)掌握数组的指针和指向数组的指针变量。
(4)掌握指针与函数的关系。
(5)能正确使用字符串的指针和指向字符串的指针变量。
(6)了解指向函数的指针。
(7)了解指向指针变量的指针的概念及其使用方法。
二、实验内容完成实验指导书中的实验八“基础部分”和“增强部分”的题目。
实验九的内容由同学自行选作。
三、实验步骤及结果【基础题】:Ex8-1请在下面分别插入改正错误后的源程序代码及运行成功时的画面源程序代码:请在此粘贴修改后正确的程序代码。
、#include<stdio.h>//#define N 12void main(){int j, a[12],*p=a;//p=&a[N];for(j=1;j<=12;j++)scanf("%d",p);for(j=1;j<=12;j++){printf("%d",p++);if(j%4==0)printf("\n");}}运行结果:请在此粘贴本程序运行结果的截图Ex8-2请在下面插入该程序的运行结果的画面:运行结果:#include<stdio.h>swap(int *pl,int *p2){int p;p=*pl;*pl=*p2;*p2=p;}void main(){int n1,n2,n3;int *p1,*p2,*p3;printf("Input n1,n2,n3: ");scanf("%d,%d,%d",&n1 ,&n2,&n3);p1=&n1;p2=&n2;p3=&n3;if (n1>n2)swap(p1,p2);if (n1>n3)swap(p1,p3);if(n2>n3)swap(p2,p3);printf("The result is:%d %d %dn",n1,n2,n3);}请在此粘贴本程序运行结果的截图试用解释本程序是如何通过指针参数p1、p2改变主函数main中的变量n1、n2、n3的值的?请回答问题将n1,n2,n3的地址分别给p1,p2,p3,通过对n1,n2,n3两两的比较,调用函数swap进行排序,进而得到新的地址排序后输出【增强题】:Eh8-1请在下面分别完成本题的源程序代码及运行结果的画面:源程序代码:请在此粘贴完成本题的程序源代码。
单片机实验8 P1口应用实验
实验8 P1口应用实验
P1.0---P1.7八个I/O 口接八只LED 发光管
口线状态为”1”LED 亮, 试编程实现每次点
亮一只LED 并左循环连续点亮八只LED
假设P1.0在左边。
CYC:MOV A,#01H LOP:MOV P1,A
ACALL DEL Y
RL A
SJMP LOP
DELY:MOV R6,#100
MOV R7,#250 LOP1:NOP
NOP
DJNZ R7,LOP1
MOV R7,#250
DJNZ R6,LOP1 RET
2、实验步
1)打开PV32编程序。
汇编正确进入调试界面。
否则修改程序重新汇编直到通过。
2)打开P1口窗口给P1初赋值
3)单步调试观察并记禄寄存器、内存的变化。
单步根踪延时程序排除死循环。
观察流水灯是否正确,判断程序是否正确。
若发现问题重返编辑界面,修改、存盘、汇编。
返回调试界面调试通过。
单步调试时可将延时程序缩短令(R6)=1,(R7)=1,
4)设断点调试、延时程序恢复为0.5秒、记禄结果。
5)若每次点亮两个灯修改程序再做一遍
3.实验报告
1.写出程序流程图、程序清单
2.根据记渌数据给程序加注解
3.调试心得。
c语言程序设计教程(第2版)课后题及模拟题参考答案
c语⾔程序设计教程(第2版)课后题及模拟题参考答案c语⾔程序设计教程(第2版)课后题及模拟题参考答案习题1 (4)1-1 填空题 (4)1-2 思考题 (4)1-3 编程题 (5)习题2 (6)2-1 单选题 (6)2-2 思考题 (6)习题3 (7)3-1 选择题 (7)3-2 填空题 (7)3-3 编程题 (8)习题4 (11)4-1单选题 (11)4-2填空题 (11)4-3 编程题 (11)习题5 (16)5-1单选题 (16)5-2填空题 (16)5-3 编程题 (16)习题6 (22)6-1单选题 (22)6-2填空题 (22)习题7 (25)7-1单选题 (25)7-2填空题 (25)7-3 编程题 (25)习题8 (26)8-1单选题 (26)8-2填空题 (26)8-3 编程题 (26)习题9 (30)9-1单选题 (30)9-2填空题 (30)9-3 编程题 (30)习题10 (38)10-1单选题 (38)10-2填空题 (38)10-3 编程题 (38)习题11 (41)11-1单选题 (41)11-2填空题 (41)习题12 (42)12-1单选题 (42)12-2 填空题 (42)实验1 熟悉Visual C++6.0可视化集成开发环境 (43)实验2 顺序结构程序设计 (43)实验3 选择结构程序设计 (43)实验4 循环结构程序设计 (44)实验5 函数 (47)实验6 数组 (54)实验7 指针 (58)实验8 结构体和共⽤体 (61)实验9 ⽂件 (63)实验10 综合编程 (64)模拟试卷(⼀)参考答案 (65)模拟试卷(⼆)参考答案 (67)习题11-1 填空题1. 函数2. 主函数main(),主函数main()3. 主函数main()4. 函数⾸部,函数体5. {, }6. /*, */7. 顺序结构,选择结构,循环结构8. .c, .obj, .exe1-2 思考题1. 结构化程序设计是指:为使程序具有⼀个合理的结构以保证程序正确性⽽规定的⼀套如何进⾏程序设计的原则。
实验八 IO口驱动实验
实验八I/O口驱动实验【实验目的】1、了解PXA270微处理器GPIO的功能2、熟悉PXA270微处理器GPIO驱动程序的编写方法3、掌握驱动程序的加载过程和方法【实验原理】Linux以模块的形式加载设备类型,通常来说一个模块对应一个设备驱动,因此是可以分类的。
将模块分成不同的类型或者类并不是一成不变的,开发人员可以根据实际工作需要在一个模块中实现不同的驱动程序。
一般情况,一个设备驱动对应一类设备的模块方式,这样便于多个设备的协调工作也利于应用程序的开发和扩展。
设备驱动在准备好以后可以编译到内核中(参考实验四的内容),在系统启动时和内核一起启动,这种方法在嵌入式Linux系统中经常被采用。
通常情况下设备驱动的动态加载更为普遍(参考实验七的内容),开发人员不必在调试过程中频繁启动机器就能完成设备驱动的开发工作。
设备驱动在加载时首先调用入口函数init_module(),该函数完成设备驱动的初始化工作,比如寄存器置位、结构体赋值等一系列工作,其中最重要的一个工作就是向内核注册该设备,对于字符设备调用register_chrdev()完成注册,对于块设备需要调用register_blkdev()完成注册。
注册成功后,该设备获得了系统分配的主设备号、自定义的次设备号,并建立起于文件系统的关联。
设备在卸载时需要回收相应的资源,令设备的响应寄存器复位并从系统中注销该设备,字符设备调用unregister_chrdev()、块设备调用unregister_blkdev()。
系统调用部分则是对设备的操作过程,比如open、read、write、ioctl等。
图8-1为一个设备驱动模块动态挂载、卸载和系统调用的全过程。
图8-1 设备驱动在内核中的挂载、卸载和系统调用过程设备驱动程序负责将应用程序如读、写等操作正确无误的传递给相关的硬件,并使硬件能够做出正确反应的代码,因此在编写设备驱动程序时,必须要了解相应的硬件设备的寄存器、IO口及内存的配置参数。
固结试验
固结试验(快速法)(一)试验目的测定试样在侧限与轴向排水条件下的压缩变形△h和荷载P的关系,以便计算土的单位沉降量S1、压缩系数a v和压缩模量E s等。
(二)试验原理土的压缩性主要是由于孔隙体积减少而引起的。
在饱和土中,水具有流动性,在外力作用下沿着土中孔隙排出,从而引起土体积减少而发生压缩,试验时由于金属环刀及刚性护环所限,土样在压力作用下只能在竖向产生压缩,而不可能产生侧向变形,故称为侧限压缩。
(三)仪器设备1.固结仪:如附图8-1所示,试样面积30cm2,高2cm。
2.量表:量程10mm,最小分度0.01mm。
3.其它:刮土刀、电子天平、秒表。
(四)操作步骤(1)切取试样:用环刀切取原状土样或制备所需状态的扰动土样。
(2)测定试样密度:取削下的余土测定含水率,需要时对试样进行饱和。
(3)安放试样:将带有环刀的试样安放在压缩容器的护环内,并在容器内顺次放上底板、湿润的滤纸和透水石各一,然后放入加压导环和传压板。
(4)检查设备:检查加压设备是否灵敏,调整杠杆使之水平。
·16·(5)安装量表:将装好试样的压缩容器放在加压台的正中,将传压钢珠与加压横梁的凹穴相连接。
然后装上量表,调节量表杆头使其可伸长的长度不小于8mm,并检查量表是否灵活和垂直(在教学试验中,学生应先练习量表读数)。
(6)施加预压:为确保压缩仪各部位接触良好,施加1kPa的预压荷重,然后调整量表读数至零处。
(7)加压观测:1)荷重等级一般为50、100、200、400kPa。
2)如系饱和试样,应在施加第一级荷重后,立即向压缩容器注满水。
如系非饱和试样,需用湿棉纱围住加压盖板四周,避免水分蒸发。
3)压缩稳定标准规定为每级荷重下压缩24小时,或量表读数每小时变化不大于0.005 mm认为稳定(教学试验可另行假定稳定时间)。
测记压缩稳定读数后,施加第二级荷重。
依次逐级加荷至试验结束。
4)试验结束后迅速拆除仪器各部件,取出试样,必要时测定试验后的含水率。
实验8功率因数提高的实验
&电工基础实验指导书(两种形式任选一种)硬件实验实验一基尔霍夫定律一、实验目的:1、验证基尔霍夫的电流定律及电压定律。
2、学习使用电流表及电压表。
二、实验原理:1、第一定律(节点电流定律):电路中,任意时刻流入任一个节点的电流恒等于流出这个节点的电流。
若规定流入节点的电流为正,流出节点的电流为负值,则:0∑I。
=2、第二定律(回路电压定律):沿着任一个闭合回路绕行一周,电路中各元件上电压降的代数和恒为零,即:0∑U。
=说明:在分析和计算电路时,按选定的回路绕行方向列方程,若所得的值为正值时,则表明实际的电流方向和电压方向与图中所标的参考方向一致,若为负值则相反。
E2实验原理图三、实验仪器及设备1、直流电源一台(J1202)2、干电池一节3、电压表C19—V一只4、电流表C19—mA三只5、电阻三个6、开关两个7、综合实验板及连接导线若干。
四、实验内容和步骤321R R R 、、,按给定的实验值记下数据。
K 12b实验接线图E1—12V E2—1.5V图中:mA1 用0—250—500mA 表接250mA 量程。
mA2 用0—150—300mA 表接150mA 量程。
mA3 用0—100—200mA 表接100mA 量程。
1、 看懂原理图后,按照实验接线图,将所有实验的仪器仪表及电器 元件接到综合实验板上,请老师检查。
2、 用双手同时合上K1、k2开关,观察三个电流表(若指针有反向指 示,立即关闭k1、k2, 将电流表正负极调换,再重新合上K1、K2)并将三个电流数值记录下来。
3、 用电压表的15V 量程,测量回路各点(元件上电压)的电压值及 E 1、E 2,并记入下表之中。
五、填写实验报告1、用实验测得各支路电流值,计算“b ”点处I 为多少,填入表中。
2、计算各支路电流为多少,并与实验测的各值进行比较,有无误差,为什么?3、计算各回路压降值的代数是否为零?为什么? 六、注意事项:1、测量与计算,记好各电流值的正负值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验8-1 指针(一)
1
【实验目的】
(1)掌握指针的概念和定义和使用指针变量的方法
(2)能正确使用数组的指针和指向数组的指针变量
(3)能正确使用字符串的指针和指向字符串的指针变量
【实验要求】
(1)熟练掌握和使用一维数组的指针和指向一维数组的指针变量
(2)能正确使用字符串的指针和指向字符串的指针变量
【实验环境】
(1) Microsoft XP操作系统
(2) Microsoft VC++ 6.0
【实验内容】
1、两个数比较/acmhome/problemdetail.do?&method=showdetail&id=1002
题目描述:求2个数中较大者。
输入:第一行为测试的数据组数N,接下来的N行分别是两个待比较的整数
输出:输出N行,每一行的值为每组数中较大的整数
样例输入
2
1 2
15 10
样例输出
2
15
2、三个数排序/JudgeOnline/problem.php?id=1511
题目描述:输入三个整数,按由小到大的顺序输出。
输入:三个整数
输出:由小到大输出成一行,每个数字后面跟一个空格
样例输入:2 3 1
样例输出:1 2 3
3、字符串排序/acmhome/problemdetail.do?&method=showdetail&id=1484
描述:输入3个字符串,按字典序从小到大进行排序。
输入:输入数据有一行,分别为3个字符串,用空格分隔。
输出:输出排序后的三个字符串,用空格分隔。
样例输入:abcd cdef bcde
样例输出:abcd bcde cdef
4、重置最值/JudgeOnline/problem.php?id=1513
题目描述:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
写三个函数;①输入10个数;②进行处理;③输出10个数。
输入:10个整数
输出:整理后的十个数,每个数后跟一个空格(注意最后一个数后也有空格)
样例输入:2 1 3 4 5 6 7 8 10 9
样例输出:1 2 3 4 5 6 7 8 9 10
5、复制部分字符串/JudgeOnline/problem.php?id=1516
题目描述:有一字符串,包含n个字符。
写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。
输入:数字n 一行字符串数字m
输出:从m开始的子串
样例输入:
6
abcdef
3
样例输出:
cdef
6、删除指定字符/JudgeOnline/problem.php?id=1429
题目描述:编制函数del_char。
函数原型为void del_char(char *,char),函数的功能是删除a指向的字符串中值为ch的字符,例如从字符串"AscADef"中删除'A'后,字符串为"scDef"。
输入:
需要删除的字符ch
需要处理的字符串
输出:
处理后的字符串
样例输入
A
AscADef
样例输出
scDef
7、出现最多的整数/JudgeOnline/problem.php?id=2313
题目描述:输入10个整数存入一维整型数组,统计并输出其中出现次数最多的整数和出现的次数。
功能由函数Num(int a[])完成。
输入:输入10个整数
输出:出现次数最多的数及出现次数,如果有多个数出现次数一样,输出最前面的次数最大的数
样例输入:
100
8
100
8
7
9
5
6
7
样例输出:
100
2
8、数值统计2/JudgeOnline/problem.php?id=2311
题目描述:从键盘输入若干数据整数(零表示结束),统计出数据个数,以及最大值、最小值和平均值。
用一个函数实现数据输入的功能,其首部为:
int Input(int s[])
Input的参数为输入的数据,函数返回值大于0表示该行输入的数据个数,0表示输入结束。
用一个函数实现求最大值、最小值和平均值的功能,首部为:
void statistics(int n, int s[], int *max, int *min, float *avg)
输入:从键盘输入若干数据整数(零表示结束)
输出:统计出数据个数,以及最大值、最小值和平均值
样例输入:1 2 3 4 5 0
样例输出:
Num=5
Max=5
Min=1
Avg=3.000
9、手动字符串比较/JudgeOnline/problem.php?id=2265
题目描述:编写一函数,实现两个字符串的比较。
即自己写一个strcmp函数,函数原型为strcmp(char *p1,char *p2),设p1指向字符串s1,p2指向字符串s2。
要求当s1=s2时,返回值为0;(s1,s2长度相等并且不超过100) 若s1!=s2,返回它们两者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第2个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值,反之输出负值。
(本题要求用指针来做)
输入:第一行为N,表示接下来有N组测试数据。
接下来的N行表示N组测试数据,每组测试数据包含两个字符串,中间用空格隔开,并且保证每个字符串中的字符都是小写字母。
输出:输出两个字符串比较的结果。
样例输入:
2
abcdef aaaaaa
a z
样例输出:
1
-25
10、排序/acmhome/problemdetail.do?&method=showdetail&id=1479
描述:输入10个大小不同的整数,将它们从小到大排序后输出,并给出现每个元素在原来序列中的位置。
输入:输入数据有一行,包含10个整数,用空格分开。
输出:输出数据有两行,第一行为排序后的序列,第二行为排序后各个元素在原来序列中的位置。
样例输入:
1 2 3 5 4 6 8 9 10 7
样例输出:
1 2 3 4 5 6 7 8 9 10
1 2 3 5 4 6 10 7 8 9。