实验八数组(1) 班级 姓名 指导老师 成绩 第 机房 号机器时间: 实验目的:1.掌握一维数组的定义和使用 2.了解二维数组的定义和使用。 实验要求:每次实验前,学生要先预习实验内容,写出分析结果或程序,经实验指导 老师检查后,上机运行、调试程序,得出最终正确结 实验内容 、读程序 结果;上机运行程序,得到运行结果,比较之 #include <stdio. h> inta[j={1,2,3,4},i,j,s=0 1 (i=3 0 printf(”s=d\n”,s) 分析结果 运行结果 #include <stdio. h> main () int k inta[3][3]={1,2,3,4,5,6,7,8,9}; printf(“d,\n",a【k][2-k])
实验八 数组(1) 班级______________姓名___________指导老师_____________成绩___________ 第_____________机房___________号机器 时间:________________________ 实验目的:1. 掌握一维数组的定义和使用。 2. 了解二维数组的定义和使用。 实验要求:每次实验前,学生要先预习实验内容,写出分析结果或程序,经实验指导 老师检查后,上机运行、调试程序,得出最终正确结果。 实 验 内 容 一、读程序 结果;上机运行程序,得到运行结果,比较之。 1. #include <stdio.h> main() { int a[ ]={1, 2 , 3 , 4} , i , j , s=0 ; j = 1; for ( i = 3 ; i>=0 ; i--) { s = s+ a[i] * j ; j = j * 10 ; } printf(“ s= %d \n” , s ); } 分析结果 运行结果 2. #include <stdio.h> main() { int k ; int a[3][3] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } ; for ( k =0 ; k < 3 ; k ++ ) printf(“%d , \n”,a [k] [2-k ] ); }
C语言程序设计上机指导与同步训练 析结果 3.有以下输入,7105467983246122-1<CR>,则下面 程序的运行结果是 #include <stdio. h> main() intb[51],x,i,j=0,n=0 canf(”旨d,&x); while (x>-1 b[++n]= scanf("暑d”,&x);} for(⊥=1;i<=n;i++) if(b[i]旨2==0)b[++j1==b[i] for ( i printf(”3d\n b[i]) printf ("\n") 运行结果 #include <stdio. h> int i, j, row =0,col =0,m i inta[3][3]={1,-2,0,4 for(i=0;<3;i++) ( j<3;j++) if(a[i]【j [i][j1 printf(”(号d row col, m 分析结果 5.若有以下输入(CR表示按 Enter键)52<CR>,则将下面程序的运行结果填入下表中。 #include <stdio. h>
·40· C 语言程序设计上机指导与同步训练 ·40· 分析结果 运行结果 3.有以下输入,7 10 5 4 6 7 9 8 3 2 4 6 12 2 -1<CR>,则下面 程序的运行结果是 #include <stdio.h> main() { int b[51] , x , i , j =0 , n = 0 ; scanf(“ %d “ , &x) ; while (x>-1) { b[++n ] = = x ; scanf(“%d” , &x);} for (i=1 ;i <= n ;i++) if ( b[i] % 2 = = 0) b[ + +j ] = = b[i] ; for ( i =1 ; i <= i; i + +) printf(“ %3d \n” , b[i] ); printf ( “\n”) ; } 分析结果 运行结果 4. #include <stdio.h> main() { int i , j ,row =0 ,col = 0 , m ; int a[3][3] = { 1, -2 , 0 , 4 , -5 , 6 , 2 , 4,9}; 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 ] ; row = i ; col = j ; } printf(“ ( % d , % d ) = % d \n“ , row , col ,m ); } 分析结果 运行结果 5.若有以下输入( CR 表示按 Enter 键) 52<CR>,则将下面程序的运行结果填入下表中。 #include <stdio.h> main()
第一部分c语言程序设计上机指导 41· int low =0, mid high = 7, found ,x i found =0 inta[8]={6,12,18,42,44,52,67 while(( low < high )&& found ==0)) if(x > a [mid] )low mid+1 else if (x< a [mid] )hi else found printf(" Search Successful I The index is d \n " mid else printf (w Can't search l \n " 分析结果 运行结果 main() int a[5][ 5] or (=0i j printf (" The result is for(i=0;<5;i++) i for (j rinf(”旨4d",a[i]【j]) 分析结果 、完成程序 要求:根据要求,分析给出的上下语句,填写程序。 1.以下程序的功能是以每行4个数据的形式输出a数组元素,请在上填写正 确内容 #include <stdio. h> main()
第一部分 C 语言程序设计上机指导 ·41· ·41· { int low =0 , mid , high = 7 , found ,x ; found =0 ; int a[ 8 ] = { 6 , 12 , 18 , 42 , 44 , 52 , 67 , 94 }; scanf( “ %d ” , &x ) ; while (( low <= high ) && ( found = = 0 )) { mid = ( low + high ) / 2 ; if ( x > a [mid] ) low = mid + 1; else if (x < a [mid] ) high = mid -1 ; else { found = 1 ; break ; } } if (found = = 1 ) printf(“ Search Successful ! The index is : % d \n “ , mid ); else printf (“ Can’t search ! \n “); } 分析结果 运行结果 6. #include <stdio.h> main() { int i , j , n =1 ; int a[ 5 ][ 5 ] ; for (i=0 ;i < 5 ;i++) for (j = 0 ; j < 5 ; j++ ) a [ i ][ j ] =n + + ; printf ( “ The result is : \n” ) ; for (i=0 ;i < 5 ;i++) { for (j = 0 ; j < = i ; j++ ) printf ( “ % 4 d ” , a [ i ][ j ] ); printf ( “ \ n ”) ; } } 分析结果 运行结果 二、完成程序 要求:根据要求,分析给出的上下语句,填写程序。 1. 以下程序的功能是以每行 4 个数据的形式输出 a 数组元素 ,请在_______上填写正 确内容。 #include <stdio.h> #define N 20 main()
42· C语言程序设计上机指导与同步训练 for (i N-1 scanf for(主=0;i<=N-1;i printf 33d 下面程序的功能是将十进制整数转换成二进制整数,请在 上填写正确内容 main() printf ( " Enter data that will be converted \n " scanf(旨dw,&n) num [k]= n rinf(" The data旨 d has been converted:n”,n); 3.设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值,请 上填写正确内容。 #include <std 1 for(i=0,k==0;i<10;i++) i if ave=s/k; printf(”暑d,号f\n”,k 4.以下程序的功能是求出矩阵a的主对角线上的元素之和,请在 上填写正确 #include <stdio. h> main()
·42· C 语言程序设计上机指导与同步训练 ·42· { int a [N ] ; for ( i = 0 ; i <= N -1 ; i + + ) scanf ( “ % d ”, ____________) ; for ( i = 0 ; i <= N -1 ; i + + ) if ( i % 4 = = 0 ) printf (“\n “) ; printf ( “ %3d ”, _______________); } printf (“\n“) ; } 2. 下面程序的功能是将十进制整数转换成二进制整数,请在_______上填写正确内容。 #include <stdio.h> main() { int k =0 ,n , j , num[20] ; printf ( “ Enter data that will be converted \n “) ; scanf(“ %d “ , &n) ; do { k + + ; num[k] = n ______ 2 ; n = n / 2 ; } while( n ! = 0 ); printf (“The data % d has been converted :\n” , n ) ; for ( _________________________) printf( “ % 4d \n “ ,num[k] ); } 3. 设数组 a 中的元素均为正整数,以下程序是求 a 中偶数的个数和偶数的平均值,请 在_______上填写正确内容。 #include <stdio.h> main() { int a [10 ] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 } ; int k ,s , i ; float ave ; for ( i = 0 , k= s =0 ; i< 10 ;i ++ ) { if ( _____________) continue ; s + = _____________ ; k + + ; } if( k! = 0) { ave = s / k ; printf (“ %d , %f \n ” , k , ave ); } } 4. 以下程序的功能是求出矩阵 a 的主对角线上的元素之和,请在_______上填写正确 内容。 #include <stdio.h> main()
第一部分c语言程序设计上机指导 inta[3t3]={1,3,5,7,9,11,13,15,17}; int sum=0,i, j (i j<3;j sun十 printf("Sum d \n" 三、调试程序 要求:分析下列程序是否正确,如有错,错在哪儿?应如何改正?如正确,运行结果 如何?上机调试之。 main() int a( 3)= int i i for(i=0;i<3;i++) scanf(”d”,&a【i]); for(i=0;i<3;i++)a【0]〓a[0j+a[i] printf(”影d,",a[0]); 运行结果 正确 误 main() { i a[o]=a[0]+a【i]; printf("sum=旨d\n”,a【o]) 运行结果 正确 错误所在 错误 应改为 3.下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中。 i int i, j int b [3][2], i, 3 for(j=0;j<=2;j++)
第一部分 C 语言程序设计上机指导 ·43· ·43· { int a[ 3 ][ 3 ] = { 1 , 3 , 5 , 7 , 9 , 11 , 13 , 15 ,17 }; int sum = 0 , i , j ; for (i=0 ;i < 3 ;i++) for (j = 0 ; j < 3 ; j++ ) if (____________) sum += _______________; printf ( “Sum = %d \n” , sum) ; } 三、调试程序 要求:分析下列程序是否正确,如有错,错在哪儿?应如何改正?如正确,运行结果 如何?上机调试之。 1. main() { int a ( 3) = { 3 * 0 } ; int i ; for (i=0 ;i < 3 ;i+ +) scanf (“ %d ” ,&a[ i ] ); for (i=0 ;i < 3 ;i++) a[ 0 ] = a [ 0 ] + a [ i] ; printf( “ %d ,“ , a[0] ) ; } 运行结果: 正确 错误所在: 错误 应改为: 2. main() { int a [ 10 ] , i ; scanf (“ %d “,&a) ; for ( i =1 ; i <=10 ; i + +) ; a [0] = a [ 0] + a[ i ] ; printf( “Sum= % d \n“ , a[0]) ; } 运行结果: 正确 错误所在: 错误 应改为: 3. 下面程序将二维数组 a 的行和列元素互换后存到另一个二维数组 b 中。 main() { int i, j ; int a [ ] [ ] = { { 1 , 2 , 3 } ,{ 4 , 5 , 6 }} ; int b [3][2] , i , j ; for (i=0 ;i < =1 ;i++) { for (j = 0 ; j < =2 ; j++ )