实验八数组应用一答案

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

实验八数组应用(一)答案

一、实验目的

1. 掌握一维数组的定义和使用;

2. 了解二维数组的定义和使用。

二、实验学时数

2学时

三、实验步骤

(一)阅读程序

1.#include

main()

{ int a[]={1,2,3,4,5},i,j,s=0;

j = 1;

for ( i = 4 ; i>=0 ; i--)

{

s = s+ a[i] * j ;

j = j * 10 ;

}

printf(" s= %d \n" , s );

2. #include

main()

{

int k ;

int a[3][3] = {9,8,7,6,5,4,3,2,1} ;

for (k =0;k < 3;k++ )

printf("%d \n",a[k][2-k]);

3.main()

{ int i , j ,x =0 ,y = 0 , m ;

int a[3][3] = { 1, -2 , 0 , 4 , -5 , 6 , 2 , 4 };

m = a [0][0] ;

for (i=0 ;i < 3 ;i++)

for (j = 0 ; j<3 ; j++ )

if ( a[ i] [ j ] >m )

{

m = a[ i ][ j ] ;

x = i ;

y = j ;

}

printf(“ ( % d , % d ) = % d \n“ , x , y,m );

(二)完成程序

要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。

1.下面程序的功能是将十进制整数转换成二进制,请在_______上填写正确内容。

#include

main()

{ int k=0,n,j,num[16]={0};

printf("输入要转换的十进制数\n");

scanf("%d",&n);

printf ("%d转换为二进制数:\n",n);

do

{ num[k]=_n%2_;

n=n/2;k++;

} while(n!=0);

for(k=15;k>=0;k--)

printf("%d",num[k]);

}

2、设数组 a 的元素均为正整数,以下程序是求 a 中奇数的个数和奇数的平均值,请在_______上填写正确内容。

#include

main()

{ int a[10]={10,9,8,7,6,5,4,3,2,1};

int k,s,i;

float ave;

for(i=0,k=s=0;i<10;i++)

{ if(a[i]%2==0) continue ;

s+=a[i];

k++;

}

if(k!=0)

{ ave=s/k;

printf ("%d,%f\n",k,ave);

}

}

(三)调试程序

要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。

1.以下程序实现的功能是输入四个数,求这四个数的和.

#include

main()

1.{ int a(4)={4*0};//改为 int a[4]={0};

2. int i;

3.for (i=0;i<4;i++) scanf("%d",&a[i]);

4.for (i=0;i<4;i++) a[0]=a[0]+a[i];// 改为i=0

5.printf( "%d ",a[0]);

2.以下程序实现的功能是求10个元素的和。

行号#include

1.main()

2.{ int a[11],i;//改为 int a[11]={0},i;

3. for(i=1;i<=10;i++)

4. scanf ("%d",&a); //改为 &a[i]

5. for (i=1;i<=10;i++);

6. a[0]=a[0]+a[i];

3.调试下列程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。写出调试过程。

行号

1 main( )

2 { int i,n,a[10],av;//改为 int i,n=10,a[10];float av;

3 for(i=0;i

4 scanf("%d",a[i]);//改为 scanf(“%d”,&a[i]);

5 for(i=0;i

6 { printf("%d",a[i]);

7 if(i%3==0)

8 printf("\n");}

9 for(i=0;i!=n;i++)

10 av+=a[i];

11 printf("av=%f\n",av); }//改为printf(“av=%f\n”,av/10); 上面给出的程序是完全可以运行的,但是运行结果是完全错误的。调试时请注意变量的初值问题、输出格式问题等。请使用前面实验所掌握的调试工具,判断程序中的错误并改正。

相关文档
最新文档