C语言程序设计第二版第四章第七章课后答案.docx

上传人:b****2 文档编号:18056686 上传时间:2023-08-07 格式:DOCX 页数:23 大小:19.43KB
下载 相关 举报
C语言程序设计第二版第四章第七章课后答案.docx_第1页
第1页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第2页
第2页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第3页
第3页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第4页
第4页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第5页
第5页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第6页
第6页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第7页
第7页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第8页
第8页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第9页
第9页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第10页
第10页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第11页
第11页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第12页
第12页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第13页
第13页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第14页
第14页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第15页
第15页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第16页
第16页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第17页
第17页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第18页
第18页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第19页
第19页 / 共23页
C语言程序设计第二版第四章第七章课后答案.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计第二版第四章第七章课后答案.docx

《C语言程序设计第二版第四章第七章课后答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计第二版第四章第七章课后答案.docx(23页珍藏版)》请在冰点文库上搜索。

C语言程序设计第二版第四章第七章课后答案.docx

C语言程序设计第二版第四章第七章课后答案

1、输入函数scanf的参数错误,应该为:

scanf("%f",&k);

2、|12341234|

3、ff10

4、1,3,1

5、原字符串左边加空格再加字符串本省,字符个数总和为5个

6、scanf("%d,%d,%c,%c",&a1,&a2,&c1,&c2);

7、

printf("a+b=%d\n",a+b);

printf("a-b=%d\n",a-b);

printf("a*b=%d\n",a*b);

printf("a/b=%d\n",a/b);

printf("(float)a/b=%f\n",(float)a/b);

printf("a%b=%d\n",a%b);

8、

voidmain()

{floatr;floats,c;

printf("pleaseinputthenumber:

");

scanf("%f",&r);

if(r>=0)

{s=3.14*r*r;

c=2*3.14*r;

printf("s=%f,c=%f\n",s,c);

}

else

printf("youinputnumberiserror!

");

}

9

voidmain()

{intn;

printf("pleaseinputthenumber:

");

scanf("%d",&n);

if(n>=100&&n<=999)

printf("%d%d%d",n%10,(n/10)%10,n/100);

else

printf("youinputnumberiserror!

");

}

10、

voidmain()

{inti,j,k;

scanf("%d,%d,%d",&i,&j,&k);

((i%2!

=0?

1:

0)+(j%2!

=0?

1:

0)+(k%2!

=0?

1:

0))==2?

printf("YES\n"):

printf("NO\n");

}

11、

voidmain()

{chara;

scanf("%c",&a);

printf("%c,%c,%c",a-1,a,a+1);

printf("%d,%d,%d",a-1,a,a+1);

}

12、voidmain()

{floata,b,c,s,Area;

scanf("%f,%f,%f",&a,&b,&c);

if(a+b>c||a+c>b||b+c>a)

{s=(a+b+c)/2;

Area=sqrt(s*(s-a)*(s-b)*(s-c));

printf("%f\n",Area);

}

else

printf("youinputthenumberiserror!

\n");

}

习题4

1:

0

2:

20

3:

(x<30&&x>20)||(x<-100)

4:

***a=25,b=14,c=16***

5:

37

6:

if(a<=b)printf("1");

elseprintf("2");

7、

#include

voidmain()

{chara,b,t1,t2;

scanf("%c,%c",&a,&b);

t1=a>b?

a:

b;

t2=a

a:

b;

if((t1-t2)%2==0)printf("%c,%c",a+1,b+1);

else

printf("%c,%c",a-1,b-1);

getch();

}

8、#include

voidmain()

{inttemp1=0,temp2=0,x,y,i=1;

printf("Pleaseinput(x,y):

");

scanf("%d,%d",&x,&y);

while((i*y)<=x)

{if(x==(i*y)){temp1=1;break;}

temp2=i;i++;}

if(temp1)

printf("%d/%d=%d",x,y,i);

else

printf("%d/%d--->shang=%d,yushu=%d",x,y,temp2,x-y*temp2);

getch();

}

9、#include

voidmain()

{floatx,y,m=0,n=0;

scanf("%f,%f",&x,&y);

n=(x-2)*(x-2);

m=(y-2)*(y-2);

if((m+n)<=1)

printf("(%.3f,%.3f)Intheyuan",x,y);

else

printf("(%.3f,%.3f)outoftheyuan",x,y);

getch();

}

10、#include

voidmain()

{

inttemp=0,month,year;

printf("Pleaseinput(year,month):

");

scanf("%d,%d",&year,&month);

if((year%400==0)||(year%4==0&&year%100!

=0))

temp=1;

if(month==2)

{if(temp)printf("%dyear%dmonthhave29",year,month);

elseprintf("%dyear%dmonthhave28",year,month);

}

elseif(month%2==0)

printf("%dyear%dmonthhave30",year,month);

elseprintf("%dyear%dmonthhave31",year,month);

getch();

}

11、switch(a/10)

{case5:

m=4;break;

case4:

m=3;break;

case3:

m=2;break;

case2:

m=1;break;

default:

m=5;

}

12、方法一:

#include

voidmain()

{intx,y;

scanf("%d",&x);

if(x<0&&x>-5)

y=x-1;

elseif(x==0)

y=x;

elseif(x>0&&x<8)

y=x+1;

printf("%d",y);

getch();

}

方法二:

#include

voidmain()

{intx,y;

scanf("%d",&x);

if(x<8&&x>-5)

if(x==0)y=x;

{

floatx,y,t;

printf("Entertwonumber(x,y):

");

scanf("%f,%f",&x,&y);

SWAP(x,y);

printf("\n\nExchanged:

x=%f,y=%f",x,y);

getch();

}

5、

#include

intfib(intn)

{intp;

if(n==0)p=0;

elseif(n==1)p=1;

elsep=fib(n-1)+fib(n-2);

returnp;

}

voidmain()

{intn;

printf("Pleaseinputfib:

");

scanf("%d",&n);

printf("\n\nfibonacci=%d",fib(n));

}

6、

#include

longfac(intn)

{longf;

if(n==0)

f=1;

else

f=n*fac(n-1);

returnf;

}

voidmain()

{intm,n;longf;

printf("Pleaseinput(m,n):

");

scanf("%ld,%ld",&m,&n);

f=fac(n+m)+fac(n);

printf("\n\nfibonacci=%ld",f);

}

7、

#include

voidlist()

{inti,j;

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

{for(j=1;j<=i;j++)

printf("%d*%d=%d",i,j,i*j);

printf("\n");

}

}

voidmain()

{list();}

8、

#include

inthe(intn)

{inti,s=0;

for(i=1;i

if(n%i==0)s+=i;

returns;

}

voidmain()

{

inti,j;

for(i=1;i<30000;i++)

{for(j=1;j<30000;j++)

if((he(i)==j)&&(he(j)==i)&&(i!

=j))

printf("%d<--->%d",i,j);

}

}

9、

#include

#definemax100

structwork

{

longsid;

charname[15];

}worker[max];

intsize=0;

structwork*set_list()

{

do

{

printf("\n\nPleaseinput(sid,name):

");

scanf("%ld,%s",&worker[size].sid,worker[size].name);

size++;

}while(worker[size-1].sid!

=0);

returnworker;

}

voidpaixu(structworka[])

{

inti,j,k;longt;charv[15];

for(i=0;i

{k=i;

for(j=i;j

if(a[i].sid>a[j].sid)k=j;

if(k!

=i)

{t=a[i].sid;a[i].sid=a[j].sid;a[j].sid=t;

strcpy(v,a[i].name);strcpy(a[i].name,a[j].name);strcpy(a[j].name,v);

}

}

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

printf("sid:

%ld\tname:

%s\n\n",a[i].sid,a[i].name);

getch();

}

voidselect(structworka[])

{inti=0,found=1;longnum;

printf("Inputselectsid:

");

scanf("%ld",&num);

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

{

if(a[i].sid==num)

{found=0;

printf("%ld:

%s",num,a[i].name);

break;

}

}

if(found)printf("\n\nNOthissid!

!

!

");

getch();

}

voidmain()

{structwork*p;

p=set_list();

paixu(p);

select(p);

}

10、

#include

floatjiecheng(intn)

{

longs=1;inti;

for(i=1;i<=n;i++)

s=s*i;

returns;

}

floatchengfang(floatx,intn)

{

floats=1;inti;

for(i=1;i<=n;i++)

s=s*x;

returns;

}

floatf(floatx,intn)

{

floats=1,t=0;inti=1,j=-1;

for(i=1;i<=n;i++)

{

t=j*chengfang(x,2*i)/jiecheng(2*i);

s+=t;

j=j*j;

}

returns;

}

main()

{

floats1=0,s2=0,s3=0,s4=0,x=5.6;intn=7;

s1=f(x,n);

s2=f(x+2.3,n);

s3=f(x-3.2,n+3);

s4=s1/(s2+s3);

printf("%f",s4);

getch();

}

习题7

1:

(1)D

(2)A(3)D(4)B(5)D

2:

(1)1544678234

(2)6333

3:

(1)a[8]=data;k>=0a[k]=tempbreakk<=8

(2)"%s"str[i]<='Z'c[str[i]+26-'a']++i+'a'

4、/*题目:

求一组成绩的平均分数以及高于平均分的成绩。

*/

#include

#definemax100

voidmain()

{floata[max],s=0,average=0;

inti,n;

printf("PleaseinputN:

");/*输入要处理元素的个数*/

scanf("%d",&n);

printf("\nPleaseinput%dgeshu:

",n);/*输入90,85,92,77,80,62*/

for(i=0;i

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

s+=a[i];

}

average=s/n;

printf("\naverage=%.2f\n",average);/*输出81.00*/

for(i=0;i

if(a[i]>average)

printf("%.2f",a[i]);/*输出90.00,85.00,92.00*/

}

5、/*题目:

编写程序,输入一组整数,将他们排序后由小到大输出。

*/

#include

#definemax100

voidmain()

{

inta[max],j,i,k=0,t=0,n=0;

printf("PleaseinputN:

");/*输入要处理元素的个数*/

scanf("%d",&n);

for(i=0;i

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

for(i=0;i

{

k=i;

for(j=i+1;j

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

k=j;

if(k!

=i)/*元素排序前下标与排序后下标不符,则交换其值*/

{t=a[i];

a[i]=a[k];

a[k]=t;

}

}

printf("\n\n");

for(i=0;i

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

}

6、/*题目:

从键盘输入一个4x4的整数矩阵,以主对角线(\)为对称轴*/

/*将左下角元素中较大者替换右上角元素,并将右上角含对称轴输出。

*/

#include

#include

voidmain()

{

intd[4][4]={{0,0,0,0}},i,j;

clrscr();

printf("\nPleaseinput16num:

");

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

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

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

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

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

if(d[i][j]>d[j][i])/*左下角元素大于右上角元素则交换*/

d[j][i]=d[i][j];

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

{

printf("\n\n\n\n\n");/*为了保持每行的间隔与每列的相同*/

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

if(j>=i)

printf("\t%d",d[i][j]);/*为了使位数不同的数输出依然保持三角型*/

else

printf("\t");

}

}

7、*题目:

输入一个3x4的二维数组,然后分别按行和按列输出。

*/

#include

#include

voidmain()

{

intd[3][4]={{0,0,0,0}},i,j;

printf("Pleaseinput12num:

");

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

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

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

printf("\n\nAnhang:

");

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

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

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

printf("\n\nAnlie:

");

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

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

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

}

8、/*题目:

编写程序,将两个字符串连接起来,不用strcat函数。

*/

#include

#include

voidmain()

{

chars1[50],s2[50];

inti=0,j=0,t=0;

printf("Inputone:

");

gets(s1);

while(s1[i]!

='\0')i++;/*统计s1中字符个数*/

printf("\n\nInputsecond:

");

gets(s2);

while(s2[j]!

='\0')j++;/*统计s2中字符个数*/

for(t=0;t<=j;t++)/*把s2中字符连接到s1后面*/

{s1[i]=s2[t];i++;}

printf("\n\none+second:

");

puts(s1);

}

9、/*输入一行字符串,统计字符对ab的个数。

*/

#include

#include

#defineMAX100

voidmain()

{

charstr[MAX];

inti=0,flage=0;

intcount=0;

printf("\nPleaseinputastring:

");

gets(str);

while(str[i])

{

if(str[i]=='a')

flage=1;

elseif(str[i]=='b')

{

if(flage==1)

{count++;flage=0;}

}

elseflage=0;

i++;

}

printf("thedoublechar\"ab\"countis%d\n",count);

}

10、#include/*相对于第一种方法,这种方法能把同为最大的字符串全部打印出来。

*/

#include

intpaixu(inta[],intn)/*构造对长度为n的数组排序的函数*/

{inti,j,t,k,temp;

for(i=0;i

{

k=i;

for(j=i+1;j

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

k=j;

if(k!

=i)

{t=a[i];

a[i]=a[k];

a[k]=t;

}

}

temp=a[n-1];

returntemp;/*返回最大字符串的长度的值*/

}

voidmain()

{

charstr1[50],str2[50],str3[50],str4[50],str5[50],str6[50];

charstr7[50],str8[50],str9[50],str10[50];

intcount[10]={0},temp[10]={0},i,j;

intpaixu(inta[],intn);

for(i=1;i<=10;i++)/*输入10个字符串*/

{

printf("\nPleaseinput%dstring:

",i);

if(i==1)

{gets(str1);while(str1[count[0]]){count[0]++;temp[0]++;}}

if(i==2)

{gets(str2);while(str2[count[1]]){count[1]++;temp[1]++;}}

if(i==3)

{gets(str3);while(str3[count[2]]){count[2]++;temp[2]++;}}

if(i==4)

{gets(str4);while(str4[count[3]]){count[3]++;temp[3]++;}}

if(i==5)

{gets(str5);while(str5[count[4]]){count[4]++;temp[4]++;}}

if(i==6)

{gets(str6);while(str6[count[5]]){count[5]++;temp[5]++;}}

if(i==7)

{gets(str7);while(str7[count[6]]){count[6]++;temp[6]++;}}

if(i==8)

{gets(str8);while(str8[count[7]]){count[7]++;temp[7]++;}}

if(i==9)

{gets(str9);while(str9[count[8]]){count[8]++;temp[8]++;}}

if(i==10)

{gets(str10);while(str10[count[9]]){count[9]++;temp[9]++;}}

}

j=paixu(temp,10);

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

{

if(count[i-1]==j)

{

/*只要字符串长度与最大长度相等就打印出来*/

switch(i)

{case1:

puts(str1);

printf("\n");break;

case2:

puts(str2);

printf("\n");break;

case3:

puts(str3);

printf("\n");break;

case4:

puts(str4);

printf("\n");

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

当前位置:首页 > 人文社科 > 文化宗教

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

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