C语言第六章数组习题答案 下载本文

第六章 数组 习题答案

一、选择题 1 2 3 4 5 6 7 8 9 C D B D C D D B C 11 12 13 14 15 16 17 18 19 D B B C D D C D B 21 22 23 24 25 26 27 28 29 D D D D B D C C D 二、填空题 1、y<4 x+y==2 2、0 4 3、0 6

4、&a[i] i%4==0 printf(\5、i+j==3_ a[i][j] 6、12

7、a[i][j]+b[i][j] printf(“\\n”) 8、按行存放 9、( a[i]>a[j])

10、将串str2复制到串str1中后再将串str3连接到串str1之后 三、阅读题 1、如右图所示 2、AQM 3、AzyD 4、9198

5、如右图所示

1题答案 5题答案 6、92

7、1,2,5,7, 8、2

9、v1=5,v2=8,v3=6,v4=1 10、a*b*c*d* 四、编程题

1、以十个数排序为例,进行由小到大排 (1)选择法排序 #include void main( )

{int i,j,n=10,p,a[10];int temp;

for(i=0;i

for(i=0;i

{ p=i; /*假定第i趟中最小数的位置是i*/

10 C 20 D 30 C for(j=i+1;j

if(a[j]

if(i!=p) {temp=a[i];a[i]=a[p];a[p]=temp;} }

printf(\排序后的一维数组:\\n\

for(i=0;i

(2)比较法排序 #include void main( )

{int i,j,n=10,p,a[10];int temp;

for(i=0;i

for(i=0;i

if(a[i]>a[j]) {temp=a[i];a[i]=a[j];a[j]=temp;} printf(\排序后的一维数组:\\n\

for(i=0;i

2、以在十个数据(由小到大排列的十个数)中插入一个数为例 #include void main( )

{int a[11],i,n=10,k; int point;

printf(\请输入原始数据:\\n\

for(i=0;i

for(i=0;i

scanf(\ /*输入要插入的数据*/ for(i=0;i

if(a[i]>k) {point=i; break;} if(i!=n)

{for(i=n;i>point;i--) a[i]=a[i-1]; a[point]=k;} /*从后向前方式*/ else

a[n]=k;

printf(\插入后的数是:\\n\

for(i=0;i

3、#include int main()

{int i,j,upp,low,dig,spa,oth; char text[3][80];

upp=low=dig=spa=oth=0; for (i=0;i<3;i++)

{ printf(\ gets(text[i]);

for (j=0;j<80 && text[i][j]!='\\0';j++) {if (text[i][j]>='A'&& text[i][j]<='Z')

upp++;

else if (text[i][j]>='a' && text[i][j]<='z') low++;

else if (text[i][j]>='0' && text[i][j]<='9') dig++;

else if (text[i][j]==' ')

spa++; else

oth++; } }

printf(\ printf(\ printf(\ : %d\\n\ printf(\ : %d\\n\ printf(\ : %d\\n\ return 0; }

5、以5个数逆序存放为例,将n值修改,则可实现n个数逆序存放 #include

#define n 5 //n为符号常量,值为5 void main( ) {int i,a[n],t;

for(i=0;i

for(i=0;i

6、杨辉三角

#include void main( ) {int i,j,a[10][10]; for(i=0;i<10;i++) for(j=0;j<=i;j++)

if(j==0||i==j)a[i][j]=1;

else a[i][j]=a[i-1][j]+a[i-1][j-1];