实验六 数组应用(一)
一、实验目的
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--) { } } 分析结果 运行结果 12345 s = s+ a[i] * j ; j = j * 10 ; printf(\" s= %d \\n\" , s ); 2. 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 ] ); } 分析结果 7 , 5 , 3 , 运行结果 3. main() { int i , j ,row =0 ,col = 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 ) { } printf(“ ( % d , % d ) = % d \\n“ , row , col ,m ); } 分析结果 运行结果 ( 1 , 2 ) = 6 m = a[ i ][ j ] ; row = i ; col = j ; (二)完成程序 要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。 1.下面程序的功能是将十进制整数转换成二进制 ,请在_______上填写正确内容。 #include { int k =0 ,n , num[15] ; printf ( \" Enter data that will be converted \\n\") ; scanf(\"%d\" , &n) ; do num[k] = n%2 ; n = n / 2 ; printf (\"The data % d has been converted :\\n\" , n ) ; {k++; for (k;k>0;k--) } while( n !=0 ); printf( \" % 5d \\n \" ,num[k] );} 2、 设数组 a 中的元素均为正整数,以下程序是求 a 中奇数的个数和奇数的平均值,请在_______上填写正确内容。 #include 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 2{ int a [4] = {4 * 0 } ; 3 int i ; 4 for (i=0 ;i < 4 ;i++) 5 scanf (\"%d\" ,&a[i]); 6 7 8} 正确 运行结果: 错误所在行: 错误 应改为: for (i=0 ;i < 4 ;i++) a[0] = a[0] + a[i] ; printf( \" %d ,\" , a[0] ) ; 2.行号 main() 1 { 2 3 int a [ 21 ] , i ; scanf (“ %d “,&a) ; for ( i =1 ; i <=20 ; i + +) ; 4 6 } a [0] = a [ 0] + a[ i ] ; 5 printf( “Sum= % d \\n” , a[0]) ; #include {int a [21], i; for(i=0;i<21;i++) scanf (\"%d\for ( i =1 ; i <=20 ; i++) a [0] = a [ 0] + a[ i ] ; printf( \"Sum= % d \\n\" , a[0]) ; } 正确 运行结果: 错误所在行: 错误 应改为: 3.调试下列程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。写出调试过程。 行号 1 main( ) 2 { int i,n,a[10],av; 3 4 5 6 7 8 9 10 11 12 } 上面给出的程序是完全可以运行的,但是运行结果是完全错误的。调试时请注意变量的初值问题、输出格式问题等。请使用前面实验所掌握的调试工具,判断程序中的错误并改正。 for(i=0;i printf(\"av=%f\\n\; if(i%3==0) printf(\"\\n\"); 正确 运行结果: 错误所在行: 错误 应改为: #include { int i,n=10,a[10],av=0; for(i=0;i (四)编写程序 1. 在键盘上输入N个整数,试编制程序使该数组中的数按照从大到小的次 序排列。 #include printf(\"input N numbers :\\n\"); for (i=0;i printf(\"the sorted numbers :\\n\"); for(i=0;i printf(\"\\n\"); } 2.求5×5矩阵两条对角线上的各元素之和。 #include int a[N][N]; int i,j,s=0; printf(\"input numbers :\\n\"); for (i=0;i s-=a[N/2][N/2]; printf(\"s=%d\\n\ } 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务