C语言程序设计习题参考答案!(第二版 杜友福)(3)

2019-03-28 11:32

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\\xt6_3_01.c

#include \#include \main()

{int i,s0=0,s1=0,a[20]; for(i=0;i<20;i++) a[i]=rand()0; for(i=0;i<20;i+=2) {printf(\ s0=s0+a[i]; }

printf(\ sum is:%d ave=%f\\n\ for(i=1;i<20;i+=2) {printf(\ s1=s1+a[i]; }

printf(\ sum is:%d ave=%f\\n\ }

2. 设有一个整型数组,另输入一个整数,编程查找这个整数是否在数组中出现过,若出现,则输出第一次出现的位置,否则,输出no found。 答:程序参见文件Cprogram\\xt6_3_02.c

#include \#include \main()

11

{int i,s,a[20];

for(i=0;i<20;i++) a[i]=rand()0; scanf(\ for(i=0;i<20;i++) if(a[i]==s)

{printf(\ break; }

if(i==20)

printf(\ for(i=0;i<20;i++) printf(\ printf(\}

3. 设有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入到数组中。 答:程序参见文件Cprogram\\xt6_3_03.c

#include \#define N 10 main() {int i,j,s;

//int a[N]={1,3,5,7,9,11,13,15,17}; int a[N]={17,15,13,11,9,7,5,3,1}; scanf(\ i=0;

if (a[0]

while(s>a[i]) i++; else

while(si;j--) a[j]=a[j-1]; a[j]=s;

for(i=0;i

printf(\ printf(\}

4. 编一程序,从一个已排好序的数组中删去某个位置上的元素。 答:程序参见文件Cprogram\\xt6_3_04.c

#include \#define N 10 main() {int i,j;

int a[N]={1,3,5,7,9,11,13,15,17,19}; for(i=0;i

printf(\ printf(\ scanf(\ for(j=i;j

12

for(i=0;i

printf(\ printf(\}

5. 将一个二维数组的行、列互换后存到另一个二维数组中并输出结果。 答:程序参见文件Cprogram\\xt6_3_05.c

#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(\ for(i=0;i<3;i++) {for(j=0;j<4;j++)

printf(\ printf(\ }

printf(\ for(i=0;i<4;i++) {for(j=0;j<3;j++)

printf(\ printf(\ } }

6. 编一程序,在一个二维数组中,查找第一次出现的负数,并输出该数及其所在的行、列号。 答:程序参见文件Cprogram\\xt6_3_06.c

#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(\ i=j=100;//可使双重循环提前结束 } if(flag==0)

printf(\ printf(\ for(i=0;i<3;i++) {for(j=0;j<4;j++)

printf(\ printf(\ } }

7. 编程将一个字符数组中的字母,按由大到小的顺序进行排序。

13

答:程序参见文件Cprogram\\xt6_3_07.c

#include \#include \main()

{char t,s[]=\ int i,j,n; puts(s); n=strlen(s);

for(i=0;i

{t=s[i];s[i]=s[j];s[j]=t;} puts(s); }

8. 输入一行字符,统计其中有多少个英语单词,单词之间用空格隔开。 答:程序参见文件Cprogram\\xt6_3_08.c

#include \#include \main()

{char s[81]; int w,i,n; gets(s);

i=0;n=0;w=0; while(s[i]!='\\0') {if(s[i]==' ')

w=0; /*end of a word*/ else

if(w==0) {w=1;n++;} /*begin of a word*/ i++; }

printf(\}

9. 编程将两个一维数组中的对应元素的值相减后进行输出。 答:程序参见文件Cprogram\\xt6_3_09.c

#include \#include \main()

{int i,a[10],b[10]; for(i=0;i<10;i++)

{a[i]=rand()0; printf(\ printf(\

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

{b[i]=rand()0; printf(\ printf(\

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

printf(\ printf(\}

10. 有n个无序的数放在数组a中,请将相同的那些数删得只剩得一个,输出经过删除后的数据。

14

答:程序参见文件Cprogram\\xt6_3_10.c

#include \main()

{int i,j,k,a[10]={90,20,40,30,50,50,50,50,20,80}; for(i=0;i<10;i++)

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

for(j=i+1;j<10;j++) if(a[j]==a[i]) {a[j]=-888;} k=0;

for(i=0;i<10;i++) if(a[i]!=-888)

{ printf(\ a[k++]=a[i]; } //不相同的有效元素只有K个了 printf(\ }

11. 求二维数组中这样一个元素的位置:它在行上最小,在列上也最小。如果没有这样的元素则输出相应的信息。

答:程序参见文件Cprogram\\xt6_3_11.c

#include \#include \main()

{int j,i,k,flag,fz=0,a[4][5]; for(i=0;i<4;i++)

{for(j=0;j<5;j++) {a[i][j]=rand()0; printf(\ }

printf(\ }

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

{for(j=0;j<5;j++) {flag=1;

for(k=0;k<5;k++) if(a[i][k]

if(fz==0)

printf(\}

12. 在一个二维数组中形成并输出如下矩阵:

1 1 1 1 1

15


C语言程序设计习题参考答案!(第二版 杜友福)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2012年度全国建筑业企业优秀项目经理

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: