实验八数组应用一答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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); 上面给出的程序是完全可以运行的,但是运行结果是完全错误的。调试时请注意变量的初值问题、输出格式问题等。请使用前面实验所掌握的调试工具,判断程序中的错误并改正。