C语言程序设计第二版第四章第七章课后答案.docx
- 文档编号:18056686
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:23
- 大小:19.43KB
C语言程序设计第二版第四章第七章课后答案.docx
《C语言程序设计第二版第四章第七章课后答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计第二版第四章第七章课后答案.docx(23页珍藏版)》请在冰点文库上搜索。
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");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 第二 第四 第七 课后 答案