练习题6参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

练习题6 参考答案

二、填空题

1.下面程序的运行结果是:

1 1

2 3

5 8 13 21

34 55

2.以下程序的输出结果是 abc 。

3.若有定义:int a[3][4]={{1, 2}, {0}, {4, 6, 8, 10}}; ,则初始化后,a[1][2]得到的初值是 0 ,a[2][1]得到的i初值是 6 。

4.以下程序可求出所有水仙花数(水仙花数是指一个3位正整数,其各位数字的立方之和等于该正整数。如:407=4*4*4+0*0*0+7*7*7,故407是一个水仙花数)。请填空。

#include

void main()

{

int x,y,z,a[8],m,i=0;

printf("The special numbers are:\n");

for(m=100;m<1000; m++)

{ x=m/100;

y= (m/10)%10 ;

z=m%10;

if(x*100+y*10+z==x*x*x+y*y*y+z*z*z)

{ a[i]=m ; i++;}

}

for(x=0; x

printf("%6d",a[x]);

}

5.下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。

#include

#include

void main()

{ char a[]="c language", t;

int i,j,k;

k=strlen(a);

for(i=0;i<=k-2;i+=2)

for(j=i+2;j

if( a[i]>a[j] )

{ t=a[i]; a[i]=a[j]; a[j]=t; }

puts(a);

printf("\n");

}

6.下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后的数组存到另一个二维数组b中,并按矩阵形式输出a和b,请填空。

例如:array a: array b:

4 5 6 6 4 5

1 2 3 3 l 2

#include

void main()

{ int a[2][3]={4,5,6,1,2,3},b[2][3];

int i,j;

printf("array a: \n");

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

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

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

b[i][j]=a[i][j];

}

printf("\n");

}

for( i=0;i<=1; i++) b[i][0]=a[i][2];

printf("array b:\n");

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

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

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

printf("\n") ;

}

}

7.下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b。请填空。

#include

void main()

{ int a[10],b[10],i;

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

scanf("%d", &a[i]);

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

b[i]=a[i]-a[i-1];

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

{ printf("%3d",b[i]);

if( i%3==0 )printf("\n");

}

}

8.以下程序是求矩阵a,b的和,结果存入矩阵C中,并按矩阵形式输出。请填空。

#include

void main()

{ int a[3][4]={{3,-2,7,5},{1,0,4,-3},{6,8,0,2}};

int b[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};

int i,j,c[3][4];

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

for(j=0;j<4;j++)

c[i][j]= a[i][j]+b[i][j] ;

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

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

printf("%3d",c[i][j]);

printf("\n") ;

}

}

三、程序设计题

1.从键盘输入某个班级的30名学生信息(设只含有学号),编写程序用折半查找法通过输入一个学生的学号查找某一学生(注意:查找前要先进行排序)。

程序设计如下:

#include

#define N 30

void main()

{

int a[N];

int i,j,t,x,mid,low=0,high=N-1;

printf("请输入%d名学生的学号:\n",N);

for(i=0;i

scanf("%d",&a[i]);

for(j=0;j

for(i=0;i

if(a[i]>a[i+1])

{ t=a[i];a[i]=a[i+1];a[i+1]=t; }

printf("请输入需要查找的学生的学号:\n");

scanf("%d",&x);

do

{

mid=(low+high)/2;

if(a[mid]==x)break;

else if(a[mid]>x)

high=mid-1;

else

low=mid+1;

}while(low<=high);

if(low<=high)

printf("这个学生学号为%d\n",x);

else

相关文档
最新文档