大学c语言程序设计实验8,实验8_C语言程序设计上机指导与同步训练(刘迎春、张艳霞)_pdf_大学课件预览_高等教育资讯网...

实验八 数组(1)

班级______________姓名___________指导老师_____________成绩___________

第_____________机房___________号机器 时间:________________________

实验目的:1,掌握一维数组的定义和使用。

2,了解二维数组的定义和使用。

实验要求:每次实验前,学生要先预习实验内容,写出分析结果或程序,经实验指导老师检查后,上机运行、调试程序,得出最终正确结果。

实 验 内 容

一、读程序

结果;上机运行程序,得到运行结果,比较之。

1,

#include

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

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语言程序设计上机指导与同步训练

·40·

·40·

分析结果

运行结果

3.有以下输入,7 10 5 4 6 7 9 8 3 2 4 6 12 2 -1,则下面程序的运行结果是

#include

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

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 = a[ i ][ j ] ;

row = i ;

col = j ;

}

printf(,( % d,% d ) = % d \n“,row,col,m );

}

分析结果

运行结果

5.若有以下输入( CR 表示按Enter键) 52,则将下面程序的运行结果填入下表中。

#include

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

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

#define N 20

main()

C语言程序设计上机指导与同步训练

·42·

·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

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

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

main()

第一部分 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++ )

C语言程序设计上机指导与同步训练

·44·

·44·

{ printf (“%5d”,a [ i ][ j ] );

b [ j ][ I ] = a [ I ][ j ] ;

}

printf (,\n”) ;

}

for (i=0 ;i < =1 ;i++)

{ for (j = 0 ; j < =2 ; j++ )

printf (“%5d”,b [ i ][ j ] );

printf (,\n”) ;

}

}

运行结果,

正确

错误所在,

错误

应改为,

4,下面程序的功能是用数组求Fibonacci数列前20 项,每行输出5项。

main()

{ int i,f [ 20 ] ;

f [0] = f[ 1 ] =1 ;

for (i=2 ; i < 20 ; i ++)

{ f [ 1 ] = f [ 1 ] + f[ 2] ;

f [ 2 ] = f [ 2] + f [1] ;

}

for (i=0 ; i < 20 ; i ++)

{ if ( i%4= = 0) printf(“\n”) ;

printf(“%12d”,f [ i ] );

}

}

运行结果,

正确

错误所在,

错误

应改为,

四、写程序

1,编写一个程序,从键盘输入 30 个学生的成绩,统计最高分、最低分和平均分,并输出。

2,通过循环按行顺序为一个5*5 的二维数组a赋1~25的自然数,然后输出该数组的右上半三角的数,试编程。

3,设计一个程序,统计4个人的g5483g12092数,g2454g2164g6249g12092的人数,低g112250个,4个人的g5483g12092

分g2047用整数1、2、3、4表示,用-1表示输入结g7475,输出统计结果。

4,将一个数组中的值按g17882序g18337g7044存g6930。g1375g3926:g2419g7481顺序为8、6、5、3、2、1,g16213求g6925

为1、2、3、5、6、8。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值