实验九 函数

合集下载

实验九散列函数实验

实验九散列函数实验

实验九散列函数实验【实验思考】参照实验原理,根据算法跟踪实验画出各个算法函数的主要流程图思考各个散列算法的安全性和优缺点【实验原理】散列函数是一种单向密码,即是一个从明文到密文的不可逆映射,只有加密过程,不可解密;同时散列函数可以将任意长度的输入经过变换以后得到固定长度的输出。

散列函数在完整性认证和数字签名等领域有广泛应用。

散列函数应满足以下要求:(1)算法公开,不需要密钥。

(2)具有数据压缩功能,可将任意长度的输入转换为固定长度的输出。

(3)已知m,容易计算出H(m)。

(4)给定消息散列值H(m),要计算出m在计算上是不可行的。

(5)对任意不同的输入m和n,它们的散列值是不能相同的。

一、MD5算法MD5(Message-Digest Algorithm 5)即信息-摘要算法,是MD4算法的改进;算法的输入为任意长度的消息,分为512比特长的分组,输出为128比特的消息摘要。

处理过程如下:(1)对消息进行填充,使其比特长度为n512+448(n为正整数),填充方式是固定的:第一位为1,其后各位为0。

(2)附加消息长度,使用上一步骤留出的64比特以小端(最低有效字节/位存储于低地址字节/位)方式来表示消息被填充前的长度,若消息长度大于264,则以264为模数取模。

(3)对消息摘要缓冲区初始化,算法使用128比特长的缓冲区来存储中间结果和最终散列值,将缓冲区表示成4个32比特长的寄存器A、B、C、D,每个寄存器以小端方式存储数据,初始值为(十六进制,低位字节在前)A=01234567,B=89ABCDEF,C=FEDCBA98,D=。

(4)以分组为单位对消息进行处理,每一个分组都经过压缩函数HMD5处理;HMD5有4轮处理过程,每轮有16步迭代,4轮处理过程的处理结构一样,所用逻辑函数不同,分别表示为F、G、H、I;每轮的输入为当前处理的消息分组和缓冲区当前的值,输出仍存放在缓冲区中。

最后第四轮的输出与第一轮输入的缓冲区值V相加,相加时将V看做4个32比特的字,每个字与第四轮输出的对应的字按模232相加,相加结果为HMD5的输出。

《C程序设计》教学大纲

《C程序设计》教学大纲

理论课程教学大纲《C程序设计基础》教学大纲课程编号:110041总学时:64(其中,讲课:48;实验:16)学分:3实践教学:0.5周修读专业:信息工程大纲文本一、课程的主要内容第1章C语言概述1.1C语言出现的历史背景1.2C语言的特点1.3简单的C程序设计1.4C程序的上机步骤重点:C语言特点;简单的C程序难点:C程序及其上机步骤第2章数据类型、运算符与表达式2.1 C的数据类型2.2 常量和变量2.2.1 常量和符号常量2.2.2 变量2.3 整型数据2.3.1整形常量的表示方法2.3.2整形变量2.3.3整形常量的类型2.4 实型数据2.4.1 实型常量的表示方法2.4.2 实型变量2.4.3 实型常量的类型2.5 字符型数据2.5.1 字符常量2.5.2 字符变量2.5.3 字符数据在内存中的存储形式及其使用方法2.5.4 字符串常量2.6 变量赋初值2.7 各类数值型数据间的混合运算2.8 算术运算符和算术表达式2.8.1 C运算简介2.8.2 算术运算符和算术表达式2.9 赋值运算符和赋值表达式2.10 逗号运算符和逗号表达式重点:数据类型、运算符与表达式的知识难点:各种数值型数据间的混合运算以及各运算符的优先级第3章最简单的C程序设计—顺序程序设计3.1 C语言概述3.2 程序的三种基本结构3.3 赋值语句3.4 数据的输入输出的概念及在C语言中的实现3.5 字符数据的输入输出3.5.1 putchar函数(字符输出函数)3.5.2 getchar函数(字符输入函数)3.6 格式输入和输出3.6.1 printf函数(格式输出函数)3.6.2 scanf 函数(格式输入函数)3.7 顺序结构程序设计举例重点:程序的三种基本结构;格式输入输出;字符数据的输入输出;简单的顺序结构程序设计难点:格式控制字符以及scanf应该注意的一些细节问题第4章逻辑运算和判断选取控制4.1 关系运算符和关系表达式4.1.1 关系运算符及其优先次序4.1.2 关系表达式4.2 逻辑运算符和逻辑表达式4.2.1 逻辑运算符及其优先次序4.2.2 逻辑表达式4.3 if语句4.3.1 if语句的三种形式4.3.2 if语句的嵌套4.3.3 条件运算符4.4 switch语句4.5 程序举例重点:if语句的使用;switch语句的使用;选择结构程序设计难点:多分支语句用if和switch语句实现第5章循环控制5.1 概述5.2 goto语句以及用goto语句构成循环5.3 while语句5.4 do-while语句5.5 for语句5.6 循环的嵌套5.7 几种循环的比较5.8 break语句和continue语句5.8.1 break 语句5.8.2 continue 语句5.9 程序举例重点:循环结构的概念及其使用;for循环的使用;while循环的使用;do-while循环的使用;循环结构程序的编写难点:三种循环的比较;用C语言实现几种循环第6章数组6.1 一维数组的定义和引用6.1.1 一维数组的定义6.1.2 一维数组元素的引用6.1.3 一维数组的初始化6.1.4 一维数组程序举例6.2 二维数组的定义和引用6.2.1 二维数组的定义6.2.2 二维数组的引用6.2.3 二维数组的初始化6.2.4 二维数组程序举例6.3 字符数组6.3.1 字符数组的定义6.3.2 字符数组的初始化6.3.3 字符数组的引用6.3.4 字符串和字符串结束标志6.3.5 字符数组的输入输出6.3.6 字符串处理函数6.3.7 字符数组应用举例重点:一维数组定义和使用;字符数组的定义和使用难点:二维数组的定义和使用第7章函数7.1 概述7.2掌握函数定义的一般形式7.3 函数参数和函数的值7.3.1 形式参数和实际参数7.3.2 函数的返回值7.4掌握函数几种调用7.4.1 函数调用的一般形式7.4.2 函数调用的方式7.4.3 对被调用函数的声明和函数原型7.5 函数的嵌套调用7.6 函数的递归调用7.7 数组作为函数参数7.8 局部变量和全局变量7.8.1 局部变量7.8.2 全局变量7.9掌握几种变量类型的区别和存储类别7.9.1 动态存储方式与表态存储方式7.9.2 auto 变量7.9.3 用static声明局部变量7.9.4 register 变量7.9.5 用extern 声明外部变量7.9.6 用static 声明外部变量7.9.7 关于变量的声明和定义7.9.8 存储类别小结7.10 内部函数和外部函数7.10.1 内部函数7.10.2 外部函数7.11 如何运行一个多文件的程序重点:函数的基础知识及其使用难点:变量的存储类别;数组作为函数参数;函数的综合使用等第8章预处理命令8.1掌握宏定义8.1.1 不带参数的宏定义8.1.2 带参数的宏定义8.2掌握文件包含8.3了解条件编译重点:几种预处理功能第9章指针9.1掌握指针的概念9.2 变量的指针和指向变量的指针变量9.2.1 定义一个指针变量9.2.2 指针变量的引用9.2.3 指针变量作为函数参数9.3 数组的指针和指向数组的指针变量9.3.1 指向数组元素的指针9.3.2 通过指针引用数组元素9.3.3 用数组名作函数参数9.3.4指向多维数组的指针和指针变量9.4 字符串的指针和指向字符串的指针变量9.4.1 字符串的表示形式9.4.2 字符串指针作函数参数9.4.3 对使用字符指针变量和字符数组的讨论9.5 函数的指针和指向函数的指针变量9.5.1 用函数指针变量调用函数9.5.2 用指向函数的指针作函数参数9.6 返回指针值的函数9.7 指针数组和指向指针的指针9.7.1 指针数组的概念9.7.2 指向指针的指针9.7.3 指针数组作main函数的形参9.8 有关指针的数据类型和指针运算的小结9.8.1 有关指针的数据类型的小结9.8.2 指针运算小结9.8.3 void指针类型重点:指针的基本知识及使用;难点:多重指针的使用第10章结构体与共用体10.1 概述10.2 定义结构体类型变量的方法10.3 结构体变量的引用10.4 结构体变量的初始化10.5 结构体数组10.5.1 定义结构体数组10.5.2 结构体数组的初始化10.5.3 结构体数组应用举例10.6 指向结构体类型数据的指针10.6.1 指向结构体变量的指针10.6.2 指向结构体数组的指针10.6.3 用结构体变量和指向结构体的指针作函数参数10.7 用指针处理链表10.7.1链表概述10.7.2 简单链表10.7.3 处理动态链表所需的函数10.7.4 建立动态链表10.7.5 输出链表10.7.6 对链表的删除操作10.7.7 对链表的插入操作10.7.8 对链表的综合操作10.8 共用体10.8.1 共用体的概念10.8.2 共用体变量的引用方式10.8.3 共用体类型数据的特点10.9 枚举类型10.10用typedef定义类型重点:结构体与共同体的基本知识与使用难点:结构体数组的使用;指针处理链表第11章位运算11.1 位运算符和位运算11.1.1 “按位与”运算符(&)11.1.2 按位或运算符(|)11.1.3 “异或”运算符(∧)11.1.4 “取反”运算符(~)11.1.5 左移运算符(<<)11.1.6 右移运算符(>>)11.1.7 位运算赋值运算符11.1.8 不同长度的数据进行位运算11.2 位运算举例11.3 位段重点:位运算的基本知识与运用第12章常见错位和程序调试12.1 常见错误分析12.2 程序调试重点:常见错误及其程序调试的一些知识难点:一些错误分析的方法;程序调试的基础知识二、实验实验一运行一个简单的C程序实验二数据类型、运算符和表达式实验三顺序结构程序设计实验四选择结构程序设计实验五循环结构程序设计实验六一维数组的定义和引用、二维数组的定义和引用实验七字符数组、字符串实验八函数的定义、函数的调用、函数的嵌套调用实验九函数的递归调用、局部变量和全局变量、变量的存储类别, 内部函数和外部函数和编译预处理命令实验十指针的定义及运算,指针作函数参数实验十一指针与数组实验十二字符指针与字符串实验十三结构体、共用体和枚举类型实验十四链表实验十五综合实验三、实习(一)学生成绩排名先采用冒泡法,将学生成绩从高到低进行排序,再输入一个学生的成绩,将此成绩按照排序规律插入已排好序的学生成绩数组,最后将排好序的成绩单进行反序存放。

实验九 用正弦扫频

实验九 用正弦扫频

实验九 用正弦扫频、随机和敲击激励测简支梁的频率响应函数一、实验目的1、了解正弦扫频、随机和敲击激励法的优缺点和使用方法。

2、掌握频率响应函数的定义及测量方法。

3、掌握使用不同激励信号激励时触发方式、平均方式及窗函数等选择方法。

二、实验系统框图三、实验原理频率响应函数的测量是试验模态分析的核心,其测量质量将直接影响模态参数识别的精度。

频率响应函数是指一个机械系统系统输出的傅立叶变换与输入的傅立叶变换的比值,对于单自由度系统,其频率响应函数为()()()X H F ωωω= 而对于多自由度系统,它的频率响应函数为一矩阵,即上式中的任一元素lp H 的表达式为其中,l 为响应点,p 为激励作用点,lp H 表示在p 点作用单位力时,在l 点所引起的响应,即l 和p 两点之间的频响函数。

根据模态分析原理,要识别结构的固有频率,只要测得频响图1-2-18 []111212122212....()::::..n n n n nn H H H H H H H H H H ω⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦1()()()()n l lp lr pr r r p X H H F ωωφφωω===∑函数矩阵中任何一个元素即可,但要识别所有模态参数时,必须测得频响函数矩阵中的一行或一列。

由lp H 的表达式可知,要测量矩阵中的一行时,要求拾振点固定不变,轮流激励所有的点,即可求得[()]H ω中的一行,这一行频响函数包含进行模态分析所需要的全部信息。

而要测量[()]H ω中任一列时,则激励点固定不变,而在所有点进行拾振,便可得到[()]H ω中的一列,这一列频响函数也包含进行模态分析所需要的全部信息。

在进行多点拾振时,若传感器足够多,且所有传感器质量加起来比试验物体的质量小很多时,就可安装多个传感器同时拾振,这样可以节省试验时间,且数据的一致性也好;但如果只有一只传感器时,则一个一个点进行测量,这样虽试验时间长一些,但试验成本较低,需保证激励信号的一致性。

C语言上机实验1-18

C语言上机实验1-18

实验一C程序的运行环境及简单程序编写一、实验目的1.了解tc2.0编译系统的基本操作方法,学会独立使用该系统。

2.了解在该系统上如何编辑、编译、连接和运行一个C程序。

3.通过运行简单的C程序,初步了解C源程序的特点。

二、实验内容1.编写一个计算球体体积的程序,要求用户自行录入球体的半径。

参考公式V=4/3πr3.。

2.编写一个程序,要求用户输入一个美金数量,然后显示出如何用最少的20美元、10美元、5美元和1美元来付款。

运行结果:Ener a dollar amount:93$20 bills:4$10 bills:1$5 bills:0$1 bills:3实验二顺序结构程序设计一、实验目的1.熟悉C语言中的基本数据类型,掌握定义常量和变量以及对它们赋值的方法,了解数据输出时所用格式转换符。

2.掌握格式输入/输出函数的用法。

3.学会简单顺序程序的设计。

4.养成良好的程序设计习惯。

二、实验内容1.编写一个程序,对用户录入的产品信息进行格式化。

Enter item number:583Enter unit price:13.5Enter purchase date(mm/dd/yyyy):3/24/2010Item Unit PurchasePrice date583 $ 13.50 3/24/20102.编写一个程序,要求用户输入一个两位数,然后按数位的逆序打印出这个数。

Enter a two-digit number:28The reversal is :82实验三选择结构程序设计一、实验目的1.熟练使用if、switch编写程序。

二、实验内容1.编写一个程序,确定一个数的位数。

Enter a number:374The number 374 has 3 digits假设输入的数最多不超过4位。

提示:利用if语句进行数的判定。

例如,如果数在0到9之间,那么位数为1;如果数在10到99之间,那么位数为2。

试验九闪光融合临界频率值试验

试验九闪光融合临界频率值试验

实验九闪光融合临界频率值实验一.实验目的我们的眼睛如果受到一个间歇频率较低的光刺激时,就会产生一亮一暗的闪烁感觉,这种频率较低的闪光刺激所产生的忽明忽暗的感觉为光的闪烁,随着闪烁频率的不断增加,闪烁感觉逐渐消失,我们的眼睛会感到的是一个完全稳定的或连续的光,这称为闪光的融合。

闪烁刚刚达到融合时的光刺激间歇频率值称为闪光融合临界频率(Critical flicker frequency,缩写为CFF)值,它是融合和闪光的平均值。

CFF值越高,说明眼睛对时间上明暗变化的分析能力越强,大脑的认知水平越高,正因为如此,CFF值的高低目前已成为检测人的疲劳及注意程度等的主要指标,人越疲劳,CFF值越低。

本实验的目的是:通过实验使学生掌握CFF值的测定方法及仪器的使用方法。

二.实验仪器EP403亮点闪烁仪三.实验内容测定闪光融合临界频率(CFF)四.仪器原理EP403亮点闪烁仪由被试观察部分和主试操作部分组成。

被试观察部分:观察孔,内有一个闪动的光源为视标,改变亮点颜色的旋钮和调节亮点闪烁频率的旋钮。

主试操作部分:可从频率表中显示闪变频率值。

可测量不同背景光强、亮黑比、亮点强度或不同的亮点颜色的闪烁频率值。

五.实验步骤与方法1.接通电源,电源220V,50Hz,后面板数码管亮,三只发光管之一亮;2.选择呈现亮点颜色红、黄、绿,在后面板左角,任取一种;3.用渐增法测量融合阈值由被测试者改变频率值,将前面板的频率旋钮顺时针方向转动,使频率缓慢上升,当被测试者感到光点闪烁消失,应立即停止转动调节频率旋钮,并向主试人报告“不闪了”,主试者记录下此时频率表上的频率值,即是融合阈值。

每个被测试者测3次。

4.用渐减法测量闪变阈值由被测试者改变频率值,将前面板的频率旋钮逆时针方向转动,使频率缓慢降低,直到被测试者开始感到闪烁时,应立即停止转动调节频率旋钮,并向主试人报告“闪了”,主试人记录下此时频率表上的频率值,即为闪变阈值。

实验9 EXCEL操作

实验9 EXCEL操作
5、对“学生信息表”中按以下的要求来设置表的格式: (1)所有数据都设置对齐方式为水平、垂直居中,字体为 12 磅蓝色隶书。 (2)将表的外边框设定为蓝色双线,内部为红色单线。表格的底纹为淡黄色,“补助”一列的 底纹为“浅绿色”。 6、对“学生成绩表”设置“表格套用格式”为“古典Ⅱ”类型。选择表中各科成绩所在的数据 区域,利用条件格式化命令,将所有成绩小于 60 分的单元格底纹设置为浅黄色,并带有 6.25 的灰 色小点图案;所有成绩介于 60 分到 70 分之间的单元格底纹设置为浅蓝色。(试着改变个别单元格的 数据,观察其底纹是否按条件设置自动变化。)

300 1987-4-6

280 1988-10-2

260 1987-11-1

260 1988-6-25
学号
表 9-2
7、利用“学生成绩表”的基本数据,建
立柱形图表(如图 9-1),图表位于 A17:H26
区域。 8、在工作表“学生成绩表”中,插入前 4
位学生的“语文、英语和体育成绩图表”的柱 形图,如图 9-2 所示,将图表的填充背景设置 为“白色大理石”效果,边框为“圆角”,字 体为深蓝色隶书 10 号, 图表
入打印日期和时间,中部插入页码,右侧插入总页数。
③打印预览工作表“成绩”页面,然后适当调节表格宽度,图形大小及位置等,使页面布局美
观、清晰。
网络信息与计算中心
-6-
③在“总分”右侧追加一列,标题为“名次”,用 RANK 函数计算每位同学的名次(按总分由 大到小)。[例如:王小军的名次为:=RANK(H3,H$3:H$9)]
④用 COUNTIF 函数计算良好人数(总分在 350~399 之间)。用 COUNTIF 函数和 COUNT 函数 计算优秀比率(总分在 400 及以上的人数比率,采用百分比格式)。

高级语言程序设计实验指导书ptf

高级语言程序设计实验指导书ptf

高级语言程序设计实验指导书编者:苑俊英2010.9前言本实验指导书是《高级语言程序设计实验》课程的配套教材,本指导书中的实验内容涉及到高级语言中各个章节的知识点,并对任课教师和学生以指导。

该指导书的实验一至实验十二为专题实验,实验十三为综合实验,除了从各个知识点对学生加以实践外,还以综合项目的形式,让学生体会团队合作、中小型项目的开发过程和方法,锻炼其综合运用所学知识的能力和动手实践的能力。

本实验指导由苑俊英执笔完成,由于作者水平有限,难免有不妥之处,请各位老师和专家指正!目录实验相关 (4)实验一 C程序的运行环境和运行C程序的方法 (6)实验二数据类型、运算符和表达式(1) (8)实验三数据类型、运算符和表达式(2) (11)实验四最简单的C程序设计 (13)实验五逻辑结构程序设计 (15)实验六循环结构程序设计 (16)实验七数组 (17)实验八函数1 (19)实验九函数2 (20)实验十指针 (21)实验十一结构体和共用体 (22)实验十二位运算 (23)实验十三文件 (24)综合实验 (25)实验相关1.每次实验准备(1)了解所用计算机系统的性能和使用方法(2)复习和掌握与本实验有关的教学内容(3)准备好上机所需程序(4)需事先估计运行中可能出现的问题,针对不同的问题进行修改(5)准备好调试和运行时所需的数据2.实验要求(1)一人一组,独立上机(综合实验除外)。

(2)上机过程出现的问题,除了是系统问题外,一般应独立解决,不要轻易举手求助老师。

对出错信息进行分析、判断,学习如何调试程序。

(3)独立完成实验,按时交实验报告。

3.实验步骤(1)进入C工作环境(Turbo C、Turbo C++、Visual C++、Visual Studio 2008、Eclipse、CodeBlocks)(2)编辑程序(3)检查程序的书写错误并修改(4)编译和连接,根据出错信息进行更改,直到编译连接通过为止(5)运行程序并分析运行结果是否合理和正确(6)输出程序清单和运行结果(7)书写实验报告4.实验报告(1)实验报告应包括以下内容:(2)题目(3)程序清单(4)运行结果(5)对运行结果的分析及本次实验取得的经验,如果程序未通过,应分析其原因实验一 C程序的运行环境和运行C程序的方法1.实验目的(1)了解所用计算机系统的基本操作方法,学会独立使用该系统。

C语言实验学生版(最新版)

C语言实验学生版(最新版)

实验一:简单的C程序设计(2学时)一、实验方式:一人一机二、实验目的:1、了解C语言程序的编译环境和编写过程。

2、掌握C语言程序在Visual C++ 6.0环境下的调试过程。

3、初步了解C语言程序的特点。

4、掌握C语言的数据类型。

三、实验内容:1、计算两个数x和y的和。

(教材P5【例1-2】)2、从键盘输入华氏温度h,输出摄氏温度c(摄氏温度=5/9*(华氏温度-32))。

(实验教材P18)3、给定圆环,输入内圆环半径r1、外圆环半径r2,求出圆环的面积。

(实验教材P27)4、从键盘上输入两个整数x、y,实现两个数的交换,并求出最大值、最小值和两个数的平均值。

(实验教材P21)5、输入并运行以下程序,分析运行结果。

(实验教材P27)#include <stdio.h>void main( ){int i,j;i=8; j=10;printf(“%d,%d\n”,++i,++j);i=8; j=10;printf(“%d,%d\n”,i++,j++);i=8; j=10;printf(“%d,%d\n”,++i,i);i=8; j=10;printf(“%d,%d\n”,i++,i);}四、实验程序代码:五、实验运行结果(截图):实验二:顺序结构程序设计(2学时)一、实验方式:一人一机二、实验目的:1、掌握标识符、常量、变量的定义及使用。

2、掌握C语言的常用运算符及表达式。

3、掌握单分支if语句的使用方法。

4、掌握双分支if-else语句的使用方法。

三、实验内容:1、从键盘输入一个3位整数,请输出该数的逆序数。

(实验教材P27)2、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。

(实验教材P27)3、判断箱子是正方体还是长方体。

(实验教材P33)4、有一函数: x (x<1)y= 2x-1 (1≤x<10)3x-11 (x≥10) 编写程序,输入x值,输出y值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
掌握C语言函数的定义与调用方法; 理解C语言函数的调用过程; 学会编写函数构造程序; 掌握变量的作用域、存储类型;
二、实验要求:
实验前写实验预习报告。 实验后写实验报告。
三、实验内容
1、阅读下列程序并执行,理解程序的功能并记录 程序运行结果
#include <stdio.h> int x,y; void num() { int a=15,b=10; x=a-b; y=a+b; }
三、实验内容
3、调试运行教材170页例5.4、173页例5.8. 4、调试运行教材194页5.3,分析程序运行结果. 5、编程设计教材195页5.4、5.5,并在VC++环 境下调试运行。
编程设计实验要求: 实验报告中要求提供源程序、记录程序输 入数据、程序运行结果。 以上个程序文件名依次为:Ex9_1.c、 Ex9_2.c……Ex9_7.c
void main() { int a=7,b=5; x=a+b; y=a-b; num(); printf(“%d,%d\n”,x,y); }
三、实验内容
2、阅读下列程序并执行,理解程序并记录程序运行结果
#include <stdio.h>
void main() { int a=2,i; for(i=0;i<3;i++) printf(“%4d”,f(a)); } f(int a) { int b=0; static int c=3; b++; c++; return(a+b+c); }
相关文档
最新文档