C语言程序设计(邹显春版) 课本和实践教程答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
page 1
/ if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) printf("%-5d",n); } } 3. #include "s tdio.h" main() { int n=1; float e=1,k; k=1/n; while(k>=1e-6) { n++; e+=k; k=k/n; } printf("n=%d\te=%f\n",n,e); } 4. #include "stdio.h" main() { int i; float k,s,fz=2,fm=1,newfz; c 语言习题参考答案【5】 s=fz/fm; for(i=2;i<=20;i++) { newfz=fz+fm; fm=fz; fz=newfz; k=fz/fm; s+=k; } printf("s=%f",s); } 5. #include "stdio.h" void main() { int day,x1 ,x2;//第 1 天的桃子数为 x1,第 2 天的桃子数为 x2 x2=1;//第 10 天只剩下 1 个 day=9;//只考虑前 9 天 while(day>0) { x1=(x2+1)*2;/*根据题意:第 2 天剩下的 桃子数 x2=x1/2-1,也就是说:第一天的桃子数 是第 2 天桃子数加 1 后的 2 倍*/ x2=x1; day--; } printf("the total is %d\n",x1); } 6. #include "stdio.h" m ain() { int i,j,s; for(j=2;j<1000;j++) { s=j; for(i=1;i<j;i++) { if((j%i)= =0) s=s-i; } if(s==0) printf("%d is a wanshu\n",j); } } 7. #include "stdio .h" void main() c 语言习题参考答案【6】 int a,b,c,d,e,f,s1,s2,s3,s4,s5,s6;//a,b,c,d,e,f 各代表一个嫌疑人 for( a=0;a<=1;a++) for(b=0;b<=1;b++) for(c=0;c<=1;c++) for(d=0;d<=1;d++) for(e= 0;e<=1;e++) for(f=0;f<=1;f++) { s1=a||b;//a,b 至少一人作案 s2=!a||!d;//a,d 不可能是同案犯 s3=a&&e||a&&f||e&&f||a&&e&&f;//a,e,f 这 3 人中至少有两个人 参与作案 s4=b&&c||!b&&!c;//b,c 或同时作案或本案无关 s5=c&&!d||!c&&d;//c,d 中有且仅有一人作案 s6=d||!e;//如果 d 没有参与作案,则 e 也不可能参与作案 i f(s1&&s2&&s3&&s4&&s5&&s6) { if(a) printf("%c 是作案人\n",'A'); if(b) print f("%c 是作案人\n",'B'); if(c) printf("%c 是作案人\n",'C'); if(d) printf("% c 是作案人\n",'D'); if(e) printf("%c 是作案人\n",'E'); if(f) printf("%c 是 作案人\n",'F'); } }} 习 题 四 一、单项选择题 1.C 2.D 3.D 4.B 5.D 6.B 7.A 8 .C 9.D 11.B 12.A 13.D 14.A 二、填空题 1.0 0 2.0 6 3.gets(s1); 4.strcpy (s2,s1); 5.\0 三、程序阅读题 1. 1 0 0 0 0 5.5 7 4 8 9 1 01000 157489 00 100 915748 00010 891574 00001 489157 748915 2.AQM 3.AzyD 4.9198 四、程序 填空题 1. 【1】i==j 【2】a[i][j] 2. 【1】i-1 【2】a[j+1]=a[j] 【3】a[j+1 ] { 10.C 1 c 语言习题参考答案【7】 3. 【1】*(a+i)=*(a+j) 【2】a+j 习 题 五 一、单项选择题 1.D 2.B 3.C 4 .D 5.A 6.C 7.A 8.D 9.B 10.C 11.C 12.B 13.C 14.D 15.C 二、填空题 1.整型 2. 值传递 地址传递 3.嵌套调用 递归调用 4.全局变量 局部变量 动态变量 静态变量 5.void dothat(int n,double x); void dothat(int,double); 6.动态变量 静态 变量 7.动态变量 8.静态变量 9.分配存储空间 赋值 三、程序阅读题 i=5 1.8, 17 i=2 2.0 2 4 6 8 10 12 14 16 18 0 2 4 6 8 10 12 14 16 18 i=2 i=4 3.-12 5=-5*5*5 i=2 4. 四、程序填空题 1. 【1】x2=mid 【2】x1=mid 2. 【1】p++ 【 2】a[i]=a[i+1] 3. 【1】float fun(float a,float b) 【2】x,y+fun(z,x+z) 【3 】z,y 4. 【1】i<10 【2】array[i] 【3】return(avgr) 五、程序判断题 1. void add(int a,int b)改为 int add(int a,int b) num[i]=0; 改为 num[k]=0; 2. if (d%2=0)改为 if (d%2==0) switch ( s ) 改为 switch ( s[k] ) s \= 10;改为 s/= 10; 4. s[j]=s[i];改为 s[j++]=s[i]; 3. int k; i=5; 改为 int k, i=5; s[j]=” \0”;改为 s[j]='\0'; 习 题 六 一、单项选择题 1.B 2.A 3.B 4.A 5.A 6.D 7.D 8 .A 9.D 10.D 二、程序阅读题 1.Wang Wu:20 2.computer 三、程序填空题 1. 【1】 "r" 【2】niu 【3】fclose(ma) 2.【1】FILE *fp 【2】ch!='\n' 【3】fclose(fp) 四、程序设计题 1. #include "stdio.h" void main( ) { struct date { int yea r; int month; int day; }x; c 语言习题参考答案【8】 scanf("%d%d%d",&x.year,&x.month,&x.day); printf("%d 年%d 月%d 日",x.y
本文由小彘不会飞贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机 查看。 c 语言习题参考答案【1】 C 语言程序设计习题参考答案 习题一 一、单项选择题 1.D 2.A 3.B 二、程序阅读题 1. Programming! 4.B ***** **** *** ** * 习题二 2. 一、单项选择题 1.C 2.C 3.D 4.D 5.D 6.D 7.D 8.D 9.B 二、填空题 1.18 2. c>=65&&c<=90 3.1 4.year%4==0||(year%100==0&&year%400!=0) 5.scanf(“%d%d%d” ,&x,&y,&z); 三、程序阅读题 1.16 ¥¥#¥¥ 2.2,1 ¥#¥#¥ 3.1,2,1 5. 4. a=9 Please input two characters:¥# b=15 ¥#¥#¥ c=9 四、编程题 1. (1)设 10g 滤液中含氯 化钡的质量为 x 根据化学方程式: BaCl2+2AgNO3==== 2AgCl+Ba(NO3)2 208 x 287 2.87 由此可得到方程式:208*2.87=287*x 由分析可得到滤液中溶质的质量的数学模 型: x=208*2.87/287 (2)设 12.5g 样品中含 BaCl2 的质量为 y 则可得到方程:x/ (10-2.08)=y/39.6 因此,求解滤液中溶质的质量分数和样品中 BaCl2 的质量分数的 程序为 #include "stdio.h" void main() { float x,y,bx,by; c 语言习题参考答案【2】 x=208*2.87/287; y=39.6*x/(10-2.08); bx=x/10*100; by=y/12.5*100; print f("bx=%5.1f\%\n",bx); printf("by=%5.1f\%\n",by); } 确保通用性 # include v oid main() { double m1,m2,a,b,w1,w2; printf("请输入固体氯化钡样品的质量 m1 (g): \n"); scanf("%lf",&m1); printf("请输入加入水的质量 m2(g): \n"); scanf ("%lf",&m2); printf("请输入所取滤液的质量 a(g): \n"); scanf("%lf",&a); pri ntf("请输入完全反应后生成沉淀的质量 b(g): \n"); scanf("%lf",&b); w1=208*b/ (287*a); w2=208*b*(m1+m2)/(287*a*m1); printf("滤液中溶质的质量分数为:%lf \ n",w1); printf("样品中氯化钡的质量分数为:%lf \n",w2); } 2. #include "stdio .h" main() { printf(" * \n"); printf(" *** \n"); printf("*****\n"); } 3. # include "stdቤተ መጻሕፍቲ ባይዱo.h" #define MAX(x,y) ((x)>(y)?(x):(y)) #define MIN(x,y) ((x) <(y)?(x):(y)) main() { float a,b; printf("Please enter two real numbers:\n "); scanf("%f%f",&a,&b); printf("%f\t", MIN(a,b)); printf("%f\n", MAX(a,b) ); } 4. # include c 语言习题参考答案【3】 # include void main( ) { FILE *fp; if((fp=fopen("f.txt","w"))==NULL) { printf("Error on open f.txt!\n"); exit(0); } fprintf(fp,"%s","Programmi ng is fun!\n"); if(fclose(fp)) { printf("Can not close d:\f.txt and strike any key exit!\n"); getch(); exit(0); } } 5. # include # define ISLOWER(c ) (c>=97&&c<=132?1:0) void main( ) { char x; scanf("%c",&x); if ISLOWER(x) printf("%c",x); getch(); } 6. # include void main( ) { int year=1986,r=7 6; printf("本世纪地球上见到哈雷彗星的年份是%d 年!\n",year+r); } 习题三 一 、单项选择题 1.D 2.C 3.D 4.A 5.A 6.A 7.D 8.B 11.C 12.B 13.B 14.A 二、程序阅 读题 1.8 2.2 3.s=9 4.22 5.2 三、程序填空题 【2】n 【3】w 1. 【1】m%n 2. 【1】&n 3.【1】i<100 【2】s=0 【3】k 【4】s+=i++ 【5】%ld 【2】i%3 ==0&&i%10==6 9.A 10.D 四、编程题 c 语言习题参考答案【4】 1. #include "stdio.h" main() { float n,s=0,t=1; for(n=1;n<=20;n++) { t*=n; s+=t; } printf("1+2!+3!……+20!=%e\n",s); } 2. #include "stdio.h" ma in() { int i,j,k,n; printf("'water flower'number is:"); for(n=100;n<1000;n ++) { i=n/100;/*分解出百位*/ j=n/10%10;/*分解出十位*/ k=n%10;/*分解出个位*
/ if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) printf("%-5d",n); } } 3. #include "s tdio.h" main() { int n=1; float e=1,k; k=1/n; while(k>=1e-6) { n++; e+=k; k=k/n; } printf("n=%d\te=%f\n",n,e); } 4. #include "stdio.h" main() { int i; float k,s,fz=2,fm=1,newfz; c 语言习题参考答案【5】 s=fz/fm; for(i=2;i<=20;i++) { newfz=fz+fm; fm=fz; fz=newfz; k=fz/fm; s+=k; } printf("s=%f",s); } 5. #include "stdio.h" void main() { int day,x1 ,x2;//第 1 天的桃子数为 x1,第 2 天的桃子数为 x2 x2=1;//第 10 天只剩下 1 个 day=9;//只考虑前 9 天 while(day>0) { x1=(x2+1)*2;/*根据题意:第 2 天剩下的 桃子数 x2=x1/2-1,也就是说:第一天的桃子数 是第 2 天桃子数加 1 后的 2 倍*/ x2=x1; day--; } printf("the total is %d\n",x1); } 6. #include "stdio.h" m ain() { int i,j,s; for(j=2;j<1000;j++) { s=j; for(i=1;i<j;i++) { if((j%i)= =0) s=s-i; } if(s==0) printf("%d is a wanshu\n",j); } } 7. #include "stdio .h" void main() c 语言习题参考答案【6】 int a,b,c,d,e,f,s1,s2,s3,s4,s5,s6;//a,b,c,d,e,f 各代表一个嫌疑人 for( a=0;a<=1;a++) for(b=0;b<=1;b++) for(c=0;c<=1;c++) for(d=0;d<=1;d++) for(e= 0;e<=1;e++) for(f=0;f<=1;f++) { s1=a||b;//a,b 至少一人作案 s2=!a||!d;//a,d 不可能是同案犯 s3=a&&e||a&&f||e&&f||a&&e&&f;//a,e,f 这 3 人中至少有两个人 参与作案 s4=b&&c||!b&&!c;//b,c 或同时作案或本案无关 s5=c&&!d||!c&&d;//c,d 中有且仅有一人作案 s6=d||!e;//如果 d 没有参与作案,则 e 也不可能参与作案 i f(s1&&s2&&s3&&s4&&s5&&s6) { if(a) printf("%c 是作案人\n",'A'); if(b) print f("%c 是作案人\n",'B'); if(c) printf("%c 是作案人\n",'C'); if(d) printf("% c 是作案人\n",'D'); if(e) printf("%c 是作案人\n",'E'); if(f) printf("%c 是 作案人\n",'F'); } }} 习 题 四 一、单项选择题 1.C 2.D 3.D 4.B 5.D 6.B 7.A 8 .C 9.D 11.B 12.A 13.D 14.A 二、填空题 1.0 0 2.0 6 3.gets(s1); 4.strcpy (s2,s1); 5.\0 三、程序阅读题 1. 1 0 0 0 0 5.5 7 4 8 9 1 01000 157489 00 100 915748 00010 891574 00001 489157 748915 2.AQM 3.AzyD 4.9198 四、程序 填空题 1. 【1】i==j 【2】a[i][j] 2. 【1】i-1 【2】a[j+1]=a[j] 【3】a[j+1 ] { 10.C 1 c 语言习题参考答案【7】 3. 【1】*(a+i)=*(a+j) 【2】a+j 习 题 五 一、单项选择题 1.D 2.B 3.C 4 .D 5.A 6.C 7.A 8.D 9.B 10.C 11.C 12.B 13.C 14.D 15.C 二、填空题 1.整型 2. 值传递 地址传递 3.嵌套调用 递归调用 4.全局变量 局部变量 动态变量 静态变量 5.void dothat(int n,double x); void dothat(int,double); 6.动态变量 静态 变量 7.动态变量 8.静态变量 9.分配存储空间 赋值 三、程序阅读题 i=5 1.8, 17 i=2 2.0 2 4 6 8 10 12 14 16 18 0 2 4 6 8 10 12 14 16 18 i=2 i=4 3.-12 5=-5*5*5 i=2 4. 四、程序填空题 1. 【1】x2=mid 【2】x1=mid 2. 【1】p++ 【 2】a[i]=a[i+1] 3. 【1】float fun(float a,float b) 【2】x,y+fun(z,x+z) 【3 】z,y 4. 【1】i<10 【2】array[i] 【3】return(avgr) 五、程序判断题 1. void add(int a,int b)改为 int add(int a,int b) num[i]=0; 改为 num[k]=0; 2. if (d%2=0)改为 if (d%2==0) switch ( s ) 改为 switch ( s[k] ) s \= 10;改为 s/= 10; 4. s[j]=s[i];改为 s[j++]=s[i]; 3. int k; i=5; 改为 int k, i=5; s[j]=” \0”;改为 s[j]='\0'; 习 题 六 一、单项选择题 1.B 2.A 3.B 4.A 5.A 6.D 7.D 8 .A 9.D 10.D 二、程序阅读题 1.Wang Wu:20 2.computer 三、程序填空题 1. 【1】 "r" 【2】niu 【3】fclose(ma) 2.【1】FILE *fp 【2】ch!='\n' 【3】fclose(fp) 四、程序设计题 1. #include "stdio.h" void main( ) { struct date { int yea r; int month; int day; }x; c 语言习题参考答案【8】 scanf("%d%d%d",&x.year,&x.month,&x.day); printf("%d 年%d 月%d 日",x.y
本文由小彘不会飞贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机 查看。 c 语言习题参考答案【1】 C 语言程序设计习题参考答案 习题一 一、单项选择题 1.D 2.A 3.B 二、程序阅读题 1. Programming! 4.B ***** **** *** ** * 习题二 2. 一、单项选择题 1.C 2.C 3.D 4.D 5.D 6.D 7.D 8.D 9.B 二、填空题 1.18 2. c>=65&&c<=90 3.1 4.year%4==0||(year%100==0&&year%400!=0) 5.scanf(“%d%d%d” ,&x,&y,&z); 三、程序阅读题 1.16 ¥¥#¥¥ 2.2,1 ¥#¥#¥ 3.1,2,1 5. 4. a=9 Please input two characters:¥# b=15 ¥#¥#¥ c=9 四、编程题 1. (1)设 10g 滤液中含氯 化钡的质量为 x 根据化学方程式: BaCl2+2AgNO3==== 2AgCl+Ba(NO3)2 208 x 287 2.87 由此可得到方程式:208*2.87=287*x 由分析可得到滤液中溶质的质量的数学模 型: x=208*2.87/287 (2)设 12.5g 样品中含 BaCl2 的质量为 y 则可得到方程:x/ (10-2.08)=y/39.6 因此,求解滤液中溶质的质量分数和样品中 BaCl2 的质量分数的 程序为 #include "stdio.h" void main() { float x,y,bx,by; c 语言习题参考答案【2】 x=208*2.87/287; y=39.6*x/(10-2.08); bx=x/10*100; by=y/12.5*100; print f("bx=%5.1f\%\n",bx); printf("by=%5.1f\%\n",by); } 确保通用性 # include v oid main() { double m1,m2,a,b,w1,w2; printf("请输入固体氯化钡样品的质量 m1 (g): \n"); scanf("%lf",&m1); printf("请输入加入水的质量 m2(g): \n"); scanf ("%lf",&m2); printf("请输入所取滤液的质量 a(g): \n"); scanf("%lf",&a); pri ntf("请输入完全反应后生成沉淀的质量 b(g): \n"); scanf("%lf",&b); w1=208*b/ (287*a); w2=208*b*(m1+m2)/(287*a*m1); printf("滤液中溶质的质量分数为:%lf \ n",w1); printf("样品中氯化钡的质量分数为:%lf \n",w2); } 2. #include "stdio .h" main() { printf(" * \n"); printf(" *** \n"); printf("*****\n"); } 3. # include "stdቤተ መጻሕፍቲ ባይዱo.h" #define MAX(x,y) ((x)>(y)?(x):(y)) #define MIN(x,y) ((x) <(y)?(x):(y)) main() { float a,b; printf("Please enter two real numbers:\n "); scanf("%f%f",&a,&b); printf("%f\t", MIN(a,b)); printf("%f\n", MAX(a,b) ); } 4. # include c 语言习题参考答案【3】 # include void main( ) { FILE *fp; if((fp=fopen("f.txt","w"))==NULL) { printf("Error on open f.txt!\n"); exit(0); } fprintf(fp,"%s","Programmi ng is fun!\n"); if(fclose(fp)) { printf("Can not close d:\f.txt and strike any key exit!\n"); getch(); exit(0); } } 5. # include # define ISLOWER(c ) (c>=97&&c<=132?1:0) void main( ) { char x; scanf("%c",&x); if ISLOWER(x) printf("%c",x); getch(); } 6. # include void main( ) { int year=1986,r=7 6; printf("本世纪地球上见到哈雷彗星的年份是%d 年!\n",year+r); } 习题三 一 、单项选择题 1.D 2.C 3.D 4.A 5.A 6.A 7.D 8.B 11.C 12.B 13.B 14.A 二、程序阅 读题 1.8 2.2 3.s=9 4.22 5.2 三、程序填空题 【2】n 【3】w 1. 【1】m%n 2. 【1】&n 3.【1】i<100 【2】s=0 【3】k 【4】s+=i++ 【5】%ld 【2】i%3 ==0&&i%10==6 9.A 10.D 四、编程题 c 语言习题参考答案【4】 1. #include "stdio.h" main() { float n,s=0,t=1; for(n=1;n<=20;n++) { t*=n; s+=t; } printf("1+2!+3!……+20!=%e\n",s); } 2. #include "stdio.h" ma in() { int i,j,k,n; printf("'water flower'number is:"); for(n=100;n<1000;n ++) { i=n/100;/*分解出百位*/ j=n/10%10;/*分解出十位*/ k=n%10;/*分解出个位*