C语言程序设计习题答案(6-13)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计习题答案
习题六数组
一、选择题
1~10: BDBCD CDBAB
11~20:BCDCC DABBC
21~30:CCADC ABBCB
31~41:BDDDD CDCCB A
二、填空题
1. 9 、 0
2.先行后列
3.连续的存储空间中
4. QuickC
5. (c=getchar( )) 、‘A’+i或65+i
6. ‘\0’、 str1[i]-str2[i]
7. CDABC
8. 10 14
9. 6
10. 1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
11. 600
12. AzyD
13 4 some string *test
三、编程题
1. 定义一个有20个元素的整型数组,分别求出下标为奇数和偶数的元素的平均值。
答:程序参见文件Cprogram\
#include ""
#include ""
main()
{int i,s0=0,s1=0,a[20];
for(i=0;i<20;i++)
a[i]=rand()%100;
for(i=0;i<20;i+=2)
{printf("%3d",a[i]);
s0=s0+a[i];
}
printf(" sum is:%d ave=%f\n",s0,s0/;
for(i=1;i<20;i+=2)
{printf("%3d",a[i]);
s1=s1+a[i];
}
printf(" sum is:%d ave=%f\n",s1,s1/;
}
2. 设有一个整型数组,另输入一个整数,编程查找这个整数是否在数组中出现过,若出现,则输出第一次出现的位置,否则,输出no found。
答:程序参见文件Cprogram\
#include ""
#include ""
main()
{int i,s,a[20];
for(i=0;i<20;i++)
a[i]=rand()%100;
scanf("%d",&s);
for(i=0;i<20;i++)
if(a[i]==s)
{printf("found:a[%d]=%d\n",i,a[i]);
break;
}
if(i==20)
printf("no found\n");
for(i=0;i<20;i++)
printf("%3d",a[i]);
printf("\n");
}
3. 设有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入到数组中。
答:程序参见文件Cprogram\
#include ""
#define N 10
main()
{int i, j, s, a[N]={17,15,13,11,9,7,5,3,1}; 编一程序,从一个已排好序的数组中删去某个位置上的元素。
答:程序参见文件Cprogram\
#include ""
#define N 10
main()
{int i, j, a[N]={1,3,5,7,9,11,13,15,17,19};
for(i=0;i printf("\n"); scanf("%d",&i); for(j=i;j a[j]=0; for(i=0;i printf("\n"); } 5. 将一个二维数组的行、列互换后存到另一个二维数组中并输出结果。 答:程序参见文件Cprogram\ #include "" main() {int i,j; int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23},b[4][3]; for(i=0;i<4;i++) for(j=0;j<3;j++) b[i][j]=a[j][i]; printf("array a:\n"); for(i=0;i<3;i++) {for(j=0;j<4;j++) printf("%5d",a[i][j]); printf("\n"); } printf("array b:\n"); for(i=0;i<4;i++) {for(j=0;j<3;j++) printf("%5d",b[i][j]); printf("\n"); } } 6. 编一程序,在一个二维数组中,查找第一次出现的负数,并输出该数及其所在的行、列号。 答:程序参见文件Cprogram\ #include "" main() {int i,j,flag; int a[3][4]={1,3,5,7,9,11,13,-15,17,19,-21,23}; flag=0; for(i=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j]<0) {flag=1; printf("found:a[%d][%d]=%d\n",i,j,a[i][j]); i=j=100; 编程将一个字符数组中的字母,按由大到小的顺序进行排序。 答:程序参见文件Cprogram\ #include "" #include "" main() {char t,s[]="ABCDIVBHFBVCNLKFDB"; int i,j,n; puts(s); n=strlen(s); for(i=0;i for(j=i+1;j if(s[i] {t=s[i];s[i]=s[j];s[j]=t;} puts(s); } 8. 输入一行字符,统计其中有多少个英语单词,单词之间用空格隔开。 答:程序参见文件Cprogram\ #include "" #include "" main() {char s[81]; int w,i,n;