C语言程序设计(张淑华、朱丽莉版)课后习题参考答案.doc_第1页
C语言程序设计(张淑华、朱丽莉版)课后习题参考答案.doc_第2页
C语言程序设计(张淑华、朱丽莉版)课后习题参考答案.doc_第3页
C语言程序设计(张淑华、朱丽莉版)课后习题参考答案.doc_第4页
C语言程序设计(张淑华、朱丽莉版)课后习题参考答案.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计(张淑华、朱丽莉主编)课后习题解答(仅供参考)习 题 一一、选择题1B 2D 3B 4A 5B6C 7C二、填空题1.obj 2函数 3/* */ 4#include int a,b; a,b 三、简答题(略) 习 题 二一、选择题1B 2B 3A 4D 5A6C 7C 8A 9C 10B11A 12A 13C 14A 15C二、填空题1变量 2存储数据的单元 3非0、0 4(1)a=0 (2)051 61 7-30 838 94 , 710-6 177772 119.9 127 三、写出下列程序的运行结果10,0,5 218 364 512 8 455d4,c四、编程题1#include #define PI 3.1415926 void main() float r,s; printf(“Please input circinal radiin”); scanf(“%f”,&r); s=PI*r*r; printf(“r=%.2f,s=%.2fn”,r,s); 2#include void main() char c1,c2; printf(“Please input a majusculen”); scanf(“%c”,&c1); c2=c1A&c1Z?c1+32:c1; printf(“%cn”,c2); 3#include void main() int a=0,b; scanf(“%c”,&b); b=b&a; printf(“b=%dn”,b); 习 题 三一、选择题1C 2C 3A 4C 5D6原题第2行应为 c=(c-=a-5),(a=b,b+3); 答案为B 否则输出结果为5,0,57D 8C 9A 10B 二、填空题1-50 300、a=-50,b=300 a=-50 b=300210 20 30、10,20,30、a=10,b=20,c=30315、0、0三、写出下列程序的运行结果1a=789.654321,a= 789.65,a= 789.65432100,a=789.6543212b=15,b=17,b=f 3c=1,x=0,y=0,z=1 421 20,205在TC环境下为216,125 在VC环境下为 216,1806a=A,b=d,c=F 79,4,12,12 8x=4.500000,y=4,x+y=8.500000四、编程题1#include void main() printf(*n); printf( HAPPY NEW YEAR! n); printf(*n); 2 (1) #include void main() int a=5,b=8,c=10,m,max; m= ab?a:b; max=cm?c:m; printf(“max=%dn”,max); (2)#include void main() int a,b,c,m,max; scanf(%d,%d,%d,&a,&b,&c); max=ab?a:(bc?b:c); printf(“max=%dn”,max); 习 题 四一、选择题1D 2D 3C 4A 5D6A 7C 8C 9D 10B二、填空题16、5、5 2(a%3=0|a%7=0) 3(1) ab (2) a=c; (3) a,b,c三、写出下列程序的运行结果14 264 3a=7,b=4 446 46 5*# 46四、编程题1另见填空题3 #include void main() float a,b,c,t; scanf(%f,%f,%f,&a,&b,&c); if (ab) t=a;a=b;b=t; if (ac) t=a;a=c;c=t; if (bc) t=b;b=c;c=t; printf(“%.2f,%.2f,%.2fn”,a,b,c); 2#include void main() int a,b; scanf(%d,%d,&a,&b); if(a%b=0) printf(“%d is divisible by %dn”,a,b); else printf(“%d is not divisible by %dn”,a,b); 3(1) #include void main() int x,y; scanf(“%d”,&x); if (x-5&x0&x10) y=x+1; printf(y=%dn,y); else printf(Data out of rangen); (2) #include void main() int x,y; scanf(“%d”,&x); switch(x) case -1: case -2: case -3: case -4:y=x; printf(y=%dn,y);break; case 0:y=x-1; printf(y=%dn,y);break; case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9:y=x+1; printf(y=%dn,y);break; default: printf(Data out of rangen); 4#include void main() long num; int indiv,ten,hundred,thousand,tenthousand,place; /*分别代表个位、十位、百位、千位、万位和位数*/ printf(“Please Input a integer(099999):”); scanf(“%ld”,&num); if (num9999) place=5; else if (num999) place=4; else if (num99) place=3; else if (num9) place=2; else place=1; printf(“place=%dn”,place); printf(“For each digit:”); tenthousand=num/10000; thousand=(int)(num-tenthousand*10000)/1000; hundred=(int)(num-tenthousand*10000-thousand*1000)/100; ten=(int)(num-tenthousand*10000-thousand*1000-hundred*100)/10; indiv=(int)(num-tenthousand*10000-thousand*1000-hundred*100-ten*10); switch(place) case 1:printf(“%d”,indiv);break; case 2:printf(“%d,%d”,ten,indiv);break; case 3:printf(“%d,%d,%d”,hundred,ten,indiv);break; case 4:printf(“%d,%d,%d,%d”,thousand,hundred,ten,indiv);break; case 5:printf(“%d,%d,%d,%d,%d”,tenthousand,thousand,hundred,ten,indiv); 习 题 五一、选择题1D 2C 3D 4B 5C6B 7C 8B 9B 10B二、填空题1(1) x=0 或 !(x0) (2) xamin2(1) i10 或 i=9 (2)j%3 或 j%3!=03(1) pi (2) fabs(t) (3)4三、写出下列程序的运行结果11 2y=-1 34 4a=2,b=8 5*7645 71 8s=0 34 23四、编程题1#include void main() int i,j,k;for (i=1;i=4;i+) /*输出上面4行*号*/ for (j=1;j=5-i;j+) printf(“ “); /*输出*号前面的空格*/ for (k=1;k=2*i-1;k+) printf(“*”); /*输出*号*/ printf(“n”); /*输出完一行*号后换行*/ 2 #include stdio.hvoid main() int num,n1,n2,p=1; scanf(%d,&num);while (num) n1=num/10; n2=num%10; p*=n2; num=n1; printf(num=%d,p=%dn,num,p);3 #include stdio.hvoid main() int i; float s1,s2,s3,s4,s5,sum,avg; for(i=1;i=0 4(1) 0 (2) 65(1) gets(temp); (2) strcpy(temp,str); 6(1) i=48 & si=0 & si=9 (2) dj=0; 或dj=0;三、写出下列程序的运行结果113715 2s=15 358 411 57 06how 7max=9,row=1,col=0 86,4,3,2, are you? I am fine四、编程题1#include #define N 10 void main() int a32,x,k,r,i; printf(“Please input an integer:); k=-1; do r=x%2; a+k=r; x/=2; while(x=1); for(i=k;i=0;i-)printf(“%1d”,ai);printf(“n”); 2#include #define N 10 void main() int aN+1=10,20,30,40,50,60,70,80,90,100; int t1,t2,num,i,j; printf(“array a:n”);for (i=0;iaN-1) aN=num; else for (i=0;inum) t1=ai; ai=num; for (j=i+1;jN+1;j+) t2=aj;aj=t1;t1=t2; break; printf(Current array a:n”);for (i=0;iN+1;i+)printf(“%5dn”,ai);3#include #define N 6 void main() int i,j,aNN;for (i=1;iN;i+) aii=1;ai1=1;for (i=3;iN;i+)for (j=2;ji-1;j+) aij=ai-1j-1+ai-1j;for (i=1;iN;i+) for (j=1;j=i;j+) printf(“%5d ”,aij); printf(”n”); 4 #include stdio.h void main() char s80,t80,d; int i,j; printf(Please enter a string:n); gets(s); printf(delete?n); d=getchar(); for(i=j=0;si!=0;i+) if(si!=d) tj=si;j+; tj=0; printf(%sn,t); 5#include stdio.h #define N 8 void main() int sN3,i,j,k,m,t1; float aN,sum,t2; for(i=0;iN;i+) printf(Please enter the %d-th three subjects scoren,i); sum=0; for(j=0;j3;j+) scanf(%d,&sij); sum+=sij; ai=sum/3; for(i=0;iN-1;i+) k=i; for(j=i+1;jN;j+) if(akaj) k=j; if(k!=i) for(m=0;m3;m+) t1=sim;sim=skm;skm=t1; /*交换整行的值*/ t2=ai;ai=ak;ak=t2; for(i=0;iN;i+) printf(%d-th ,i); for(j=0;jN;j+) printf(%d ,sij); printf(%.2fn,ai); 习 题 七一、选择题1C 2A 3B 4B 5A6D 7C 8D 9C 10C二、填空题1struct STRU t20; 2x.x、x.y、x.z.y、x.z.z 34,8三、写出下列程序的运行结果16 20 34E5S 421 5Zhao,m,85,90四、编程题1#include stdio.h #define N 45 struct student char name20; char sex7; int age; int score; stdN; void main() int i,max=0,rowi; for(i=0;iN;i+) printf(Please enter the data of the %d-th student:n,i); printf(name:); scanf(%s,); printf(sex:); scanf(%s,stdi.sex); printf(age:); scanf(%d,&stdi.age); printf(score:); scanf(%d,&stdi.score); if(maxstdi.score) max=stdi.score; rowi=i; printf(name:%s ,); printf(sex:%s ,stdrowi.sex); printf(age:%d ,stdrowi.age); printf(score:%dn,stdrowi.score); 2#include stdio.h #define N 5 struct student char name20; char sex7; int score;stdN;void main() int i,ml=0,fml=0; float sum=0,avg; for(i=0;iN;i+) printf(Please enter the data of the %d-th student:n,i); printf(name:); scanf(%s,); printf(sex:); scanf(%s,stdi.sex); if(stdi.sex0=m|stdi.sex0=M) ml+=1; else fml+=1; printf(score:); scanf(%d,&stdi.score); sum+=stdi.score; avg=sum/N; printf(The number of male students:%dn,ml); printf(The number of female students are:%dn,fml); printf(The average scores are:%.2fn,avg);习 题 八一、选择题1A 2C 3D 4A 5C 6A 7D 二、填空题1(1) high=mid-1 (2) low=mid+1 2(1) int m (2) m%i=0 (3) return s3(1) max=xij (2) max三、写出下列程序的运行结果1625 2Qian,p,95,92 32 412 5h=8四、编程题1#include stdio.h void main() int prime(int); int x; printf(nPlease input an integer:); scanf(%d,&x); if(prime(x) printf(n%d is prime.n,x); else printf(n%d is not prime.n,x); int prime(int n) int flag=1,i; for(i=2;i=n-1 & flag=1;i+) if(n%i=0) flag=0; return(flag); 2#include stdio.h void delask(char a) int i,j; char b80; for(i=j=0;ai!=0;i+) if(ai!=*) while(ai!=0) bj=ai; j+; i+;break; bj=0; for(i=0;bi!=0;i+) ai=bi; ai=0; void main() char s80; printf(Please enter a string:n); scanf(%s,s); delask(s); printf(%sn,s); 3#include stdio.h struct date int day; int month; int year; ; int days(struct date dt) int y,m,d,ds12=31,28,31,30,31,30,31,31,30,31,30,31,i,s=0; y=dt.year; m=dt.month; d=dt.day; if(y%4=0 & y%100!=0|y%400=0) ds1=29; /* 计算每月的天数是本年第几天 */ switch(m) case 1:for(i=0;im-1;i+)s+=dsi; s+=d; break; case 2:for(i=0;im-1;i+)s+=dsi; s+=d; break; case 3:for(i=0;im-1;i+)s+=dsi; s+=d; break; case 4:for(i=0;im-1;i+)s+=dsi; s+=d; break; case 5:for(i=0;im-1;i+)s+=dsi; s+=d; break; case 6:for(i=0;im-1;i+)s+=dsi; s+=d; break; case 7:for(i=0;im-1;i+)s+=dsi; s+=d; break; case 8:for(i=0;im-1;i+)s+=dsi; s+=d; break; case 9:for(i=0;im-1;i+)s+=dsi; s+=d; break; case 10:for(i=0;im-1;i+)s+=dsi; s+=d; break; case 11:for(i=0;im-1;i+)s+=dsi; s+=d; break; case 12:for(i=0;im-1;i+)s+=dsi; s+=d; break; return (s); void main() struct date ymd; int dys; printf(Input year month and dayn); scanf(%d,%d,%d,&ymd.year,&ymd.month,&ymd.day); dys=days(ymd); printf(Today is the first %d days in the middle of this year.n,dys); 习 题 九一、选择题1A 2D 3A 4 D 5B 6A 二、写出下列程序的运行结果110 29 11 11 3* 412 586 1 1 1 2 1 3三、编程题1#include stdio.h #define N 10 float fmax=0,fmin=0; float average(float fscore,int n) int i; float faver,fsum=fscore0; fmax=fmin=fscore0; for(i=1;ifmax) fmax=fscorei; else if(fscoreifmin) fmin=fscorei; fsum+=fscorei; faver=fsum/n; return (faver); void main() float fave,fnumbN; int i; for(i=0;i=a & c=A & cc & a+cb & b+ca) printf(%.2fn,AREA(a,b,c); else printf(It is not a triangle!n); 习 题 十一、选择题1B 2D 3D 4D 5C6A 7A 8C 9D 10A11A 12B 13C 14A 15C二、写出下列程序的运行结果12 1 20 34 89 310 48 4 35CBADGFE 630,30 7The data: 84 4 4 45 6 7 8 9 10 i=5 c=B三、编程题1#include #include void fun(char *s,int *a,int *b) while(*s!=0) if(*s=65 & *s=97 & *s=122) *b+=1; /* 可用 (*b)+; */ s+; void main() char s100; int upper=0,lower=0; printf(请输入一串字符:n); gets(s); fun(s,&upper,&lower); printf(upper=%d,lower=%dn,upper,lower); 2#include void fun(int *p1,int *p2) int p; p=*p1; *p1=*p2; *p2=p; void main() in

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论