c语言第9章书后习题 - 编程题

发布时间 : 星期三 文章c语言第9章书后习题 - 编程题更新完毕开始阅读

第9章 数 组

三、编程题

9.27 输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数。用下标为0的元素统计字符’0’的个数,用下标为1的元素统计字符’1’的个数……

#include void main() {

int a[10]={0},i; char c;

while((c=getchar())!='\\n') { }

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

printf(\字符的个数:%d\\n\if(c>='0' && c<='9')

a[c-'0']++;

}

9.28 编写函数,对具有10个整数的数组进行如下操作:从下标为n的元素开始直到最后一个元素,依次向前移动一个位置。输出移动后的结果。

#include

#include

void fun(int a[], int n, int m)//m代表数组的大小 { }

void main() {

int a[10],n,i;

for(i=0;i<=9;i++)//产生10个0~39的随机数,并输出 {

a[i]=rand()@; int i;

for(i=n;i

}

}

printf(\

printf(\

scanf(\指定n的值 fun(a,n,10);

9.29 编写函数,把数组中所有奇数放在另一个数组中返回。 #include #include

void fun(int a[], int b[],int * n)//n代表b数组有效数的多少 { }

void main() { }

9.30 编写函数,对字符数组中的字母按由大到小的字母顺序进行排序。

int a[10],b[10]={0},i,n;

for(i=0;i<=9;i++)//产生10个0~39的随机数,并输出 { }

printf(\fun(a,b,&n); for(i=0;i

printf(\

printf(\a[i]=rand()@; printf(\int i,j=0; for(i=0;i<10;i++)

if(a[i]%2) b[j++]=a[i];

*n=j;

#include #include

void fun(char a[], int n)//n代表a数组的大小 { }

void main() { }

9.31 输入若干个有序数放在数组中。然后输入一个数,插入到此有序数列中,插入后,数组中的数仍然有序。请对插在最前,插在最后, 插在中间三种情况运行程序,以便验证程序是否正确。 #include void main()

char a[10],i=0,n;

while((a[i++]=getchar())!='\\n' && i<=9); //排序前输出数组中字符 for(i=0;i<=9;i++) { }

printf(\fun(a,10);//排序

//排序后输出数组中字符 for(i=0;i<10;i++)

printf(\putchar(a[i]); int i,j; char c;

for(i=0;i

for(j=i+1;j

if(a[i]

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

printf(\

{ }

9.32 编写函数,把任意十进制正整数转换成二进制数。提示:把十进制数不断被2除的余数放在一个一维数组中,直到商为零。在主函数中进行输出,要求不得逆序输出。 #include

void dtob(int n,int a[],int *m) {

int i=0,r,j; a[0]=n%2; n=n/2; while(n>0) char a[10],i,n,m,j;

printf(\请输入有序数有多少个\\n\

scanf(\代表具体有多少个有序数,它应在1~9之间 printf(\请输入%d个有序数:\\n\for(i=0;i

scanf(\

}

printf(\请输入要插入的数:\scanf(\输入要插入的数 //找位置 for(i=0;i

if(a[i]>m) break;

//空出位置

for(j=n-1;j>=i;j--) a[j+1]=a[j]; //插入数m a[i]=m; n++;

//输入后的数组元素 for(i=0;i

printf(\

printf(\

联系合同范文客服:xxxxx#qq.com(#替换为@)