一、实训目的
1、掌握一维数组的定义、数组元素的引用形式和赋值的方法 2、掌握一维数组的输入和输出的
3、掌握和一维数组有关的典型算法,如求菲波那契数列、最大数、查找、排序等 二、预习内容
1、预习一维数组的定义及引用的一般方法 2、熟悉循环语句和数组处理语句结合的方法 三、实训内容
1、分析和记录以下程序运行结果,并上机验证: main() # include stdio.h { main()
int v[5]; { int t, i; int i;
int a[10]={ 1,2,3,4,5,6,7,8,9,10 }; v[0]=197; v[2]=-100 t=a[9];
v[4]=350; v[5]=v[0]+v[2]; for ( i=9; i>1; i-=2) --v[4]; a[i]=a[i-2]; for (i=0;i<5;i++) a[1]=t;
printf( v[%d]=%d\\n, i, v[i] ); for ( i=0; i<10; i++ ) } printf( =, a[i] ); }
该程序的运行结果是 该程序的运行结果是:
、将程序补充完整,以完成以下功能,并上机调试。2 (中等难度题)a数组。(1)以下程序以每行输出4个数据的格式输出stdio.h #include a[12], i; int {
) ; for ( i=0; i<12; i++ ) scanf( %d, (i=0; i<12; i++ ) for
; ) { if ( a[i] ); printf( m, } printf( \\ ); }
14
(2)以下程序将数组中的数据按逆序存放。(中等难度题) # include stdio.h
#define SIZE 12 ; /*SIZE为常量12*/ main()
{ int a[SIZE], i, j, t;
for ( i=0; i { t=a[i]; ; ; i++; j ;} for (i=0; i (3)以下程序实现将数组a中的元素按从小到大的顺序排列。 # include stdio.h main() { int i, j, temp, a[10]; for (i=0; i<10; i++ ) ; for (i=0; ; i++ ) for ( ; j if ( ) { ; ; ; } for ( ) printf( %d, a[i] ); } 7、编程题: (1)读入10个整数,求出非负数个数及其和,并将10个整数按从小到大的次序输出。 (2)利用随机函数,生成10个50 ~ 60之间的随机整数,并判断是否有55,若有输出它在数组中的下标,否则输出“NO DATA!”。 15 一、实训目的 1、掌握二维数组的定义和引用; 2、掌握字符串的定义以及它和一维字符数组之间的关系和区别; 3、掌握字符串处理函数的功能和应用。 二、预习内容 1、二维数组的定义和二重循环之间的关系 2、字符串的概念 三、实训内容 1、分析和记录以下程序运行结果,并上机验证: main() { int num[4][4]={11,22,33,44,1,2,3,4,10,20,30,40,12,22,32,42}; int i, j, s=0; for (j=0; j<3; j++) 该程序的运行结果是: for ( i=0; i<3; ++i ) if ( i==j ) s+=num[j][i]; printf( %d\\n, s); } main() j, m, n, a, x[3][4]={43,32,22,13,11,22,33,44,55,11,32,31}; i, {int a=x[m][n]; m=n=0; 该程序的运行结果是: for (i=0;i<3; i++) for ( j=0; j<4; j++) if ( a>x[i][j] ) { m=i; n=j; a=x[m][n]; } printf(a=%d, m=%d n=%d\\n, a, m, n ); } 2、若有三个字符串s1、s2和s3,其中?尽扡摣晥,?尽㈱??,要求用字符数组实现将s1的内容复制到s3中,交将s2的内容添加到s3的后面,最后输出s3。 main() { char s1=abcdef, s2=S456,s3[20]=\\; i=0; j=0; while ( ) { s3[ i ]=s1[ i ]; i++; } i--; while ( s2[ j ]!='\\0' ) { ; j++; } for ( ) printf( %c, s3[ i ] ); } 3、下列是打印杨辉三角形的程序,试将程序补充完整,并上机验证: main() { int i, j, a[6][6]={0}; 16 for ( i=0; i<5; i++ ) { a[i][0]=1; ; for ( j=1; ; j++ ) ; } for (i=0; i<5; i++ ) { for (j=0; ; j++ ) printf(m, a[i][j]); ; } } 4、编程题 (1) 从键盘输入十个数对一个一维数组赋值,并将其中的奇数存放到另一个数组中后再输出,并输出奇数的个数。 如:从键盘输入: 13 14 17 34 45 55 56 76 77 99 则输出: 13 17 45 55 77 99 count = 6 (2) 编程求一个m*n的二维数组中所有元素的最大值,元素可随机产生。