好文档 - 专业文书写作范文服务资料分享网站

《C语言程序设计》实验报告数组

天下 分享 时间: 加入收藏 我要投稿 点赞

《C语言程序设计 》课程实验报告

实验名称 学 号_ 姓 名 ___ 班 别 实验日期: 年月日 实验报告日期: 年月日 指导老师: 实验地点: 成 绩: 评 语:

≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

实验目的和要求 掌握一维数组和二维数组的定义、赋值和输入输出的方法;掌握字符数组和字符串函数的使用;掌握与数组有关的算法(特别是排序算法)。 实验环境 硬件环境:分辨率至少在1024*768像素之上的显示器;P-III及其兼容处理器,或更高型号;处理器速度至少600MHz,推荐1GHz或更高;内存至少512MB,推荐1GB或更大;2G以上硬盘空间。 软件环境:安装windows操作系统和TC(或VC++)软件。 实验重点及难点 重点:一维数组、二维数组;字符数组与字符串的概念与定义方法,常用的字符串处理函数。 难点:数组下标的起始数问题;利用数组形式进行程序设计的一般方法与典型算法。

实验过程 一、相关知识 1.数组是一组有序数据的集合,数组中的每一个元素都属于同一个数据类型。 2.定义一维数组的一般形式: 类型符 数组名[常量表达式]; 3.在定义数组并对其中各元素赋值后,就可以引用数组中的元素。 4.将数组中各元素的初值顺序放在一对花括号内,数据间用逗号分隔。花括号的数据就称为“初始化列表”。例如:a[o]=0,a[1]=1,a[2]=2,a[3]=3……. 5.在对全部的数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。 6.如果在定义数值型数组时,指定了数组的长度并对之初始化,凡未被“初始化列表”指定初始化的数组元素,系统会自动把他们初始化为0(如果是字符型数组,则初始化为”\\0”,如果是指针型数组,则初始化为NULL,即空指针)。 7.二维数组的一般形式为: 类型说明符 数组名[常量表达式][常量表达式]; 8.C语言中,二维数组中元素排列的顺序是按行存放的,即在内存中先顺序存放第1行的元素,接着再存放第2行的元素。 9.二维数组的表示形式为 数组名[下标][下标] 10.用来存放字符数据的数组是字符数组。字符数组中的一个元素存放一个字符。 11.如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。如果花括号中提供的初值个数(即字符个数)大于数组长度,则出现语法错误。如果初值个数小于数组长度,则只将这些字符赋给数组中前面的那些元素,其余的元素自动定位空字符(即”\\0”)。 11.C系统在用字符数组存储字符串常量时会自动加一个’\\0’作为结束符。’\\0’代表ASCII码为0的字符,从ASCII码表中可以查到,ASCII码为0的字符不是一个可以显示的字符,而是一个“空操作符”,即它什么也不做。用它来作为字符串结束标志不会产生附加的操作或增加有效字符,只起一个供辨别的标志。 12.strcpy函数的一般形式为: Strcpy(字符数组1,字符数组2) Strcmp函数的一般形式为 Strcmo(字符串1,字符串2) 二、实验内容: 1.输出Fibonacci数列的前20个数; 2.分别用冒泡法和选择法对10个数进行排序; 3.有一个已排序好的数组,要求输入一个数后,按原来排序规律插入到数组中; 4.有一篇文章,共有3行文字,要求分别统计出大写字母、小写字母、数字、空格以及其它字符的个数。 三、实验过程 1.输出Fibonacci数列的前20个数,。输入以下程序: #include \void main()

{ int a[20],i; a[0]=1; printf(\ a[1]=1; printf(\ for(i=2;i<20;i++) { a[i]=a[i-1]+a[i-2]; printf(\ } } 输出结果如图下:

2.分别用冒泡法和选择法对10个数进行排序。编写以下程序: #include main() { int a[10]; int i,j,t; printf(\ for(i=0;i<10;i++) scanf(\ for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t;} printf(\ for(i=0;i<10;i++) printf(\ printf(\} 结果截图如下:

3.有一个已排序好的数组,要求输入一个数后,按原来排序规律插入到数组中。编写以下程序: #include main() { int a[6] = {1,3,6,7,9}; int i,j,x,t; printf(\ scanf(\ for(i=0;i<5;i++) if(xi;j--) a[j]=a[j-1]; a[j]=x; printf(\ for(i=0;i<6;i++) printf(\ printf(\} 结果如下: 4.有一篇文章,共有3行文字,要求分别统计出大写字母、小写字母、数字、空格以及其它字符的个数。编写以下程序: #include int main() {int i,j,upp,low,dig,spa,oth; char text[3][10];

upp=low=dig=spa=oth=0; for (i=0;i<3;i++) { printf(\gets(text[i]); for (j=0;j<10 && text[i][j]!='\\0';j++) {if (text[i][j]>='A'&& text[i][j]<='Z') upp++; else if (text[i][j]>='a' && text[i][j]<='z') low++; else if (text[i][j]>='0' && text[i][j]<='9') dig++; else if (text[i][j]==' ') spa++; else oth++; } } printf(\printf(\printf(\printf(\printf(\return 0; } 输出结果如下: 四、实验结果及分析 此次试验主要就是对数组的运用,同时也运用了if条件语句以及for循环语句的运用,

《C语言程序设计》实验报告数组

《C语言程序设计》课程实验报告实验名称学号_姓名___班别实验日期:年月日实验报告日期:年月日指导老师:实验地点:成绩:评语:
推荐度:
点击下载文档文档为doc格式
9aypb49lhd02tja2ir5y
领取福利

微信扫码领取福利

微信扫码分享