C语言实验__一维数组
C语言一维数组

6
例题巩固
在C 语言中,引用数组元素时,其数组下标的 数据类型允许是 。 A)整型常量 B)整型表达式 C)整型常量或整型表达式 D)任何类型的表达式
C语言中,数组名代表 A.数组全部元素的值 B.数组首地址 C.数组第一个元素的值 D.数组元素的个数
合法的数组定义是 A.int a[ ]=”string”; B.int a[5]={0,1,2,3,4,5}; C.char a=”string”; D.char a[ ]={0,1,2,3,4,5};
以下程序的输出结果是________。 main( ) { int i,p=0,a[10]={1,5,9,0,-3,8,7,0,1,2}; for(i=1;i<10;i++) if(a[i]<a[p]) p=i; printf("%d,%d\n",a[p],p); } A) -3,4 B) 0,1 C) 9,2 D) 2,9
35
35
int a[5]
a[0] a[1] 第一轮 21 13 13 13 21 21
a[2] 90 90 90
a[3] a[4] 32 32 32 -1 -1 -1
13 13
21 21
32 32
90 -1
-1 90
第一轮的结果: 将最大的数移到了最后一个位置(n-1)。
int a[5]
a[0] a[1]
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] 0 1 2 3 4 5 6 7 8 a[9] 9
数组a
max = a[0];
32
32
定义
main()
{ int i, max, x[10];
c语言实验7数组实验报告

实验报告课程名称程序设计实验项目名称数组班级与班级代码14级计算机科学与技术1班实验室名称(或课室) SS1-332专业计算机科学与技术任课教师学号:姓名:实验日期:2014年月日广东商学院教务处制一.实验目的1.熟练掌握一维数组、二维数组的定义、赋值、输入、输出方法。
2.熟练掌握字符数组和字符串函数的使用。
3.熟练掌握一位数组以及一位数组元素的存储关系。
4.熟练掌握一位数组和二维数组的使用以及在函数中的传递。
5.通过上机实践掌握与数组有关的算法。
二、实验内容上机题1输入并运行以下程序。
实验内容:用2个数组对第3个数组进行赋值#include<stdio.h>main(){int i,a[5],b[5],c[5];a[0]=2,a[1]=6,a[2]=4,a[3]=8,a[4]=9;b[0]=2,b[1]=7,b[2]=9,b[3]=5,b[4]=3;for(i=0;i<=4;i++){c[i]=a[i]*b[i];printf("c[%d]=%d\n",i,c[i]);}}实验步骤○1int a[5]:整型一维数组说明,a是数组名,也是数组的起始地址,该数组可以存储5个整数。
a[0]~a[4]也可以看成是变量标识字符,[]中的数值称为数组下标,下标从0开始。
○2数组赋值方法和一般变量一样。
例如,a[0]=2表示将2赋给a[0]。
运行结果上机题2 输入并运行以下程序。
实验内容:对不指明数组的数组进行赋值并用循环结构进行求和#include<stdio.h>main(){int sum,i;int a[]={5,8,4,6,4,3,8,2,4,5,6};sum=0;for(i=0;i<=10;i++)sum+=a[i];printf("sum=%d\n",sum);}实验结果实验小结○1对全部元素赋初值时,可以不指定数组长度,C编译系统自动根据初值个数来决定数组长度。
实验六 一维数组实验报告

***软件类实验报告课程名称: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};五、实验小结。
11《C语言程序设计》教案第四章数组(1)—一维数组

min_p=j;} printf(“the min is%d,position %d”,min,min_p);
} (5)数组在内存中的存放 例如 int data[3];则在内存中的状态如下:
1000 1002
1004
data[0] data[1] data[2]
讨论、思考题、作业: 实验指导书习题
f[0]=1;f[1]=1;f[2]=f[0]+f[1];f[3]=f[2]+f[1];依次类推找出 公式为: f[i]=f[i-1]+f[i-2]; 循环语句为:for(i=2;i<20;i++) 程序代码: main()
{ int i;
static int f[20]={1,1};
/*定义 20 个元素的数组
参考资料(含参考书、文献等):
叶斌 陈世强. C 语言程序设计. 北京:科学出版社 授课类型:理论课 讨论课□ 实验课□ 练习课□ 其他□ 教学方式:传统授课 双语□ 讨论□ 示教□ 指导□ 其他□ 教学资源:多媒体 模型□ 实物□ 挂图□ 音像□ 其他□
定义了一个二维数组 b,该数组由 9 个元素构成,其中每一个数组元素都属于浮点(实
数)数据类型。
数组
b
的各 个数据元 素依次
是:b[0][0],b[0][1],b[0][2],b[1][0],b[1][1],b[1][2],b[2][0],b[2][1],b[2][2](注意:下标从 0-2)。
每个数组元素也都可以作为单个变量使用。
例如:int a[10]={0,0,0,0,0,0,0,0,0,0}; 或 int a[10];系统会对所有数
组元素自动赋 0 值。
4)在对全部数组元素赋初值时,可以不指定数组长度。
一维数组(C语言)

字符数组
C、如果数组长度大于字符串实际长度,也只输出到遇‘\0’结束。 D、如果一个字符数组中包含一个以上‘\0’,那么遇到和第一个‘\0’ 就结束。〔利用scanf输入字符串,空格可作为结束符。〕
例:char str[13]; scanf(“%s〞,str);
字符数组
〔3〕给字符数组元素逐个赋初值。 char str[9]; str[0]=‘H’;str[1]=‘e’;str[2]=‘\0’;
应注意:用字符数组来存放字符串时,假设是逐个字符 赋值给数组元素,要在最后一个字符之后加上字符串结 束标志‘\0’。 用逐个字符给字符数组赋初值,对字符串的存取不太方 便。
printf(“\n〞);
}
B、使用getchar putchar getch getche函数。
字符数组
〔2〕将整个字符串一次输入或输出。用%s格式符。 例:char c[ ]=“china〞; printf(“%s〞,c);
结果为:china
注意: A、输出字符不包括结束符‘\0’; B、用%s格式符输出字符串时,printf 函数中的输出项是字
int a[10], b[10], k; for (k=0;k<10;k++) scanf(“%d〞,&a[k]); b=a; /*error*/ for(k=0;k<10;k++) b[k]=a[k];
一维数组
(3) 在使用数组元素时,数组元素中的下标表 达式的值必须是整型。 下标表达式值的下限为0,值的上限为该数 组元素的个数减1。 使用数组时注意其下标不要越界。如果下 标越界,程序无法得到正确的结果。
实验数组的实验报告

一、实验目的1. 掌握数组的基本概念和操作方法。
2. 熟悉C语言中数组的定义、初始化、赋值和引用。
3. 学会使用数组和循环结构进行数据处理。
二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 编程语言:C语言三、实验内容1. 定义和初始化一维数组2. 访问和修改数组元素3. 使用数组进行数据处理4. 定义和初始化二维数组5. 访问和修改二维数组元素6. 使用二维数组进行数据处理7. 使用数组进行排序和查找四、实验步骤1. 定义和初始化一维数组```c#include <stdio.h>int main() {int array[5] = {1, 2, 3, 4, 5};int i;// 循环访问数组元素for (i = 0; i < 5; i++) {printf("array[%d] = %d\n", i, array[i]); }return 0;}```2. 访问和修改数组元素```c#include <stdio.h>int main() {int array[5] = {1, 2, 3, 4, 5};int i;// 修改数组元素array[2] = 10;// 循环访问数组元素for (i = 0; i < 5; i++) {printf("array[%d] = %d\n", i, array[i]); }return 0;}```3. 使用数组进行数据处理```c#include <stdio.h>int main() {int array[5] = {1, 2, 3, 4, 5}; int i, sum = 0;// 计算数组元素之和for (i = 0; i < 5; i++) {sum += array[i];}printf("sum = %d\n", sum);return 0;}```4. 定义和初始化二维数组```c#include <stdio.h>int main() {int array[3][3] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};int i, j;// 循环访问二维数组元素for (i = 0; i < 3; i++) {for (j = 0; j < 3; j++) {printf("array[%d][%d] = %d\n", i, j, array[i][j]); }}return 0;}```5. 访问和修改二维数组元素```c#include <stdio.h>int main() {int array[3][3] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};int i, j;// 修改二维数组元素array[1][1] = 10;// 循环访问二维数组元素for (i = 0; i < 3; i++) {for (j = 0; j < 3; j++) {printf("array[%d][%d] = %d\n", i, j, array[i][j]); }}return 0;}```6. 使用二维数组进行数据处理```c#include <stdio.h>int main() {int array[3][3] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};int i, j, sum = 0;// 计算二维数组元素之和for (i = 0; i < 3; i++) {for (j = 0; j < 3; j++) {sum += array[i][j];}}printf("sum = %d\n", sum);return 0;}```7. 使用数组进行排序和查找```c#include <stdio.h>// 交换两个元素void swap(int a, int b) {int temp = a;a = b;b = temp;}// 冒泡排序void bubbleSort(int array[], int length) {int i, j;for (i = 0; i < length - 1; i++) {for (j = 0; j < length - 1 - i; j++) { if (array[j] > array[j + 1]) {swap(&array[j], &array[j + 1]); }}}}// 查找元素int findElement(int array[], int length, int target) { int i;for (i = 0; i < length; i++) {if (array[i] == target) {return i;}}return -1;}int main() {int array[5] = {5, 2, 8, 3, 1};int i, index;// 冒泡排序bubbleSort(array, 5);// 输出排序后的数组for (i = 0; i < 5; i++) {printf("%d ", array[i]);}printf("\n");// 查找元素index = findElement(array, 5, 8);if (index != -1) {printf("Element 8 found at index %d\n", index);} else {printf("Element 8 not found\n");}return 0;}```五、实验结果与分析1. 通过定义和初始化一维数组,可以方便地存储和管理一系列具有相同数据类型的元素。
C语言--一维数组和多维数组数组名的含义

C语⾔--⼀维数组和多维数组数组名的含义⼀、⼀维数组对于⼀维数组,我们很容易理解数组名和元素地址的关系,即数组名代表数组⾸地址,亦即第⼀个元素的地址。
如定义数组int a[9]={1,2,3,4,5,6,7,8,9},则由上⾯的说明可得a=&a[0],*a=a[0];a+1=&a[1],*(a+1)=a[1];.........⼆、⼆维数组对于⼆维数组,我们⼀定要记住:它是数组的数组。
如定义⼀个⼆维数组int b[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},此时我们知道,可以把b看做是⼀个有三个元素的数组,分别是b[0],b[1],b[2];每个元素(b[0],b[1],b[2])⼜都是有四个元素的⼀维数组。
那么,此时的数组名代表什么呢?按照⼀维数组的思路去思考,b代表第⼀个元素的地址,那么这⾥的第⼀个元素应该是⼀维数组b[0];⽽b[0]⼜是⼀维数组的数组名,也就是说b[0]代表数组b[0]中的元素⾸地址。
这样⼀来就可以得到:b=*b=b[0]=&b[0][0],**b=*b[0]=b[0][0];*b+1=b[0]+1=&b[0][1],*(*b+1)=*(b[0]+1)=b[0][1];......b+1=*(b+1)=b[1]=&b[1][0],**(b+1)=*b[1]=b[1][0];*(b+1)+1=b[1]+1=&b[1][1],*(*(b+1)+1)=*(b[1]+1)=b[1][1];......⽤图⽰的⽅法为:在内存中,他们是⼀维排列的,如下图所⽰:三、多维数组对于多维数组的分析,和⼆维数组是⼀样的,始终记住:多维数组就是数组的数组。
C语言实验报告 数组

实验七数组1.实验目得(1)熟练掌握一维数组、二维数组得定义、初始化与输入/输出方法;(2)熟练掌握字符数组与字符串函数得使用;(3)掌握与数组有关得常用算法(如查找、排序等).2.实验指导(1)对任意一个一维型数组,从中找出数组元素得最大值与最小值并输出。
要求:①数组有十个元素;②使用scanf函数实现数组元素得输入前给出必要得提示;③输出时,首先输出数组得十个元素,然后输出其最大值与最小值。
分析指导:①算法分析:首先定义一个数组,通过循环从键盘输入十个数组元素得值,再通过另一个循环判断数组元素得最大只与最小值;②根据分析情况编写程序:#include<stdio、h>main(){int a[10],i,max,min;printf(”please input ten integers:");for(i=0;i<=9;i++){scanf(”%d",&a[i]);}max=a[0];min=a[0];for(i=1;i〈=9;i++){if(a[i]〉max)max=a[i];if(a[i]〈min)min=a[i];}for(i=0;i〈=9;i++){printf("a[%d]=%d\n”,i,a[i]);}printf(”The maximum value is%d,and the minimum value i s%d\n",max,min);}运行程序,输入十个整数,如:21 37 6 17 9 12 89 76 35 59运行结果如下:(2)编写函数cmpStr(char s1[],char s2[])比较两个字符串s1与 s2得大小。
如果s1>s2,返回一个正数;s1=s2,返回0;s1〈s2,返回一个负数,在主函数中调用该函数完成字符串得比较操作,并输出返回得值。
要求:①不允许使用strcmp()函数;②用gets()函数在主函数中输入两个字符串;③实现触摸屏受托人()函数,返回得正数或负数得绝对值应该就是进行比较得两个字符传中相应字符得ASCII码得差值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验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++成绩。
当用户选择2之后,先让用户输入要查看的学生学号,然后输出其高数、英语、C++成绩。
当用户选择3之后,先让用户输入要修改的学生学号,然后依次让用户重新输入这个学生的高数、英语、C++成绩、
当用户选择4之后,依次输出每个学生的学号、高数、英语、C++成绩。
源程序保存为6-6.c。
运行效果截图保存为6-6p.jpg。
(此题完成并提交后,请务必自行保留源代码!以后的实验要在此基础上再修改)
7. 附加题:编程实现:简单版成绩管理系统2。
在第6题的基础上增加以下功能(可挑选其中的一些功能实现,不一定要全部实现):
每个学生记录由其学号、高数成绩、英语成绩、C++成绩、总分、平均分组成。
(提示:再定义一个100个元素的数组存放总分;定义一个100个元素的数组存放平均分)
当用户选择5之后,计算每个同学的总分,保存在总分数组中,并输出所有同学的学号和总分。
当用户选择6之后,计算每个同学的平均分,保存在平均分数组中,并输出所有同学的学号和平均分。
当用户选择7之后,浏览所有学生的全部信息,即依次输出每个学生的学号、高数、英语、C++成绩、总分、平均分。
当用户选择8之后输出总分第一名的同学的:学号、高数、英语、C++成绩、总分、平均分。
当用户选择9之后输出总分前三名的同学的:学号、高数、英语、C++成绩、总分、平均分。
当用户选择10之后,执行删除功能,先让用户输入要删除的学生学号,然后把该同学的信息删除。
实验提交要求:
1.每位同学的文件必须严格按题目的要求对文件命名,否则按不提交作业处理。
2.每位同学的作业放在一个文件夹中提交,需提交源程序和运行效果截图,文
件夹按以下格式命名:
“班内序号-姓名-实验6”
例如:07-陈嘉瑞-实验6
3.实验完成后,提交到指定服务器。
服务器地址:
4.ftp://10.
5.1.5用户名:we密码:345678
请提交到服务器的“作业→C程序设计基础→实验6”文件夹中以各自班级名称命名的文件夹内。
(请认清楚班级名称提交,切勿提交到其他班的文件夹中。
)5.本次实验作业提交的截止日期是:下次上机课之前。