c语言(第二版朱鸣华)课后编程题答案
C语言程序设计(第二版)习题参考答案

6.设 c 为字符型变量值为‘A’,a 为整型变量值为 97,执行语句“putchar(c);putchar(a);”
后,输出结果为( )。
A.Aa
B.A97
C.A9
D.aA
7.已知字母 A 的 ASCII 码值为 65,以下语句段的输出结果是( )。
char c1='A',c2='Y'; printf("%d,%d\n",c1,c2);
printf("*****************************\n");
}
2.仿照例 1.2 编程,输入一个整数,计算这个数的平方。
解:#include<stdio.h>
void main()
{ int a,z;
printf("请输入一个整数:\n");
scanf("%d",&a);
z=a*a;
。
解:k=123
f=8765.4
6.使用 pow()函数时,程序的开头必须写一条预处理命令:
。
解:#include <math.h>
5.填空题。
(1)int i=123,j=45;
函数 printf("%d,%d\n",i,j);的输出结果是
。
解:123,45
4
(2)int i=123; float x=-45.678;
void main()
{ float r,h,s,v;
printf("Please input r and h:\n");
scanf("%f %f",&r,&h);
C语言程序设计第二版课后习题答案

C语言程序设计第二版课后习题答案C语言程序设计第二版课后习题答案《C语言程序设计》讲述了C语言的基本概念、各种数据类型的使用技巧、程序流程控制、数组、函数、指针以及有关程序设计的方法等内容。
以下是店铺为大家整理的c语言程序设计第二版课后习题以及答案,一起来学习吧。
c语言程序设计第二版课后习题答案C语言程序设计第1章进入C语言程序世界二、1. I love China!printf("we are students.\n")2. 6项目实训题参考答案1.编写一个C程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *I am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf("********************\n");printf(" I am a student!\n ");printf("********************\n");}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。
解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf("v=%d",v);}本程序运行结果为:v=3000C语言程序设计第2章编制C程序的基础知识一选择题C B A B A C C二操作题1. 3,2,-8,23.000000,2.500000,-8.0000002. ABC DEFGHwhy is 21+35 equal 523.3 14 32 31 24. aa bb cc abcA N项目实训题1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。
#define M 5main(){ int n,c;n=2; c=M*n;printf("%d\n",c); }2.编程求下面算术表达式的值。
c语言(第二版朱鸣华)课后编程题答案

第五章12、#include <stdio.h>#include <stdlib.h>int main(){char a;scanf("%c",&a);if(a>'A'&&a<'Z')printf("%c,%c\n",a-1,a+1); else if(a=='A')printf("没有前面字母"); else if(a=='Z')printf("没有后面字母\n"); return 0;}3、#include <stdio.h>#include <stdlib.h>int main(){int a;scanf("%d",&a);if(a>=90&&a<=100)printf("A\n");else if(a>=80&&a<=89)printf("B\n");else if(a>=70&&a<=79)printf("C\n");else if(a>=60&&a<=69)printf("D\n");elseprintf("E\n");return 0;}4、#include <stdio.h>int main(){int year,month,day;int maxdays[]={31,28,31,30,31,30,31,31,30,31,30,31};printf("请输入年月日,中间用空格隔开!\n");scanf("%d %d %d",&year,&month,&day);if(year%400==0 || (year%4==0 && year%100!=0)) maxdays[1]=29; if(month>12 || month<1){printf("日期不合法!\n");return 0;}if(day>maxdays[month-1]){printf("日期不合法!\n");return 0;}day++;if(day==maxdays[month-1]){ day=1;month++;if(month==12){month=1;year++;}}printf("明天的日期是:%d-%d-%d\n",year,month,day);return 0;}5、#include <stdio.h>int main(){double a,b,c;scanf("%lf%lf%lf",&a,&b,&c);if((a+b)>c&&(a+c)>b&&(b+c)>a)if(a==b&&b==c&&c==a)printf("等边三角形\n");else if((a==b)||(a==c)||(b==c))printf("等腰三角形\n");else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a) printf("直角三角形\n");elseprintf("任意三角形\n");elseprintf("不能构成三角形");return 0;}第六章1、#include <stdio.h>int main(){int m,n,t,a,b;scanf("%d %d",&m,&n);b=m*n;if (m==n){printf("最小公倍数为:%d\n",m);}else if(m<n){t=m;m=n;n=t;while(n!=0){a=m%n;m=n;n=a;}printf("最小公倍数为:%d\n",b/m);}else{while(n!=0){a=m%n;m=n;n=a;}printf("最小公倍数为:%d\n",b/m);}return 0;}2、#include <stdio.h>int main(){int n,i,s,j;scanf("%d",&n);for(j=1;j<=n;j++){ s=0;for(i=1;i<j;i++){if(j%i==0)s=s+i;}if(s==j)printf("%d ",j);}return 0;}3、 #include <stdio.h>int main(){double x,y,max=50,min=50;for(x=0;x<=2;x=x+0.2){y=2*(x*x*x)-3*(x*x*x*x)+6*(x*x*x*x*x)-4*x+50; printf("当x=%.1f时,y=%f\n",x,y);if(y>max)max=y;if(y<min)min=y;}printf("最大值为:%f\n",max);printf("最小值为:%f\n",min);return 0;}4、#include "stdio.h"#include "math.h"#define N 10double acc(int n){int i,t=1;for(i=1;i<=n;i++)t=t*i;return t;}double accu(float x,int n){int y=2*n-1;return pow(x,y)/(y*acc(n-1)); }int main(){ int i;double y=0;for(i=1;i<=N;i++)y=y+accu(0.5,i);printf("x=0.5时y=%f\n",y); y=0;for(i=1;i<=N;i++)y=y+accu(1.0,i);printf("x=1.0时y=%f\n",y); y=0;for(i=1;i<=N;i++)y=y+accu(2.0,i);printf("x=2.0时y=%f\n",y); y=0;for(i=1;i<=N;i++)y=y+accu(3.0,i);printf("x=3.0时y=%f\n",y); y=0;for(i=1;i<=N;i++)y=y+accu(4.0,i);printf("x=4.0时y=%f\n",y); return 0;}5、略第七章、1、#include <stdio.h>#include <stdlib.h>int main(){ int i,j,t,a[10];for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)for(j=i+1;j<10;j++){if(a[j]<a[i]){t=a[i];a[i]=a[j];a[j]=t;}}for(i=0;i<10;i++)printf("%d ",a[i]);return 0;}2、#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){int i,j,a[4][4];int s=1;srand(time(NULL));for(i=0;i<4;i++){for(j=0;j<4;j++){a[i][j]=rand()%100; printf("%d ",a[i][j]); }printf("\n");}for(i=0;i<4;i++)for(j=0;j<4;j++){if(i==j)s=s*a[i][j];}printf("%d\n",s);return 0;}3、#include <stdio.h>#include <stdlib.h>int main(){int i,j,a[7][7];for(i=0;i<7;i++){for(j=0;j<=i;j++){if(i>=2&&j>=1&&j<i){a[i][j]=a[i-1][j-1]+a[i-1][j];printf("%d ",a[i][j]);}else{a[i][j]=1;printf("%d ",a[i][j]);}}printf("\n");}return 0;}4、#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){int i,t,j=1;char str[80];printf("输入一个字符串:");gets(str);t=strlen(str);for(i=0;i<t/2;i++)if(str[i]!=str[t-i-1]){j=0;break;}switch(j){case 0:printf("该字符串不是回文");break; case 1:printf("该字符串是回文");}return 0;}5、#include <stdio.h>#include <stdlib.h>int main(){int i,j=0,temp,max,min,a[10];for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=1;i<10;i++){if(a[i]<a[j]){min=a[i];j=i;}}temp=a[0];a[0]=min;a[j]=temp; j=0;for(i=1;i<10;i++){if(a[i]>a[j]){max=a[i];j=i;}}temp=a[9];a[9]=max;a[j]=temp; for(i=0;i<10;i++)printf("%d ",a[i]);return 0;}第八章、1、#include <stdio.h>#include <stdlib.h>int sch_min(int a[5][5]){int i,min;min=a[0][0];for(i=1;i<5;i++)if(a[i][i]<min)min=a[i][i];return min;}int main(){ int i,j,a[5][5];for(i=0;i<5;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j]);printf("%d",sch_min(a));return 0;}2、#include <stdio.h>#include <stdlib.h>float fan(float x,int n){if(n==1)return x;elsereturn x*fan(x,n-1);}int main(){ float x,k;int n;scanf("%f %d",&x,&n);k=fan(x,n);printf("%f",k);return 0;}3、#include <stdio.h>#include <stdlib.h>int fan(int a[],int n,int b){int i;for(i=0;i<n;i++)if(a[i]==b)return i;return 0;}int main(){ int a[10],b,i,k;printf("请输入数组的值:");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("请输入您想查找的值:");scanf("%d",&b);k=fan(a,10,b);if(k==0)printf("没有您要找的值");elseprintf("您要找的值在数组中的位置是%d\n",k+1); return 0;}4、#include <stdio.h>#include <stdlib.h>float pave,nave;void saver(int a[],int n){int i,k;pave=0;nave=0;k=0;for(i=0;i<n;i++)if(a[i]<0){nave+=a[i];k++;}if(k==0)nave=0;elsenave/=k;k=0;for(i=0;i<n;i++)if(a[i]>0){pave+=a[i];k++;}if(k==0)pave=0;elsepave/=k;}int main(){ int a[5],i;for(i=0;i<5;i++)scanf("%d",&a[i]);saver(a,5);printf("%f %f",pave,nave);return 0;}5、#include<stdio.h>#include<math.h>void deltaZero(double a,double b,double c){ double ans=-b/(2*a);printf("x1=x2=%lf\n",ans);}void deltaLargerZero(double a,double b,double c) { double ans1,ans2,d;d=b*b-4*a*c;ans1 = (-b+sqrt(d))/(2*a);ans2 = (-b-sqrt(d))/(2*a);printf("x1=%lf,x2=%lf\n",ans1,ans2);}void deltaLessZero(double a,double b,double c){ double real,imar,d;d=b*b-4*a*c;real = -b/(2*a);imar = sqrt(-d)/(2*a);printf("x1=%lf+%lfi,x2=%lf-%lfi\n",real,imar,real,imar); }void main(){ double a,b,c,x;double d;printf("please input a,b,c\n");scanf("%lf,%lf,%lf",&a,&b,&c);if(a==0&&b==0)printf("没根");else if(a==0&&c==0)printf("x=%f",x=0);else{d=b*b-4*a*c;if(d==0) deltaZero(a,b,c);else if(d>0) deltaLargerZero(a,b,c);else if(d<0) deltaLessZero(a,b,c);}}6、#include<stdio.h>void fan(int a[10][5]){int i,j;double sum;double aver;for(j=0;j<5;j++){ sum=0;for(i=0;i<10;i++){sum+=a[i][j];}aver=sum/10;printf("第%d门课平均分为%f\n",j+1,aver);}}void gan(int a[10][5]){int i,j,t,a1,b1;for(i=0;i<10;i++)for(j=0;j<5;j++){if(a[i][j]>a[0][0]){t=a[i][j];a[i][j]=a[0][0];a[0][0]=t;a1=i;b1=j;}}printf("最高分是%d号学生,课程是第%d门\n",a1+1,b1+1); }void main(){int a[10][5],i,j;for(i=0;i<10;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j]);fan(a);gan(a);}。
c语言程序设计教程第二版课后习题答案

c 语言程序设计教程第二版课后习题答案篇一: c 语言程序设计教程_李含光_ 郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数(2)主函数(main )(3)printf(),scanf()第 2 章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2 .填空题(1)1(2)26 (3)6 , 4 , 2 (4)10 , 6 (5)3.000000 (6)双精度(double )(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10 )%10 )*100+(m/100 )*10+m%10 (12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0)(16 )double (17)x==0 (18)sqrt(fabs(a-b))/(3*(a+b))(19 )sqrt((x*x+y*y)/(a+b))第 3 章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2 .填空题(1)用;表示结束(2){ } (3 )y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0 (5)上面未配对(6)default 标号(7)while ,do while ,for (8)do while (9)本次(10)本层3.阅读程序,指出结果(1)yes (2)*(3)abother (4)28 70 (5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12 (11)i=6 ,k=4 (12)1,-2 4 .程序填空(1)x:y ,u :z(2)m=n ,m !=0 ,m=m/10(3)teps , t*n/(2*n+1) , printf( n”“,%2*lsf )(4)m%5==0 ,printf(“ %nd” ,k)(5)cx=getchar() , cx!=front , cx (6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5 .编程题(1).#include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; else y=3*x-11;printf(%lf\n,y); return 0; } ( 2 ).#include stdio.h int main() { double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz) min=z; printf(min=%lf\n,min); return 0; } ( 3 ).#include stdio.h int main() { int y,m,d,flag,s=0,w,i;scanf(%d%d%d,y,m,d); flag=(y%4==0y%100!=0||y%400==0); w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7; for(i=1;i=m;i++){ switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case 6:s=151+d;break; case 7:s=181+d;break; case 8:s=212+d;break; case 9:s=243+d;break; case 10:s=273+d;break; case 11:s=304+d;break; case 12:s=334+d;break; } }s=(w+s)%7; if(s==0) printf( 星期日\n); else printf( 星期%d\n,s); return 0; } (4).#include stdio.h int main() {float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100) r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100) r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01; printf(%f\n,r); return 0; } ( 5).#include stdio.h int main() { char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } ( 6 ).#includestdio.h int main() { int m,k=2; printf( 输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) {printf(%4d,k); m=m/k; } else k++; printf(%4d\n,m); return 0; }( 7 ).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) { p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } ( 8 ).#includestdio.h int main(){int i,j,k; for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++) printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() { float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b- 4)*b+3)*b)-6; do { x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h #includemath.h int main() { int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t; while(fabs(t)=eps) { t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; } printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() { unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) { t=t+(s%10)*p; p=p*10; } s=s/10; } printf (%u\n,t); return 0; } 第 4 章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2 .填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量( 4 )auto , static , register , extern (5)外部变量(6)编译,运行3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5i=2 i=2 i=4 i=2(5)求水仙花数(6)-5*5*5 (7)30 (8)0 10 1 11 2 12 4.程序填空(1)float fun(float , float),x+y,x-y, z+y,z-y (2)x ,x*x+1(3)s=0 , a=a+b 5 .编程题(1).while(s!=0) #includestdio.h { unsigned int fun (unsigned int); p=p+s%10; int main() s=s/10; { } unsigned ints; return p; scanf(%u,s); } printf(%u\n,fun(s));( 2 ).return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsigned int s) #includemath.h { void f1(float,float,float,float); unsigned int p=0; void f2(float,float,float,float);【篇二:《 c 语言程序设计》课后习题答案(第四版)谭浩强】t>1.1 什么是计算机程序 11.2什么是计算机语言 11.3c 语言的发展及其特点 31.4最简单的 c 语言程序 51.4.1最简单的 c 语言程序举例 61.4.2c 语言程序的结构101.5运行 c 程序的步骤与方法121.6程序设计的任务14 1-5 #include stdio.hint main (){ printf ( **************************\n\n); printf( verygood!\n\n);printf ( return 0;\n);}1-6#include stdio.hint main(){int a,b,c,max; printf(please input a,b,c:\n);scanf(%d,%d,%d,a,b,c); max=a;if (maxb) max=b;if (maxc) max=c;printf(the largest number is %d\n,max); return 0;}第 2 章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用n?s 流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5 结构化程序设计方法34 习题36第章最简单的 c 程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1 常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3c 语句573.3.1c 语句的作用和分类573.3.2最基本的语句——赋值语句59 3.4 数据的输入输出653.4.1 输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf 函数输出数据683.4.4用scanf 函数输入数据753.4.5字符数据的输入输出78习题823-1 #include stdio.h#include math.hint main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf(p=%f\n,p);return 0;}3-2-1#include stdio.h#include math.hint main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5);// 一次存 5 年期p2=p*(1+2*r2)*(1+3*r3); // 先存 2 年期,到期后将本息再存p3=p*(1+3*r3)*(1+2*r2); // 先存 3 年期,到期后3 年期将本息再存int main(){double r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5);// 一次存 5 年期p2=p*(1+2*r2)*(1+3*r3); // 先存 2 年期,到期后将本息再存 3 年期 p3=p*(1+3*r3)*(1+2*r2); // 先存 3 年期,到期后将本息再存 2 年期 p4=p*pow(1+r1,5); // 存 1 年期,到期后将本息存再存 1 年期,连 续存 5 次 p5=p*pow(1+r0/4,4*5); // 存活期存款。
c语言第二版课后习题答案

c语言第二版课后习题答案C语言第二版课后习题答案C语言是一门广泛应用于计算机科学和软件开发领域的编程语言。
作为一门基础性的编程语言,掌握C语言对于学习其他高级编程语言以及深入理解计算机原理和操作系统等方面都具有重要意义。
而《C语言第二版》是一本经典的C 语言教材,对于初学者来说是一本非常好的入门教材。
在学习C语言过程中,课后习题是巩固知识、提高编程能力的重要环节。
下面,我将为大家提供一些C语言第二版课后习题的答案。
1. 编写一个C程序,实现两个整数相加并输出结果。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```2. 编写一个C程序,判断一个数是否为偶数。
```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("该数为偶数\n");} else {printf("该数为奇数\n");}return 0;}```3. 编写一个C程序,计算一个数的阶乘。
```c#include <stdio.h>int main() {int num, i;long long factorial = 1;printf("请输入一个整数:");scanf("%d", &num);if (num < 0) {printf("负数没有阶乘\n");return 0;}for (i = 1; i <= num; i++) {factorial *= i;}printf("%d的阶乘为:%lld\n", num, factorial);return 0;}```4. 编写一个C程序,判断一个数是否为素数。
C语言程序设计(第二版)答案

参考答案习题二(P33)一.单选题1.C2.B3.D4.C5.A6.D7.D8.B9.B 10.D 11.D 12.C 13.C . 15. A 14题最后一句应为printf("%f\n",d*y);结果为2.2二.填空题1. 182. int float double3. 10 114. 八十六十5. %三.阅读程序题1.10,10,9,102.j=1,i=2k=3,i=3j=3,i=2k=1,i=1习题三(P52)一.单选题1.D2.C3.D4.B5.A6.B7.C8.A9.C 10.B 11. -1,37777777777,4294967295 二.填空题5. L6. -1三.阅读程序题1. 6 6 6.00 6.002. x=127,x= 127,x=177,x=7fY=123.4567 , y= 123.46 , y=123.456703. 2,14. 12345. 4,36. -6,-6四.程序设计题1.#include "stdio.h"#include "math.h"main(){float a,b,c,d,x1,x2;a=2;b=-3;c=-5;d=b*b-4*a*c;x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf("x1=%.2f,x2=%.2f\n",x1,x2);}2.#include <stdio.h>main(){ float a,v,s;scanf("%f",&a);v=a*a*a;s=6*a*a;printf("v=%.2f,s=%.2f\n",v,s);}3.#include <stdio.h>main(){ int a,b,c,t;scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d\n",a,b,c);t=c;c=b;b=a;a=t;printf("a=%d,b=%d,c=%d\n",a,b,c);}4.#include <stdio.h>main(){ char s1,s2;s1=getchar();s2=s1-32;printf("%c\n",s2);}习题四(P70)一.单选题1.C2.D3.D4.B5.A6.D7.D8.B9.C 10.A 11.B 12.D 13.passwarnerror .14.C 15. C 16.B 17. B 18. C二.填空题1. 非0 02. k==03. n%7==0 && n%8==0 else三.阅读程序题1. a=1,b=02. c=1四.程序设计题1.#include <stdio.h>main(){ int a,b;char c;printf("INPUT A+(-*/)B\n");scanf("%d%c%d",&a,&c,&b);switch(c){case'+':printf("%d+%d=%d\n",a,b,a+b);break;case'-':printf("%d-%d=%d\n",a,b,a-b);break;case'*':printf("%d*%d=%d\n",a,b,a*b);break;case'/':printf("%d/%d=%d\n",a,b,a/b);break;default:printf("INPUT ERROR!");}}2.#include <stdio.h>main(){ float x,y;scanf("%f",&x);if(x==0||x==2)y=0;else if(x>0) y=(x+1)/(x-2);else y=(x-1)/(x-2);printf("y=%f\n",y);}3.#include <stdio.h>main(){ int g;printf("请输入学生成绩:");scanf("%d",&g);printf("g=%d:",g);switch(g/10){case 10:printf("A\n");break;case 9:printf("B\n");break;case 8:printf("C\n");break;case 7:printf("D\n");break;case 6:printf("E\n");break;default:printf("F\n");}}4.#include <stdio.h>main(){ int x,n=0;scanf("%d",&x);if(x<=0||x>=10000)printf("Data Error!\n");else{if(x<10)n=1;else if(x<100)n=2;else if(x<1000)n=3;else n=4;}printf("n=%d\n",n);}习题五(P87)一.单选题1.B2.D3.C4.C5.B6.C7.D8.C9.A 10.D 11.B 12.B 13.B 14.D 15. C 二.填空题1. for语句while语句do-while语句2. a=14,y=263. k=14,n= -14. 395. s=196. 222227. 108. 79. 810. 5,5三.改错题应改为for(i=0;i<5;i++)j++;应改为int j=0;while(j<10){j++;i=j;} 注while(j<10)后不应有分号应改为while(j<10); 注while(j<10)后分号不能少s*=i;i++;应改为{s*=i;i++;}continue 应改为break四.程序设计题1.#include <stdio.h>main(){ int i,j,s=0;for(i=1,j=1;i<=100;i++,j=j*(-1))s=s+i*j;printf("s=%d\n",s);}1.(另一做法)#include<stdio.h>main(){int i,s;for(i=1,s=0;i<=100;i++)if(i%2==0)s=s-i;else s=s+i;printf ("%d\n",s);}2.#include <stdio.h>main(){ int i,j,s1=0,s2=0;for(i=0;i<10;i++){scanf("%d",&j);if(j>0)s1=s1+j;else s2=s2+j;}printf("s1=%d,s2=%d\n",s1,s2);}3.#include<stdio.h>main(){int i,s;for(i=6,s=0;i<=96;i=i+1)if(i%10==6||i/10==6)s=s+i;printf ("%d\n",s);}4.#include<stdio.h>main(){int i,a,b,c;for(i=100;i<=999;i++){a=(i%10);b=(i/10%10);c=(i/100);if(i==a*a*a+b*b*b+c*c*c)printf ("%d\n",i);}}5.#include <stdio.h>main( ){int i,j,k=0;for (i=1;i<=4;i++){for (j=1;j<=i;j++){k++;printf("%d",k%10);}printf("\n");}}6.#include <stdio.h>main( ){int i,j,k=0;for (i=-3;i<=3;i++){if(i<0)k=-i;else k=i;for(j=1;j<=k;j++)printf(" ");for(j=1;j<=7-2*k;j++)printf("*");printf("\n");}}习题六(P111)一.单选题1.D2.B3.C4.C5.C6.D7.A8.B二.填空题1. 20 0 192. 数组名3. 越界4. 65. j==k a[j][k]=1; a[j][k]=0;三.阅读程序题1. 6 5 43 2 12.aaabbbccc ddd3.2,2,1四.程序设计题1.#include<stdio.h>main(){ int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int i,j,s=0;for(i=0;i<4;i++)for(j=0;j<4;j++)if(i==j||i+j==3)s+=a[i][j];printf("%d",s);}2.#include <stdio.h>{ char a[80];int i,j=5; /*假设删除位置为5*/gets(a);for(i=j-1;a[i]!='\0';i++)a[i]=a[i+1];a[i]='\0';puts(a);}3.#include <stdio.h>#include <string.h>main(){ char a[80];int i,j=5; /*假设插入位置为5*/char s='t'; /*假设插入字符为t*/gets(a);for(i=strlen(a);i>j;i--)a[i+1]=a[i];a[j]='t';puts(a);}4.#include<stdio.h>main(){ int a[3][5]={1,3,5,7,9,2,4,6,8,10,3,5,8,7,6}; int i,j,s1[3]={0},s2[5]={0};for(i=0;i<3;i++)for(j=0;j<5;j++)s1[i]+=a[i][ j];for(i=0;i<5;i++)for(j=0;j<3;j++)s2[i]+=a[ j][i];for(i=0;i<3;i++){for(j=0;j<5;j++)printf("%6d",a[i][j]);printf (" |%6d\n",s1[i]);}for(i=0;i<33;i++) printf("-");printf("\n");for(i=0;i<5;i++) printf("%6d",s2[i]);printf("\n");}5.#include<stdio.h>{ char s[3][80];int a=0,b=0,c=0,d=0,e=0,i,j;for(i=0;i<3;i++) gets(s[i]);for(i=0;i<3;i++)for(j=0;s[i][j]!='\0';j++)if(s[i][j]>='A'&&s[i][j]<='Z')a++;else if(s[i][j]>='a'&&s[i][j]<='z')b++;else if(s[i][j]>='0'&&s[i][j]<='9')c++;else if(s[i][j]==32)d++;else e++;printf("%3d%3d%3d%3d%3d",a,b,c,d,e);}习题七(P145)一.单选题1.A2.B3.C4.A5.C6.D7.C8.B9.B 10.C 11.D 二.填空题1. 该函数内局部2. 整型3. k<=breturn y;4. x[i]return (ave);fun(a,20)5. 1;add(n-1);add(n);6. n*f(n-1)0;f(i)三.阅读程序,写出运行结果1.10,20,302.643.84. hlo5. sum=55四.程序设计题1.#include <stdio.h>main(){float add(float, float), sub(float, float);float aver(float, float),a,b;scanf("%f,%f",&a,&b);printf("add=%f, sub=%f\n ", add(a,b), sub(a,b)); printf("aver =%f", aver(a,b));}float add(float x, float y) {return(x+y);}float sub(float x, float y) {return(x-y);}float aver(float x, float y) {return((x+y)/2);} 2.#include<stdio.h>main(){ int a,b,c,abmax(int,int);scanf("%d%d%d",&a,&b,&c);printf("max=%d\n",abmax(abmax(a,b),c)); }int abmax(int a,int b){if(a>b)return a;else return b;}3.#include <stdio.h>main(){float x,fun(float, int);int n;scanf("%f%d",&x,&n);printf("%f\n", fun(x,n));}float fun(float x, int n){float y;if(n==0)y=1;else y=x*fun(x,n-1);return y;}4.#include <stdio.h>main(){long f(int);int n,k;scanf("%d",&n);for(k=1;k<=n;k++)printf("%ld,",f(k));printf("\n");}long f(int n){long y;if(n<=2)y=1;else y=f(n-1)+f(n-2); return y;}5.#include <stdio.h>#include <string.h> main(){char a[50];int n;void fun(char x[ ],int n); gets(a);n=strlen(a); fun(a,n);puts(a);}void fun(char a[ ],int n) {int k,s;for(k=0;k<n/2;k++) {s=a[k];a[k]=a[n-k-1];a[n-k-1]=s;}}5. (另一做法)#include <stdio.h>#include <string.h> main(){char a[50];int n;void fun(char x[ ],int n); gets(a);n=strlen(a); fun(a,n);puts(a);}void fun(char a[ ],int n) {int k;char b[50];for(k=0;k<n;k++)b[n-1-k]=a[k];b[k]=a[k];strcpy(a,b);}6.#include <stdio.h>#define KK 100main(){char a[KK];long sjz(char a[]);int i=0,f1=0;printf("input a data:");gets(a);for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9'||a[i]>='A'&&a[i]<='F'||a[i]>='a'&&a[i]<='f') continue;else {f1=1;break;}}a[i]='\0';if(f1==1)printf("Data Error!\n");else printf("result is :%d\n",sjz(a));}long sjz(char a[]){long n=0,i;;for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0';if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10;if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10;}return n;}6.(另一做法)#include <stdio.h>#define KK 100main(){char str[KK],c;long sjz(char a[]);int i=0,f1=0;printf("input a data:");while((c=getchar())!='\n'&&i<KK){if(c>='0'&&c<='9'||c>='A'&&c<='F'||c>='a'&&c<='f')str[i++]=c;else f1=1;}str[i]='\0';if(f1==1)printf("Data Error!\n");else printf("result is :%d\n",sjz(str));}long sjz(char a[]){long n=0,i;;for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0';if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10;if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10;}return n;}习题八(P181) (注:无答案的题不在本课程讲授范围内)一.单选题1.D2.A3.C4.D5.C6.B7.C8.C9.C 13.D 14.B 15.A 16.C 17.A 二.填空题1. 指向取地址2. 2 +23. 286. *(p+5)7. ABCD A三.阅读程序题1.102.103.04. 3,65. 1 2 3 4四.程序填空题1.a,b,c或者&x,&y,&z max=*b或者max=y max=*c或者max=z2. ++ =*q ++ ++4. int *a,int *b b[j]=a[i] b[i++]5. *str+=3 *str>’z’&&*str<’a’||*str>’z’ a6. else 0 t[2*j+1]五.程序设计题1.#include <stdio.h>main(){int a[10],*p,*q,t;p=a;for(q=a;q<a+10;q++)scanf("%d",q);for(q=a;q<a+10;q++)printf("%5d",*q);printf("\n");q--;for(;p<q;p++,q--){t=*p;*p=*q;*q=t;}for(p=a;p<a+10;p++)printf("%5d",*p);printf("\n");}2.#include <stdio.h>#include <string.h>void main( ){ char a[50],*p1,*p2,t,n;gets(a);n=strlen(a);p1=a; p2=a+n-1;for(; p1<p2; p1++, p2--){t=*p1; *p1=*p2; *p2=t;}puts(a);}另一做法#include <stdio.h>main(){char str[20],*p=str;gets(str);while(*p)p++;p--;while(p>=str){printf("%c",*p);p--;}printf("\n");}3.#include <stdio.h>main(){int a[10],*p,*max,*min,t;for(p=a;p<a+10;p++)scanf("%d",p); for(p=a;p<a+10;p++)printf("%5d",*p); printf("\n");max=min=a;for(p=a+1;p<a+10;p++){if(*p>*max)max=p;if(*p<*min)min=p;}t=a[0];a[0]=*min;*min=t;t=a[9];a[9]=*max;*max=t;for(p=a;p<a+10;p++)printf("%5d",*p); printf("\n");}5.#include <stdio.h>int length(char *s){int n=0;while(*s){n++;s++;}return n;}main(){char str[20];int n;gets(str);n=length(str);printf("The string length is %d\n",n);}6.#include <stdio.h>main(){char str[81],*p=str,*q,t;gets(str);printf("The origenal string:\n");puts(str);for(p=str;*(p+1);p++)for(q=p+1;*q;q++)if(*q<*p){t=*p;*p=*q;*q=t;}printf("The result string:\n");puts(str);}习题九(P222) (注:无答案的题不在本课程讲授范围内)一.单选题1.D2.A3.B4.D 8.B 9.B 10.C二.填空题1. 结构体成员结构体指针指向2. 343. 224.ex三.阅读程序题1.92.10,x3.134. 46 40 415. 06. 3839。
C语言程序设计(第2版)--课后题答案.

ax2+bx+c=0 的解。
#include<math.h>
main()
{ float a,b,c,disc,x1,x2,p,q;
scanf("%f,%f,%f",&a,&b,&c);
if(fabs(a)<=1e-6) printf(" The equation is not a quadratic\n");
Input a string:a<CR> a ASCII is 97
ASCII 码
3、编写一个程序用于水果店售货员算帐:已知苹果每斤
2.50 元,鸭梨每斤 1.80
元,香蕉每斤 2 元,橘子每斤 1.6 元,要求输入各类水果出应找的钱数。 解: main() { float p,y,x,j,ys,g,fk; printf("apple,pear,banana,orange(weight)="); scanf("%f,%f,%f,%f",&p,&y,&x,&j); ys=2.5*p+1.8*y+2*x+1.6*j; printf("fu kuan="); scanf("%f",&g); fk=g-ys; printf("result:\n"); printf("fukuan=%6.2fyuan\nshoukuan=%6.2fyuan\nzhaohui=%6.2fyuan\n",g
else
{ p=-b/(2*a);
q=sqrt(-disc/(2*a));
printf("%8.4f+%x8.4fi\n",p,q);
C语言程序设计(第2版) 课后题答案

C语言程序设计(第2版) 课后题答案C语言程序设计(第2版) 课后题答案一、基本概念与语言规则1. C语言的特点和用途C语言是一种通用的高级程序设计语言,具有简洁、高效、灵活和可移植等特点。
它广泛应用于系统软件、应用软件和嵌入式系统开发等领域。
2. 标识符的规则标识符是程序中用来标识变量、函数、数组等各种对象的名称。
标识符需要遵守以下规则:- 由字母、数字和下划线组成,首字符必须是字母或下划线。
- 大小写敏感,即大写字母和小写字母被认为是不同的字符。
- 不能使用C语言的关键字作为标识符。
3. 变量和常量变量是用来存储数据的内存单元,而常量是不可改变的数据值。
在C语言中,变量需要先声明后使用,而常量可以直接使用。
4. 数据类型和类型转换C语言提供了多种数据类型,包括整型、浮点型、字符型等。
不同的数据类型可以存储不同范围和精度的数据。
在需要的时候,可以进行数据类型的转换。
5. 运算符和表达式C语言支持多种运算符,包括算术运算符、逻辑运算符、比较运算符等。
表达式是由运算符和操作数组成的式子,可以进行各种计算和逻辑判断。
6. 控制结构C语言提供了多种控制结构,包括顺序结构、条件结构和循环结构。
通过这些结构可以实现程序的分支和循环操作。
二、函数和数组1. 函数的定义和调用函数是C语言程序的基本模块,可以完成特定的任务。
函数的定义包括函数名、参数列表、返回值类型和函数体。
函数的调用通过函数名和实参来完成。
2. 数组的定义和使用数组是一组相同类型的数据元素的集合。
在C语言中,数组可以用来存储多个同类型的数据,并通过下标来访问和操作数组元素。
三、指针和字符串1. 指针的概念和使用指针是C语言中的一个重要概念,它代表一个内存地址。
通过指针可以直接访问内存中的数据,可以用来提高程序的效率和灵活性。
2. 字符串的概念和操作字符串是由字符组成的数组,以空字符'\0'结尾。
C语言提供了多种操作字符串的函数,如字符串的复制、连接、比较等。
c语言程序设计教程(第2版)完整编程答案1-8章

9 c 32 ,程序中有多处错误, 5
请改正错误后运行正确的程序。 答:#include <stdio.h> #include <stdio.h> main() main() {float c=0,f=0; {float c=0,F=0; printf("input c:"); printf("input c:"); scanf("%f",&c); scanf("%f", c); f=((float)9/5)*c+32; f=(9/5)·c+32; printf("c=%f,f=%f\n",c,f); print("c=%f,f=%f\n",&c,&f); } } 扩展:把程序功能改为:输入华氏温度 f,计算摄氏温度 c。 #include <stdio.h> main()
0 x 2 2、编写程序,求下面分段函数的值,要求 x 的值从键盘输入。 y 2 x 3 10
(当x 0时) (当0 x 5时) (当5 x 10时) (当x 10时)
#include <stdio.h> main() { double x=0.0,y=0.0; int k=0; scanf("%lf",&x); k=1*(x<0)+2*(x>=0&&x<5)+3*(x>=5&&x<10)+4*(x>=10); switch(k) { case 1: y=0;break; case 2: y=x+2;break; case 3: y=x*x-3;break; case 4: y=10;break; } printf("x=%lf,y=%lf\n",x,y); } 训练 3.1:输入一个字符,如果是数字字符,则转换成对应的数字。 #include <stdio.h> main() { char ch='\0'; int a=-1; ch=getchar(); if(ch>='0'&&ch<='9') { a=ch-'0'; printf("charter %c ,digit:%d\n",ch,a); } else printf("%c is not digit\n",ch); } 扩展:将程序的功能改为:如果所输入的字符为大写字母,则将其转换为小写字母。请使用库函数判断和转 换。 #include <stdio.h> #include <ctype.h> main() { char ch='\0'; ch=getchar(); printf("the input charter is %c \n",ch); if(isupper(ch)) { ch=tolower(ch); printf("The corresponding lowercase letter is %c\n",ch); } else printf("It is not the capital letter!\n"); } 训练 3.2:求一元二次方程 ax2+bx+c=0 的实根(要求 a,b,c 的值从键盘输入,a≠0) #include <stdio.h> #include <math.h> main()
课后题答案-C语言程序设计(第2版)

《C语言程序设计能力教程(第二版)》课后作业及实训题参考答案第1章进入C语言程序世界二、1. I love China!printf("we are students.\n")2. 6项目实训题参考答案1.编写一个C程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *I am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf("********************\n");printf(" I am a student!\n ");printf("********************\n");}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。
解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf("v=%d",v);}本程序运行结果为:v=3000第2章编制C程序的基础知识一选择题C B A B A C C二操作题,2,-8,23.000000,2.500000,-8.0000002. ABC DEFGHwhy is 21+35 equal 523.3 14 32 31 24. aa bb cc abcA N项目实训题1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。
#define M 5main(){ int n,c;n=2; c=M*n;printf("%d\n",c); }2.编程求下面算术表达式的值。
(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。
c语言程序设计第2版习题答案

c语言程序设计第2版习题答案C语言程序设计是计算机科学与技术专业中非常重要的一门基础课程,它涵盖了计算机程序设计的基本原理和方法。
《C语言程序设计》第2版是一本经典的教材,它为学习者提供了大量的习题,帮助他们巩固所学的知识。
本文将为读者提供一些《C语言程序设计》第2版习题的参考答案,希望对读者的学习有所帮助。
第一章:C语言概述1. 什么是C语言?C语言是一种通用的高级程序设计语言,由贝尔实验室的Dennis M. Ritchie于1972年开发。
它具有简洁、高效、灵活的特点,被广泛应用于系统软件、嵌入式系统、游戏开发等领域。
2. C语言的特点有哪些?C语言具有以下特点:- 结构化:C语言支持模块化和结构化的程序设计,使得程序的开发和维护更加方便。
- 高效:C语言的执行效率高,生成的机器码运行速度快。
- 可移植性:C语言编写的程序可以在不同的计算机平台上运行,具有很强的可移植性。
- 强大的库支持:C语言拥有丰富的库函数,可以方便地完成各种操作。
第二章:基本数据类型、运算符和表达式1. C语言的基本数据类型有哪些?C语言的基本数据类型包括整型、字符型、浮点型和指针类型。
其中,整型包括int、short、long和char等;浮点型包括float和double;指针类型用于存储内存地址。
2. 请编写一个程序,交换两个变量的值。
```c#include <stdio.h>void swap(int* a, int* b) {int temp = *a;*a = *b;*b = temp;}int main() {int x = 5;int y = 10;printf("交换前:x = %d, y = %d\n", x, y);swap(&x, &y);printf("交换后:x = %d, y = %d\n", x, y);return 0;}```第三章:控制语句1. 请编写一个程序,判断一个数是否为素数。
(完整版)C语言程序设计课后习题答案

(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?
(3)整形变量与字符变量是否在任何情况下都可以互相代替?如:charc1,c2;与intc1,c2;是否无条件地等价?
解 :#include<stdio.h> void main()
printf(“Verygood!\n”);printf(“\n”);
printf(“**************************”);
}
2.编写一个C程序,输入a、b、c三个值,输出其中最大值。解:
#include<stdio.h> void main()
{
int a,b,c,max;
printf(“请输入三个数a,b,c:\n”);
解 :#include<stdio.h> #include<math.h> void main()
{
double P, r=0.1, n=10;
P=pow((1+r), n);
printf(“%lf\n”, P);
}
3.请编程序将“China”译成密码,译码规律是用原来字母后面的第4个字母代替原来的字母。
printf(“c1=%d c2=%d\n”,c1,c2); printf(“c1=%c c2=%c\n”,c1,c2);
}
第四章
3.写出下面各逻辑表达式的值。设a=3,b=4,c=5。
(1)a+b>c&&b==c
(2)a||b+c&&b-c (3)!(a>b)&&!c||1
C语言程序设计[第二版]习题参考答案解析
![C语言程序设计[第二版]习题参考答案解析](https://img.taocdn.com/s3/m/abb7dd5baf1ffc4ffe47acc5.png)
. WORD格式整理. .C语言程序设计习题参考答案习题 1一、判断题1.在计算机中,小数点和正负号都有专用部件来保存和表示。
2.二进制是由0和1两个数字组成的进制方式。
3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。
4.在整数的二进制表示方法中,0的原码、反码都有两种形式。
5.有符号数有三种表示法:原码、反码和补码。
6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。
解:1.F 2.T 3.T 4.T 5.T 6.T二、单选题1.在计算机中,最适合进行数值加减运算的数值编码是。
A. 原码B. 反码C. 补码D. 移码2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数。
A. 112B. 120C. 121D. 1223.关于ASCII码,在计算机中的表示方法准确地描述是。
A. 使用8位二进制数,最右边一位为1B. 使用8位二进制数,最左边一位为1C. 使用8位二进制数,最右边一位为0D. 使用8位二进制数,最左边一位为04.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。
A. X∧Y=1000B. X∨Y=1111C. X⊕Y=0011D. ¯Y=10005.下列叙述中正确的是()。
A.高级语言就是机器语言B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。
A.生成可执行文件B.生成目标文件C.输出运行结果D.自动保存源文件7.下列叙述中不正确的是()。
A.main函数在C程序中必须有且只有一个B. C程序的执行从main函数开始,所以main函数必须放在程序最前面C. 函数可以带参数,也可以不带参数。
c语言程序设计教程(第2版)课后题及模拟题参考答案

c语⾔程序设计教程(第2版)课后题及模拟题参考答案c语⾔程序设计教程(第2版)课后题及模拟题参考答案习题1 (4)1-1 填空题 (4)1-2 思考题 (4)1-3 编程题 (5)习题2 (6)2-1 单选题 (6)2-2 思考题 (6)习题3 (7)3-1 选择题 (7)3-2 填空题 (7)3-3 编程题 (8)习题4 (11)4-1单选题 (11)4-2填空题 (11)4-3 编程题 (11)习题5 (16)5-1单选题 (16)5-2填空题 (16)5-3 编程题 (16)习题6 (22)6-1单选题 (22)6-2填空题 (22)习题7 (25)7-1单选题 (25)7-2填空题 (25)7-3 编程题 (25)习题8 (26)8-1单选题 (26)8-2填空题 (26)8-3 编程题 (26)习题9 (30)9-1单选题 (30)9-2填空题 (30)9-3 编程题 (30)习题10 (38)10-1单选题 (38)10-2填空题 (38)10-3 编程题 (38)习题11 (41)11-1单选题 (41)11-2填空题 (41)习题12 (42)12-1单选题 (42)12-2 填空题 (42)实验1 熟悉Visual C++6.0可视化集成开发环境 (43)实验2 顺序结构程序设计 (43)实验3 选择结构程序设计 (43)实验4 循环结构程序设计 (44)实验5 函数 (47)实验6 数组 (54)实验7 指针 (58)实验8 结构体和共⽤体 (61)实验9 ⽂件 (63)实验10 综合编程 (64)模拟试卷(⼀)参考答案 (65)模拟试卷(⼆)参考答案 (67)习题11-1 填空题1. 函数2. 主函数main(),主函数main()3. 主函数main()4. 函数⾸部,函数体5. {, }6. /*, */7. 顺序结构,选择结构,循环结构8. .c, .obj, .exe1-2 思考题1. 结构化程序设计是指:为使程序具有⼀个合理的结构以保证程序正确性⽽规定的⼀套如何进⾏程序设计的原则。
二级C语言课本课后习题参考答案

二级C语言课本课后习题参考答案第一章程序设计基本概念**************************************************(1) exe(2) C,obj , exe(3) 顺序,选择,循环***************End of Chapter 1*******************第二章C程序设计的初步知识**************************************************一、选择题(1) B (2) D (3) B (4) A (5) C(6) A (7) B (8) B (9) A (10) C(11)B (12)B (13)A二、填空题(14)11,12(15) 4.2,4.2(16) { ,} 说明,执行(17) 关键字,用户标识符(18) int ,float ,double(19) float a1=1,a2=1 ;(20) 存储单元(21) 3.5(22) a*b/c a/c*b a*(b/c)(23) 10赋给变量s(24) 位,0或1(25) 8 ,255 ,11111111,0,00000000(26) 32767 ,-32768 ,10000000 00000000(27)十,八,十六三、上机改错题——————————————————————————————————————(28) 请指出以下C程序的错误所在#include stdio.h ;main( ); / * main function * /float r, s; /* /*r is radius*/,/*s is area of circular*/*/r = 5.0 ;s=3.14159 * r * r ;printf("%f\n",s);※正确应为:#include 或#include"stdio.h"main( ) /* main function */{float r,s; /*r is radius, s is area of circular*/r = 5.0 ;s = 3.14159 * r * r ;printf("%f\n",s);} ——————————————————————————————————————(29) 请指出以下C程序的错误所在#include stdio.hmain /* main function */{float a,b,c,v; /*a,b,c are sides, v is volume of cube*/a = 2.0 ;b = 3.0 ;c = 4.0v = a * b * c;printf("%f\n",v);}※正确应为:#include"stdio.h"main( ) /* main function */{float a,b,c,v; /*a,b,c are sides, v is volume of cube*/a = 2.0 ;b = 3.0 ;c = 4.0;v = a * b * c;printf("%f\n",v);}***************End of Chapter 2*******************第三章顺序结构**************************************************一、选择题(1) C (2) C (3) D (4) C (5) D(6) B (7) C (8) D (9) A (10)B(11)C (12)D (13)D (14)A (15)C(16)C (17)C (18)均不对,应为scanf( “%6f”,&c) (18) C (20) B二、填空题(21) ①-200,2500 ②i=-200, j=2500 ③i = -200 , j = 2500(22) 12 ,0 ,0(23) 语句块,{ ;}(24) ;(25) 100<空格>25.81<空格>1.89234 /*可用一个或几个空格作为输入时的间隔符*/ 10025.811.89234 /*Tab(制表符)也可以作为输入时的间隔符*/10025.811.89234 /*CR(回车符)也可以作为输入时的间隔符*/(26) x = 127,x =ццц127,x=ццц177, x=цццц7f, x=ццц127。
c语言程序设计(第二版)习题参考答案1

C语言程序设计习题参考答案习题 1一、判定题1.在运算机中,小数点和正负号都有专用部件来保留和表示。
2.二进制是由0和1两个数字组成的进制方式。
3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。
4.在整数的二进制表示方式中,0的原码、反码都有两种形式。
5.有符号数有三种表示法:原码、反码和补码。
6.经常使用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。
解:1.F 2.T 3.T 4.T 5.T 6.T二、单项选择题1.在运算机中,最适合进行数值加减运算的数值编码是。
A. 原码B. 反码C. 补码D. 移码2.已知英文小写字母m的ASCII码为十进制数109,那么英文小写字母y的ASCII码为十进制数。
A. 112B. 120C. 121D. 1223.关于ASCII码,在运算机中的表示方式准确地描述是。
A. 利用8位二进制数,最右边一名为1B. 利用8位二进制数,最左侧一名为1C. 利用8位二进制数,最右边一名为0D. 利用8位二进制数,最左侧一名为04.设在机械字长4位,X=0111B,Y=1011B,那么以下逻辑运算中,正确的选项是___________。
A. X∧Y=1000B. X∨Y=1111C. X⊕Y=0011D. ¯Y=10005.以下表达中正确的选项是()。
A.高级语言确实是机械语言B.汇编语言程序、高级语言程序都是运算机程序,但只有机械语言程序才是运算性能够直接识别并执行的程序C.C语言因为具有汇编语言的一些特性,因此是汇编语言的一种D.C源程序通过编译、连接,假设正确,执行后就能够取得正确的运行结果6.用C 语言编写的源程序通过编译后,假设没有产生编译错误,那么系统将( )。
A .生成可执行文件B .生成目标文件C .输出运行结果D .自动保留源文件7.以下表达中不正确的选项是( )。
A .main 函数在C 程序中必需有且只有一个B. C 程序的执行从main 函数开始,因此main 函数必需放在程序最前面C. 函数能够带参数,也能够不带参数。
C语言程序设计(第二版)习题参考答案

C语言程序设计(第二版)习题参考答案为了适应标题所需的字数限制,我将按照适当的格式和排版要求来回答C语言程序设计(第二版)习题的参考答案。
以下是部分习题的解答示例:1. 基本概念与语法1.1 变量和数据类型C语言中的变量用于存储不同类型的数据。
常见的数据类型包括整型、浮点型、字符型等。
例如,声明一个整型变量x并赋值为10的方法如下:```cint x = 10;```1.2 操作符和表达式C语言提供了丰富的操作符和表达式,用于进行数值计算和逻辑判断。
例如,使用逻辑与(&&)操作符可以判断两个条件同时成立的情况,示例如下:```cif (x > 0 && x < 100) {// 满足条件的代码```2. 流程控制2.1 分支结构流程控制中的分支结构用于根据条件来执行不同的代码块。
常见的分支结构有if语句和switch语句。
例如,使用if语句判断一个数的正负情况:```cif (x > 0) {printf("x是正数\n");} else if (x < 0) {printf("x是负数\n");} else {printf("x是零\n");}```2.2 循环结构循环结构用于多次执行相同的代码块。
常见的循环结构有for循环、while循环和do-while循环。
例如,使用for循环输出1到10的数字:for (int i = 1; i <= 10; i++) {printf("%d ", i);}printf("\n");```3. 函数和数组3.1 函数的定义和调用函数是一段完成特定功能的代码块,可以多次调用。
函数的定义包括函数名、参数列表和返回值类型。
例如,定义一个用于计算两个整数相加的函数:```cint add(int a, int b) {return a + b;}// 调用add函数int result = add(3, 5);printf("3 + 5 = %d\n", result);```3.2 数组的定义和使用数组是一种存储相同类型数据的集合。
C语言程序设计实例教程 第2版 习题答案

C语言程序设计实例教程第2版习题答案本书是关于C语言程序设计实例教程的第二版,旨在通过提供丰富多样的习题和答案,帮助读者更好地理解和掌握C语言程序设计的基础知识和技巧。
本文将为您提供习题答案的详细解析,以帮助您更好地学习和巩固所学的知识。
1. C语言程序设计基础习题答案1.1 习题1题目描述:编写一个程序,求解并输出两个整数相加的结果。
解析:可以使用C语言中的加法运算符进行两个整数相加的计算。
具体实现代码如下:```c#include <stdio.h>int main() {int a, b;printf("请输入两个整数:");scanf("%d %d", &a, &b);int sum = a + b;printf("两个整数的和为:%d\n", sum);return 0;}```1.2 习题2题目描述:编写一个程序,求解并输出一个整数的平方。
解析:可以使用C语言中的乘法运算符进行整数的平方计算。
具体实现代码如下:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);int square = num * num;printf("整数的平方为:%d\n", square);return 0;}```2. C语言程序设计进阶习题答案2.1 习题3题目描述:编写一个程序,求解并输出一个整数的阶乘。
解析:可以使用循环结构来计算一个整数的阶乘,具体实现代码如下:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);int factorial = 1;for (int i = 1; i <= num; i++) {factorial *= i;}printf("整数的阶乘为:%d\n", factorial);return 0;}```2.2 习题4题目描述:编写一个程序,求解并输出一个正整数的所有因子。
C语言程序设计教程(第2版)课后习题答案(完美版)

C语言程序设计教程(第二版)课后习题答案第一章C语言程序设计概述-习题答案1算法的描述有哪些基本方法?答1、自然语言2、专用工具2 C语言程序的基本结构是怎样的?举一个例子说明。
答1、C语言程序由函数构成;2、“/*”与“*/”之间的内容构成C语言程序的注释部分;3、用预处理命令#include、#define可以包含有关文件或预定义信息;4、大小写字母在C语言中是有区别的;5、除main()函数和标准库函数外,用户也可以自己编写函数,应用程序一般由多个函数组成,这些函数指定实际所需要做的工作。
3 C语言有什么特点?答1、具有结构语言的特点,程序之间很容易实现段的共享;2、主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译代码,以实现程序的模块化;3、运算符丰富,包含的范围很广;4、数据类型丰富;5、允许直接访问物理地址,即可直接对硬件进行损伤,实现汇编语言的大部分功能;6、限制不太严格,程序设计自由度大,这样使C语言能够减少对程序员的束缚;7、生成的目标代码质量,程序执行效率高,同时C语言编写的程序的可移植性好。
4★指出合法与不合法的标识符命名。
答AB12--√leed_3-- a*b2--× 8stu--× D.K.Jon--× EF3_3--√ PAS--√ if--× XYZ43K2 --√ AVE#XY--× _762--√ #_DT5--× C.D--×5说明下列Turbo C热键的功能。
答F2:源文件存盘 F10:调用主菜单 F4:程序运行到光标所在行(用于调试程序) Ctrl+F9:编译并链接成可执行文件 Alt+F5:将窗口切换到 DOS 下,查看程序运行结果。
6说明下列Turbo C方式下输入并运行下列程序,记录下运行结果。
①main(){printf("********************\n");printf(" welcome you \n");printf(" very good \n);printf("********************\n");}②main()printf("please input three numbers;");scanf("%d,%d,%d",&a,&b,&c); /*教材S是错误的*/t=max(max(a,b),c);printf("max number is:%d\n",t);}int max(int x, int y){ int z;if(x>y)z=x;else z=y;return(z);}答运行结果:********************welcome youvery good********************运行结果:please input three numbers;3,1,4 /*左侧下划线内容为键盘输入*/max number is:47一个C程序是由若干个函数构成的,其中有且只能有一个___函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章12、#include <stdio.h>#include <stdlib.h>int main(){char a;scanf("%c",&a);if(a>'A'&&a<'Z')printf("%c,%c\n",a-1,a+1);else if(a=='A')printf("没有前面字母");else if(a=='Z')printf("没有后面字母\n");return 0;}3、#include <stdio.h>#include <stdlib.h>int main(){int a;scanf("%d",&a);if(a>=90&&a<=100)printf("A\n");else if(a>=80&&a<=89)printf("B\n");else if(a>=70&&a<=79)printf("C\n");else if(a>=60&&a<=69)printf("D\n");elseprintf("E\n");return 0;}4、#include <stdio.h>int main(){int year,month,day;int maxdays[]={31,28,31,30,31,30,31,31,30,31,30,31};printf("请输入年月日,中间用空格隔开!\n");scanf("%d %d %d",&year,&month,&day);if(year%400==0 || (year%4==0 && year%100!=0)) maxdays[1]=29;if(month>12 || month<1){printf("日期不合法!\n");return 0;}if(day>maxdays[month-1]){printf("日期不合法!\n");return 0;}day++;if(day==maxdays[month-1]){ day=1;month++;if(month==12){month=1;year++;}}printf("明天的日期是:%d-%d-%d\n",year,month,day);return 0;}5、#include <stdio.h>int main(){double a,b,c;scanf("%lf%lf%lf",&a,&b,&c);if((a+b)>c&&(a+c)>b&&(b+c)>a)if(a==b&&b==c&&c==a)printf("等边三角形\n");else if((a==b)||(a==c)||(b==c))printf("等腰三角形\n");else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)printf("直角三角形\n");elseprintf("任意三角形\n");elseprintf("不能构成三角形");return 0;}第六章1、#include <stdio.h>int main(){int m,n,t,a,b;scanf("%d %d",&m,&n);b=m*n;if (m==n){printf("最小公倍数为:%d\n",m);}else if(m<n){t=m;m=n;n=t;while(n!=0){a=m%n;m=n;n=a;}printf("最小公倍数为:%d\n",b/m);}else{while(n!=0){a=m%n;m=n;n=a;}printf("最小公倍数为:%d\n",b/m);}return 0;}2、#include <stdio.h>int main(){int n,i,s,j;scanf("%d",&n);for(j=1;j<=n;j++){ s=0;for(i=1;i<j;i++){if(j%i==0)s=s+i;}if(s==j)printf("%d ",j);}return 0;}3、#include <stdio.h>int main(){double x,y,max=50,min=50;for(x=0;x<=2;x=x+0.2){y=2*(x*x*x)-3*(x*x*x*x)+6*(x*x*x*x*x)-4*x+50;printf("当x=%.1f时,y=%f\n",x,y);if(y>max)max=y;if(y<min)min=y;}printf("最大值为:%f\n",max);printf("最小值为:%f\n",min);return 0;}4、#include "stdio.h"#include "math.h"#define N 10double acc(int n){int i,t=1;for(i=1;i<=n;i++)t=t*i;return t;}double accu(float x,int n){int y=2*n-1;return pow(x,y)/(y*acc(n-1)); }int main(){ int i;double y=0;for(i=1;i<=N;i++)y=y+accu(0.5,i);printf("x=0.5时y=%f\n",y);y=0;for(i=1;i<=N;i++)y=y+accu(1.0,i);printf("x=1.0时y=%f\n",y);y=0;for(i=1;i<=N;i++)y=y+accu(2.0,i);printf("x=2.0时y=%f\n",y);y=0;for(i=1;i<=N;i++)y=y+accu(3.0,i);printf("x=3.0时y=%f\n",y);y=0;for(i=1;i<=N;i++)y=y+accu(4.0,i);printf("x=4.0时y=%f\n",y); return 0;}5、略第七章、1、#include <stdio.h>#include <stdlib.h>int main(){ int i,j,t,a[10];for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)for(j=i+1;j<10;j++){if(a[j]<a[i]){t=a[i];a[i]=a[j];a[j]=t;}}for(i=0;i<10;i++)printf("%d ",a[i]);return 0;}2、#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){int i,j,a[4][4];int s=1;srand(time(NULL));for(i=0;i<4;i++){for(j=0;j<4;j++){a[i][j]=rand()%100;printf("%d ",a[i][j]);}printf("\n");}for(i=0;i<4;i++)for(j=0;j<4;j++){if(i==j)s=s*a[i][j];}printf("%d\n",s);return 0;}3、#include <stdio.h>#include <stdlib.h>int main(){int i,j,a[7][7];for(i=0;i<7;i++){for(j=0;j<=i;j++){if(i>=2&&j>=1&&j<i){a[i][j]=a[i-1][j-1]+a[i-1][j];printf("%d ",a[i][j]);}else{a[i][j]=1;printf("%d ",a[i][j]);}}printf("\n");}return 0;}4、#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){int i,t,j=1;char str[80];printf("输入一个字符串:");gets(str);t=strlen(str);for(i=0;i<t/2;i++)if(str[i]!=str[t-i-1]){j=0;break;}switch(j){case 0:printf("该字符串不是回文");break;case 1:printf("该字符串是回文");}return 0;}5、#include <stdio.h>#include <stdlib.h>int main(){int i,j=0,temp,max,min,a[10];for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=1;i<10;i++){if(a[i]<a[j]){min=a[i];j=i;}}temp=a[0];a[0]=min;a[j]=temp;j=0;for(i=1;i<10;i++){if(a[i]>a[j]){max=a[i];j=i;}}temp=a[9];a[9]=max;a[j]=temp;for(i=0;i<10;i++)printf("%d ",a[i]);return 0;}第八章、1、#include <stdio.h>#include <stdlib.h>int sch_min(int a[5][5]){int i,min;min=a[0][0];for(i=1;i<5;i++)if(a[i][i]<min)min=a[i][i];return min;}int main(){ int i,j,a[5][5];for(i=0;i<5;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j]);printf("%d",sch_min(a));return 0;}2、#include <stdio.h>#include <stdlib.h>float fan(float x,int n){if(n==1)return x;elsereturn x*fan(x,n-1);}int main(){ float x,k;int n;scanf("%f %d",&x,&n);k=fan(x,n);printf("%f",k);return 0;}3、#include <stdio.h>#include <stdlib.h>int fan(int a[],int n,int b){int i;for(i=0;i<n;i++)if(a[i]==b)return i;return 0;}int main(){ int a[10],b,i,k;printf("请输入数组的值:");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("请输入您想查找的值:");scanf("%d",&b);k=fan(a,10,b);if(k==0)printf("没有您要找的值");elseprintf("您要找的值在数组中的位置是%d\n",k+1);return 0;}4、#include <stdio.h>#include <stdlib.h>float pave,nave;void saver(int a[],int n){int i,k;pave=0;nave=0;k=0;for(i=0;i<n;i++)if(a[i]<0){nave+=a[i];k++;}if(k==0)nave=0;elsenave/=k;k=0;for(i=0;i<n;i++)if(a[i]>0){pave+=a[i];k++;}if(k==0)pave=0;elsepave/=k;}int main(){ int a[5],i;for(i=0;i<5;i++)scanf("%d",&a[i]);saver(a,5);printf("%f %f",pave,nave);return 0;}5、#include<stdio.h>#include<math.h>void deltaZero(double a,double b,double c){ double ans=-b/(2*a);printf("x1=x2=%lf\n",ans);}void deltaLargerZero(double a,double b,double c) { double ans1,ans2,d;d=b*b-4*a*c;ans1 = (-b+sqrt(d))/(2*a);ans2 = (-b-sqrt(d))/(2*a);printf("x1=%lf,x2=%lf\n",ans1,ans2);}void deltaLessZero(double a,double b,double c){ double real,imar,d;d=b*b-4*a*c;real = -b/(2*a);imar = sqrt(-d)/(2*a);printf("x1=%lf+%lfi,x2=%lf-%lfi\n",real,imar,real,imar);}void main(){ double a,b,c,x;double d;printf("please input a,b,c\n");scanf("%lf,%lf,%lf",&a,&b,&c);if(a==0&&b==0)printf("没根");else if(a==0&&c==0)printf("x=%f",x=0);else{d=b*b-4*a*c;if(d==0) deltaZero(a,b,c);else if(d>0) deltaLargerZero(a,b,c);else if(d<0) deltaLessZero(a,b,c);}}6、#include<stdio.h>void fan(int a[10][5]){int i,j;double sum;double aver;for(j=0;j<5;j++){ sum=0;for(i=0;i<10;i++){sum+=a[i][j];}aver=sum/10;printf("第%d门课平均分为%f\n",j+1,aver);}}void gan(int a[10][5]){int i,j,t,a1,b1;for(i=0;i<10;i++)for(j=0;j<5;j++){if(a[i][j]>a[0][0]){t=a[i][j];a[i][j]=a[0][0];a[0][0]=t;a1=i;b1=j;}}printf("最高分是%d号学生,课程是第%d门\n",a1+1,b1+1); }void main(){int a[10][5],i,j;for(i=0;i<10;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j]);fan(a);gan(a);}。