数组及应用练习题(一)

数组及应用练习题(一)
数组及应用练习题(一)

数组及应用练习题(一)

一、反序( fx.pas )

【问题描述】

输入n个不超过20000的整数。按输入相反的输出n个整数。

【输入文件】

输入文件fx.in包括两行数据。

第一行只有一个正整数:n

第二行共有n个不超过20000的整数。

【输出文件】

输出文件fx.out只有一行共有n个整数,顺序与输入的相反,数与数之间用一个空格隔开。

【样例输入】

3

1 2 3

【样例输出】

3 2 1

【数据限制】

100%的数据:1 <= n <= 10 000。

( ** P1142 ** )

二、两行整数相加( xj.pas )

【问题描述】

输入两行整数,输出它们的和

【输入文件】

输入文件xj.in共有三行:

第一行只有一个正整数:n

第二行共有n个整数

第三行共有n个整数

第二、三行中的所有整数的绝对值均不大于10000

【输出文件】

输出文xj.out只有一行共有n个整数:相对应位置上的两个整数之和,数与数之间用一个空格隔开

【样例输入】

3

1 -

2 4

2 1 -9

【样例输出】

3 -1 -5

【数据限制】

100%的数据:1 <= n <= 1 000。

( ** P1144 ** )

三、准方差( zfc.pas )

【问题描述】

输入n个正整数,先求出它们的平均值x,然后求出所有数据与x的差的平方和S 。【输入文件】

输入文件zfc.in包括两行数据:

第一行只有一个正整数:n

第二行共有n个正整数,每个正整数均不超过500,数与数之间用一个空格隔开。【输出文件】

输出文件zfc.out只有一行且只有一个实数:S (结果保留4位小数)。

【样例输入】

3

1 1 3

【样例输出】

2.6667

【数据限制】

100%的数据:1 <= n <= 10 000。

( ** P1143 ** )

四、整数环( zsh.pas )

【问题描述】

将输入的n个整数形成一个环,然后从第k个数开始输出整个整数环。

【输入文件】

输入文件zsh.in共有二行:

第一行只有二个正整数:n k

第二行共有n个整数,所有整数的绝对值均不大于10000

【输出文件】

输出文zsh.out只有一行共有n个整数:从第k个数开始的整个环,数与数之间用一个空格隔开

【样例输入】

5 2

1 2 3 4 -5

【样例输出】

2 3 4 -5 1

【数据限制】

100%的数据:1 <= k < n <= 1 000。

( ** P1146 ** )

五、最大值( max.pas )

【问题描述】

输入n个整数,输出所有相邻两数的和或积的最大值。

【输入】

输入文件max.in共有两行:

第一行只有一个正整数:n

第二行共有n个整数,所有整数的绝对值均不大于10000

【输出】

输出文件max.out只有一行且只有一个整数:所有相邻两数的和或积的最大值。【样例输入】

5

1 3 -4

2 -8

【样例输出】

4

【数据限制】

100%的数据:1 <= n <= 1000。

( ** P1147 ** )

六、整数分左右( lr.pas )

【问题描述】

依次输入n个不等于0的整数,将第一个正数存放在a[1]中、第二个正数存放在a[2]中、……,将第一个负数存放在a[n]中、第二个负数存放在a[n-1]中、……。当n个整数处理完成后依次输出数组a中的n个数。

【输入文件】

输入文件lr.in包括两行数据。第一行只有一个正整数:n ( 1 <= n <= 10000 ),第二行共有n个不等于0的整数,每个整数的绝对值不超过10000。

【输出文件】

输出文件lr.out只有一行共有n个整数,依次是处理后的整数,数与数之间用一个空格隔开。

【样例输入】

10

100 -200 -150 140 129 -134 -167 -198 200 111

【样例输出】

100 140 129 200 111 -198 -167 -134 -150 -200

七、陶陶摘苹果( apple.pas )

【问题描述】

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,

陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。

现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。

【输入文件】

输入文件apple.in包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。

【输出文件】

输出文件apple.out包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。

【样例输入】

100 200 150 140 129 134 167 198 200 111

110

【样例输出】

5

八、编码问题( bmwt.pas )

【问题描述】

设有一个数组A:array[0..n-1] of integer;数组中存放的元素为0至n-1之间的整数,且A[i]<>A[j](当i<>j时)。如:n=6时,A=(4,3,0,5,1,2)

此时,数组A的编码定义如下:

A[0]的编码为0

A[i]的编码为:在A[0],A[1],……,A[i-1]中比A[i]的值小的个数(i=1,2,……,n-1)所以上面的数组A的编码为:B=(0,0,0,3,1,2)

【输入】

输入文件bmwt.in共有二行:

第一行只有一个正整数:n

第二行共有n个整数,对应于数组A的n个元素

【输出】

输出文件bmwt.out只有一行共有n个元素:数组A的编码B。

【样例输入】

6

4 3 0

5 1 2

【样例输出】

0 0 0 3 1 2

【数据限制】

100%的数据:1 <= n <= 500。

( ** P1103 ** )

九、点的线段覆盖( fg.pas )

【问题描述】

在一条射线上有n个点,用一条长为k的线段去覆盖,最多能盖住几个点?

假定:线段的顶点碰到某个点,就可以认为该点已被覆盖。

【输入】

输入文件fg.in共有两行。

第一行只有两个正整数:n k 其中:n表示点的个数,k表示线段的长度

第二行共有n个正整数xi,表示点的坐标,数与数之间用一个空格隔开

【输出】

输出文件fg.out只有一行且只有一个正整数:最多能覆盖的点数。

【样例输入】

3 10

1 1

2 24

【样例输出】

1

【数据限制】

100%的数据:1 < n < 10000 , 0 < xi <= 1 000 000 , 1 <= k <= 10 000。

( ** P1183 ** )

数组程序设计实验报告

计算机科学与技术学院 程序设计报告 程序名称:数组程序设计 专业:计算机科学与技术 班级:计算机1103班 学号: 姓名: 指导老师: 设计日期:2011年11月26日

数组程序设计 题目: 编写一个程序,其功能如下:输入n(n<50)个学生的姓名和C语言课程的成绩,将成绩按从高到低的次序排序,姓名同时作相应的调整,输出排序后的学生姓名和C语言课程的成绩。然后输入一个C 语言课程成绩值,用二分法查找进行搜索。如果查找到该成绩,输出该成绩同学的姓名和C语言课程的成绩;否则输出提示“not found !”. 程序源代码: #include #include #define n 3 void main() { int i,j,k,t,x,a[n]; int top=0,bottum=n-1,mid; char b[n][10],str[10],c[20]; for(i=0;i

printf("input the name of the %dth student:",i+1); gets(b[i]); printf("input the score of the C language:"); scanf("%d",&a[i]); printf("\n"); gets(c); } for(i=0;i

软件工程综合应用例题解析

软件工程综合应用例题 第一部分 《结构化软件开发方法》 1、根据下列描述,画出教材征订系统的第一层数据流图。学生入学后到教材科订书,教材科根据教材库存情况分析是否需要买书,如需购买,则向书店购买。各种资金往来通过学校的会计科办理。 解: 2、高考录取统分子系统有如下功能: (1) 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件; (2) 计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。 试根据要求画出该系统的数据流程图,并将其转换为软件结构图。 解:(1)数据流图: (2)软件结构图: ① 原始分 ② 标准分 ③ 招生计划 ④ 录取线 3、有下列伪码程序: START INPUT (M,N) IF M>=10 THEN X:=10 ELSE X:=l ENDIF IF N>=20 THEN Y:=20 ELSE Y:=2 ENDIF PRINT(X,Y) STOP

设计该程序的语句覆盖和路径覆盖测试用例。 解: 语句覆盖测试用例为 ①M=9(或=10),N=20(或>=20) 路径覆盖的测试用例为 ①M=9,N=19; ②M=9、N=20; ③M=l0,N=l9; ④M=10,N=20 4、画出下列伪码程序的程序流程图、盒图(N-S图)、PAD图。 START IF p THEN WHILE q DO F END DO ELSE BLOCK g n END BLOCK END IF STOP 解: 5、根据下面程序流程图,给出测试用例: 解:路径覆盖可使用测试用例: ⑴【A=1,B=1,X=1】 ⑵【A=1,B=1,X=2】

实验5 数组1答案

实验数组1 实验目的: 1、进一步掌握循环结构的程序设计 2、掌握在循环结构里面使用break、continue 3、掌握一维数组的定义与使用 实验内容: 一、观察下列代码(有语法问题自己解决) 1、利用无限循环输入数据,直到条件满足利用break跳出循环: #include using namespace std; int main( ) { int x,sum=0; while(1) { cin >> x; if(x <= 0) break; sum += x; } return 0; } 2、利用continue语句实现输出1-100之间的偶数: #include using namespace std; int main() { for (int i = 0;i <= 100; i++) { if (i % 2 != 0) continue; cout << i << ' '; } return 0; } 二、编码训练 1、利用break语句写一程序:循环从键盘输入数据并累加起来,直到输入的数为零时结束循环,打印累加结果。(参考前面第1题) #include using namespace std; int main( )

{ int x,sum=0; while(1) { cin >> x; sum += x; if(x == 0) break; } cout << "The sum is " << sum << endl; return 0; } 2、利用continue语句写一程序:输出1-20之间不能被3整除的数。(参考前面第2题) #include using namespace std; int main() { for (int i = 1;i <= 20; i++) { if (i % 3 == 0) continue; cout << i << ' '; } return 0; } 3、实现求6位学生c++的平均成绩。(参考案例书的P47案例1) #include using namespace std; int main() { double score[6]; double avg = 0,sum = 0; for (int i = 0;i <= 5; i++) { cin >> score[i]; sum = sum + score[i]; } avg = sum/6; cout << "平均成绩是:" << avg; return 0; } 4、利用一维数组编写一个程序:从键盘上输入10个float类型的数据,找出它们的最大值和最小值,并输出(定义两个变量分别保存最大值和最小值)。(参考案例书的P47案例1)#include using namespace std; int main() { float numb[10]; float min = 0.0,max = 0.0; int i; for (i = 0;i <= 9; i++) { cin >> numb[i]; } min = numb[0]; max = numb[0]; for (i = 1;i <= 9; i++) { if (numb[i] >= max ) max = numb[i];

实验六 一维数组程序设计

实验六一维数组程序设计 一、实验学时 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]);

实验5-数组答案

VB程序设计实验五 实验目的 ●掌握一维数组和二维数组的操作 ●学习跟数组相关的控件:列表框和组合框 复习 1.列表框 列表框(ListBox)控件允许用户查看和选择列表中的多个元素。 表5-11 列表框的常用属性和事件 2.组合列表框(ComboBox)整合了列表框和文本框的功能,以一个文本框控件(TextBox) 右边加上一个向下箭头的样式显示。有Simple(简单组合框)、DropDown(下拉组合框)和DropDownList(下拉列表框)。其中,Simple选项不显示下拉箭头,而是在控件的旁边显示一个滚动条;DropDown风格(默认值)在单击向下箭头时显示一个下拉列表,且在ComboBox中输入一个值;DropDownList显示一个下拉列表,但不允许用户在ComboBox中输入。 表5-13 组合列表框的常用属性和事件

(1) Items.Count属性:列表框或组合框中项目数量。最后一项的序号为Items.Count-1,该属性只能在程序中设置或引用。 (2) Text属性:被选定的选项的文本内容。该属性只能在程序中设置或引用。 注意:ListBox1.Items(ListBox1.SelectedIndex)等于ListBox1.Text。 (3) Items.Add方法 把一个选项加入列表框,格式:对象.Items.Add(选项);如:ListBox1.Items.Add("周海涛") (4) Insert方法 在指定位置插入一个项目。格式:对象.Items.Insert(序号, 添加项内容) (5)Items.Remove方法 从列表框中删除指定的项。格式:对象. Items.Remove (选项)。 例如:ListBox1.Items.Remove ("华成") (6)Items.RemoveAt方法 格式:对象.RemoveAt(Index) 从列表框中删除指定的项。Index表示被删除项目在列表框中的位置,从0开始。 例如:ListBox1.Items.RemoveAT(4) (7) Items.Clear方法 格式:对象.Items.Clear 用于清除列表框所有项目,例如:ListBox1.Items.Clear 4.单选按钮、复选框和框架 1)单选按钮(RadioButton) 单选按钮以组的形式出现,允许选择其中一项。 ?Text属性:按钮上显示的文本 ?TextAlign属性:文本对齐方式 ?Checked属性:表示单选按钮的状态,True ——被选定,False ——未被选定?Click事件:单击后,使Checked属性为True ?CheckedChanged事件:当某个单选按钮的状态被发生变化,该事件随之被触发。2)复选框(CheckBox) 与RadioButton具有相同属性和事件,之外还有: ?CheckState属性:表示复选框状态,Unchecked——未选定,Checked——被选定,Indeterminate——灰色 3)框架(GroupBox分组框) ?Text属性:标题文本 ?Enabled属性:框架和其中的控件

Java语言程序设计实验四 方法及数组实验报告

**大学 Java语言程序设计实验报告

四、实验步骤: 1: import java.util.Scanner; public class sy41 { public static void main(String[] args) { // TODO Auto-generated method stub int t,bbk=0; int []a; a=new int[10]; Scanner chm=new Scanner(System.in); System.out.println("请输入十个数"); for(int i=0;i<10;i++) { a[i]=chm.nextInt(); } System.out.println("请输入要找的数"); t=chm.nextInt(); for(int j=0;j<10;j++) { if(t==a[j]) bbk=1; } if(bbk==1) System.out.println("有"); else System.out.println("无"); } } 2: package syyyy; import java.util.*; class first {

System.out.println("输出排序前"); f.printarray(a); f.sort(a); System.out.println("输出排序后"); f.printarray(a); f.delelement(a, 2); System.out.println("输出删除第2个数后"); f.printarray(a); } } 3): import java.util.Scanner; public class syyyyyyyy43 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner bbk=new Scanner(System.in); System.out.println("请输入一个十进制数:"); int a=bbk.nextInt(); int pok=a/2; int shu[]=new int [pok+1]; if(pok<3000){ if(a%2==0){ shu[0]=1; System.out.print(shu[0]); for(int i=1;i

软件工程综合应用例题(题)

综合应用例题 第一部分传统软件开发方法 1、某一8位计算机,其十六进制常数的定义为:以0x或0X开头的数是十六进制整数,其值的 围是-7f至7f(大小写字母不加区别),如0x13,0X6A,-0x3c 。 请用等价类划分法设计测试用例。 2、下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。 int GetMax(int n, int datalist[ ]) { int k=0; for ( int j=1; j datalist[k] ) k=j; return k; } 画出该程序的程序流程图,并计算其McCabe复杂度。 3、有下列伪码程序: START INPUT (M,N) IF M>=10 THEN X:=10 ELSE X:=l ENDIF IF N>=20 THEN Y:=20 ELSE Y:=2 ENDIF PRINT(X,Y) STOP 设计该程序的语句覆盖和路径覆盖测试用例。 4、根据伪码程序画出程序流程图,盒图(N-S图)。 START a IF x1 THEN REPEAT UNTIL x2 b END REPEAT ELSE BLOCK c d END BLOCK

END IF STOP 5、根据下列描述,画出教材征订系统的第一层数据流图。学生入学后到教材科订书,教材科根据教材库存情况分析是否需要买书,如需购买,则向书店购买。各种资金往来通过学校的会计科办理。 6、画出下列伪码程序的程序流程图,盒图(N-S图)。 START IF p THEN WHILE q DO F END DO ELSE BLOCK g n END BLOCK END IF STOP 7、画出下面PDL伪码程序的程序流程图、N-S图、PAD图和程序流图,并计算其McCabe复杂度。 WHILE P DO IF A>O THEN A1 ELSE A2 ENDIF; IF B>0 THEN B1; IF C>0 THEN C1 ELSE C2 ENDIF ELSE B2 ENDIF; B3 ENDWHILE; 8、根据下面伪码程序,设计语句覆盖、路径覆盖、边覆盖、判定覆盖、条件覆盖、点覆盖的测试用例。 PROCEDURE EX(A,B:REAL;VAR X:REAL); BEGIN IF(A=3)OR(B>1)THEN X:=A×B IF(A>2)AND(B=0)THEN X:=A-3 END 9、某培训中心要研制一个计算机管理系统。它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。 如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。 如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。 如果是付款的,则由财务人员在帐目文件上登记,也给学生一收费收据。

C语言实验五_数组

实验(实训)报告 项目名称实验五数组 所属课程名称 C 语言程序设计 项目类型验证性 实验(实训)日期2011/11.16/11.23/11.30 班级10统计2 学号100112100236 姓名裴晓晓 指导教师刘亚楠 浙江财经学院教务处制

一、实验(实训)概述: 【实验目的】 1. 掌握一维数组和二维数组的定义、赋值和输入输出的方法。 2. 掌握字符数组和字符串函数的使用。 3. 掌握与数组有关的算法(特别是排序算法)。 【实验要求】 1.选择合适的数据类型表达应用要求; 2.正确运用循环结构处理数组问题; 3.输入和输出格式清晰,有提示信息。能对输入数据进行基本的合理性判断。 【基本原理】 见第五章课件和课本内容 【实施环境】(使用的材料、设备、软件) Visual C++ 6.0 二、实验(实训)内容: 第1题 【项目内容】 完成课后第3题。求一个3×3矩阵对角线元素之和。 【方案设计】 提示:请在此粘贴你的完整程序。□ #include using namespace std; int main() {int a[3][3]; int i,j,sum; sum=0; for(i=0;i<3;i++) for(j=0;j<3;j++) {cin>>a[i][j]; if(i==j) sum=sum+a[i][j]; } cout<<"sum="<

【结论】(结果、分析) 提示: 请记录该程序的运行过程:输入输出。比如: 123 456↙(↙表示输入,如果没有输入,则没有这一行) a+b=579 (输出) 并尽可能对程序的执行结果进行分析。□ 4 5 5 6 2 34 7 23 5 66 sum=104 第2题 【项目内容】 完成课后第4题。 提示:自定义数组a的大小和内容。插入一个数number到已排好的数组中,可以有以下两种方法:(1)先从数组前面开始比较number和数组元素a[i]的大小,直到找到待插入的正确位置(即a[i-1] using namespace std; int main() {int a[11]={2,5,8,17,28,39,58,89,100,298},n,i,j; cout<<"a[i]="<

实验4使用数组的程序设计

C语言程序设计实验报告 实验4 使用数组的程序设计 一、实验目的 (1)掌握一维数组和二维数组的定义、赋值和输入输出方法。 (2)掌握字符数组的使用。 (3)掌握与数组有关的算法。 二、实验内容及步骤 1、检验并打印幻方矩阵 在下面的5*5阶幻方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些幻方矩阵中的元素读到一个二维整型数组中,然后检验其是否为幻方矩阵,并将其按如下格式显示到屏幕上。 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 程序代码: #include main() { int a[5][5],i,j,sr,sc,st1=0,p=0,st2=0; printf("请输入一个方阵:\n"); for(i=0;i<5;i++) {for(j=0;j<5;j++) scanf("%d",&a[i][j]); } for(i=0;i<5;i++) {st1=st1+a[i][i];//主对角线的和 st2=st2+a[i][4-i];}//次对角线的和 if(st1==st2) p++; for(i=0,sr=0;i<5;i++) {for(j=0,sc=0;j<5;j++) {sr=sr+a[i][j];//行的和 if(sr!=st1)break; sc=sc+a[j][i];//列的和 if(sc!=st1)break;} } if(p==1&&i==5) {printf("这是一个幻方矩阵\n");

for(i=0;i<5;i++) {for(j=0;j<5;j++) printf("%d\t",a[i][j]); printf("\n"); }} else printf("这不是一个幻方矩阵\n"); } 运行结果 2、完成以下程序,并进行调试 某班期末考试科目为数学、英语和计算机,有最多不超过30人参加考试,考试后要求:1)计算每个学生的总分和平均分; 2)按总分成绩由高到低排出成绩的名次; 3)打印出名次表,表格内包括学生学号、各科分数、总分和平均分; 4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数。 【提示】:用二维数组score存放每个学生各门课程的成绩,用一维数组num存放每个学生的学号,用一维数组sum存放每个学生的总分,用一维数组aver存放每个学生的平均分。 程序代码: #include main() { double score[5][3],sum[5],aver[5]; int i,j,num[5],t; printf("请输入每位同学的学号和各科成绩,用Tab键隔开:\n"); printf("学号\t数学\t英语\t计算机\n"); for(i=0;i<5;i++) { scanf("%d",&num[i]); for(j=0;j<3;j++) scanf("%lf",&score[i][j]);

实验五 数组的应用(1)

实验五数组的应用(1) 一、实验目的: 1、掌握静态数组的定义和使用方法。 2、用数组解决实际问题。 二、实验准备: 1、计算机基本操作练习。 2、VisualBasic软件使用预习。 3、设计出下面问题的程序。 三、实验步骤及内容: 1、静态数组的声明,语法格式如下: Dim 数组名[(各维下标)] [As 数据类型],… 例如:Dim num(6) As Integer 定义了一个包含()个元素的数组,从()到()。 静态数组的上下标必须是(),如果希望数组下标下界默认从1开始,则可在窗体的“通用|声明”部分使用: ________________________________语句来改变默认值。 2、Array函数的使用。 Dim a() As Variant A = Array(154,135,121) 请说明以上语句的作用,()。 Lbound函数和Ubound函数可以分别返回数组的指示维数的最小、最大可用下标。 3、应用一维静态全局数组求10个100以内的最大值、最小值、平均值和方差。程序运行界面如图所示。

4、利用数组排序。按“生成随机数”按钮,在第一个文本框中生成10个10~99之间的随机数,然后按“按大小排序”按钮,将这10个数按从大到小的顺序排列放在第二个文本框中。设计界面及运行结果如图1和图2 所示:

图1 设计界面 图2 运行界面 要求: 提示: (1)设计窗体,添加控件:两个文本框(Text)、两 个按钮(Command)。 (2)如表1 所示设置窗体控件属性。 (4)自行编辑代码。 窗体通用声明代码如下: Option Base 1 Dim a() As Integer 窗体控件代码自行编辑。 Private Sub Command1_Click()

C++上机实验报告实验四

实验四数组、指针与字符串 1.实验目的 1.学习使用数组 2.学习字符串数据的组织和处理 3.学习标准C++库的使用 4.掌握指针的使用方法 5.练习通过Debug观察指针的内容及其所指的对象的内容 6.联系通过动态内存分配实现动态数组,并体会指针在其中的作用 7.分别使用字符数组和标准C++库练习处理字符串的方法 2.实验要求 1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。 2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4.使用string类定义字符串对象,重新实现上一小题。 5.定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性。实现并测试这个类。 6.定义包含5个元素的对象数组,每个元素都是Employee类型的对

象。 7. (选做)修改实验4中的选做实验中的people(人员)类。具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。 3.实验内容及实验步骤 1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。 2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过Debug观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。 3.编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。

数组程序设计作业-1

上机作业6 1.输入10个学生的一门课成绩,用一维数组存放其成绩,请输出最高分。 #include void main() { int x[10],i,max; for(i=0;i<10;i++) scanf("%d",&x[i]); for(i=1;i<10;i++) { if(x[i]>max) { max=x[i]; } } printf("the max is:%d\n",max); } 2.定义一个有10个元素的数组,用其代表10个学生的考试成绩,从键盘输入10个成绩,统计平均成绩。 #include void main() { int x[10],i; double j,s=0; for(i=0;i<10;i++) scanf("%d",&x[i]);

for(i=0;i<10;i++) { s=s+x[i]; } j=s/10; printf("平均值是%lf\n",j); } 3.输入10个学生的一门课成绩,用一维数组存放其成绩,统计并输出不及格人数及其百分比。 #include void main() { int x[10],i; double j=0,p; for(i=0;i<10;i++) scanf("%d",&x[i]); for(i=0;i<10;i++) { if(x[i]<60) j++; } printf("不及格人数有%.0lf\n",j); p=j/10*100; printf("不及格人数是总数的:%.0lf%%\n",p); }

4.定义一个有10个元素的数组,用其代表10个学生的考试成绩,从键盘输入10个成绩,分别统计优、良、中、及格、不及格的人数。 #include void main() { int x[10],i,y=0,l=0,z=0,j=0,b=0; for(i=0;i<10;i++) scanf("%d",&x[i]); for(i=0;i<10;i++) { if(x[i]>=90) { y++; } else if(x[i]<90&&x[i]>=80) { l++; } else if(x[i]<80&&x[i]>=70) { z++; } else if(x[i]<70&&x[i]>=60) { j++; } else { b++; }

C语言综合应用实例

C语言综合应用实例 一、学生信息管理系统 #include/*I/O函数*/ #include/*其它说明*/ #include/*字符串函数*/ #defineBUFLEN100/*缓冲区最大字符数*/ #defineLEN15/*学号和姓名最大字符数,实际请更改*/ #defineN100/*最大学生人数,实际请更改*/ structrecord/*结构体*/ { charcode[LEN+1];/*学号*/ charname[LEN+1];/*姓名*/ intage;/*年龄*/ charsex[3];/*性别*/ chartime[LEN+1];/*出生年月*/ charadd[30];/*家庭地址*/ chartel[LEN+1];/*电话号码*/ charmail[30];/*电子邮件地址*/ }stu[N]; intk=1,n,m;/*定义全局变量*/ voidreadfile();/*函数声明*/ voidseek(); voidmodify(); voidinsert(); voiddel(); voiddisplay(); voidsave(); voidmenu(); intmain() { while(k) menu(); system("pause"); return0; } voidhelp() { printf("\n0.欢迎使用系统帮助!\n"); printf("\n1.进入系统后,先刷新学生信息,再查询;\n"); printf("\n2.按照菜单提示键入数字代号;\n");

C语言实验5(结构体)

实验五结构体 一、实验目的 1.掌握结构体类型变量的定义和使用。 2.掌握结构体类型数组的概念和使用。 二、实验内容 编写一个程序实现下面的功能: A.建立一个数组用于存储学生的学号、姓名和三门课程的成绩和平均成绩 B.输入学号后输出该学生的学号、姓名和三门课程的成绩 C.输入学号后删除该学生的数据 D.插入学生的数据 E.输出平均成绩在80分及以上的记录 F.退出 要求用循环语句实现B--E的多次操作 三、实验具体实验程序代码(要有注释)、测试结果(最好截图)和实验总结 1、实验代码 建立一个数组用于存储学生的学号、姓名和三门课程的成绩和平均成绩 输入学号后输出该学生的学号、姓名和三门课程的成绩 um,&stud[i].name,&stud[i].yingyu,&stud[i].shuxue,&stud[i].cc); stud[i].avg=(stud[i].yingyu+stud[i].shuxue+stud[i].cc)/3; } for(i=0;i

C语言实验报告《数组》.doc

《c语言程序设计》课程实验报告 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡篇二:c语言实验报告本(数组函数) 《c语言程序设计》 实验报告 2009~2010学年第二学期 专业 班级 姓名 学号 任课教师 计算机教学实验中心 2010年 5 月 《c语言程序设计》实验报告( 1 ) 学号:姓名:班级:成绩: 任课教师签名: 《c语言程序设计》实验报告( 2 ) 学号:姓名:班级:成绩: 任课教师签名:篇三:c语言实验报告数组 实验报告 实验课程名称高级c语言程序设计 实验项目名称数组 年级 09 级 专业数学 学生姓名李军 学号 0907010170 理学院 实验时间: 2010 年 4 月 22 日 学生实验室守则 一、按教学安排准时到实验室上实验课,不得迟到、早退和旷课。 二、进入实验室必须遵守实验室的各项规章制度,保持室内安静、整洁,不准在室内打闹、喧哗、吸烟、吃食物、随地吐痰、乱扔杂物,不准做与实验内容无关的事,非实验用品一律不准带进实验室。 三、实验前必须做好预习(或按要求写好预习报告),未做预习者不准参加实验。 五、实验中要节约水、电、气及其它消耗材料。 六、细心观察、如实记录实验现象和结果,不得抄袭或随意更改原始记录和数据,不得擅离操作岗位和干扰他人实验。 七、使用易燃、易爆、腐蚀性、有毒有害物品或接触带电设备进行实验,应特别注意规范操作,注意防护;若发生意外,要保持冷静,并及时向指导教师和管理人员报告,不得自行处理。仪器设备发生故障和损坏,应立即停止实验,并主动向指导教师报告,不得自行拆卸查看和拼装。 八、实验完毕,应清理好实验仪器设备并放回原位,清扫好实验现场,经指导教师检查认可并将实验记录交指导教师检查签字后方可离去。 九、无故不参加实验者,应写出检查,提出申请并缴纳相应的实验费及材料消耗费,经

数组程序设计

1.1 实验学时:4学时 1.2 实验目的 1. 掌握一维数组、二维数组的概念及元素的各种表示方法; 2. 正确掌握数组输入输出等的基本操作; 3. 掌握函数访问数组的方法; 4. 字符串的处理方法; 5. 掌握数组中的一些常用算法,并能解决实际问题。 1.3 必做实验 【题目4-1】运用所学数组知识实现学生成绩的录入、评估、统计、排序及输出,要求如下: (1)从键盘输入6个同学计算机课程期末考试成绩存放在数组中 算法分析: 1、定义一个能够存放6个整型数据的数组 int score[6]; 2、使用循环结构为数组元素赋值 3、编写循环体,注意数据输入格式 (2)统计出平均分、最高分,以及统计超过平均分的人数 算法分析: 1、分析编程所需定义的变量,并未变量赋初值:总分int sum=0,平均分intave=0,最高分int max=0,以及超过平均分人数的变量int count=0 2、使用循环结构访问数组元素: score[0]~score[5] 3、在访问数组元素的过程中,完成总分、最高分的统计,在访问完所有数组数据后,计算平均分 4、再次访问数组,参照计算所得平均成绩统计超过平均分的人数 5、输出结果 (3)对学生成绩进行从高到低的排序(冒泡法),并把排序后的成绩输出。 算法分析: 冒泡法实现n个数据从小到大排序,结合算法对学生成绩进行从高到低的排序 输出排序结果 流程框图: 【实验4-1】代码及运行结果:(1)确定内部循环次数 确定外部循环次数 判定数据是否需要交换

(2) (3)

【题目4-2】定义一个N行N列的二维整型数组,使数组左下三角元素中的值乘以n 。例如:若n的值为3, a数组中的值为 ? ? ? ? ? ? ? 6 5 4 8 3 2 7 9 1 则返回主程序后a数组中的值为 ? ? ? ? ? ? ? 18 15 12 8 9 6 7 9 3 算法分析: 1、定义N行N列的二维数组,并手动为数组元素赋值 注意:注意数组维数不能为变量,但可以用宏定义的方式来进行数组维数的定义,例如:在头文件前进行宏定义#define N 3,程序中定义二维数组 intnum[N][N]; 2、选择二维数组中的左下三角元素,并改变三角元素的值 3、以N行N列的形式输出二维数组,要求每输出N个数据,输出一个回车换行符 延伸扩展: 结合所学函数的知识,把改变左 函数实现。 【实验4-2】代码及运行结果:

实验五 数组

实验五数组 一、目的和要求 1.掌握一维数组、二维数组、字符数组的定义、初始化赋值、数组元素的引用方法; 2.掌握求最大、小值、平均值、排序的方法以及有序数组的查找、增加、删除的编 程方法; 3.初步掌握字符串处理函数的使用方法以及字符串复制、连接、测长等程序的编写 方法; 4.掌握数组的典型应用。 二、实验设备及分组 1.Windows XP操作系统; 2.Visual C++6.0语言环境; 3.每人一台PC机。 三内容和步骤 (一)验证实验程序 1.应用一维数组,对10个数进行冒泡排序,使其按照从大到小的顺序输出。 分析:n个数冒泡排序的方法是将第一个数与其后面的数逐个进行比较,发现大者进行交换,完成后最大的数就放到了第一个的位置;第二个数与其后面的数逐个进行比较,发现大者进行交换,完成后次大的数就放到了第二个的位置;如此循环,直到第n-1个数与第n 个数进行比较,发现大者进行交换。 解: #include int main() { int a[10]; //A inti,j,t; cout<<"输入数据:"<>n; int a[n]” 观察运行结果?分析原因。 ● 将B 行改为“for(i=1;i<=10;i++)”,观察现象。 2.应用二维数组打印如图5-1所示杨辉三角形。 分析:由杨辉三角形可以看出每行数存在以下规律:每行数据的个数与行序相同;每行的第一个数和最后一个数均为1;中间的数为上一行同一列的数和其前一列的数之和。 解: #include int main() { int y[5][5]; inti,j,n=5; for(i=0;i

相关文档
最新文档