文档库 最新最全的文档下载
当前位置:文档库 › 实验7 数组(2)-参考答案

实验7 数组(2)-参考答案

实验7 数组(2)-参考答案
实验7 数组(2)-参考答案

上机实验八二维数组与字符数组—参考答案

一.目的要求

1.掌握二维数组的基本概念,如何定义二维数组,如何初始化二维数组。

2.掌握二维数组的基本操作:引用数组元素、行(列)求和,行(列)最大最小值,整个数组的输入输出等。

3.掌握与二维数组有关的算法,如找最大最小值(或位置)、矩阵转置等。

4.掌握字符串与字符数组的基本应用方法

5.掌握字符串有关的算法,如字符转换、查询、统计和进制转换等

二.实验内容

【实验题1】程序填空:输入一个4×4矩阵,求出主对角线上的元素之和sum1、副对角线上的元素之和sum2,并输出结果。

提示:每一行只有一个主对角线元素a[i][i](特征:i==j),也仅有一个副对角线元素a[i][n-i-1](特征:i+j==n-1,即j=n-1-i)

源程序:

#include

void main()

{ int i,j,sum1=0,sum2=0, a[4][4];

printf("Input a 4*4 matrix:\n");

for(i=0;i<4;i++ ) //输入矩阵元素

for(j=0;j<4;j++ )

scanf("%d", &a[i][j]);

for(i=0; i<4; i++ ){ //计算sum1和sum2

sum1 +=a[i][i] ;

sum2 +=a[i][3-i] ;

}

printf("sum1=%d, sum2=%d\n", sum1,sum2); //输出结果

}

运行程序,并输入数据: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

运行结果:sum1= , sum2=

【实验题2】程序填空:打印杨辉三角形前10行:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

……………………

算法提示:分析一个10行的杨辉三角,需要一个10×10的二维矩阵a,则:

1)杨辉三角为下三角矩阵,只需要求出第i行(i=0,1,2,…,9)前i+1个元素,即a[i][j]!=0 (j=0…i). 2)每行的第0列元素均为1,即a[i][0]=1;

3)每行的主对角线元素也均为1,即a[i][i]=1;

4)从第2行开始,每行夹在第0列元素与主对角线元素之间的元素a[i][j]( i=2,3,…,9, j=1,..,i-1 ) 等于其左上方元素a[i-1][j-1]与正上方元素a[i-1][j]之和,即a[i][j]=a[i-1][j-1]+a[i-1][j];

5)输出该矩阵的下三角,即得出杨辉三角的前10行。

源程序:

#include

void main()

{ int i, j, int a[10][10];

for(i=0; i<10; i++) //各行的第0列元素与主对角线元素赋1

a[i][0] = a[i][i] =1;

for( i=2; i<10; i++ ) //为第2~9行的夹在第0列与主对角线之间的元素赋值

for(j=1;j

a[i][j]=a[i-1][j-1]+ a[i-1][j] ;

for(i=0; i<10; i++){ //输出矩阵中的下三角矩阵

for(j=0; j <=i ; j++)

printf("%5d", a[i][j]);

printf("\n"); //Line 12

}

}

问:如果删除Line 12,程序运行结果有何不同?

答:不换行

【实验题3】程序改错:输入一个以回车结束的字符串(有效长度少于80),将其中的小写字母统一更换成对应的大写字母。

提示:三项任务:1、输入字符串,并存储在字符数组中;

2、遍历字符串的每个元素,如果是小写字母(’a’97~’z’122),则更换成大写字母

3、输出更新后的字符串

源程序:

#include

void main()

{ int i;

char s[80];

i=0;

while( (s[i]=getchar() ) !=?\n?) i++; //输入字符串

s[i]=…\0?;

for( i=0; s[i]!=?\0?; i++ ) //将遍历字符串,将小写字母转换成大写字母

if( s[i]>='a'&&a[i]<='z') s[i]= s[i]-32 ;

for( i=0; s[i]!='\0'; i++ ) putchar( s[i] ) ; //输出字符串

printf("\n");

}

运行程序,输入:Tom&Jack-s10

输出结果:

【实验题4】.程序填空:二-十进制转换:输入一个8位二进制字符串b(由字符’1’和’0’组成),输出对应的十进制整数。例如,输入二进制字符串10010001, 输出十进制整数145

算法提示:

1、由于二进制字符串b的长度固定为8,因此定义字符数组char b[8]即可,每个元素对应一个二

进制位;

2、循环1:输入二进制字符, 输入的每一个字符先暂存在字符变量ch中,检查ch是否是’0’或’1’,

是则存入数组b,并令数组下标i增1,不是则跳过该字符。

3、循环2: 二-十进制转换:从前往后,带权累加数组b各元素对应的数值b[i]-‘0’:d= d×2+ b[i]-‘

源程序:

#include

void main()

{ int i,d;

char ch,b[8];

printf("Input 8-bit binary:\n");//输入二进制字符串

i=0;

while(i<8){ //输入8位二进制字符

ch=getchar() ;

if( ch=='0'|| ch=='1') s[ i++ ]=ch ; // 输入'0'或'1' 则存入数组b,忽略其他字符}

d=0 ; //二-十进制转换

for( i=0; i<8; i++ ) d=d*2 + s[i]-…0?; //二进制:逢2进1

printf("digit=%d\n", d); //输出十进制整数d

}

思考:如果改为输入一个4位长度的十六进制字符串,如”2f3a”,要输出对应的十进制整数,上面的程序需要如何修改?-

源程序:

#include

void main()

{ int i,d,k;

char ch,h[4];

printf("Input 4-bit hexadecimal:\n");//输入4位长度的十六进制字符串

i=0;

while(i<4){ //输入4位十六进制字符

ch=getchar() ;

if( ch>='0'&&ch<=?9?|| ch>='a'&&ch<=?f? || ch>=?A?&&ch>=?F?)

h[ i++ ]=ch ; //十六进制中合法字符存入字符数组,忽略其他字符}

d=0 ; //十六-十进制转换

for( i=0; i<4; i++ ) {

if( h[i]>=?0?&& h[i]<=?9?) k=h[i]-…0?;

if( h[i]>=?a?&& h[i]<=?f?) k=h[i]-…a?+10;

if( h[i]>=?A?&& h[i]<=?F?) k=h[i]-…A?+10;

d=d*16 + k ; //逢16进1

}

printf("digit=%d\n", d); //输出十进制整数d

}

【实验题5】.程序填空:输入一个以回车结束的字符串(有效长度少于80),将该字符串中的字符重新排列,使原先第0个字符出现在最后一位,原先第1个字符出现在倒数第2位,。。。,原先最后1个字符出现在第0位,例如:字符串”abcdef”经重排后变成”fedcba”。

算法分析:该问题类似于方阵转置,即把特定位置的数组元素进行交换。本题中的字符串存放在一维字符型数组s中,需要解决以下问题:

1)计算字符串s的有效长度len

2)将字符串s的前半部分(0~len/2-1)与字符串的后半部分对调,即交换对称元素,与s[i]对称的元素是s[len-1-i],如下图所示:

len=6

源程序:

#include

void main()

{ int i, len=0;

char s[80],temp;

printf("Input a string(<80):\n");

gets( s ); //调用字符串输入函数gets(), 输入字符串到s

for( i=0 ; s[i]!='\0'; i++ )//统计字符串有效长度len

len++ ;

for( i=0; i

temp=s[i];

s[i]=s[len-1-i] ;

s[len-1-i] =temp;

}

puts(s) ; //调用字符串输出函数puts, 输出处理后的字符串s

}

运行程序,输入Visual C++, 结果是:

【实验题6】编程题:输入5个学生的4门课成绩,计算并输出个人最高总分

【分析】用一个二维数组s[5][4]存放学生成绩,一行对应一个学生,一列对应一门课程。

#include

void main()

{ int s[5][4], i, sum, max= -1;

//输入5个学生的4门课程成绩

printf(“input 4 scores for 5 students:\n”);

for( i=0; i<5; i++)

for( j=0; j<4; j++)

scanf(“%d”,&s[i][j]);

//求最高个人总分

for(i=0; i<5; i++){

for(sum=0,j=0; j<4; j++)

sum+=s[i][j];

if(sum>max) max=sum;

}

//输出最高个人总分

printf(“ The top total score is %d.\n”, max); }

实验七参考答案

(一)SQL的定义功能 1.用SQL的定义命令创建一个职工表(zg.dbf),表结构如下所示。 字段名类型宽度小数点 职工号 C 4 姓名 C 8 性别 C 2 出生日期 d 工资 N 7 2 命令: create table zg(职工号 c(4),姓名 c(8),性别 c(2),出生日期 d,工资 n(7,2)) 2.修改上题创建的职工表。 (1)增加“职称”字段,类型为字符型,宽度为6。 alter table zg add 职称 c(6) (2)删除出生日期字段。 alter table zg drop 出生日期 (3)把性别字段的类型改为逻辑型。 alter table zg alter 性别 l (4)把工资字段改名为实发工资。 alter table zg rename 工资 to 实发工资 (二)SQL的操作功能 1.给课程表(kc)插入一条记录("2001","英语精读",2," ") insert into kc(课程号,课程名,学分) values ("2001","英语精读",2) 2.给女同学的入学分数增加10分。(提示:用update 命令) update xsqk set 入学分数=入学分数+10 where 性别="女" 3.把课程号为“1003”的学分改为3分。(提示:用update 命令) update kc set 学分=3 where 课程号="1003" 4.给成绩表(cj)中不及格成绩的数据加上删除标记。 delete from cj where 成绩<60 查看是否执行,再去掉删除标记。 Recall all (三)SQL语言的查询功能 1.查询指定列 (1)查询所有男同学的个人记录。

实验7数组1

C语言程序设计与应用 实验报告 实验项目名称: ___数组 ____ ______ 专业:______网络1602_______________ 班级:_______1602______________ 学号:_______201658080213______________ 报告人:_______蔡序兵______________ 指导老师:__________易禹___________ 实验时间:_____________________

实验目的: 1. 掌握一维数组的定义、赋值和输入输出的方法; 2.掌握字符数组的使用; 3.掌握与数组有关的算法(例如排序算法)。 实验题1: 1.实验内容与要求: 已有一个已排好序的数组(int a[10]={3,5,7,9,11,13}),今输入一个数,要求按原来排序的规律将它插入数组中。 输入:1 输出:1,3,5,7,9,11,13 输入:8 输出:3,5,7,8,9,11,13 2.程序设计过程分析(自然语言或伪代码或流程图或N-S图): 3.程序源代码(含注释): /*已有一个已排好序的数组(int a[10]={3,5,7,9,11,13}) 今输入一个数,要求按原来排序的规律将它插入数组中。*/ #include main() { int a[11]={3,5,7,9,11,13},i,k,n; printf("插入的数字为:"); scanf("%d",&n); if(n0;i--) a[i]=a[i-1]; a[0]=n;

} else{ for(i=0;i<6;i++){ if(n>=a[i]){ k=i+1; } } for(i=6;i>k;i--){ a[i]=a[i-1]; } a[k]=n;} for(i=0;i<7;i++) printf("%d ",a[i]); printf("\n"); } 4.实验结论(截图)及心得: 实验题2: 1.实验内容与要求: 设计一个程序,从键盘输入指定个数的数据,按选择排序方法,将其

实验七-黑盒测试之场景法测试实验(参考答案)

实验七黑盒测试之场景法测试实验 1.1 实验目的 1、通过对简单程序进行黑盒测试,熟悉测试过程,对软件测试形成初步了解,并养成良好的测试习惯。 2、掌握黑盒测试的基础知识,能熟练应用场景法进行测试用例的设计。1.2 实验平台 操作系统:Windows 7或Windows XP 1.3 实验内容及要求 1、练习1 软件系统几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。场景法就是通过用例场景描述业务操作流程,从用例开始到结束遍历应用流程上所有基本流(基本事件)和备选流(分支事件)。下面是对某IC卡加油机应用系统的基本流和备选流的描述。 基本流A;

备选流: (1)使用场景法设计测试案例,指出场景涉及到的基本流和备选流,基本流用字母A表示,备选流用题干中描述的相应字母表示。 场景1:A 场景2:A、B 场景3:A、C 场景4:A、D 场景5:A、E (2)场景中的每一个场景都需要确定测试用例,一般采用矩阵来确定和管理测试用例。如下表所示是一种通用格式,其中行代表各个测试用例,列代表测试用例的信息。本例中的测试用例包含测试用例、ID、场景涤件、测试用例中涉及的所有数据元素和预期结果等项目。首先确定执行用例场景所需的数据元素(本例中包括账号、是否黑名单卡、输入油量、账面金额、加油机油量),然后构建矩阵,最后要确定包含执行场景所需的适当条件的测试用例。在下面的矩阵中,V 表示有效数据元素,I表示无效数据元素,n/a表示不适用,例如C01表示“成功加油”基本流。请按上述规定为其它应用场景设计用例矩阵。 测试用例表

实验六 一维数组程序设计

实验六一维数组程序设计 一、实验学时 2学时 二、实验目的 (一)掌握一维数组的定义、初始化方法; (二)掌握一维数组中数据的输入和输出方法; (三)掌握与一维数组有关的程序和算法; (四)了解用数组处理大量数据时的优越性。 三、预习要求 (一)理解数组的概念、利用数组存放数据有何特点; (二)一维数组的定义、初始化方法; (三)一维数组中数据的输入和输出方法。 四、实验内容 (一)下面的几个程序都能为数组元素赋值,请输入程序并运行。比较一下这些赋值方法的异同。 1.在定义数组的同时对数组初始化。 /* c6-1.c */ /*在定义数组的同时对数组初始化*/ #include "stdio.h" void main( ) { int a[4]={0,1,2,3}; printf("\n%d %d %d %d\n",a[0],a[1],a[2],a[3]); } 2.不使用循环对单个数组元素赋值。 /* c6-2.c */ /*不使用循环对单个数组元素赋值*/ #include "stdio.h" void main( ) { int a[4]; a[0]=2;a[1]=4;a[2]=6;a[3]=8; printf("\n%d %d %d %d\n",a[0],a[1],a[2],a[3]); } 3.用循环结构,从键盘输入为每个数组元素赋值,输出各数组元素。 /* c6-3.c */ /*利用循环通过键盘对数组元素赋值*/ #include "stdio.h" void main( ) { int i,a[4]; for(i=0; i<4; i++) scanf("%d",&a[i]); printf("\n"); for(i=0; i<4; i++) printf("%d ",a[i]);

实验7 数组

实验7 数组 一、实验目的: 1、理解数组的作用、特点; 2、掌握一维数组、二维的定义、引用、初始化,能够与循环结合实现批量数据处理(如输入、输出,比较大小,交换等); 3、掌握字符数组、字符串的使用; 4、熟悉打擂台等典型算法。 二、实验内容 1、(基础题)有一个数列,它的第一项为1,第二项为2,第三项为3,以后每一项都等于它的前三项之和。使用一维数组编程实现功能:计算该数列的前20项并赋值给数组,然后以逆序方式输出,每一行5个数据。如下图所示: 2、(基础题)青年歌手大奖赛,有7名评委进行打分,分数取值范围:0.0~10.0,试编程实现如下功能:从键盘输入7位评委给某一选手的评分,之后计算、输出该选手的平均得分(计算规则:去掉一个最高分和一个最低分,求出剩余5个得分的平均值)。如下图所示: (提示:使用一维数组来保存7位评委的给分,先计算所有评委给分总和,并找到最高分、最低分,然后用给分总和-最高分-最低分,再除5得到选手的平均得分,最后输出。)

3、(基础题)计算矩阵之和: 先输出这两个矩阵,再输出求和后矩阵。 (提示:(1)可第定义两个二维数组分别存储两个矩阵中的元素;(2)矩阵之和是对应元素相加,如c[0][0]=a[0][0]+b[0][0],c[2][1]=a[2][1]+b[2][1],可用一个二维数组保存两矩阵对应元素的和)。程序运行效果如下图所示: 4、(基础题)输入一个字符串,请编程统计其中的字母、数字、空格(含制表符)、标点符号的个数并输出。如下图所示: (提示:在教材的p221中有字符和字符串函数,可以直接引用。如isalpha()判断字母函数、isdigit()判断数字函数、isspace()判断空格函数、ispunct()判断标点函数等) 5、(提高题)已知学生成绩如下表,要求用二维数组保存学生成绩,并计算每个学生的平均成绩以及各门课程的平均成绩。 (提示:(1)可定义一个二维数组存储学生成绩;(2)定义两个一维数组分别存储学生的平均成绩和课程的平均成绩;(3)某个学生的平均成绩是二维数组中某行元素的平均值;某门课程的平均成绩是二维数组中某列元素的平均值) 程序运行效果如下图所示:

C实验报告7参考答案

《高级语言程序设计》实验报告班级:学号:姓名:成绩: 实验7 函数程序设计 一、实验目的 1.掌握函数定义的方法。 2.掌握函数实参与形参的传递方式。 3.掌握函数的嵌套调用和递归调用的方法。 4.了解全局变量和局部变量、动态变量、静态变量的概念和使用方法。 二、实验内容 1 (1)下列sub函数的功能为:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。例如,当s所指字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。纠正程序中存在的错误,以实现其功能。程序以文件名存盘。 #include <> #include <> void sub( char s[], char t[] ) { int i, d; d=strlen( s ); for( i=1; i< d ; i++ ) for( i=0; i< d ; i++ ) t[i]=s[d-1-i] ; for( i=0; i #include<> #define ARR_SIZE = 80; #define ARR_SIZE 80 void Inverse(char str[]) void Inverse(char str[]);

JAVA实验报告_实验7_数组_

Java Object-Oriented Programming Experimental Report

3.2 Grading Quizzes (Choose to do) 3.3 Reversing an Array(Choose to do) 3.4 Adding To and Removing From an Integer List(Choose to do) 3.5 A Shopping Cart (Choose to do) 3.6 Averaging Numbers (Choose to do) 3.7 Exploring Variable Length Parameter Lists

3.8 Magic Squares(Choose to do) 3.9 A Shopping Cart Using the ArrayList Class (Choose to do) 3.10 A Polygon Person(Choose to do) 3.11 An Array of Radio Buttons \ 3.12 Drawing Circles with Mouse Clicks

3.13 Moving Circles with the Mouse(Choose to do) 3.14 Moving a Stick Figure(Choose to do) 4.Experimental results and data processing 5.Analysis and discussion Score: 6.Teacher Reviews Signature: Date: Experimental Report List 1 Tracking Salee package test_java_07_01;

C++程序设计实验七_参考答案

广东金融学院实验报告 课程名称:C++程序设计 实验编号 实验7数组与指针练习系别参考答案及实验名称 姓名学号班级 实验地点新电403实验日期2011-11-24实验时数4 指导教师曲政同组其他成员无成绩 一、实验目的及要求 1.学习C/C++数组和指针的概念和使用方法。 2.练习C++/CLI托管数组的创建方法和元素访问方法。 二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等) 硬件设备:联网的个人计算机 操作系统:Windows XP 编译系统:Visual Studio2005

三、实验内容及步骤(包含简要的实验步骤流程) 1.内容和步骤 ⑴仔细阅读本课件的知识点和例题,努力理解其中的文字阐述和源代码,必要时可将源代码拷入Visual Studio2005生成的C++/CLR框架编译和运行,将运行结果与源代码对照,加深对C/C++数组和指针的理解。 ⑵在理解本课件内容的基础上,编写C/C++程序实现下列文字描述: a.声明一个int型变量x,并赋初值3; b.打印x的值; c.打印x的地址; d.声明一个指向int的指针p,并让其指向变量x; e.打印p所指变量的值 f.打印p的值; g.声明一个有10个元素的一维本地整型数组A,并为其赋初值0~9; h.在一个循环中打印A的所有元素的值; i.打印A的值; j.打印A的第一个元素的地址; k.声明一个指向int的指针q,并让其指向A的第一个元素; l.在一个循环中通过q后跟下标,打印出A的所有元素的值; m.在一个循环中通过q加上循环变量和取值运算,打印出A的所有元素的值; n.在一个循环中通过q的增量和取值运算,打印出A的所有元素的值; o.在一个循环中通过q的负增量,反序打印出A的所有元素的值; p.声明一个int型指针r,在堆中创建一个int型变量,为该变量赋初值3,并将该变量的地址赋给该指针,打印出该变量的值,然后删除该变量。 q.声明一个本地类Point(可以用包含2个int型变量和一个有参数构造函数的结构体表示)的指针s,在堆中创建一个Point类的对象,调用构造函数为该对象的两个数据成员赋初值3和4,并将该对象的地址赋给该指针,打印两个数据成员的值,然后删除该对象。 r.声明一个int型指针t,在堆中创建一个3个元素的int类型数组并将该数组的首地址赋给该指针,为三个数组元素分别赋值3、4、5,在一个循环中打印出所有元素的值,然后删除该数组。 s.声明一个本地类Point类的指针u,在堆中创建一个3个元素的Point类的对象数组(需在Point 中添加无参数构造函数)并将数组的首地址赋给该指针,为三个数组元素分别赋值(1,2)、(3,4)、(5,6),在一个循环中打印该数组所有元素分量的值,然后删除该数组。 t.用基本语法声明并创建一个10个元素的一维托管整型数组B,并在一个循环中为元素赋值0~9; u.在另一个循环中打印B所有元素的值。 v.用初值表方式声明并创建一个10个元素的一维托管整型数组C,并为其元素赋初值10~19; w.在一个循环中打印C所有元素的值。 x.用数组C为数组B赋值。 y.在一个循环中打印B和C所有元素的值。 2.提示和要求 ⑴首先将上面的文字描述拷入Visual Studio2005生成的C++/CLR框架,在每条文字描述之前加“//”将其变为注释,并在其下留一个空行准备编写对应的程序。 ⑵对应于逐条文字描述,在其下编写程序(可能是一个或一组语句),每编写一条文字描述对应的程序,就编译(运行)一次,以保证语法和算法的正确性。 ⑶当全部文字描述所对应的程序编写完成,并编译、运行正确,将文字描述和源代码拷入实验报告。 ⑷对C/C++的数组和指针做简要总结。

实验 6-3 数组

实验6-3 数组(三) 1 【实验目的】 (1)掌握字符数组的定义、赋值和输入输出的方法 (2)掌握字符数组和字符串函数的使用 (3)掌握数组的基本操作和排序算法 【实验要求】 (1)熟悉掌握字符数组的定义、赋值和输入输出方法 (2)掌握字符数组和字符串函数的使用 (3)掌握数组的增加元素和删除元素的操作 (4)掌握数组的排序算法(比较、选择和冒泡三种算法,要求至少会一种) 【实验环境】 (1) Microsoft XP操作系统 (2) Microsoft VC++ 6.0 【实验内容】 1、Palindromes_easy version https://www.wendangku.net/doc/cb13284031.html,/acmhome/problemdetail.do?&method=showdetail&id=1384 描述 “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。

输入 输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串,每个字符串的长度不超过30。 输出:如果一个字符串是回文串,则输出"yes",否则输出"no". 样例输入: 4 level abcde noon haha 样例输出: yes no yes no 2、分割整数https://www.wendangku.net/doc/cb13284031.html,/acmhome/problemdetail.do?&method=showdetail&id=1173 描述:从键盘输入一个长正整数(不超过10位),从高位开始逐位分割并输出。 输入:正整数n,不含前导零。 输出:分割的整数序列,各整数之间用空格格开。注意,最后一个数字后面没有空格! 样例输入:654321 样例输出:6 5 4 3 2 1

实验报告答案

实验2:MIPS指令系统和MIPS体系结构 一.实验目的 (1)了解和熟悉指令级模拟器 (2)熟悉掌握MIPSsim模拟器的操作和使用方法 (3)熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解 (4)熟悉MIPS体系结构 二. 实验内容和步骤 首先要阅读MIPSsim模拟器的使用方法,然后了解MIPSsim的指令系统和汇编语言。(1)、启动MIPSsim(用鼠标双击MIPSsim.exe)。 (2)、选择“配置”->“流水方式”选项,使模拟器工作在非流水方式。 (3)、参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。 可以先载入一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中),然后分别以单步执行一条指令、执行多条指令、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化。 (4)、选择“文件”->“载入程序”选项,加载样例程序 alltest.asm,然后查看“代码”窗口,查看程序所在的位置(起始地址为0x00000000)。 (5)、查看“寄存器”窗口PC寄存器的值:[PC]=0x00000000。 (6)、执行load和store指令,步骤如下: 1)单步执行一条指令(F7)。 2)下一条指令地址为0x00000004,是一条有 (有,无)符号载入字节 (字节,半字,字)指令。 3)单步执行一条指令(F7)。 4)查看R1的值,[R1]= 0xFFFFFFFFFFFFFF80 。 5)下一条指令地址为0x00000008,是一条有 (有,无)符号载入字 (字节,半字,字)指令。 6)单步执行1条指令。 7)查看R1的值,[R1]=0x0000000000000080 。 8)下一条指令地址为0x0000000C ,是一条无 (有,无)符号载入字节 (字节,半字,字)指令。 9)单步执行1条指令。 10)查看R1的值,[R1]= 0x0000000000000080 。 11)单步执行1条指令。 12)下一条指令地址为0x00000014 ,是一条保存字 (字节,半字,字)指令。 13)单步执行一条指令。

C实验报告7参考答案

《高级语言程序设计》实验报告班级:_________ 学号:_______ 姓名:_________ 成绩:_________ 实验7函数程序设计 一、实验目的 1 ?掌握函数定义的方法。 2. 掌握函数实参与形参的传递方式。 3. 掌握函数的嵌套调用和递归调用的方法。 4. 了解全局变量和局部变量、动态变量、静态变量的概念和使用方法。 二、实验内容 1.改错题(在程序中画出错误的语句,将修改后的语句完整地写在该语句的右边。|) (1)下列sub函数的功能为:将s所指字符串的反序和正序进行连接形成一个新串放 在t所指的数组中。例如,当s所指字符串的内容为“ ABCD时,t所指数组中的内容为“DCBAABCD纠正程序中存在的错误,以实现其功能。程序以文件名sy7_1.c存盘。 #i nclude #in clude void sub( char s[], char t[]) { int i, d; d=strle n( s ); for( i=1; i< d ; i++ ) for( i= 0; i< d ; i++ ) t[i]=s[d-1-i]; for( i=0; i #i nclude #defi ne ARR_SIZE = 80; #define ARR_SIZE 80

实验六 一维数组实验报告

*** 软件类实验报告 课程名称:C语言程序设计学号: 姓名: 班级: 指导教师: 开课学期: 学院: ***教务处

⑷一维数组排序。 四、实验过程及内容:(运行结果请抓图到对应题目的下方) 1. 先分析以下程序,写出运行结果,再上机检验。 2.程序填空题。下面程序的功能是9个评委给某个参赛选手打分,去掉一个最高分和一个最低分,求该参赛选手的平均分。填空完成程序。

实验结果: 3. 程序填空题。有数列1,1,2,4,7,13,24…,该数列的规律是从第4项起,每项是它的前三项之和。下列程序的功能是将该数列的前30项存放在一维数组中,输出时每行输出5个数。填空完成程序。 实验结果: 4. 程序改错题。下面程序的功能是将数组中的数按从大到小排序后输出。改正程序中的错误。 实验结果: 5. 程序改错题。某公司从用公用电话传递数据,数据是四位的整数,在传递过程中需要加密,加密规则为每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。改正程序中的错误。

实验结果: 6. 小楚参加了一个研究生考试培训班,共30次课,由于路途较远,每次都是打车去上课,来回的车费分别存储在数组a和b中,其中-1表示未去上课。 编程计算小楚参加培训班共打车花费多少钱?(要求保留1位小数,用循环实现) 输出结果的形式为: s=1234.5 a数组和b数组定义如下: double a[30]={31.0,32.0,30.3,32.8,30.5,30.6,31.0,32.8,-1,31.8,31.9,31.5,32.3,32.3,31.8,32.5 ,31.5,30.3,30.4,32.5,30.2,30.2,30.7,32.1,32.1,31.4,31.9,31.9,-1,30.5}; double b[30]={30.2,30.2,30.3,31.6,32.7,31.5,30.4,32.4,-1,31.0,31.8,32.1,31.6,31.4,32.4,32.1 , 32.5,32.3,32.5,31.4,31.2,30.3,32.3,30.7,31.3,30.2,31.1,30.5,-1,31.9}; 五、实验小结

实验七 一维数组的应用

实验七一维数组的应用 实验时间:2010年11月19日 【实验目的】 1、掌握一维数组的定义、赋值和输入、输出的方法; 2、能用循环处理数组,用数组存储数据; 3、掌握与数组应用有关的算法(例如求最大值、最小值算法,冒泡法排序算法、选择法排序算法等)。 【实验内容】 1、一维数组的定义、赋值、输入和输出; 2、用循环处理数组,数组元素的引用; 3、数组的应用:求最大值、最小值问题,冒泡法排序,选择法排序。 【实验步骤】 一、在E或F盘上建立以自己的学号命名的文件夹。 二、上机验证题 1、分析以下程序,写出运行结果。 /* 文件名:ex7_1.c */ #include #define N 10 main ( ) { int k; float a[N],av,s; s=0.0; printf("请输入10个数:\n"); for (k=0; kav) printf("%.0f\t",a[k]); } 2、分析以下程序,写出运行结果 /* 文件名:ex7_2.c */ #include main ( ) {

int a[10],i,max,min,maxpos,minpos; printf("请输入10个整数:\n"); for(i=0;i<10;i++) { scanf("%d",&a[i]); } max=min=a[0]; maxpos=minpos=0; for(i=0;i<10;i++) { if(maxa[i]) { min=a[i]; minpos=i+1; } } printf("max=%d,pos=%d\n",max,maxpos); printf("min=%d,pos=%d\n",min,minpos); } 3、分析以下程序,写出运行结果。 /* 文件名:ex7_3.c */ #include main ( ) { char str[20]; int i,num; gets(str); if(str[0]!=' ') { num=1; } else { num=0;

大学物理实验报告答案大全(实验数据)

U 2 I 2 大学物理实验报告答案大全(实验数据及思考题答案全包括) 伏安法测电阻 实验目的 (1) 利用伏安法测电阻。 (2) 验证欧姆定律。 (3) 学会间接测量量不确定度的计算;进一步掌握有效数字的概念。 实验方法原理 根据欧姆定律, R = U ,如测得 U 和 I 则可计算出 R 。值得注意的是,本实验待测电阻有两只, 一个阻值相对较大,一个较小,因此测量时必须采用安培表内接和外接两个方式,以减小测量误差。 实验装置 待测电阻两只,0~5mA 电流表 1 只,0-5V 电压表 1 只,0~50mA 电流表 1 只,0~10V 电压表一 只,滑线变阻器 1 只,DF1730SB3A 稳压源 1 台。 实验步骤 本实验为简单设计性实验,实验线路、数据记录表格和具体实验步骤应由学生自行设计。必要时,可提示学 生参照第 2 章中的第 2.4 一节的有关内容。分压电路是必须要使用的,并作具体提示。 (1) 根据相应的电路图对电阻进行测量,记录 U 值和 I 值。对每一个电阻测量 3 次。 (2) 计算各次测量结果。如多次测量值相差不大,可取其平均值作为测量结果。 (3) 如果同一电阻多次测量结果相差很大,应分析原因并重新测量。 数据处理 (1) 由 U = U max ? 1.5% ,得到 U 1 = 0.15V , U 2 = 0.075V ; (2) 由 I = I max ? 1.5% ,得到 I 1 = 0.075mA , I 2 = 0.75mA ; (3) 再由 u R = R ( 3V ) + ( 3I ) ,求得 u R 1 = 9 ? 101 &, u R 2 = 1& ; (4) 结果表示 R 1 = (2.92 ± 0.09) ?10 3 &, R 2 = (44 ± 1)& 光栅衍射 实验目的 (1) 了解分光计的原理和构造。 (2) 学会分光计的调节和使用方法。 (3) 观测汞灯在可见光范围内几条光谱线的波长 实验方法原理

C++实验7及参考答案

上海电力学院 实验报告 课程名称高级程序设计C++(1) 实验项目实验七数组1 姓名学号班级专业 同组人姓名无指导教师姓名实验日期 一、实验目的 1、掌握一维数组的定义、赋值和输入输出的方法; 2、掌握与数组有关的算法(特别是排序算法)。 二、实验内容和步骤 编程序并上机调试运行。 1、按如下要求编程: 在第一个循环中给a数组的前10个数组元素依次赋1、 2、 3、 4、 5、 6、 7、 8、 9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1;在最后一个 循环中输出对称折叠以后的a数组的前10个元素。 ●程序源代码(注意添加注释) #include using namespace std; int main() { int a[10],i; for(i=0;i<10;i++) a[i]=i+1; for(i=5;i<10;i++) a[i]=a[9-i]; for(i=0;i<10;i++) cout< using namespace std; int main() { int i,j,a[10]={3,32,6,2,67,9,21,45,23,8}; for(i=0;i<10;i++) { int p; p=i; for(j=i;j<10;j++)//该for循环找剩下j个元素里最大的那个元素的下标

实验7-指针

《C语言程序设计》实验报告实验序号:7 实验项目:指针 一、实验目的及要求 1、通过实验掌握指针的定义和使用指针变量; 2、掌握使用指针对数组和字符串进行操作; 3、掌握函数中指针类型参数的使用; 4、要求采用指针方法完成。 二、实验设备(环境)及要求 使用Turbo C 或Visual C++ 6.0;windows系列操作系统的环境。 三、实验内容与步骤 1.输入运行下面这个程序,观察并分析结果: #include "stdio.h" void main() { int a[]={2,3,4,5,6}; int *p1; char *p2="computer\n"; p1=a; printf("%d\n",p1+2); printf("%d\n",*(p1+2)); p1=a+2; printf("%d\n",p1+2); printf("%d\n",*(p1+2)); printf(p2+2); printf("%s",p2+2); } 运行结果截图:

2.以下程序调用invert 函数按逆序重新放置a 数组中的值,a 数组中的值在main 函数中读入,请填空。 #include "stdio.h" void invert(int *s,int i,int j) { int t; if(i

实验6数组

实验6 数组 一、实验目的: 1、理解数组的作用、特点; 2、掌握一维数组、二维的定义、引用、初始化,能够与循环结合实现批量数据处理(如输入、输出,比较大小,交换等); 3、熟悉打擂台、排序、查找等典型算法。 4、理解数组名作函数参数时,实参向形参传递的是数组首地址,可以利用此特性在函数中修改数组元素的值,从而达到改变实参数组的目的。 二、实验内容 1、(基础题)有一个数列,它的第一项为1,第二项为2,第三项为3,以后每一项都等于它的前三项之和。使用一维数组编程实现功能:计算该数列的前20项并赋值给数组,然后以逆序方式输出,每一行5个数据。如下图所示: 2、(基础题)编程计算数组各元素的平方和,要求如下: (1)void array_input(int array[], int n)的功能是:输入整型数组array 的各元素值,参数n是数组元素的个数; (2)int square_sum(int array[], int n)的功能是:对整型数组array的各元素的平方求和,参数n是数组元素的个数; (3)主函数的功能:定义一个是长度为6的整型数组,通过调用array_input()输入各元素的值,再调用square_sum()得到各元素平方和,最后输出结果; (4)主函数在前,上述两个函数在后面定义。程序运行如下图所示:

3、(基础题)编写程序实现如下功能:先定义两个长度为31的字符数组str1、str2,然后输入两个字符串保存到str1、str2中;现调用字符串处理函数分别进行以下处理: (1)分别计算两个字符串的长度并输出; (2)输出两个字符串中的较大值; (3)再定义一个字符数组str,将str1、str2两个字符串连接存至str中并输出。如下图所示: 程序代码:

答案-实验报告-实验7-数组(学号-姓名)

实验报告_实验7_数组(学号_姓名) 一、实验目的: 1、理解数组的作用、特点; 2、掌握一维数组、二维的定义、引用、初始化,能够与循环结合实现批量数据处理(如输入、输出,比较大小,交换等); 3、掌握字符数组、字符串的使用; 4、熟悉打擂台等典型算法。 二、实验内容 1、(基础题)有一个数列,它的第一项为1,第二项为2,第三项为3,以后每一项都等于它的前三项之和。使用一维数组编程实现功能:计算该数列的前20项并赋值给数组,然后以逆序方式输出,每一行5个数据。如下图所示: 程序代码: #include int main() { int i; int f[20]={1,2,3}; for(i=3;i<20;i++) f[i]=f[i-1]+f[i-2]+f[i-3];//计算数列的值 for(i=19;i>=0;i--) { //每行输出5个数据 printf("%10d",f[i]); if(i%5==0)printf("\n"); } printf("\n\n"); return0; }

2、(基础题)青年歌手大奖赛,有7名评委进行打分,分数取值范围:0.0~10.0,试编程实现如下功能:从键盘输入7位评委给某一选手的评分,之后计算、输出该选手的平均得分(计算规则:去掉一个最高分和一个最低分,求出剩余5个得分的平均值)。如下图所示: (提示:使用一维数组来保存7位评委的给分,先计算所有评委给分总和,并找到最高分、最低分,然后用给分总和-最高分-最低分,再除5得到选手的平均得分,最后输出。) 程序代码: #include #define N7 int main() { double score[N]; double max,min,sum,aver; int i; printf("请输入%d位评委的给分:\n",N); for(i=0;iscore[i]) min=score[i]; sum=sum+score[i]; } sum=sum-max-min; aver=sum/(N-2); printf("\n去掉一个最高分:%.4f,去掉一个最低分:%.4f\n\n",max,min); printf("该选手的最后得分是:%.4f\n\n",aver); return0; } 3、(基础题)计算矩阵之和:

实验报告7-虚拟变量

2013-2014学年第 一 学期 实 验 报 告 实验课程名称 虚拟变量模型 专 业 班 级 资产评估1101 学生 学号 31105073 学 生 姓 名 方申慧 实验指导教师 董美双 编号:

实验名称多重共线性检验与修正指导老师董美双成绩 专业资产评估班级 1101 姓名方申慧学号 31105073 一、实验目的 目的:通过实验,理解并掌握虚拟变量模型的意义、建模的方法、虚拟变量引入的原则和技巧等。 要求:熟练掌握虚拟变量引入的加法方式和乘法方式,并正确解读和分析回归结果。 首先做例题8-10,按步骤分析季节性因素的影响;然后利用上证指数的数据分析股市周效应(周1-周5任选),或者自己收集数据按上面的步骤做一遍,把结果输出到word文档中。 步骤: 例题8-10 Dependent Variable: Y Method: Least Squares Date: 11/28/13 Time: 09:12 Sample: 1982:1 1988:4 Included observations: 28 C 2431.198 93.35790 26.04170 0.0000 T 48.95067 4.528524 10.80941 0.0000 D1 1388.091 103.3655 13.42896 0.0000 D2 201.8415 102.8683 1.962136 0.0620 D3 85.00647 102.5688 0.828775 0.4157 R-squared 0.945831 Mean dependent var 3559.718 Adjusted R-squared 0.936411 S.D. dependent var 760.2102 S.E. of regression 191.7016 Akaike info criterion 13.51019 Sum squared resid 845238.2 Schwarz criterion 13.74808

JAVA实验7-9+答案

实验7 1. 编一个程序,包含以下文件。 (1)Shape.java文件,在该文件中定义接口Shape,该接口在shape包中。 属性:PI。 方法:求面积的方法area()。 (2)Circle.java文件,在该文件中定义圆类Circle,该类在circle包中,实现Shape接口。 属性:圆半径radius。 方法:构造方法;实现接口中求面积方法area();求周长方法perimeter()。 (3)“Cylinder.java”文件,在该文件中定义圆柱体类Cylinder,该类口在cylinder包中,继承圆类。 属性:圆柱体高度height。 方法:构造方法;求表面积方法area();求体积方法volume()。 (4)X5_3_6.java文件,在该文件中定义主类X5_3_6,该类在默认包中,其中包含主方法main(),在主方法中创建两个圆类对象cir1和cir2,具体尺寸自己确定,并显示圆的面积和周长;再创建两个圆柱体类的对象cy1和cy2,具体尺寸自己确定,然后分别显示圆柱体cy1和cy2的底圆的面积和周长以及它们各自的体积和表面积。 【编程分析】本题主要考察接口、包、继承、封装等问题。编程步骤如下:第一步:首先创建p1包,在其中创建Shape接口 // Shape.java文件 package p1; // 创建p1包 public interface Shape{ // 定义Shape接口 … } 第二步:创建Circle类和Cylinder类,它们都定义在p2包中。 // Circle.java文件 package p2; // 创建p2包 import p1.*; public class Circle implements Shape{ // 定义实现Shape接口的Circle类 … } // Cylinder.java文件 package p2; public class Cylinder extends Circle{ // 创建继承Circle类的Cylinder类 … } 第三步:创建主类,在其中的main()方法中创建对象,实现相应的功能。 // X5_3_6.java文件 package p3; import p2.*; public class X5_3_6 { // 定义主类 public static void main(String[] args) { … } }

相关文档