《C语言程序设计》课后习题答案(第四版)谭浩强.pdf
《《C语言程序设计》课后习题答案(第四版)谭浩强.pdf》由会员分享,可在线阅读,更多相关《《C语言程序设计》课后习题答案(第四版)谭浩强.pdf(115页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 1 章程序设计和 C 语言 1什么是计算机程序 1什么是计算机语言 1语言的发展及其特点 3最简单的 C 语言程序 5最简单的 C 语言程序举例 6语言程序的结构 10运行 C 程序的步骤与方法 12程序设计的任务 141-5#include int main()printf(*nn);printf(Very Good!nn);printf(*n);return 0;1-6#include int 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(
2、maxc)max=c;printf(The largest number is%dn,max);return 0;第 2 章算法程序的灵魂16什么是算法 16简单的算法举例 17算法的特性 21怎样表示一个算法 22用自然语言表示算法 22用流程图表示算法 22三种基本结构和改进的流程图26用 NS 流程图表示算法 28用伪代码表示算法 31用计算机语言表示算法 32结构化程序设计方法 34习题 36第章最简单的 C 程序设计顺序程序设计37顺序程序设计举例 37数据的表现形式及其运算39常量和变量 39数据类型 42整型数据 44字符型数据 47浮点型数据 49怎样确定常量的类型 51运算符
3、和表达式 52语句 57语句的作用和分类 57最基本的语句赋值语句59数据的输入输出 65输入输出举例 65有关数据输入输出的概念67用 printf 函数输出数据 68用 scanf 函数输入数据 75字符数据的输入输出 78习题 823-1#include#include int main()float p,r,n;r=;n=10;p=pow(1+r,n);printf(p=%fn,p);return 0;3-2-1#include#include int main()float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=;r3=;r2=;r1=;
4、r0=;p1=p*(1+r5)*5);#include#include int main()float d=300000,p=6000,r=,m;m=log10(p/(p-d*r)/log10(1+r);printf(m=%n,m);return 0;3-4#include int main()int c1,c2;c1=197;c2=198;printf(c1=%c,c2=%cn,c1,c2);printf(c1=%d,c2=%dn,c1,c2);return 0;3-5#include int main()int a,b;float x,y;char c1,c2;scanf(a=%d b=%
5、d,&a,&b);scanf(%f%e,&x,&y);scanf(%c%c,&c1,&c2);printf(a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%cn,a,b,x,y,c1,c2);return 0;3-6#include int main()char c1=C,c2=h,c3=i,c4=n,c5=a;c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf(passwor is%c%c%c%c%cn,c1,c2,c3,c4,c5);return 0;3-7#include int main()float h,r,l,s,sq,vq,v
6、z;float pi=;printf(请输入圆半径 r,圆柱高 h);scanf(%f,%f,&r,&h);#include int main()int x,y;printf(输入 x:);scanf(%d,&x);if(x1)/*x1*/y=x;printf(x=%3d,y=x=%dn,x,y);else if(x10)/*1=x=10 */y=3*x-11;printf(x=%d,y=3*x-11=%dn,x,y);return 0;4-7-1#include int main()int x,y;printf(enter x:);scanf(%d,&x);y=-1;if(x!=0)if(x
7、0)y=1;else y=0;printf(x=%d,y=%dn,x,y);return 0;4-7-2#include int main()int x,y;printf(please enter x:);scanf(%d,&x);y=0;if(x=0)if(x0)y=1;else y=-1;printf(x=%d,y=%dn,x,y);return 0;4-8#include int main()float score;char grade;printf(请输入学生成绩:);scanf(%f,&score);while(score100|score0)printf(n 输入有误,请重输);s
8、canf(%f,&score);switch(int)(score/10)case 10:case 9:grade=A;break;case 8:grade=B;break;case 7:grade=C;break;case 6:grade=D;break;case 5:case 4:case 3:case 2:case 1:case 0:grade=E;printf(成绩是%,相应的等级是%cn,score,grade);return 0;4-9#include#include int main()int num,indiv,ten,hundred,thousand,ten_thousand
9、,place;.=%dn,sn);return 0;5-6#include int main()double s=0,t=1;int n;for(n=1;n=20;n+)t=t*n;s=s+t;printf(1!+2!+.+20!=%n,s);return 0;5-7#include int main()int n1=100,n2=50,n3=10;double k,s1=0,s2=0,s3=0;for(k=1;k=n1;k+)/*计算 1 到 100 的和*/s1=s1+k;for(k=1;k=n2;k+)/*计算 1 到 50 各数的平方和*/s2=s2+k*k;for(k=1;k=n3;
10、k+)/*计算 1 到 10 的各倒数和*/s3=s3+1/k;printf(sum=%n,s1+s2+s3);return 0;5-8#include int main()int i,j,k,n;printf(parcissus numbers are);for(n=100;n1000;n+)i=n/100;j=n/10-i*10;k=n%10;if(n=i*i*i+j*j*j+k*k*k)printf(%d,n);printf(n);return 0;5-9-1#define M 1000 /*定义寻找范围*/#include int main()int k1,k2,k3,k4,k5,k6
11、,k7,k8,k9,k10;int i,a,n,s;for(a=2;a=M;a+)/*a是 2-1000 之间的整数,检查它是否完数*/n=0;/*n用来累计 a 的因子的个数*/s=a;/*s用来存放尚未求出的因子之和,开始时等于a*/for(i=1;i1)printf(%d,%d,k1,k2);/*n1表示 a 至少有 2 个因子*/if(n2)printf(,%d,k3);/*n2 表示至少有 3 个因子,故应再输出一个因子*/if(n3)printf(,%d,k4);/*n3子*/if(n4)printf(,%d,k5);/*if(n5)printf(,%d,k6);if(n6)pri
12、ntf(,%d,k7);if(n7)printf(,%d,k8);if(n8)printf(,%d,k9);if(n9)printf(,%d,k10);printf(n);return 0;5-9-2#include int main()int m,s,i;for(m=2;m1000;m+)s=0;表示至少有 4 个因子,故应再输出一个因以下类似*/for(i=1;im;i+)if(m%i)=0)s=s+i;if(s=m)printf(%d,its factors are,m);for(i=1;im;i+)if(m%i=0)printf(%d,i);printf(n);return 0;5-1
13、0#include int main()int i,n=20;double a=2,b=1,s=0,t;for(i=1;i=n;i+)s=s+a/b;t=a,a=a+b,b=t;printf(sum=%n,s);return 0;5-11#include int main()double sn=100,hn=sn/2;int n;for(n=2;n=10;n+)sn=sn+2*hn;/*第 n 次落地时共经过的米数*/hn=hn/2;/*第 n 次反跳高度*/printf(第 10 次落地时共经过%f 米n,sn);printf(第 10 次反弹%f 米n,hn);return 0;5-12#
14、include int main()int day,x1,x2;day=9;x2=1;while(day0)x1=(x2+1)*2;/*第 1 天的桃子数是第 2 天桃子数加 1 后的 2 倍.*/x2=x1;day-;printf(total=%dn,x1);return 0;5-13#include#include int main()float a,x0,x1;printf(enter a positive number:);scanf(%f,&a);x0=a/2;x1=(x0+a/x0)/2;do x0=x1;x1=(x0+a/x0)/2;while(fabs(x0-x1)=1e-5)
15、;printf(The square root of%is%n,a,x1);return 0;5-14#include#include int main()double x1,x0,f,f1;x1=;do x0=x1;f=(2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x1=x0-f/f1;while(fabs(x1-x0)=1e-5);printf(The root of equation is%n,x1);return 0;5-15#include#include int main()float x0,x1,x2,fx0,fx1,fx2;do printf(ent
16、er x1&x2:);scanf(%f,%f,&x1,&x2);fx1=x1*(2*x1-4)*x1+3)-6;fx2=x2*(2*x2-4)*x2+3)-6;while(fx1*fx20);do x0=(x1+x2)/2;fx0=x0*(2*x0-4)*x0+3)-6;if(fx0*fx1)=1e-5);printf(x=%n,x0);return 0;5-16#include int main()int i,j,k;for(i=0;i=3;i+)for(j=0;j=2-i;j+)printf();for(k=0;k=2*i;k+)printf(*);printf(n);for(i=0;i=
17、2;i+)for(j=0;j=i;j+)printf();for(k=0;k=4-2*i;k+)printf(*);printf(n);return 0;5-17#include int main()char i,j,k;/*是 a 的对手;j 是 b 的对手;k 是 c 的对手*/for(i=x;i=z;i+)for(j=x;j=z;j+)if(i!=j)for(k=x;k=z;k+)if(i!=k&j!=k)if(i!=x&k!=x&k!=z)printf(A-%cnB-%cnC-%cn,i,j,k);return 0;第 6 章利用数组处理批量数据142怎样定义和引用一维数组142怎样定
18、义一维数组 143怎样引用一维数组元素 144一维数组的初始化 145一维数组程序举例 146怎样定义和引用二维数组148怎样定义二维数组 149怎样引用二维数组的元素150二维数组的初始化 151二维数组程序举例 152字符数组 154怎样定义字符数组 154字符数组的初始化 155怎样引用字符数组中的元素155字符串和字符串结束标志156字符数组的输入输出 159使用字符串处理函数 161字符数组应用举例 165习题 1686-1#include#include int main()int i,j,n,a101;for(i=1;i=100;i+)ai=i;a1=0;for(i=2;isqr
19、t(100);i+)for(j=i+1;j=100;j+)if(ai!=0&aj!=0)if(aj%ai=0)aj=0;printf(n);for(i=2,n=0;i=100;i+)if(ai!=0)printf(%5d,ai);n+;if(n=10)printf(n);n=0;printf(n);return 0;6-2#include int main()int i,j,min,temp,a11;printf(enter data:n);for(i=1;i=10;i+)printf(a%d=,i);scanf(%d,&ai);printf(n);printf(The orginal num
20、bers:n);for(i=1;i=10;i+)printf(%5d,ai);printf(n);for(i=1;i=9;i+)min=i;for(j=i+1;jaj)min=j;temp=ai;ai=amin;amin=temp;printf(nThe sorted numbers:n);for(i=1;i=10;i+)printf(%5d,ai);printf(n);return 0;6-3#include int main()int a33,sum=0;int i,j;printf(enter data:n);for(i=0;i3;i+)for(j=0;j3;j+)scanf(%3d,&
21、aij);for(i=0;i3;i+)sum=sum+aii;printf(sum=%6dn,sum);return 0;6-4#include int main()int a11=1,4,6,9,13,16,19,28,40,100;int temp1,temp2,number,end,i,j;printf(array a:n);for(i=0;iend)a10=number;else for(i=0;inumber)temp1=ai;ai=number;for(j=i+1;j11;j+)temp2=aj;aj=temp1;temp1=temp2;break;printf(Now array
22、 a:n);for(i=0;i11;i+)printf(%5d,ai);printf(n);return 0;6-5#include#define N 5int main()int aN,i,temp;printf(enter array a:n);for(i=0;iN;i+)scanf(%d,&ai);printf(array a:n);for(i=0;iN;i+)printf(%4d,ai);for(i=0;iN/2;i+)n,number);printf(continu or not(Y/N);scanf(%c,&c);if(c=N|c=n)flag=0;return 0;6-10#in
23、clude int main()int i,j,upp,low,dig,spa,oth;char text380;upp=low=dig=spa=oth=0;for(i=0;i3;i+)printf(please input line%d:n,i+1);gets(texti);for(j=0;j=A&textij=a&textij=0&textij=9)dig+;else if(textij=)spa+;else oth+;printf(nupper case:%dn,upp);printf(lower case:%dn,low);printf(digit :%dn,dig);printf(s
24、pace :%dn,spa);printf(other :%dn,oth);return 0;6-11#include int main()char a5=*,*,*,*,*;int i,j,k;char space=;for(i=0;i5;i+)printf(n);printf();for(j=1;j=i;j+)printf(%c,space);for(k=0;k5;k+)printf(%c,ak);printf(n);return 0;6-12a-c#include int main()int j,n;char ch80,tran80;printf(input cipher code:);
25、gets(ch);printf(ncipher code :%s,ch);j=0;while(chj!=0)if(chj=A)&(chj=a)&(chj=z)tranj=219-chj;else tranj=chj;j+;n=j;printf(noriginal text:);for(j=0;jn;j+)putchar(tranj);printf(n);return 0;6-12b#include int main()int j,n;char ch80;printf(input cipher code:n);gets(ch);printf(ncipher code:%sn,ch);j=0;wh
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 语言程序设计 课后 习题 答案 第四 谭浩强
限制150内