第5章 数组 练习题 学号: 姓名:
for( i=1; i<4; i++) 22. 读程序,填运行结果。【1】
main() k+=arr[i]=i; {char c[10]={'I',' ','a','m',' ','a',' ','b','o','y'}; printf( \ int i; 24. 程序执行后输出的结果是【1】。 for(i=0;i<10;i++) #include \ printf(\main() printf(\{int i,j,t; } static int a[]={70,1,0,4,8,12,65,-76,100,-45,35};
for(i=0;i<=9;i++) 23. 下面程序的输出是 【1】。
main() if(a[i]>a[i+1]) { int arr[10],i,k=0; {t=a[i];a[i]=a[i+1];a[i+1]=t;} for( i=0; i<10; i++) printf(\arr[i]=i; }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/***********SPACE***********/ 程序填空:
/*------------------------------------------------------- 【?】;
} 1.【程序填空】
--------------------------------------------------------- }
/*------------------------------------------------------- 题目:打印如下杨辉三角形。
1 2.【程序填空】 1 1 --------------------------------------------------------- 1 2 1 题目:输出Fibonacci数列的前20项,要求每行输出5 1 3 3 1 项。 1 4 6 4 1 Fibonacci数列:1,1,2,3,5,8,13........... 1 5 10 10 5 1 -------------------------------------------------------*/ -------------------------------------------------------*/ #include /*****************SPACE****************/ 【?】; } fib[i]=【?】; for(i=2;i /*****************SPACE****************/ a[i][j]=【?】; for(i=0;i } { for(j=0;j<=【?】;j++) printf(\} 6 第5章 数组 练习题 学号: 姓名: /*---------------------------------------------------------- 3.【程序填空】 ------------------------------------------------------------ 题目:找出一维数组中的最小值元素及其下标。 ------------------------------------------------------------*/ #include int a[N],i,min,p; for(i=0;i /*************SPACE*****************/ scanf(\【?】); /*************SPACE*****************/ min=【?】; p=0; for(i=1;i /*************SPACE*****************/ if(【?】) { min=a[i]; /*************SPACE*****************/ 【?】; } printf(\最小值为:%d,下标为:%d\\n\} /*------------------------------------------------------- 4.【程序填空】 --------------------------------------------------------- 题目:求数组中的最大值。 程序中有4个空,填空使程序完整。 -------------------------------------------------------*/ #include int a[10],m,i; for(i=0;i<10;i++) /***********SPACE***********/ scanf(\【?】); m=a[0]; for(i=0;i<10;i++) /***********SPACE***********/ m=imax(m,【?】); printf(\} /***********SPACE***********/ int imax(【?】) { int z; if(x>y) z=x; else z=y; /***********SPACE***********/ return 【?】; } /*------------------------------------------------------- 5.【程序填空】 --------------------------------------------------------- 题目:输入10个数,输出其中与平均值之差的绝对值最小的数。 -------------------------------------------------------*/ #include float a[10],s,d,x; int i; for(i=0;i<10;i++) /***********SPACE***********/ 【?】; s=0; for(i=0;i<10;i++) s+=a[i]; s/=10; d=fabs(a[0]-s); /***********SPACE***********/ 【?】; for(i=1;i<10;i++) if(fabs(a[i]-s) /***********SPACE***********/ { d=【?】; x=a[i]; } printf(\} /*------------------------------------------------------- 6.【程序填空】 --------------------------------------------------------- 7 第5章 数组 练习题 学号: 姓名: 题目:输入N个数据存入数组中,将其倒置存放,并 打印输出。 -------------------------------------------------------*/ #include /***********SPACE***********/ for(i=0;i<【?】;i++) { t=a[i]; /***********SPACE***********/ a[i]=【?】; a[N-i-1]=t; } for(i=0;i 项。 Fibonacci数列:1,1,2,3,5,8,13........... -------------------------------------------------------*/ #include fib[0]=1;fib[1]=1; for (i=2;i<15;i++) /***********SPACE***********/ fib[i]=【?】; for(i=0;i<15;i++) { printf(\/***********SPACE***********/ if ( 【?】 ) printf(\ } } /*------------------------------------------------------- 8.【程序填空】 --------------------------------------------------------- 题目:考查字符串数组的应用。输出26个英文字母。 -------------------------------------------------------*/ #include int i; /***********SPACE***********/ for (i = 0; i < 26; 【?】) /***********SPACE***********/ string[i] = 【?】; /***********SPACE***********/ printf (\【?】); } /*------------------------------------------------------- 9.【程序填空】 --------------------------------------------------------- 题目:以下程序的功能是求一个二维数组中每行的最大值和每行的和。 -------------------------------------------------------*/ #include \main() { int a[5][5],b[5],c[5],i,j,k,s=0; for(i=0;i<5;i++) for(j=0;j<5;j++) a[i][j]=random(40)+20; for(i=0;i<5;i++) { /***********SPACE***********/ k=a[i][0]; 【?】 ; for(j=0;j<5;j++) { /***********SPACE***********/ if(k /***********SPACE***********/ 【?】 ; 8 第5章 数组 练习题 学号: 姓名: } for(i=0;i<5;i++) { for(j=0;j<5;j++) /***********SPACE***********/ printf(\【?】 ); printf(\ printf(\ } } /*------------------------------------------------------- 10.【程序填空】 --------------------------------------------------------- 题目:以下程序的功能是打印以下图形。 ***** ***** ***** ***** ***** -------------------------------------------------------*/ main ( ) { /***********SPACE***********/ 【?】 char a[5][9]; int i,j; for (i=0;i<5;i++) /***********SPACE***********/ for(j=i; 【?】;j++) a[i][j]='*'; for(i=0;i<5;i++) { for(j=0;j<9;j++) /***********SPACE***********/ printf(\【?】 ); /***********SPACE***********/ 【?】; } } /*------------------------------------------------------- 11.【程序填空】 --------------------------------------------------------- 题目:以下程序的功能是将一个字符串中的前N个字符复制到一个字符数组中去,不许使用strcpy函数。 -------------------------------------------------------*/ main ( ) { char str1[80],str2[80]; int i,n; /***********SPACE***********/ gets(【?】); scanf(\ /***********SPACE***********/ for (i=0; 【?】 ;i++) /***********SPACE***********/ { 【?】 ;} /***********SPACE***********/ 【?】 ; printf(\ } /*------------------------------------------------------- 12.【程序填空】 --------------------------------------------------------- 题目:以下程序的功能是将一个数组中的元素按逆序存放。 -------------------------------------------------------*/ #define N 7 #include static int a[N]={12,9,16,5,7,2,1},k,s; printf(\ for (k=0;k /***********SPACE***********/ for (k=0;k<【?】; k++ ) { s=a[k]; /***********SPACE***********/ 【?】 ; /***********SPACE***********/ 【?】 ; } printf(\ for (k=0;k /***********SPACE***********/ 【?】(\} 9 第5章 数组 练习题 学号: 姓名: /*------------------------------------------------------- 13.【程序填空】 --------------------------------------------------------- 题目:以下程序的功能是删除字符串中的指定字符,字符串和 要删除的字符均由键盘输入。 -------------------------------------------------------*/ #include \void main() { char str[80],ch; int i,k=0; /***********SPACE***********/ gets(【?】); ch=getchar(); /***********SPACE***********/ for(i=0;str[i] 【?】;i++) /***********SPACE***********/ if(str[i]!=ch) {【?】;k++;} /***********SPACE***********/ 【?】; puts(str); } /*------------------------------------------------------- 14.【程序填空】 --------------------------------------------------------- 题目:以下程序的功能是产生10个[30,90]区间上的随机整数,然后对其用选择法进行由小到大的排序。 -------------------------------------------------------*/ #include \void main() { int i,j,t,k; /***********SPACE***********/ 【?】 ; for(i=0;i<10;i++) a[i]=random(61)+30; for(i=0;i<9;i++) { /***********SPACE***********/ 【?】; for(j=i+1;j<10;j++) /***********SPACE***********/ if(【?】)k=j; if(k!=i) {t=a[k];a[k]=a[i];a[i]=t;} } /***********SPACE***********/ for(【?】 ) printf(\ printf(\} /*------------------------------------------------------- 15【程序填空】 --------------------------------------------------------- 题目:以下程序的功能是产生并输出如下形式的方阵。1 2 2 2 2 2 1 3 1 2 2 2 1 4 3 3 1 2 1 4 4 3 3 3 1 4 4 4 3 3 1 5 1 4 4 3 1 5 5 5 1 4 1 5 5 5 5 5 1 -------------------------------------------------------*/ main() { int a[7][7]; int i,j; for (i=0;i<7;i++) for (j=0;j<7;j++) { /***********SPACE***********/ if (【?】) a[i][j]=1; /***********SPACE***********/ else if (i for (i=0;i<7;i++) { for (j=0;j<7;j++) printf(\ /***********SPACE***********/ 【?】; } } /*------------------------------------------------------- 16.【程序填空】 10