第06章 数组补充练习题答案

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

第六章补充练习答案

一、选择题

1、D

2、D

3、D

4、C

5、D

6、C

7、D

8、A

9、D 10、D 11、C 12、A 13、D 14、

C 15、B 16、B 17、C 18、

D 19、B 20、A 21、C 22、D 23、B 24、D 25、D 26、B 27、B 28、C 29、A 30、B 31、C 32、D 33、D 34、B 35、D 36、A 37、BB 38、ADA 39、A 40、B 41、DBBDA 42、CCDDB 43、ADACCDAA 44、D 45、C 46、D 47、C 48、A 49、D 50、B 51、B

二、填空题

1、0 0

2、0 出错

3、连续数组名

4、行下标2

5、必须用循环结构逐一赋值如:int a[10]; for(int I=0;I<10;I++)a[I]=I+1;

必须用二重循环结构逐一赋值如for(int k=0;k<5;k++)

for(int j=0;j<3;j++)b[k][j]=a[k][j];

6、下标1 下标2

7、数组名所有元素的值数组元素的值输入参数输出参数

8、字符数组cin.getline(str,80);

9、4 5

10、s trcmop(S1,S2)= =0 !strcmop(S1,S2)

11、-1

12、0

13、5

14、63

15、j+1

16、10 19

17、第一个修改

18、2 5 8

19、8 5 2

20、2 3 5 7 11 13 17 19 23 29

21、221 0

22、0 2 4 6

23、21

24、F ortranl

25、F ortranl Language

26、H ow do es she

27、

I am a student

You are teacher

29

I am a studentYou are teacher

You are teacher

28、16

29、#&#&%

30、A SZ

31、

1 4

2 5

3 6

32、5 1 2 3 4

33、1 3 4 6

34、

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

35、57

36、(1)i=3 (2) j

37、(1)

38、(1)a+4 (2)b[0]

39、(1)a[i] (2)continue

40、(1)i= =j (2)j=2 (3)j>=0 (4)i+j

41、(1)k (2)-1 (3)str[i]=str[j] (4) s

42、(1) a (2) a (3) sum/n (4)x[i]

43、(1)n*n (2)m[i]=a%10 (3)t*=10 (4)k= =n*n

44、(1)n%base (2)n/=base (3)--i (4)d

45、(1) ch (2)break (3) ‘#’

46、(1)n%2+’0’ (2)’\0’

47、(1)int pos=0 (2)a[i]==c (3)break (4)pos

48、(1)m=i (2)n=i (3) a[m]=min,a[n]=max

49、(1)i =1 i<10 (2)i+1

50、(1)int i=2;i<20;i+=2 (2)a[i-2]+a[i-1] (3)abs(a[i]-a[i-1])

51、(1)str[i] (2)j=i (3)k+1

52、(1)!(s[i]>='0'&&s[i]<='9') (2)s[j]='\0'

53、(1)if((j%2)!=0)continue (2)a[i]>a[j]

54、(1)n (2)!(a[j]==a[i-j-1]) (3)b

55、(1) i (2)n%j==0 a[i++] (3)return I

56、(1) a[i] (2)5 (3)a[i]=a[j],a[j]=m,m=a[i]

三、充练习题解答(编程题)

1、编程实现两个3 4阶矩阵相加。

#include

void input(int a[3][4])

{

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

cin>>a[i][j];

}

void fun(int a[3][4],int b[3][4],int c[3][4])

{

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

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

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

}

void output(int a[3][4])

{

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

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

cout<

cout<

}

}

void main()

{

int a[3][4],b[3][4],c[3][4];

input(a);

input(b);

fun(a,b,c);

output(c);

}

2、程序将两个已按升序排列的数组合并成一个升序数组。两个数组中重复的数只保存一次。

#include

void fun(int x[],int y[])

{

int i,j,l;

for(i=j=0;i<6;i++){

for(;x[i]>y[j];j++);

for(l=4+j;l-j>=0;l--)y[l+1]=y[l];

y[j]=x[i];

}

for(i=0;y[i];i++){

if(y[i]==y[i+1])

for(j=i;y[j];j++)y[j]=y[j+1];

}

}

void main()

{

int a[10]={3,6,8,11,13,20};

int b[20]={2,4,6,8,20};

fun(a,b); //b的最后一个元素大于等于a的最后一个元素