大连东软信息学院C语言实验五数组_c语言实验数组的应用

2020-02-27 其他范文 下载本文

大连东软信息学院C语言实验五数组由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言实验数组的应用”。

试验五

数组

一、实验目的1.了解数组的特点,掌握一维数组的定义、初始化及其使用方法。2.掌握字符串的输入输出方法,熟悉常用的字符串操作函数。3.掌握二维数组的定义、初始化及其使用方法。

二、所涉及到的知识点

1.一维数组的定义。考虑数组定义的格式,数组元素在内存中的存储形式及地址分配,数组名的意义,数组元素的维数(数组元素的个数)等。

2.一维数组的初始化。数组初始化赋值的形式,考虑初始值多于数组维数,少于数组维数以及数组维数缺省的情况下,初始赋值的意义理解。

3.二维数组的定义。考虑二维数组定义的格式,尤其是行和列变化,二维数组在内存中如何存储,地址如何分配,二维数组如何转化为一维数组,数组下标如何变化?

4.二维数组的初始化。二维数组初始化的形式,考虑行下标和列下标在什么情况下可以缺省,缺省时的意义有何不同?

5.字符数组的定义和初始化。理解字符数组和字符串之间的联系和区别。尤其是字符串结束标志‘’的意义。分析字符串长度、字符串所占内存空间的大小这两种描述的区别。6.字符数组的输入输出,字符串的输入输出,并比较二者的异同。

三、实验内容

(一)阅读并调试下列程序,给出程序结果,并指明程序的功能是什么。1.求最大值问题。#include “stdio.h” #define N 10 void main(){

int a[N]={20,9,10,-16,-9,18,96,7,11,33};

int i,max=a[0],m=0;

for(i=1;i

if(max

{

max=___33_____;/* 将比较后的数组元素的较大值赋给max变量*/

m=___9_______;/*将比较后较大的数组元素下标赋给m变量*/

}

printf(“max=%d,为第%d个元素n”,max,m+1);} 运行结果:

程序功能:求数组中的较大值及其是第几个元素 2.数据分类问题。#include “stdio.h” #define N 10 /*这是宏定义语句,表示后面程序中出现的N均为10*/ void main(){

int a[N],b[N],i,j=0,k=N-1;

printf(“请输入数据:n”);

for(i=0;i

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

for(i=0;i

{

printf(“%d ”,a[i]);

if(a[i]

b[j++]=a[i];

/* 将负数放在b的前部 */

else

b[k--]=a[i];

/* 将其他数放在b的后部 */

}

printf(“n”);

for(i=0;i

printf(“%d ”,b[i]);} 程序调试

① 调试程序时通常先将N定义为一个小数值,当程序调试成功后再将N定义为常数10,这样可以提高程序的调试效率。

② 在设计调试用数据时,应考虑各种数据情况,以便提高程序的可靠性。

程序功能:将所输入的数据按输入排一遍,换行后倒着排一遍。运行结果:

A.当输入的数据数超过十个时会自动去除多余的数。

B.当输入的数据数小于十个时回车,将无反应,直到输满十个数为止,回车多少不影响。

3.字母统计问题。输入一个长度小于20的字符串,统计其中字母的个数。/* 字母统计问题程序 */ #include “stdio.h” void main(){

char s[20];

int i=0,counter=0;

printf(“请输入字符串:n”);

gets(s);

while(s[i]!='')

{

if(s[i]>='a'&&s[i]='A'&&s[i]

counter++;

i++;

}

printf(“Total: %dn”,counter);} 程序调试

① 运行程序,输入一个长度不足20的字符串,察看并分析程序运行结果。

② 运行程序,输入一个长度恰好是20的字符串,察看并分析程序运行结果。

③ 运行程序,输入一个长度超过20的字符串,察看并分析程序运行结果。

④ 运行程序,输入一个全是字母的字符串,察看并分析程序运行结果。

⑤ 运行程序,输入一个没有字母的字符串,察看并分析程序运行结果。

⑥ 运行程序,只输入一个回车符,察看并分析程序运行结果。

⑦ 运行程序,输入你认为最有特点的一个字符串,察看并分析程序运行结果。

运行结果: 1’

2’

3’第一次运行后能正确显示,按任意键 TC2.0 直接退出,郁闷中~~~~~ 4’

和1’

2’

运行一样 5’

只要输入数字,无论多少,是否有空格,结果均显示 0 ~~(上图为其中的一种情况)

6’

7’以上均为本人最感兴趣的字符串~~~~O(∩_∩)O~~~

超强分析:根据多种调试运行结果得知 A.Turboc2.0增加了编程者的难度(必须在输入时检查是否越界); B.第3’ 种情况是因为编译器拒绝运行(编译出错)

说明:TurboC2.0设计者认为字符串越界应当被限制。C..执行程序,进行不同长度字符串测试时,多次出现跳出编程环境即第 3’ 种情况

说明:字符串越界的确对内存数据有破坏性作用。

D.所以只能得出TurboC2.0在此方面有缺陷!

4.奇偶数问题。设有一维整型数组共有20个元素,且偶数与奇数各占一半,将该数组变换为2×10的二维数组且偶数和奇数各成一行。/* 二维数组问题程序 */ include “stdio.h” void main(){

int a[20],b[2][10];

int i,j,col1=0,col2=0;

printf(“请输入数据:n”);

for(i=0;i

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

for(i=0;i

{

if(a[i]%2==0)

b[0][col1++]=a[i];

/* 偶数存储在b[0]数组 */

else

b[1][col2++]=a[i];

/* 奇数存储在b[1]数组 */

}

for(i=0;i

{

for(j=0;j

printf(“%6d”,b[i][j]);

printf(“n”);

} } 程序调试

① 输入一组数据,其中偶数个数与奇数个数相等,察看并分析程序的运行结果。

运行结果:

② 输入一组数据,其中偶数个数与奇数个数不相等,看程序能否正常运行,并对运行结果进行分析。

运行结果:

分析:A.当按要求给出数据时可按图一正常运行。

.B.当奇偶数目不等时,少的部分 随即 补数,多出的部分按输入先后顺序舍去后输入的(上图2为期中一种情况)

③ 调试完善程序,使得对任何输入数据,程序都能正常运行:或者给出一个正确的执行结果,或者给出一个恰当的提示信息。

(二)编制下列程序

1.只使用一个一维数组,实现本实验的数据分类问题。

2.分别使用scanf()函数的“%c”格式和“%s”格式输入字符串,实现本实验的字母统计问题。

编制结果: %s 型: #include “stdio.h” void main(){

char s[20];

int i=0,counter=0;

printf(“Please input charater:n”);

scanf(“%s”,s);

while(s[i]!='')

{

if(s[i]>='a'&&s[i]='A'&&s[i]

counter++;

i++;

}

printf(“Total:%dn”,counter);

getch();} 由于时间,请谅解%c 没弄好~~~上课补上,谢谢~~~ 3.修改奇偶数问题程序,使得一维整型数组的20个元素保存在10×2的二维数组中,且偶数与奇数分别存储在两列上。

编制结果: #include main(){

int a[20],b[10][2];

int i,j,col1=0,col2=0;

printf(“Please input needed date:n”);

for(i=0;i

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

for(i=0;i

{

if(a[i]%2==0)

b[col1++][0]=a[i];

else

b[col2++][1]=a[i];

}

for(j=0;j

{

for(i=0;i

printf(“%6d”,b[j][i]);

printf(“n”);

}

getch();}

四、思考题 1.为什么要引入数组?引入数组的意义是什么?要从数组的定义和数组元素的引用去分析。

答: 引入数组主要是为了提高编程效率。

数组是把具有相同数据类型的若干变量按有序的形式组织起来,以便于程序处理,这些数据元素的集合就叫数组。

2.如何理解一维数组的维数和二维数组的维数。

答: 一维数组来说它并不具有维数,一维数组只是由单一的同一类型的数组成。

而二维数组的维数就具有了意义,可以理解它的元素按行和列组成了一个平面矩阵,它所谓的二维即为行和列。

3.字符数组和字符串的联系和区别是什么?从他们的定义和输入输出来分析。

答: 字符数组和字符串在内存空间中都存放了一串字符。

而字符数组可能因为定义时方括号数值的多少而在内存空间存放了“”。

总结:1.请问老师何时多讲一些题,何时把实验讲一下。谢谢~~ 2.截屏 蛮帅的!

3.严正声明:以上均为本人劳动成果,若有雷同,此版本为正版!

----李睿阳 2009/12/18

《大连东软信息学院C语言实验五数组.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
大连东软信息学院C语言实验五数组
点击下载文档
相关专题 c语言实验数组的应用 大连 数组 东软 c语言实验数组的应用 大连 数组 东软
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文