求c语言程序设计第三版和c语言程序设计实验与习题指导答案 |
您所在的位置:网站首页 › c语言输出整数的个位数字 › 求c语言程序设计第三版和c语言程序设计实验与习题指导答案 |
c语言程序设计第三版指导答案
附录F 课后题参考答案 习 题 1 1.1 填空题 1.函数 2.主函数main();主函数main() 3.主函数main() 4.函数首部;函数体 5.{;} 6.顺序结构;选择结构;循环结构 7..c;.obj;.exe 1.2 思考题 1.答:结构化程序设计是指,为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。顺序结构,选择结构,循环结构 2.答:算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:①用自然语言表示算法;②用流程图表示算法;③用伪代码表示算法;④用程序设计语言表示算法。 3.略 4.略 5.略 1.3 编程题 1.答: #include "stdio.h" main() { float a=10, b=20, h=5, s s=(a+b)*h/2 printf("s=%f " , s ) } 2.答: #include "stdio.h" main() { printf("******************************") printf("* hello world *") printf("******************************") } 习 题 2 2.1 单选题 DBDCA DCABB CA 2.2 填空题 1.2.000000
2.1;0.500000 3.9;2 4.6 5.100;d 6.(1)20 (2)0
(3)60 7.(1)10;6;4 (2)6;9;15 (3)3;60;83 8.55或 '7' 9.x=4;y=6;z=3;m=463 2.3 改错题(略) 习 题 3 3.1 单选题 BDABC ADCAC BBA 3.2 填空题 1.3 2.261 3.10 4.2, 1;互换a,b的值 5.6.6 6.003 7.7 8.5.0,4,c=3Enter 9.i=10,j=20Enter 10. (1)65 (2)65,A (3)3.14,123.46 (4)3.141600e+000,1.234560e+002 (5)8765.432100 (6)8.765432e+003 11.a=2b=5x=8.8y=76.34c1=65c2=97 12.%d/%d;%d/%d=%.2f\n 3.3 改错题(略) 3.4 编程题 1.答: #include "stdio.h" main() { int x,y scanf("%d%d",x,y) printf("\t\tx\ty\n") printf("十进制数\t%d\t%d\n",x,y) printf("八进制数\t%o\t%o\n",x,y) printf("十六进制数\t%X\t%x\n",x,y) } 2.答: #include "stdio.h" main() { char ch printf("请输入一个大写英文字母") scanf("%c",ch) printf("大写英文字母是%c\n",ch) printf("它的前导字符是%c\n",ch-1) printf("它的后续字符是%c\n",ch+1) } 3.答: #include "stdio.h" main() { int x,a,b,c,y printf("请输入一个三位整数\n") scanf("%d",x) a=x/100 b=(x-a*100)/10 c=x%10 y=c*100+b*10+a printf("反向输出该整数:%d\n",y) } } 4.答: #include "stdio.h" main() { int hour double salary, salaryday scanf("%d,%lf", hour, salaryday ) salary=hour*salaryday- hour*salaryday*0.1 printf("%8.2lf\n", salary) } 5.答: #include "stdio.h" main() { int a,b,c,t printf("请输入三个整数\n") scanf("%d%d%d",a,b,c) printf("交换前a=%d,b=%d,c=%d\n",a,b,c) t=aa=cc=bb=t printf("交换后a=%d,b=%d,c=%d\n",a,b,c) } 习 题 4 4.1 单选题 BADDD ACBBB BA 4.2 填空题 1.1 2.(1)a0 || b0
(2)x0 x=10 (3)a==1.5 b==1.5 c==1.5 (4)pa || pb || pc 3.(1)0 (2)1 (3)1 (4)0 (5)1 4.c=1 5.-4 6.1 7.5, 0, 3 8.5 9.123 10.( cvb= ='y'||cvb= ='Y')(work=3||college=='y'|| college=='Y')age=35 4.3 改错题(略) 4.4 编程题 1.答 #include "stdio.h" #include "math.h" main() { double a,b,c,p,area scanf("%lf%lf%lf",a,b,c) printf("三角形的三边为:%.llf,%.1lf,%.1lf\n",a,b,c) if (a+bca+cbb+ca) {p=(a+b+c)/2 area=sqrt(p*(p-a)*(p-b)*(p-c)) printf("三角形的面积为%.2lf\n",area) } else printf("不能构成三角形\n") } 2.答: #include "stdio.h" main() { int x,y scanf("%d,%d",x,y) if(x*x+y*y1000) printf("%d\n",(x*x+y*y)/100) else printf("%d\n",x+y) } 3.答: #include "stdio.h" #include "math.h" main() { double x,y scanf("%lf",x) if(x-2) y=x*x-sin(x) else if (x=2) y=pow(2,x)+x else y=sqrt(x*x+x+1) printf("x=%.2lf y=%.2lf\n",x,y) } 4.答: #include "stdio.h" main( ) { long ge,shi,qian,wan,x scanf("%ld",x) wan=x/10000 qian=x%10000/1000 shi=x%100/10 ge=x%10 if (ge==wanshi==qian) /*个位等于万位并且十位等于千位*/ printf("this number is a huiwen\n") else printf("this number is not a huiwen\n") } 5.答: #include "stdio.h" main() { float p,w,s,d,f scanf("%f,%,%f",p,s,w) if (s3000) d=0.15 else if( s=2000) d=0.1 else if(s=1000) d=0.08 else if(s=500) d=0.05 else if(s=250) d=0.02 else d=0 f=p*w*s*(1-d) printf("%f",f) } 6.答: #include "stdio.h" main() { int year,money char x printf("是否是本公司产品(y/n):") scanf("%c",x) if(x=='y'||x=='Y') {printf("产品使用的年限:") scanf("%d",year) if(year=1) money=0 else if(year8) money=50 else money=100
printf("产品保修额是:%d\n",money) } else { money=200 printf("不是本公司产品,产品保修额是:%d\n",money) } } 7.答: #include "stdio.h" main() { int money,num1,num2 printf("请输入取款额(≤2000):") scanf("%d",money) if(money2000) printf("请输入取款额数≤2000!\n") else if(money%50==0) { num1=money/100 num2=(money-num1*100)/50 printf("需支付100元:%d张\n",num1) printf("需支付50元:%d张\n",num2) } else printf("输入钱数必须是50的倍数!\n") } 习 题 5 5.1 单选题 CDABA ABDDB DBCB 5.2 填空题 1.2 0 2.333 3.(1)i10 或 i=9 (2)j%3!=0 4.(1)flag*(float)k/(k+1) 或1.0*flag*k/(k+1) (2)flag=-flag 5.(1)max=x
(2)x!=-1 (3)scanf("%d", x) 6.(1)x=9或x10 (2)y=9-x 5.3 改错题(略) 5.4 编程题 1.答: (1)for循环,其他略 #include "stdio.h" main() { int i,s=0 for(i=1i=100i++) s+=i*i printf("%d\n",s) } (2)for循环,其他略 #include "stdio.h" main() { int i=1,p=1 double s=1 do { s+=1.0/p p*=++i }while(1.0/p1e-6) printf("%lf",s) } 2.答: #include "stdio.h" main() { int m,n,t,a,b scanf("%d,%d" ,m,n) if (mn) { t=m m=n n=t } a=m b=n t=m%n while(t) { m=n n=t t=m%n} printf("%d",n) } 3.答: #include "stdio.h" main() { int x,y,s=1 scanf("%d,%d",x,y) for( y0 y--)s*=x printf("%d,%d,%d\n ",s%10,s/10%10,s/100%10) } 4.答: #include "stdio.h" main() { int x,y,z for( x=1 x20 x++) for( y=1 y33 y++) { z=100-x-y if ((z%3)==0 (5*x+3*y+z/3)==100) printf("x=%d,y=%d,z=%d\n",x,y,z) } } 5.答: (a) #include "stdio.h" main() { int j,k for( j=1 j=4 j++) { for(k=1k=4-jk++)printf(" ") printf("****") printf("\n") } } (b) #include "stdio.h" main() { int j,k for( j=1 j=4 j++) {for(k=1k=4-jk++)printf(" ") for(k=1 k=2*j-1 k++) printf("*") printf("\n") } } 6.答: 程序分析:利用for循环控制在100~999之间,对每个数分解出个位、十位、百位。 #include stdio.h main() { int i,j,k,n printf("water flower'number is:") for(n=100n1000n++) { i=n/100/*分解出百位*/ j=n/10%10/*分解出十位*/ k=n%10/*分解出个位*/ if(n==i*i*i+j*j*j+k*k*k) { printf("%-5d",n) } } printf("\n") } 7.答: #include stdio.h main() { int x for(x=1000x=3x--) if(x%3==1x%5==2x%7==3) { printf("该校的学生人数是:%d人\n",x) break } } 8.答: #include stdio.h main() { int x=12,i=1 while(1) { if((x+20+i)==2*(x+i)) break i++ } printf("小明母亲在%d年后比小明的年龄大一倍\n",i) printf("那时小明年龄是:%d岁,小明母亲年龄是:%d岁\n",x+i,x+20+i) } 习 题 6 6.1 单选题 DBCCB BDC C语言程序设计教程(第3版) 278 6.2 填空题 1.c 2.60 3.1000 10 4.16 6.3 编程题 1.答: #include "stdio.h" #include "math.h" #define F(a) a*a+ sqrt(3*a*a+2*a+1) main() { float x, f scanf("%f", x ) f=4.5/F(exp(x))+F(cos(x))+F(sqrt(x))/F(x*x) printf("%f\n", f) } 习 题 7 7.1 单选题 BCADA CCCDA BCBDB 7.2 填空题 1.(1)2 3 4 5 (2)10010 (3)QuickC
(4)10000 01000 00100 00010 00001 (5)Language (6)Language Programming 2.(1)j+=2 (2)a[i]a[j] 3.(1)i=1 (2)x[i-1] 7.3 改错题(略) 7.4 编程题 1.答: #define N 10 #include "stdio.h" main() { int a[N]={1,2,3,4,5,6,7,8,9,10,osum=0, qsum=0,j for(j=0j10j++) if( j%2) qsum+=a[j] else osum+=a[j] printf("osum=%d,qsum=%d\n", osum,qsum) } 2.答: #define N 10 #include "stdio.h" main() { int a[N]={10,20,30,40,50,60,70,80,90}, j, k, x scanf("%d",x) for(j=0jNj++) if (xa[j]) break if(j==N) a[N-1]=x else {for(k=N-1 kj k--) a[k]=a[k-1] a[j]=x} for(j=0jNj++) printf("%d ",a[j]) } 3.答: #define M 3 #include "stdio.h" main() { int a[M][M]={{1,2,3},{2,4,5},{3,5,6}},j,k,flag=1 for( j=0jMj++) for(k=0kMk++) if (a[j][k]!=a[k][j]) { flag=0 break} if (flag) printf("ok") else printf("NO") } 4.答: #include "stdio.h" #include "string.h" main() { char c1[10],c2[10],j gets(c1) gets(c2) for(j=0 (c1[j]==c2[j]) c1[j] c2[j] j++) if (c1[j]c2[j]) printf("%d\n",1) if (c1[j]c2[j]) printf("%d\n",-1) if (c1[j]==c2[j]) printf("%d\n",0) } 5.答: #include "stdio.h" #include "string.h" #define M 3 #define N 80 main() { char a[M][N],j,k,n[5]={0} for(j=0jMj++) gets(a[j]) for(j=0jMj++) for(k=0a[j][k]k++) if( a[j][k]='A' a[j][k]='Z') n[0]++ else if (a[j][k]='a' a[j][k]='z') n[1]++ else if (a[j][k]='0' a[j][k]='9') n[2]++ else if (a[j][k]==' ' ) n[3]++ else n[4]++ for(j=0j5j++) printf("%4d", n[j]) } 习 题 8 8.1 单选题 DBDAC BACCC 8.2 填空题 1.(1)2, 1 (2)10#30# (3)FOUR, P (4)60 2.(1)49 (2)2 (3)2
(4)
(5) 8.3 改错题(略) 8.4 编程题 1.答: #include "stdio.h" main() { int n1,n2,n3,t int *p1,*p2,*p3 printf("please input 3 number:n1,n2,n3:") scanf("%d,%d,%d",n1,n2,n3) p1=n1 p2=n2 p3=n3 if(*p1* p2) { t=*p1*p1=*p2*p2=t} if(*p1*p3) { t=*p1*p1=*p3*p3=t} if(*p2*p3) { t=*p2*p2=*p3*p3=t} printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3) } 2.答: #include "stdio.h" #define N 3 main() { int a[N],*p=a for(p-aN p++) scanf("%d",p) p=a+N-1 for(p-a=0 p--) printf("%d ",*p) } 3.答: #include "stdio.h" main() { int a[10] int j,minl=0,maxl=0 for(j=0j10j++) scanf("%d", a+j) for(j=0j10j++) { if(a[maxl]*(a+j)) maxl=j if(a[minl]*(a+j)) minl=j } j=a[0] a[0]=a[minl]a[minl]=j j=a[9]a[9]=a[maxl]a[maxl]=j for(j=0j10j++) printf("%d ", *(a+j)) } 4.答: 输入阵列如下: 1 2 3 4 5 6 7 8 9 10 11 12 输出阵列如下: 12 11 10 9 8 7 6 5 4 3 2 1 #define M 3 #define N 4 #include "stdio.h" main() { int a[M][N]={1,2,3,4,5,6,7,8,9,10,11,12},k,j,*p=a[0][0],t for(k=0,j=M*N-1kjk++,j--) { t=*(p+k) *(p+k)=*(p+j) *(p+j)=t} for (k=0 kM k++) { for(j=0 jN j++) printf("%4d ",a[k][j]) printf("\n") } } 5.答: #include "stdio.h" main() { int len char str[20],*p=str printf("please input a string:\n") scanf("%s",str) len=0 while(*p!='\0') { len++ p++ } printf("the string has %d characters.\n",len) } 6.答: #include "string.h" #include "stdio.h" main() { char *str1[5],ch[5][20],k,t,j,*c void sort(char **) for(k=0k5k++) {str1[k]=ch[k] gets(str1[k])} for(k=0k7k++) { t=k for(j=k+1j5j++) if(strcmp(*(str1+t),*(str1+j))0) t=j c=*(str1+t) *(str1+t)=*(str1+k) *(str1+k)=c } for(k=0k5k++) puts(str1[k]) } 习 题 9 9.1 单选题 CBBAD DBCCD DCABC BCCBA DCDAB 9.2 填空题 1.120 2.x 3.3,2,2,3 4.fac /i 5.8,17 6.9 7.1.0/(i*i) 8. fun-in:30,20,10 fun-end:1015,35,1050 10,20,30 9.012345 10.93636 11.(1)r+b[k] (2)*x 12.7 5 3 1 9 13.15 14.(1)*x (2)t 15.(1)'\0' (2)n++ 16.024 9.3 改错题(略) 9.4 编程题 1.答: void zhuan( ) { char ch while((ch=getchar())!='\n') { if(ch='a' ch='z') ch=ch-32 putchar(ch) } } 2.答: double expp(int n) { int k, fac=1 double sum=1 for(k=1 k=n k++) { fac*=k sum+=1.0/fac } return(sum) } 3.答: int xy3( int x, int y) { int k, num=1 for(k=1k=y k++) num*=x num=num%1000 return num } 4.答: int age( int n) { int c if(n==1) c=10 else c=age(n-1)+2 return c } 5.答: #include "stdio.h" main() { int a,b,c,d void fun(int a,int b,int *c, int *d) scanf("%d%d",a,b) fun(a,b,c,d) printf("%d %d",c,d) } void fun(int a,int b,int *c, int *d) { if (b) { *c=a/b *d=a%b} } 6.答: #include "stdio.h" main(int argc,char *argv[]) { int k printf("argc=%d\n",argc) for (k=1kargc k++) printf("%s\n",argv[k]) } 习 题 10 10.1 单选题 CDBBB BBBAD CCBDC 10.2 填空题 1.所有结构体成员所占存储空间的总和 2.与占用存储空间最大的那个成员相等 附录F 课后题参考答案
285 3.(1)struct satype (2)3 (3)sa.a (4)9 (5)psa=sa 4.80 5.struct node 6.0 10.3 编程题 1.答: #include "stdio.h" struct student { long num; char name[20]; char sex; float score; }; main() { struct student s[20], temp; int j,k, man=0, woman=0 float summan=0,sumwoman=0, aveman, avewoman; for(k=0 k20 k++) { scanf("%ld %s %c%f",s[k].num,s[k].name,s[k].sex,s[k].score); if(s[k].sex=='m') { summan+=s[k].score man++} else { sumwoman+=s[k].score;woman++ } } aveman=summan/man; avewoman=sumwoman/woman printf("%d\t%f\t%d\t%f\n",man,aveman,woman,avewoman); for(k=0 k19 k++) for(j=0;j20-k;j++) if(s[j].scores[j+1].score) { temp=s[j];s[j]=s[j+1];s[j+1]=temp;} printf("the sorted numbers:\n") for(k=0;k20;k++) printf("%ld\t%s\t%c\t%5.1f\n",s[k].num,s[k].name,s[k].sex,s[k].score); } 习 题 11 11.1 单选题 BADD 11.2 填空题 1.3d3d330 2.(1)28 (2)20 (3)0 (4)--9 3.(1)251 (2)42 (3)209 (4)–295 (5)848 习 题 12 12.1 单选题 BCDCA ADA 12.2 填空题 1.rewind(文件指针) 2."d1.dat","rb" 3.stdin 4.文本文件;二进制文件 5.(1)"w" (2)str[i]--32
(3)"r" 6.fopen 7.Hello 8.(1)"r"
(2)fgetc(fp)
(3)time++
C语言程序设计实验与习题指导课后程序设计答案 P18 (1) #includestdio.h int main(void) { intcelsius,fahr fahr=150 celsius=5*fahr/9-5*32/9 printf("fahr=%d,celsius=%d\n",fahr,celsius) return 0 } (2) #includestdio.h int main(void) { intcelsius,fahr celsius=26 fahr=9*celsius/5+32 printf("celsius=%d,fahr=%d\n",celsius,fahr) return 0 } (3) #includestdio.h int main(void) { intaverage,math,eng,comp math=87 eng=72 comp=93 average=(math+eng+comp)/3 printf("math=%d,eng=%d,comp=%d,average=%d\n",math,eng,comp,average) return 0 } (4) #includestdio.h int main(void) { intn,a,b,c n=152 c=n%10 b=(n/10)%10 a=n/100 printf("整数%d的个位数字是%d,十位数字是%d,百位数字是%d\n",n,c,b,a) return 0 } P27 (1) #includestdio.h #includemath.h int main(void) { intcelsius,fahr printf("Enter celsius:") scanf("%d",celsius) fahr=9*celsius/5+32 printf("fahr%d\n",fahr) return 0 } (2) #includestdio.h #includemath.h int main(void) { intmoney,year doublerate,interest printf("Enter money,year,rate:") scanf("%d%d%lf",money,year,rate) interest=money*pow(1+rate,year)-money printf("interest=%.2f\n",interest) return 0 } (3) #includestdio.h #includemath.h int main(void) { doublex,y printf("Enter x:") scanf("%lf",x) if(x0){ y=pow(x+1,2)+2*x+1/x } else{ y=sqrt(x) } printf("y=f(%f)=%.2f\n",x,y) return 0 } (4) #includestdio.h int main(void) { intx,y printf("Enter num1:") scanf("%d",x) printf("Enter num2:") scanf("%d",y) printf("%d+%d=%d\n",x,y,x+y) printf("%d-%d=%d\n",x,y,x-y) printf("%d*%d=%d\n",x,y,x*y) printf("%d/%d=%d\n",x,y,x/y) printf("%d%%%d=%d\n",x,y,x%y) return 0 } 10的阶乘 #includestdio.h int main(void) { inti,n,product printf("Enter n:") scanf("%d",n) product=1 for(i=1i=ni++){ product=product*i } printf("product=%d\n",product) return 0 } 你把这个拿去试试,我到网上找了一个帮你改的,看看可以不,
#includestdio.h int main() { //int a[10][10] int n printf("please input the line:\n") scanf("%d\n",n) getchar() int i,j for(i=0ini++) { a[i][0]=1 a[i][i]=1 } for(i=2ini++) for(j=1jij++) a[i][j]=a[i-1][j-1]+a[i-1][j] for(i=0ini++) { for(j=0j=ij++) printf("%d ",a[i][j]) printf("\n") } return 0 } 欢迎分享,转载请注明来源:内存溢出 原文地址:https://outofmemory.cn/yw/7736412.html |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |