c语言课后答案 2.docx

上传人:b****1 文档编号:14749935 上传时间:2023-06-27 格式:DOCX 页数:16 大小:17.86KB
下载 相关 举报
c语言课后答案 2.docx_第1页
第1页 / 共16页
c语言课后答案 2.docx_第2页
第2页 / 共16页
c语言课后答案 2.docx_第3页
第3页 / 共16页
c语言课后答案 2.docx_第4页
第4页 / 共16页
c语言课后答案 2.docx_第5页
第5页 / 共16页
c语言课后答案 2.docx_第6页
第6页 / 共16页
c语言课后答案 2.docx_第7页
第7页 / 共16页
c语言课后答案 2.docx_第8页
第8页 / 共16页
c语言课后答案 2.docx_第9页
第9页 / 共16页
c语言课后答案 2.docx_第10页
第10页 / 共16页
c语言课后答案 2.docx_第11页
第11页 / 共16页
c语言课后答案 2.docx_第12页
第12页 / 共16页
c语言课后答案 2.docx_第13页
第13页 / 共16页
c语言课后答案 2.docx_第14页
第14页 / 共16页
c语言课后答案 2.docx_第15页
第15页 / 共16页
c语言课后答案 2.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言课后答案 2.docx

《c语言课后答案 2.docx》由会员分享,可在线阅读,更多相关《c语言课后答案 2.docx(16页珍藏版)》请在冰点文库上搜索。

c语言课后答案 2.docx

c语言课后答案2

第7章数组习题解答

一、在以下每一题的四个选项中,请选择一个正确的答案。

【题7.1】C

【题7.2】D

【题7.3】D

【题7.4】D

【题7.5】C

【题7.6】C

【题7.7】C

【题7.8】C

【题7.9】B

【题7.10】B

二、判断下列各叙述的正确性,若正确在( )内标记√,若错误在( )内标记×。

【题7.11】√

【题7.12】√

【题7.13】×

【题7.14】×

【题7.15】√

【题7.16】×

【题7.17】×

【题7.18】×

【题7.19】√

【题7.20】×

三、填空。

请在下面各叙述的空白处填入合适的内容。

【题7.21】字符数组

【题7.22】0

【题7.23】4

【题7.24】按行的顺序存放 

【题7.25】48

【题7.26】strcat()

【题7.27】6

【题7.28】10

【题7.29】strcmp()

【题7.30】#include

四、阅读下面的程序,写出程序运行结果。

【题7.31】abcdefg

abcdef

abcde

abcd

abc

ab

a

【题7.32】11

121

1231

12341

【题7.33】a[2]*b[1]=2

a[4]*b[4]=16

a[6]*b[7]=42

【题7.34】10123456789

五、程序填空。

请在下面程序空白处填入合适的语句。

【题7.35】a[j++]=a[i]

【题7.36】array[i]>array[j]

六、编程。

对下面的问题编写程序并上机验证。

【题7.37】编写程序,用冒泡法对20个整数排序(按升序排序)。

/*lx7_1.c*/

#include"stdio.h"

#defineN20

voidmain()

{intdata[N];

inti,j,t;

printf("请输入%d个整数:

\n",N);

for(i=0;i

scanf("%d",&data[i]);

printf("\n");

for(i=0;i

for(j=0;j

if(data[i]>data[j])

{t=data[i];data[i]=data[j];data[j]=t;}

printf("排序后的输出为:

\n");

for(i=0;i

printf("%d",data[i]);

}

【题7.38】编写程序,将一个数插入到有序的数列中去,插入后的数列仍然有序。

/*lx7_2.c*/

#include"stdio.h"

#defineN5

voidmain()

{inta[N+1];

inti,j,t,num;

printf("请输入%d个整数:

\n",N);

for(i=0;i

scanf("%d",&a[i]);

printf("\n");

for(i=0;i

for(j=i+1;j

if(a[i]>a[j])

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

printf("第一次输出:

\n");

for(i=0;i

printf("%d",a[i]);

printf("\n");

printf("请输入一个数:

");

scanf("%d",&num);

if(num>=a[N-1])

a[N]=num;

elseif(num

{for(i=N-1;i>=0;i--)

a[i+1]=a[i];

a[0]=num;

}

else

for(i=N-1;i>=0;i--)

if(a[i]>num)

a[i+1]=a[i];

else

{a[i+1]=num;

break;

}

printf("第二次输出:

\n");

for(i=0;i

printf("%d",a[i]);

printf("\n");

}

【题7.39】编写程序,在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出nofound。

/*lx7_3.c*/

#include"stdio.h"

#defineN10

voidmain()

{inta[N];

intnum,i;

charch='n';

printf("请输入一个数组:

\n");

for(i=0;i

scanf("%d",&a[i]);

printf("输出数组:

\n");

for(i=0;i

printf("%d",a[i]);

printf("\n");

printf("请输入一个数\n");

scanf("%d",&num);

printf("开始查找\n");

for(i=0;i

if(num==a[i])

{ch='y';

printf("%d在数组的第%d位\n",num,i+1);

}

if(ch=='n')

printf("nofound\n");

}

【题7.40】若有说明:

inta[2][3]={{1,2,3},{4,5,6}};,现要将a的行和列的元素互换后存到另一个二维数组b中,试编程。

/*lx7_4.c*/

#include"stdio.h"

voidmain()

{inta[2][3]={{1,2,3},{4,5,6}},b[3][2];

inti,j;

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

{for(j=0;j<3;j++)

printf("%d\t",a[i][j]);

printf("\n");

}

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

for(j=0;j<3;j++)

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

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

{for(j=0;j<2;j++)

printf("%d\t",b[i][j]);

printf("\n");

}

}

【题7.41】定义一个含有30个整数的数组,按顺序分别赋予从2开始的偶数,然后按顺序每五个数求出一个平均值,放在另一个数组中并输出,试编程。

/*lx7_5.c*/

#include"stdio.h"

#defineN30

#defineM5

voidmain()

{inta[N],sum[N/M];

floats;

inti,j,k=0;

for(i=0;i

{a[i]=2*(i+1);

printf("%d\t",a[i]);

}

printf("\n");

for(i=0;i

{s=0;

for(j=i;j

s=s+a[j];

sum[k++]=s/M;

}

for(i=0;i

printf("%d\t",sum[i]);

}

【题7.42】编写程序,在5行7列的二维数组中查找第一次出现的负数。

/*lx7_6.c*/

#include"stdio.h"

voidmain()

{inti,j,a[5][7];

printf("请输入一个二维数组\n");

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

for(j=0;j<7;j++)

scanf("%d",&a[i][j]);

printf("\n");

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

for(j=0;j<7;j++)

if(a[i][j]<0)

{printf("第一次出现的负数被找到!

负数值是%d\n",a[i][j]);

gotoend1;

}

end1:

;

}

【题7.43】从键盘上输入60个字符,求相邻字母对(如ab)出现的频率。

/*lx7_7.c*/

#include"stdio.h"

#include"string.h"

#defineN60

voidmain()

{inti,len;

charch[N];

floatp,m=0;

printf("请输入一个字符串:

\n");

scanf("%s",ch);

len=strlen(ch);

for(i=0;ch[i]!

='\0'&&i

if(ch[i]==ch[i+1]+1||ch[i]+1==ch[i+1])

m++;

p=m/len;

printf("相邻字母对出现的频率是%f\n",p);

}

【题7.44】编写程序,定义数组inta[4][6],b[4][6],c[4][6],并完成如下操作:

(1)从键盘上输入数据给数组a、b。

(2)将数组a与数组b各对应元素作比较,如果相等,则数组c的对应元素为0,若前者大于后者,则数组c的对应元素为1;若前者小于后者,则数组c的对应元素为−1。

(3)输出数组c各元素的值。

/*lx7_8.c*/

#include"stdio.h"

voidmain()

{inti,j;

inta[4][6],b[4][6],c[4][6];

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

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

scanf("%d",&a[i][j]);

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

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

scanf("%d",&b[i][j]);

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

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

if(a[i][j]==b[i][j])

c[i][j]=0;

elseif(a[i][j]>b[i][j])

c[i][j]=1;

else

c[i][j]=-1;

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

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

printf("%d\t",c[i][j]);

printf("\n");

}

}

【题7.45】编写程序,从键盘上输入两个字符串a和b,要求不用strcat()函数把串b的前五个字符连接到串a中,如果b的长度小于5,则把b的所有元素都连接到a中。

/*lx7_9.c*/

#include"stdio.h"

#include"string.h"

#defineN80

voidmain()

{chara[N],b[N];

inti,j,lena,lenb;

printf("Pleaseinputfirststring:

");

scanf("%s",a);

printf("Pleaseinputsecondstring:

");

scanf("%s",b);

lena=strlen(a);

lenb=strlen(b);

if(lenb<=5)

{for(i=lena,j=0;i

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

a[i]='\0';

}

else

{for(i=lena,j=0;j<5;j++)

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

a[i]='\0';

}

printf("Outputfirststring:

");

printf("%s\n",a);

}

【题7.46】编写函数,从一个排好序的整型数组中删去某数。

/*lx7_10.c*/

#defineN10

#include"stdio.h"

intdele(intstr[],inty)

{inti,j,p=0;

for(i=0;i

if(str[i]==y)

{j=i;p=1;break;}

if(p==1)

for(;j<=N-1;j++)

str[j]=str[j+1];

returnp;

}

voidmain()

{inti,j,t,a[N],x;

printf("Inputanarray:

\n");

for(i=0;i

scanf("%d",&a[i]);

for(i=0;i

for(j=i;j

if(a[i]>a[j])

{t=a[i],a[i]=a[j],a[j]=t;}

printf("Inputadata:

");

scanf("%d",&x);

if(dele(a,x))

for(i=0;i

printf("%d",a[i]);

else

printf("nodelete\n");

}

【题7.47】编写函数,它将无符号整数转换成二进制字符表示。

/*lx7_11.c*/

#include"stdio.h"

voiddtob(unsignedm)

{charstr[17];

inti,n;

n=m;

for(i=15;i>=0;i--)

{if(m%2==1)

str[i]='1';

else

str[i]='0';

m=m/2;

}

str[16]='\0';

printf("n=%d\t%s\n",n,str);

}

voidmain()

{unsignednum;

printf("Pleaseinputainteger:

");

scanf("%d",&num);

dtob(num);

}

【题7.48】编写函数lower()模拟标准函数strlwr(),调用形式为lower(char*st),其作用是将字符串st中的大写字母转换成小写。

/*lx7_12.c*/

#include"stdio.h"

#defineN20

voidlower(char*st)

{inti=0;

while(st[i]!

='\0')

{if(st[i]>'A'&&st[i]<='Z')

st[i]+=32;

i++;

}

}

voidmain()

{chars[N];

printf("Inputastring:

\n");

scanf("%s",s);

lower(s);

printf("Output:

%s\n",s);

}

【题7.49】编写函数replicate()模拟标准函数strset(),调用形式为replicate(char*st,charch),其作用是将字符串st中的所有字符设置成ch。

/*lx7_13.c*/

#include"stdio.h"

#defineN20

voidreplicate(char*st,charch)

{inti=0;

while(st[i]!

='\0')

st[i++]=ch;

}

voidmain()

{chars[N],ch;

printf("Inputastring:

");

scanf("%s",s);

ch='a';

replicate(s,ch);

printf("\nOutput:

%s\n",s);

}

【题7.50】编写函数reverse()模拟标准函数strrev(),调用形式为reverse(char*st),其作用是颠倒字符串st的顺序,即按与原来相反的顺序排列。

/*lx7_14.c*/

#include"stdio.h"

#include"string.h"

voidreverse(char*st)

{inti=0,n;

chart;

n=strlen(st);

for(;i

{t=st[i];

st[i]=st[n-i-1];

st[n-i-1]=t;

}

}

voidmain()

{chars[80];

printf("Inputastring\n");

scanf("%s",s);

reverse(s);

printf("Output:

%s\n",s);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2