实验六 一维数组程序设计

合集下载

实验报告6-2

实验报告6-2

实验报告课程名称:高级语言程序设计实验六:一维数组和二维数组班级:学生姓名:学号:专业:指导教师:学期:2015-2016学年上学期云南大学信息学院一、实验目的1、掌握一、二维数组的定义及初始化2、掌握数组元素的输入、输出及引用方法3、掌握使用循环对数组元素进行访问4、掌握一、二维数组的简单应用 二、知识要点1、一、二维数组的定义与赋值(初始化、循环键盘输入)2、访问数组元素(下标的正确使用)3、数组的典型应用(复制、求和、统计某种元素个数、求数组中的最大/最小值、元素的查找与排序)三、实验预习 (要求做实验前完成)1、定义一个有四个元素的float 型数组:float a[4];2、定义一个具有五个元素的整型数组并将其初始化为{1,2,3,4,5}:inta[5]={1,2,3,4,5};3、要用循环从键盘输入整型数组s 的元素值(共6个),应该使用语句:4、交换数组元素d[2]和d[4],使用语句:5、语句for(k=0;k<3;k++) x[2][k] = 0; 将把哪些元素变为0? 四、实验内容 (要求提供:① 算法描述或流程图 ② 源程序 )1、已知一个数组有10个元素,值分别是3,6,8,4,5,66,80,72,69,70。

编程,将数组元素逆置后输出。

(提示:第一个与最后一个交换位置,第二个与倒数第二个交换位置,……)2、编程序求Fibonacci 数列的前30项,Fibonacci 数列的定义为:⎪⎩⎪⎨⎧>+===--)2()2(1)1(121n f f n n f n n n 要求将数列存放在数组中,并按每行5个数的格式输出该数列。

3、输入14 一个4行4列的二维数组,统计偶数的个数,并输出所有小于5的数。

4、已知一个二维数组:{{14,26,18,17},{24,37,21,8},{19,31,22,16},{7,19,14,26}},编程,输出该二维数组的最小元素的行下标与列下标。

C语言实验__一维数组

C语言实验__一维数组

实验6 一维数组实验要求:使用Visual C++ 6.0开发环境,完成以下习题。

1. (此题可不使用数组)输出1~100之间的不能被7整除的数。

(要求使用continue语句,如果其能被7整除则continue)。

源程序保存为6-1.c。

运行效果截图保存为6-1p.jpg。

2. 对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出。

源程序保存为6-2.c。

运行效果截图保存为6-2p.jpg。

3. 定义一个100个元素的数组,依次赋值为1 ~ 100。

先输出其中能被3整除的数。

再输出其中能被5整除的数。

(注意数组的下标是从0开始。

)源程序保存为6-3.c。

运行效果截图保存为6-3p.jpg。

4. 让用户输入学生的人数n,然后输入这n个学生的语文成绩,保存在数组中。

然后分别计算输出:(1)统计语文成绩平均分。

(2)不及格的学生序号及成绩、并统计不及格人数。

(3)最高分的成绩及最高分的学生的序号。

源程序保存为6-4.c。

运行效果截图保存为6-4p.jpg。

5. 定义一个数组A存放6个学生的高数成绩,定义一个数组B存放这6个学生的英语成绩, 再定义一个数组C存放这6个学生的C++成绩。

在输入时,要求逐个学生的三门课成绩输入(即先输入第1个学生的三门课成绩,再输入第2个学生的三门课成绩,以此类推)。

求这6个同学三科的总分存放在数组D中,并输出。

源程序保存为6-5.c。

运行效果截图保存为6-5p.jpg。

6. 编程实现:简单版成绩管理系统1。

程序首先显示菜单,让用户选择1则添加一个学生的的记录,选择2则查看一个学生的记录,选择3则修改一个学生的记录,选择4则浏览所有学生记录。

每个学生记录由其学号、高数成绩、英语成绩、C++成绩组成。

(提示:定义一个100个元素的数组,存放学生的学号;定义一个100个元素的数组存放高数成绩,定义一个100个元素的数组存放英语成绩;定义一个100个元素的数组存放C++成绩;定义一个变量记录当前已经总共添加了多少个学生)当用户选择1之后,让用户输入要添加的学生的学号、高数成绩、英语成绩、C++成绩。

一维数组教学设计方案

一维数组教学设计方案
老师提出问题,讲解解题思路。让学生自己思考写出程序。然后评价。
学生根据老师讲解的思路,进行思考。结合刚刚学数组定义等的知识,写出程序。
让学生自己思考写出程序,这个程序包括数组的定义,引用初始化等,让学生能够更好的掌握这些知识。老师的评价让学生知道要怎样去定义引用等。没有自己去写,只是单纯的听老师讲是很难掌握新知识的。
带着兴趣听老师讲解新知识,在老师的提问中思考出自己答案,自主思考。
通过教师的讲解数组的定义引用,初始化。积极的让学生参与互动,能讲解枯燥新知识让学生更容易参与课堂,自我思考知识,对知识的理解深刻。也让学生的注意力更集中,专心课堂。
课堂程序举例(35分钟)
老师提出题目,讲解程序的思路,让两名学生上黑板其他同学在下面写出自己的程序,然后老师进行评价,给出正确的答案。
五、教法、学法设计
通过对学生群体的特征分析,再加上本节是基础的知识讲解课,我需要选择学生最容易接受的教学方法,要把知识讲得通俗易懂,避免学生担心数组是个难学的知识。失去学习的兴趣。主要应用以下几个方法:
1.教学方法:
(1)语言讲授法:以语言传递为主,向学生讲解知识点及本节重难点。在讲授的过程中与学生互动,让他们自主的思考。
七、教学活动过程
教学环节
教学过程
教师活动
学生活动
设计意图及资源准备
导入课题(5分钟)
语言讲授,对学生提问前几节课学的数据的基本类型的知识,引起学生兴趣学习数组的兴趣。
打开用PPT,提问学生,让学生思考问题。然后进入数组这个课题。
通过教师的提问,学生进行思考,并回答问题,接触新的知识数组。
通过教师的提问,让学生身心都在课堂上,让学生的注意力集中。学习新知识
2.学法:
自主探究法:学生在观察实例效果的过程中中能充分发挥想象力,通过分析比较获得设计的思路。

C语言电子教案第六章一维数组

C语言电子教案第六章一维数组
数组:有序数据的集合,用数组名标识
元素:属同一数据类型,用数组名和下标确定
6.1一维数组
一维数组的定义
定义方式:数据类型数组名[常量表达式];
例int a[6];
一维数组的引用
数组必须先定义,后使用
只能逐个引用数组元素,不能一次引用整个数组
数组元素表示形式:数组名[下标]
其中:下标可以是常量或整型表达式
(2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置
(3)重复上述过程,共经过n-1趟冒泡排序后,排序结束
#include <stdio.h>
main()
{ int a[11],i,j,t;
printf("Input 10 numbers:\n");
for(i=1;i<11;i++)
printf("Minimum value is %d\n",min);
}
例用冒泡法对10个数排序
排序过程:
(1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上
c语言电子教案第六章一维数组
2


一维数组
教学目标
一维数组的定义,调用数组中的元素
教学重点
一维数组定义的方式,调用规则以及初始化
教学难点
一维数组的应用,多种方法对数组中的元素排序
课型
公共课
教学媒体
多媒体
教法选择
讲授,举例,演示
教学过程
教法运用及板书要点

实验六 一维数组实验报告

实验六 一维数组实验报告

***软件类实验报告课程名称: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.5a数组和b数组定义如下:doublea[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};doubleb[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};五、实验小结。

C语言程序设计实验六函数答案《西北民大电气学院》

C语言程序设计实验六函数答案《西北民大电气学院》

实验六函数一,实验目的:1,掌握定义函数的方法.2,掌握函数实参与形参的对应关系,以及"值传递"的方式.3,掌握函数的嵌套调用和递归调用的方法.4,掌握全局变量和局部变量动态变量,静态变量的概念和使用方法.二,实验准备:1,复习函数调用的基本理论知识.2,复习函数的嵌套调用和递归调用的方法.3,复习全局变量,局部变量;静态变量,动态变量;外部变量等概念和具体使用. 4,源程序.三,实验步骤及内容:1,运行程序并回答问题(1)程序main(){ play(3);}void print_star(){ printf("* * * * * * * * * *\n")}void print_message(){ printf("Good Friend! \n");}void play(n)int n;{ int i;for(i=1;i<=n;++i){ print_star();print_message();}}问题:运行后出现什么错误为什么应如何修改请上机调试.修改:main(){ play(3);}void print_star(){ printf("* * * * * * * * * *\n");(缺少分号)}void print_message(){ printf("Good Friend! \n");}play(n)(原先void的与声明类型不同)int n;{ int i;for(i=1;i<=n;++i){ print_star();print_message();}getch();}运行结果(2)以下程序用于计算1+2+3+4+5.main(){ int i,sum;for(i=1;i<=5;++i)sum=add(i);printf("sum=%d\n",sum);getch();}add (a)int a;{static int s=0;s=s+a;return(s);}运行结果:问题:此程序能否得到正确结果为什么请在不增加语句的条件下,修改程序并上机调试.(3)程序int x=567,y=890;main(){ printf("x=%d,y=%d\n",x,y);}运行结果:问题:运行程序后出现什么错误为什么如何修改答:定义位置出错,y的定义在主函数之后了,将y的定义改在和x一样的位置处。

《C语言程序设计》一维数组教案

《C语言程序设计》一维数组教案

C语言程序设计教案课程:C程序设计制订日期:2015-11-7例如:定义数组int a[10];表示定义了一个整型的数组a,含有10个元素(每个元素都是整型)。

其说明如图6.1所示。

图6.1 数组定义的说明数组一旦定义,各数组元素名就确定了。

数组元素的一般形式为:数组名[下标]数组的第一个元素的下标总是从0开始的。

对于上面所定义的数组a[10],其元素依次为a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]。

其实,数组名代表的是数组的首地址,下标则是数组元素到数组开始的偏移量。

系统为数组在内存分配的是一片连续的存储的单元,如定义了“int a[10];”,则它的10个元素在内存中的排列情况如图6.2所示:图6.2 一维数组元素在内存中的排列情况2.一维数组的初始化数组初始化是指在数组定义时给数组元素赋予初值。

数组初始化是在编译阶段进行的。

这样将减少运行时间,提高效率。

数组初始化赋值的一般形式为:数据类型数组名[常量表达式] = {值,值,……,值};其中在{ }中的各数据值依次为各元素的初值,各值之间用逗号间隔。

例如:int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };相当于a[0] = 0; a[1] = 1; ...; a[9] = 9;数组初始化赋值的几点说明:(1)可以只给部分元素赋初值。

当{ }中数据值的个数少于元素个数时,只给前面部分元素赋值。

例如:int a[10] = {0, 1, 2, 3, 4};表示只给a[0]~a[4]这5个元素赋值,而后5个元素将被编译器自动赋0值。

如图6.3所示。

图6.3 未赋值的元素自动被0填充(2)只能给元素逐个赋值,不能给数组整体赋值。

例如:给十个元素全部赋1值,只能写为:int a[10] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};而不能写为:int a[10]=1;(3)如在定义数组时给全部元素赋初值,则在数组定义的说明中,可以不显式的指出数组容量,系统会以给出的数值个数默认为数组容量。

lab6-数组资料

lab6-数组资料

printf(“%d”,a); ()
必须 for(j=0;j<10;j++)
printf(“%d\t”,a[j]);
()
字符数组和字符串
字符数组 定义
例 char c[10], ch[3][4];
字符数组的初始化 逐个字符赋值 用字符串常量
字符数组的引用
逐逐逐用用个个个字字字字字符符符符符串串赋赋赋常常值值值量量
C程序设计实验
lab6-数组
实验目的
1. 熟练掌握C程序中的数组和字符数组的定义的引用 2.掌握数组和字符数组的输入输出 3. 熟练字符串处理函数
实验学时:
4学时 实验6报告提交时间:
实验项目性质
验证性
实验内容
编程调试典型程序
实验步骤—选择法对数组排序
用选择法对10个整数,按递增排序
实验步骤—字符串连接
编写一个程序,将两个字符串连接起来,不要 用strcat函数。
实验步骤
完成作业(p245, 8.2)
(a)输出"Who is the inventor of C?" (b)输入答案 (c)正确打印"Good!", (d)不正确打印"Try again" (e)不正确的允许有三次回答机会,还不正确才打印正确
有问题!
例例例例cchchcahahraracrcrhchc[h[5h5[][5]=6=]{]={=‘‘{“{‘“HHBB’H’o’ye,,’”l’,l’oe;”e’o’’};,,’’,’ll’’y’,,’’};ll’’,,’’oo’’,}’; #’}; char ch[6]=“Hello”;
HHB ceheaor ch[l]l=y“Hellllo\0”; oo\0 cchch[h[00[]0H] ] cchch[h[11[]1e] ] cchch[h[22[]2l] ] cchch[h[33[]3l] ] cchch[h[44[]4o] ] \0

实验6 数组

实验6 数组

实验6 数组【实验目的】1. 熟练掌握使用数组编程的方法。

2. 熟练掌握排序算法。

3. 熟练掌握字符串的存储和操作方法。

【实验内容】一、一维数组实验1. 以下程序功能为:输入一个正整数n,再输入n个整数,将它们排序后由小到大输出。

找出并改正以下源程序中错误,得出正确的运行结果。

源程序(有错误的程序)#include <stdio.h>void main(){int i,j,num,a[num];int change,t;printf("Enter Number: ");scanf("%d",&num);printf("Enter Data: \n");for(i=0;i<num;i++)scanf("%d",&a[i]);for(i=num-1,change=1;i>0 && change;i--){change=0;for(j=0;j<=i;j++)if(a[j]>a[j+1]){t=a[j]; a[j]=a[j+1]; /*调试时设置断点*/a[j+1]=t; change=1;}}printf("Sorted data:\n"); /*调试时设置断点*/for(i=0;i<num;i++)printf("%d ",a[i]);printf("\n");}运行结果(改正后程序的运行结果)623 77 14 89 6 686 14 23 68 77 89说明:程序编译时出现的错误信息是指定义数组a时,数组长度必须是常量,把a[num]改为a[50]即可,重新编译连接没有错误,但是输出结果有误。

为了找出程序的问题,关闭运行窗口,准备调试程序。

调试程序的步骤:(1)设置断点:设置2个断点,具体位置见源程序的注释。

一维数组参考程序

一维数组参考程序

1、编写程序,从任意n个数中找出最大数和最小数,并将它们相互交换后输出。

#include <iostream>using namespace std;int main( ){int n,a[100],temp,i,maxi=0,mini=0;cin>>n;for(i=0;i<n;i++)cin>>a[i];for(i=1;i<n;i++){if(a[i]>a[maxi])maxi=i;if(a[i]<a[mini])mini=i;}temp=a[maxi];a[maxi]=a[mini];a[mini]=temp;for(i=0;i<n;i++)cout<<a[i]<<" ";return 0;}2、编写程序,将一个数组中的数循环左移。

注意:要让数组元素的值真正发生改变,而不是通过调整输出顺序实现。

#include <iostream>using namespace std;int main( ){int n,a[100],temp,i;cin>>n;for(i=0;i<n;i++)cin>>a[i];temp=a[0];for(i=1;i<n;i++)a[i-1]=a[i];a[n-1]=temp;for(i=0;i<n;i++)cout<<a[i]<<" ";cout<<sum;return 0;}3、编写程序计算Fibonacci数列前n项和,n由键盘输入。

Fibonacci数列为一整数序列,其中数列前2项值都为1,从第3项开始,每一项为前两项之和,即:1,1,2,3,5,8,13……#include <iostream>using namespace std;int main( ){int n,a[100],sum=0,i;cin>>n;a[1]=1;a[2]=1;for(i=3;i<=n;i++)a[i]=a[i-1]+a[i-2];for(i=1;i<=n;i++)sum+=a[i];cout<<sum;return 0;}4、编写程序,输入任意个学生的成绩,输入0或负数结束输入。

一维数组的应用课程设计

一维数组的应用课程设计

一维数组的应用课程设计一、实训目标熟练掌握使用一维数组的编程方法和常用算法。

1、掌握数组的定义、输入和输出方法。

2、掌握下标变量的使用方法。

3、掌握求极值、分类统计、排序、查找、移动等常用算法。

4、进一步熟练程序的调试和测试方法。

5、*学习数组作为函数参数的编程方法。

二、语法练习1、数组是把同类型的变量组织在一起。

2、int a[5]; 表示定义了5 个整形类型的变量,分别为:a[2]、a[3]、a[4] 、a[0],各元素在内存中连续存放,数组名a表示数组在内存中的初始地址。

3、在C语言中对一维整型数组的正确定义为D。

A)int a(10); B)int n=10,a[n];C)int a[ ]; D)#define N 10int a[N];4、以下能对一维数组a进行初始化的语句是:(C )A.int a[5]=(0,1,2,3,4,);B.int a(5)={} ;C.int a[3]={0,1,2};D.int a[5]={5*1};5、已知:int a[10]; 则对a数组元素的正确引用是(D )。

A、a[10]B、a[3.5]C、a(5)D、a[0]6、若有以下数组说明,则数值最大的和最小的元素下标分别是( B ) int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};A.1,12B.0,11C.1,11D.0,127、若有以下数组说明,则i=4;a[a[i]] 元素数值是( A )int a[6]={ 8,11,3,6,2,12};A.3B.2C.6D.118、设有定义int a[5],i; 用for 循环结构分别写出数组的输入和输出程序段。

for(i=0;i<5;i++)scanf( “%d” ,&a[i]);for(i=0;i<5;i++)printf( “%d”,&a[i]);1三、实训内容和步骤1、定义一个具有10个元素的一维整型数组, 从键盘给各元素赋值,并以每行4 个数的格式输出。

实验报告6 一维数组程序设计

实验报告6 一维数组程序设计

实验报告6 一维数组程序设计
一、实验目的
本实验主要是通过编写一维数组程序,掌握数组的定义、初始化、赋值、排序等基本操作,并能够解决实际问题。

二、实验内容
本实验共设有两个小题,分别是:
1.通过一维数组计算一个班级学生的平均分、最高分、最低分和及格率。

2.通过一维数组将若干个数字进行排序,并输出排序后的结果。

三、实验环境
本实验采用C++语言进行编写,所用IDE为Dev-C++。

四、实验步骤
1.题目一代码
五、实验结果
在第一题输入4个学生的分数为:87,92,54,77时,输出结果如下:
请输入学生数量:4
请输入第1个学生的分数:87
请输入第2个学生的分数:92
请输入第3个学生的分数:54
请输入第4个学生的分数:77
平均分为:77.5
最高分为:92
最低分为:54
及格率为:75%
请输入数字个数:7
请输入第1个数字:8
请输入第2个数字:6
请输入第3个数字:1
请输入第4个数字:2
请输入第5个数字:10
请输入第6个数字:7
请输入第7个数字:3
排序后的结果为:1 2 3 6 7 8 10
六、结论
通过本实验的完成,我对于一维数组的使用和其基本操作掌握更加熟练。

在日后的学习和工作中能够更加灵活地运用数组处理问题。

七、体会
在本次实验中,我更加深刻地意识到了机械化的代码是怎么产生的,编写代码时一些细节之处需要注意,千万不能粗心大意,否则就很有可能出现难以想到的错误。

同时,对于一些难以理解与掌握的知识点,只有通过实践才能真正掌握和理解。

Lab6-1_一维数组

Lab6-1_一维数组

Lab6-1_⼀维数组实验6-1 ⼀维数组【知识点回顾】1.数组作为复合型数据拥有两个重要特性:有序性和同质性。

有序性体现在数组元素紧密相连,⼀个挨⼀个存放,可以通过数组下标对其进⾏逐个访问,同质性体现在全体数组元素拥有相同的数据类型。

2.⼀位数组声明:数据类型数组名[数组长度量表达式]3.⼀维数组初始化1)声明时完全初始化:int a[5]={1,3,5,7,9};2)声明时不完全初始化:int b[5]={1,3,5};按顺序赋初值,剩余清零。

3)声明时未初始化,只能后期逐个初始化,见典型例题。

4.⼀维数组元素的访问1)数组元素:如果有int a[5]={1,3,5,7,9};int i;则有a[i](i的取值为0,1,2,3,4)表⽰对数组中元素的访问。

2)数组元素下标可以使⽤变量表达式【典型例题】1.输⼊⼩组⼈数,然后输⼊该⼩组成员的得分,并输出。

#include#define N 50int main(){int n,i;//n⽤于确定⼩组⼈数,i⽤于控制循环float score[N];//存放⼩组成员得分数据//确定⼩组⼈数printf("How many members in your team?");scanf("%d",&n);//确定⼩组成员得分for(i=0; i{printf("Please enter the score of array[%d]: ",i);scanf("%f",&score[i]);}//打印输出printf("\nThe score are : ");for(i=0; i{printf("%8.2f",score[i]);}printf("\n");return 0;}2.例2,⼀个整数的数组,找出最⼩数和其下标,并在主函数打印输出。

实验6一维数组

实验6一维数组

实验6 一维数组一、实验目的1.掌握一维数组的声明、引用方法;2. 掌握一维数组的初始化和输入、输出的方法;3. 掌握与一维数组有关的常用算法,特别是排序算法;4. 初步掌握利用一维数组实现有关算法,掌握字符串数组、结构类型数组和常用字符串函数的使用。

二、实验要求本课包含基础与验证型、综合与设计型两类实验。

基础与验证型是本实验课的基本要求,要求学生全部完成;综合与设计型是较高要求,要求学生尽量理解、编程实现,完成4个完整的可运行的有关一维数组的应用程序。

具体要求:(1)掌握各种类型一维数组的声明和引用方法;(2)掌握 IDE环境下一维数组编程的调试方法,能发现、改正下标越界等常见错误;(3)掌握利用循环语句对一维数组进行赋值、输出的方法,以及一般处理的算法;(4)掌握字符串数组、结构类型数组的使用,能利用常用字符串函数实验数据的输入、输出(5)初步掌握结构类型数组的使用,能利用结构类型数组实现复杂数据的处理。

三、实验范例1.简单类型一维数组的声明和引用方法a.声明一个数组变量来存储小学各年级的学生数:Dim students(4) As Integeri=0:students(i + 1) = 200数组students 包含5 个元素,都是整型变量,元素的索引范围为从0 到4;第2个元素(二年级的学生数)被指定为200。

b.声明、创建并初始化一个字符类型数组,并赋初值,同时指定下标上限为2:Dim testChars () As Char = {"%"c, "&"c, "@"c}testChars数组共有3个字符型元素。

"%"c中单个c跟随在带引号的单个字符后,用于创建一个字符型数据。

c.声明、创建并初始化一个存储判断正误题目答案的数组,并且指定元素值:Dim answers() As Boolean = {True, True, False, True}数组answers的长度为4,其元素从索引0 到索引3d.声明并创建一个字符串类型的数组,并在后续语句中提供2个元素值:Dim comments(30) As Stringcomments(0) = "This is the first comment."comments(5) = "This is the sixth comment."变量comments 中的数组长度为31,索引为0 和5 的元素被赋值,其他元素为默认值空("")。

C语言 实验六 一维数组

C语言   实验六 一维数组
源程序如下:
#define N 10
#include"stdio.h"
main()
{
int a[N],i,j,temp;
printf("please input %d numbers\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
for(i=1;i<=10;i++)
scanf("%f",&a[i]);
for(i=1;i<=9;i++)
{min=i;
for(j=i+1;j<=10;j++)
if(a[min]>a[j])
min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
for(i=2;i<=9;i++) /*注意i值的变化范围*/
分析:C中数组长度必须是确定大小,即指定N的值。排序的方法有多种,我们取出其中两种作为参考。
方法一:起泡排序
从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以此类推直到第(N-1)遍比较后就可以完成排序。
4. 编一程序,将两个字符串连接起来,不要用strcat函数。
分析:这道题的核心是排序。将评委所打的10个分数利用数组按增序(或降序)排列,计算数组中除第一个和最后一个分数以外的数的平均分,其中排序部分这里用选择法实现。

一维数组实验

一维数组实验

for j=0 to n-2
for i=0 to n-j-1 真 a[i]>a[i+1] 假
a[i]a[i+1]
for(j=0; j<n-1; j++) for(i=0;i<n-1-j; i++) if(data[i]>data[i+1]) { temp=data[i]; data[i]=data[i+1]; data[i+1]=temp; }
3 一维数组的初始化
4 一维数组程序举例
实验要求
1. 复习数组的定义、引用和相关算法的程序 设计。 2. 编写程序,运行程序并记录运行结果。 3. 认真独立实验报告。3、4、5题作成实验 报告(实验内容、实验步骤、实验结果)。
实验内容
1、调试下列程序,使之具有以下功能:输入10 个整数,按每行3个数输出这些整数,最后输 出10个整数的平均值 。修改程序并输出结果。
2、以下是求数组a中最大值和最小值所在位 置的程序,请在下划线处填上适当的内容, 以使程序完整,然后上机运行程序,并分 析运行结果。
main() { int i,imax,imin,a[10]; printf(“Input a[10]:”); for(i=0; i<10; i++) scanf(“%d”,&a[i]); imax=imin=0; 最大值、最小值 for(i=0; i<10; i++) 的判断 { if(__________________) imax=i; 最大值、最小值 if(__________________) imin=i; 的位置,引用。 } printf(”\n imax=%d, 最大值是%d\n”,imax,a[_____]); printf(”\n imin=%d, 最小值是%d\n”,imin,a[_____]); }

实验6数组一

实验6数组一

《C语言程序设计》实验报告----------------------------------------------------------------------------------------------实验6 数组(一)一、实验目的(1)掌握一维数组、二维数组的定义,初始化方法。

(2)掌握一维数组、二维数组中数据的输入和输出方法。

(3)掌握与数组有关的算法(查找,插入,排序等算法)。

(4)了解用数组处理大量数据时的优越性。

二、实验内容和步骤1.填空题(1)给定程序c6-1.c的功能是在第一个循环中给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<stdio.h>int main(){ int i,a[10];for(i=1;i<=10;i++)a[i-1]=i;for(i=0;i<5;i++)a[i+5]=5-i;for(i=0;i<10;i++)printf("%5d",a[i]);printf("\n");return 0;}(2)给定程序c6-2.c的功能是把数组a(大小为M)的前M-1个元素中的最小值放入a的最后一个元素中。

#include<stdio.h>#define M 11int main(){ int a[M],i;for(i=0;i<M-1;i++)scanf("%d",&a[i]);a[M-1]=a[0];for(i=1;i<=10;i++)if(a[M-1]>a[i])a[M-1]=a[i];printf("Min is %d\n",a[M-1]);return 0;}(3)c6-3.c的功能是求二维数组a中的最大元素及其下标。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六一维数组程序设计
一、实验学时 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]);
printf("\n");
}
(二)编写一程序,为一维数组a中的元素赋值,并按照逆序输出。

编程提示:通过对一维数组的输入输出来实现。

1. 首先复习教材上知识点,充分理解例题。

2. 对一维数组的输入可以参照实验内容(一)中的三种方法,选择其一输出,用循环结构来实现。

3. 注意是逆序输出,可以通过输出时,在for语句中利用循环变量递减的方法来实现。

/* c6-4.c */
/*利用循环实现一维数组的输入输出*/
#include "stdio.h"
void main( )
{ int i,a[10]; /* 定义循环变量i和一维数组a */
for (i=0;i<=9;i++)
scanf("%d",&a[i]);
for ( ____ _) /* 请补充完整循环语句 */
printf("%d ",a[i]); /* 按照逆序输出 */
printf("\n");
}
(三)编写程序,输出一维数组a中的元素最小值及其下标。

编程提示:
1.定义一个整型变量存放最小值下标,将其初始化为0 ,例如:int p=0;即从数组第零个元素开始判断。

2.通过循环,依次判断数组中的每一个元素a[i]是否小于a[p],如果是,则将p和a[p]的值作相应的改变。

/* c6-5.c */
/*输出一维数组中元素的最小值及其下标*/
#include "stdio.h"
void main( )
{ int i,m,p,a[10]={9,8,7,6,1,3,5,18,2,4}; /* m为最小值,p为其下标 */
m=a[0];
p=0;
for(i=1;i<10;i++)
if (a[i]<m)
{ ; p=i;} /* 请补充完整此语句 */
printf("%d,%d\n",a[p],p); /* 输出一维数组a中的最小值及其下标 */ }
(四)编写一程序,求一维数组中下标为偶数的元素之和。

编程提示:
1.定义一个数组a并初始化。

2.定义一个整型变量sum,存放下标为偶数的元素和,并初始化为0。

3.从数组的第0个元素开始,每次循环变量递增2,一直到数组的最后一个元素,将其累加到sum变量。

4.输出sum变量即为下标为偶数的元素之和。

/* c6-6.c */
/*求一维数组中下标为偶数的元素之和*/
#include "stdio.h"
void main( )
{ int i,sum=0; /* 初始化sum为0 */
int a[]={2,3,4,5,6,7,8,9};
for(i=0; i<8; ) /* 请补充完整循环语句 */ sum+=a[i];
printf("sum=%d\n",sum);
}
(五)编写一程序,将100以内的素数存放到一个数组中。

编程提示:这是一个双层循环嵌套的程序。

1.首先复习教材上的内容,掌握判断素数的方法。

2.定义一个数组存放100以内的素数,想一想该数组的大小应该为多少?
3.定义一个整型变量作循环变量。

4.定义一个整型变量作为数组元素下标的计数器,想一想该变量应赋什么样的初值?
5.在外层循环中,对1~100之间的所有整数进行判断;内层循环则判断每个整数是否为素数。

如果是素数,存放到数组中,并使数组下标变量加1;否则继续判断下一个整数。

6.用循环语句输出数组中的所有素数,注意循环变量的初值和终值如何确定。

(六)将一个数组中的值按逆序重新存放。

例如,原来的顺序为8,6,5,4,1,2,要求改为按2,1,4,5,6,8的顺序存放(注意是逆序存放而不是逆序输出)。

编程提示:
1.定义一个数组,为该数组赋值(可以在定义时初始化,也可以用循环语句)。

2.在循环中,使第0个元素与第5个元素交换,第1个元素与第4个元素交换,第2个元素与第个3元素交换(注意循环次数按n/2确定,n为数据个数)。

3.输出逆序存放后的各数组元素(使用循环语句)。

五、实验注意事项
(一)C规定,数组的下标下界为0,因此数组元素下标的上界是该数组元素的个数减1。

例如,有定义:int a[10]; 则数组元素的下标上界为9。

(二)由于数组的下标下界为0,所以数组中下标和元素位置的对应关系是:第一个元素下标为0,第二个元素下标为1,第三个元素下标为2,依次类推,第n个元素下标为n-1。

(三)数值型数组要对多个数组元素赋值时,使用循环语句,使数组元素的下标依次变化,从而为每个数组元素赋值。

例如:int a[10],i;
for(i=0;i<10;i++) scanf("%d",&a[i]);
不能通过如下的方法对数组中的全部元素赋值。

int a[10],i;
scanf("%d",&a[i]);
六、思考题
(一)定义一个数组名为ftop且有5个int类型元素的一维数组,同时给每个元素赋初值为0,请写出数组的定义语句。

(二)下面程序的功能是:为一维数组a中的元素赋值,并按照逆序输出。

请在程序中的横线上填入正确的内容。

#include "stdio.h"
void main( )
{ int i,a[10]; /* 定义循环变量i和一维数组a */
for(i=0;i<=9;i++)
scanf("%d",&a[i ]);
for( ;i>=0;i--)
printf("%d ",a[i]); /* 按照逆序输出 */
printf("\n");
}
(三)下面程序的功能是:输出一维数组a中的最小值及其下标。

请在程序中的横线上填入正确的内容。

#include "stdio.h"
void main( )
{ int i,p=0,a[10]; /* 定义a为数组名,p为下标名 */
for(i=0; i<10; i++)
scanf("%d",&a[i]);
for(i=1; i<10; i++)
if (a[i]<a[p]) { ; }
printf("%d,%d",a[p],p); /* 输出一维数组a中的最小值及其下标 */ }
(四)下面程序的功能是:求一维数组中下标为偶数的元素之和并输出。

请在程序中的横线上填入正确的内容。

#include "stdio.h"
void main( )
{ int i,sum=0;
int a[ ]={2,3,4,5,6,7,8,9};
for(i=0; i<8; )
sum+=a[i];
printf("sum=%d\n",sum);
}。

相关文档
最新文档