C语言程序设计习题参考答案第四章(数组)

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

第四章数组参考答案

一、选择题:1、 B 2、C 3、D 4、C 5、C 6、B 7、D 8、B 9、B 10、A

二、填空题:

1、首地址

2、按行存放

3、一个字符

4、′\0′

5、字符数组名或字符串

6、9 0

7、6

8、j-1 str[j-1]

9、62 10、s1[i]=s2[i];

三、改错题

1、错误语句:int a[3][ ]={2,4,6,8,10,12,14,16,18};

正确语句:int a[ ][3]={2,4,6,8,10,12,14,16,18};

2、错误语句:if (str[2]>string) string=str[2];

正确语句:if (strcmp(str[2],string)>0) strcpy(string,str[2]);

3、错误语句:char c[5]={'C','h ','i','n','a '};

正确语句:char c[6]={'C','h ','i','n','a '};或char c[ ]={“China”};

4、错误语句:int a[3]={3*0} ;

正确语句:int a[4];

5、错误语句:scanf(“%d%d%d”,&a);

正确语句:for (i=0; i<3; i++) scanf(“%d”,&a[i]);

或scanf(“%d%d%d”, &a[0], &a[1], &a[2]);

四、编程题

1、用数组来处理,求解Fibonacci数列前40项:1,1,2,3,5,8,13,21…。

#include

void main()

{

int i;

int t[40]={1,1};

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

t[i]=t[i-2]+t[i-1];

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

{

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

printf("%15d",t[i]);

}

}

2、用选择法对20个整数排序(由大到小)。

#include

void main()

{int i,j,min,t,x[20];

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

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

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

{min=i;

for(j=i+1;j<20;j++)

if(x[min]>x[j])min=j;

t=x[i];

x[i]=x[min];

x[min]=t;

}

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

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

}

3、有一个3×5的矩阵,要求编程序求出其中值最小的那个元素的值,以及其所在的行号和列号。

#include

void main()

{

int i,j,s=0,t=0,min;

int a[3][5];

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

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

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

min=a[0][0];

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

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

if (a[i][j]

{min=a[i][j];

s=i;

t=j;

}

printf("min=%d,s=%d,t=%d\n",min,s,t);

}

4、编一程序,将两个字符串连接起来,不要用strcat函数。

#include

void main()

{char str1[80],str2[20];

int i=0,j=0;

scanf("%s",str1);

scanf("%s",str2);

printf("str1:%s\n",str1);

printf("str2:%s\n",str2);

while(str1[i]!='\0')i++;

while(str2[j]!='\0')

{str1[i]=str2[j];

i++;

j++;}

str1[i]='\0';

printf("%s\n",str1);

}

5、求一个5×5矩阵对角线元素之和(左上至右下之对角线)。

#include

void main( )

{float a[5][5],sum=0;

int i,j;

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

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

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

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

sum=sum+a[i][i];

printf("sum=%f",sum);

}

6、编一程序,求数列的前10项:1,5,14,30…,即 f[1]=1;…;f[i]=f[i-1]+i*i。

#include

void main()

{

int i;

long f[10]={0};

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

f[i]=f[i-1]+i*i;

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

{

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

printf("%15d",f[i]);

}

}

相关文档
最新文档