《C++程序设计教程第2版》第2次印刷勘误(XXXX1029)
- 格式:docx
- 大小:21.24 KB
- 文档页数:6
c语言程序设计教程第二版课后答案【篇一:c语言程序设计(第2版)-- 课后题答案】p> 参考答案第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 is21+35equal 523.34214. aaa项目实训题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。
(1)main(){ int a=7;float x=2.5,y=4.7;printf(%f\n,x+a%3*(int)(x+y)%2/4);}(2)main(){ int a=2,b=3;float x=3.5,y=2.5;printf(%f\n,(float)(a+b)/2+(int)x%(int)y);}第三章顺序结构程序设计一选择题a c d c c二操作题1. x=3,a=2,b=32. z=12.7000002 13 3 2 bb cc abc n3. 1 2 1a2 1 2三.编程题编程题解:#include stdio.hmain(){float sj,gz,yfgz;printf(time,salary:);scanf(%f,%f,sj,gz);yfgz=sj*gz*0.9;printf(total salary:%f\n,yfgz);}本程序运行结果为:time,salary:4,3crtotal salary:10.8000002.编写一个程序求出任意一个输入字符的ascii码解:#include stdio.hmain(){char c;printf(input a string:);scanf(%c,c);printf(%c ascii is %d\n,c,c);}本程序运行结果为:input a string:acra ascii is 973、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付3解: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,ys,fk);}本程序运行结果为:apple,pear,banana,orange(weight)=1,2,3,4fu kuan=100result:fukuan=100.00yuanshoukuan= 18.50yuanzhaohui= 81.50yuan项目实训1.假设银行定期存款的年利率rate为2.25%,并已知存款期为n 年,存款本金为capital元,试编程计算n年后可得到本利之和deposit。
c 程序设计第二版课后习题答案C程序设计第二版课后习题答案C程序设计是计算机科学与技术专业中一门重要的课程,它涉及到了计算机程序设计的基本概念、语法和技巧。
而《C程序设计第二版》是一本经典的教材,它通过丰富的例子和习题,帮助学生巩固和扩展他们的编程知识。
在学习这门课程时,课后习题是非常重要的一部分。
通过解答习题,我们可以更好地理解和掌握所学的知识,并且提高我们的编程能力。
然而,有时候我们可能会遇到一些困难,无法找到正确的答案。
因此,本文将为大家提供一些C程序设计第二版课后习题的答案,希望能对大家的学习有所帮助。
1. 第一章习题第一章主要介绍了C语言的基本概念和语法。
在习题中,我们需要编写一些简单的程序来练习基本的输入输出操作。
以下是一些可能的答案:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("您输入的整数是:%d\n", num);return 0;}```2. 第二章习题第二章主要介绍了C语言的数据类型和运算符。
在习题中,我们需要编写一些程序来练习不同数据类型的使用和运算符的操作。
以下是一些可能的答案:```c#include <stdio.h>int main() {int a = 10;float b = 3.14;char c = 'A';printf("a + b = %f\n", a + b);printf("a * b = %f\n", a * b);printf("a / b = %f\n", a / b);printf("c + 1 = %c\n", c + 1);return 0;}```3. 第三章习题第三章主要介绍了C语言的控制结构,包括条件语句和循环语句。
C++程序设计教程(第2版) 勘误表位置: 11页 第2行原文:...的编译程序也被移植到IBM 360/370、Honeywell 11 以及VAX-11/780等多种计算机上。
更正:...的编译程序也被移植到IBM 360/370、Honeywell 635 以及VAX-11/780等多种计算机上。
位置: 43页 倒数第9行 公式原文:|)cos(||)||sin(|y x y x ++更正: |)||cos(||)||sin(|y x y x ++位置: 47页 倒数第3行原文:在用C++编写程序时,实现顺序结构的方法非常简单:只需将两个语句顺序排列即可。
更正:在用C++编写程序时,实现顺序结构的方法非常简单:只需将相关语句顺序排列即可。
位置: 53页第3行开始原文:e = 1.0; n = 1; u = 1.0;while (通项u 大于等于10-7) {计算新的通项值 u = u/n;将新通项值加到结果近似值上;准备处理下一项 n = n+1;}程序// Example 3-3:计算常数e 的值#include <iostream>using namespace std;int main(){double e = 1.0;double u = 1.0;int n = 1;while(u >= 1.0E-7){u = u/n;e = e+u;n = n+1;}cout << "e = " << e << " ( n = " << n << " )" << endl;return 0;}输出 e = 2.71828 ( n = 12 )分析根据计算结果同时打印出的项数n,表明该级数收敛相当快,仅计算到前12项其误差便已小于10-7。
更正:e = 1.0; n = 0; u = 1.0;while (通项u大于等于10-7){当前项序号n = n+1;计算新的通项值u = u/n;将新通项值加到结果近似值上;}程序// Example 3-3:计算常数e的值#include <iostream>using namespace std;int main(){double e = 1.0;double u = 1.0;int n = 0;while(u >= 1.0E-7){n = n+1;u = u/n;e = e+u;}cout << "e = " << e << " ( n = " << n << " )" << endl;return 0;}输出 e = 2.71828 ( n = 11 )分析根据计算结果同时打印出的项数n,表明该级数收敛相当快,仅计算到前11项其误差便已小于10-7。
习题11-1 填空题1.函数2.主函数main(),主函数main()3.主函数main()4.函数首部,函数体5.{, }6./*, */7.顺序结构,选择结构,循环结构8..c, .obj, .exe1-2 思考题1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。
顺序结构,选择结构,循环结构2.算法是对具体问题求解步骤的一种描述。
计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。
4. 略5. 略1-3 编程题1.main(){ float a=3, b=4, c=5, s, area;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));p rintf(“area=%f ” , area );}2.main(){ printf(“******************************”);printf(“* hello world *”);printf(“******************************”);}习题22-1 单选题1~5 DBDCA 6~10 DCABA 11~14 BCA A2-2 思考题1.2.000002.1,0.53.9,24.65.100,d6.(1)20 (2)0 (3)607. (1)10,6,4 (2)6,9,15 (3)3,60,838. 559.70习题33-1单选题1-5BBDAB 6-10DDBDC 11-15AADCA 16-20CBACC 21-25ABDBB 3-2填空题1. 32.02613.0x104.05. 2, 1 互换a,b的值6. 6.67.–038.79. 5.0,4,c=3<Enter>10.i=10,j=20<Enter>11.(1) 65(2) 65,A(3) 56.123400,123.456001(4) 3.141600(5) 8765.432(6) 5.86400e+02(7) 3.14160e+00(8) 3.1416(9) 8765(10) 3.1416,8765.4312.a=2 b=5x=8.8 y=76.34c1=65 c2=97 3-3 编程题1.main(){ int x, y ;scanf(“%d%d” , &x, &y);printf(“x y\n”);printf(“%4d%4d\n”, x, y );printf(“%4o%4o\n”, x, y );printf(“%4x%4x\n”, x, y );}2.main(){ float a, b, h, s;scanf(“%f%f%f”, &a, &b, &h );s=(a+b)*h/2 ;printf(“%8.1f\n”, s);}3.main(){ char c;scanf(“%c”, &c );printf(“%c, %c, %c\n”, c-1, c, c+1 ); }4.main(){ int a, a1, a2, a3;scanf(“%d”, &a );a1=a%10 ; a=a/10;a2=a%10; a=a/10;a3=a%10;printf(“%d%d%d\n”, a1, a2, a3);}5.main(){ double a, b, c, ave;scanf(“%lf%lf%lf”, &a, &b, &c );ave=(a+b+c)/3 ;printf(“%8.2f\n”, ave);}6.main(){ int a, b, c, t;scanf(“%d%d%d”, &a, &b, &c );t=a; a=c; c=b ; b=t ;printf(“a=%d, b=%d, c=%d\n”, a, b, c );}习题44-1单选题1~5 BADAC 6~10 DDACD 11~15 BBBAB4-2填空题1.12.if(x>0) y=1else if (x==0) y=0else y=-13.(1) a>0 || b>0 (2) x>0 && x<=10(3) a==1.5 && b==1.5 && c==1.5 (4)p<a || p<b || p<c4.(1)0 (2)1 (3)1 (4)0 (5)05. max=(max=a>b?a:b)>c?max:c6.-47.18.5,0,39.85 belongs to B10. (1) (a==0) (2) (b==0) (3) (disc<0)4-3 编程题1.#include “math.h”main(){ float a,b,c,s,area;scanf(“%f,%f,%f”,&a,&b,&c);if (a+b>c && a+c>b && b+c>a){ s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“%f”,area);}}2.main(){ int x,y;scanf(“%d,%d”,&x,&y);if (x*x+y*y>1000)printf(“%d\n”,(x*x+y*y)/100); elseprintf(“%d\n”,x+y);}3.main(){ int x,scanf(“%d”,&x);if(x%3==0 && x%5==0 && x%7==0) printf(“yes\n”);elseprintf(“no\n”);}4.#include “math.h”main(){ float x,y;scanf(“%f”,&x);if(x<-2) y=x*x-sin(x);else if (x<=2) y=pow(2,x)+1;else y=sqrt(x*x+x+1);printf(“%f\n”,y);}5. main( )long a,b,c,d,e,x;scanf("%ld",&x);a=x/10000;/*分解出万位*/b=x%10000/1000;/*分解出千位*/c=x%1000/100;/*分解出百位*/d=x%100/10;/*分解出十位*/e=x%10;/*分解出个位*/if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);else if (d!=0) printf("there are 2, %ld %ld\n",e,d);else if (e!=0) printf(" there are 1,%ld\n",e);}6.1.程序分析: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==wan&&shi==qian)/*个位等于万位并且十位等于千位*/ printf("this number is a huiwen\n");elseprintf("this number is not a huiwen\n");}7. main(){float p,w,s,d,f;scanf(“%f,%,%f”,p,s,w);if (s>3000) d=0.15else 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=0f=p*w*s*(1-d);printf(“%f”,f);}习题55-1单选题1~5 CDACB 6~10 DCAAB 11~16 DBDBCB5-2填空题1.2 02.k=5,s=43.3334.How Are You5.2#18#6.(1) i<10 (2) j%3!=07.(1) flag*(float)k/(k+1) (2) flag=-flag8.(1) s=0,t=1; (2) t=t*x/i*pow(-1,i+1); (3) printf(“%f”,s); 9.(1) max=x (2) x!=-1 (3) scanf("%d", &x)10. (1) n=1 (2) s5-3 编程题1. (1) main(){ int i; lont s=0;for(i=1;i<=100;i++)s+=i*i;printf(“%ld”,s);}(2)main(){ int i; lont p=1,s=0;for( i=1;i<=10;i++){p=p*i;s+=p;}printf(“%ld”,s);}(3) main(){ int i=1; lont p=1;float s=0;do{s+=1.0/p;p*=++i;}while(1.0/p>1e-6)printf(“%f”,s);}(4)main(){ int i=1, flag=1,pi=0;do{s+=flag*1.0/(2*i-1);i++;}while(1.0/(2*i-1)>1e-6);pri ntf(”%f”,s);}2.main(){int m,n,t,a,b;scanf(“%d,%d” ,&m,&n) ;if (m<n){ t=m ;m=n ;n=t ;}a=m;b=n;t=m%n ;while(t){ m=n ; n=t ;t=m%n;}printf(”%d,%d”,n,a*b/n);}3. main(){int x,y,s=1;scanf(”%d,%d”,&x,&y) ;for( ;y>0 ;y--)s*=x ;printf(”%d,%d,%d\n ”,s%10,s/10%10,s/100%10); }4.main(){int i=1, k=2, sum=0;do{sum+=k;k=k*2;i++;}while(sum<=100);printf(”total=%f\n”, 0.4*sum/(i-1));}5. main(){ int x,y,z;for( x=1 ; x<20 ;x++)for( y=1 ;y<33 ;y++){ z=100-x-y ;if (z>=0 && (5*x+3*y+z/3)-100<1e-5)printf(”x=%d,y=%d,z=%d\n”,x,y,z) ;}}6. main(){int j,k ;for( j=1 ;j<=4 ;j++){for(k=1;k<=4-j;k++;)printf(” ”);for(k=1 ;k<=2*j-1 ;k++)printf(”*”) ;printf(”\n”) ;}for( j=3;j>=1;j--){ for(k=1;k<=4-j;k++;)printf(””);for(k=1;k<=2*j-1;k++)printf(”*”);printf(”\n”);}}7.分析:其实此问题的解法非常简单。
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*l s f)(4)m%5==0 ,printf( “%n d”,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; elsey=3*x-11;printf(%lf\n,y); return 0; } (2). #includestdio.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; case6:s=151+d;break; case 7:s=181+d;break; case8:s=212+d;break; case 9:s=243+d;break; case10:s=273+d;break; case 11:s=304+d;break; case12:s=334+d;break;} }s=(w+s)%7; if(s==0) printf( 星期日\n); elseprintf( 星期%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=5 i=2 i=2 i=4 i=2 (5)求水仙花数(6)-5*5*5 (7)30 (8)0 10 1 11 2 124.程序填空(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 int s; return p;scanf(%u,s); } printf(%u\n,fun(s)); (2).return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsignedint s) #includemath.h { void f1(float,float,float,float); unsignedint 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 程序设计的任务141-5 #include stdio.h int main( ){ printf (**************************\n\n);printf( very good!\n\n);printf (**************************\n); return 0;}1-6#include stdio.h 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 (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 最基本的语句——赋值语句593.4 数据的输入输出65 3.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 年期,到期后将本息再存 3 年期p3=p*(1+3*r3)*(1+2*r2); // 先存3 年期,到期后将本息再存 2 年期。
本文由airalex1982贡献 pdf文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
《C 语言程序设计教程(第 2 版) 》习题解答 第 1 章习题解答 一、填空 1.机器语言即是指计算机本身自带的 指令系统 。
完成这个翻译工作 2. 将汇编语言编写的程序翻译成机器语言程序的过程称为 汇编 , 的程序称为 汇编程序 。
3.在C语言程序中,写“\110”和写“\x68” ,分别代表字母 H 和字母 h 。
4.在用New命令创建新的C源程序时,文件名默认为是 NOMANE.C 。
5.C语言程序都是从名为 main 的函数它开始执行的。
二、选择 1.下面给出的命令中, (C)不能保存源程序对应的“.OBJ”文件。
A.Make EXE File B.Run C.Save D.Compile to OBJ 分析:Compile to OBJ 是文件的编译命令;Make EXE File 是一次完成编译和连接的命 令;在没有编译、连接的前提下,直接使用 Run 命令,就会先完成编译,再进行连接,最 后运行。
所以,这三个命令都会保存由源程序产生出的“.OBJ”文件。
而 Save 命令用于编 辑完源程序后,对源程序的保存,即保存“.C”文件。
因此,本题的答案应该是选择 C。
2.下面给出的编辑命令中, (B)是用来定义块首标记的。
A.Ctrl-KK B.Ctrl-KB C.Ctrl-KV D.Ctrl-KH 3.下面给出的编辑命令中, (A)是用来定义块尾标记的。
A.Ctrl-KK B.Ctrl-KB C.Ctrl-KV D.Ctrl-KH 4.以下的(C)是不正确的转义字符。
A.’\\’ B.’\’’ C.’\81’ D.’\0’ 5.转义字符\x65 对应的字母是(C) 。
A.A B.a C.e D.E 三、是非判断(√,×) 1.Turbo C 中,只有命令 New 才能创建新的源程序文件。
c程序设计谭浩强(第二版)C程序设计是计算机科学领域中一门基础且重要的课程,它不仅教授编程语言的语法和结构,更重要的是培养逻辑思维和问题解决能力。
谭浩强教授所著的《C程序设计》第二版,是一本广受好评的教材,它以通俗易懂的语言和丰富的实例,为初学者提供了学习C语言的宝贵资源。
第一章:C语言概述在这一章中,谭浩强教授介绍了C语言的发展历程和特点。
C语言以其高效性、灵活性和广泛的应用领域而闻名。
它是一种过程式编程语言,支持结构化编程,能够直接操作硬件,因此非常适合底层系统开发。
第二章:C程序的构成本章详细讲解了C程序的基本结构,包括主函数、变量声明、语句和表达式等。
谭教授强调了程序的可读性和可维护性,介绍了良好的编程习惯和注释的重要性。
第三章:数据类型、运算符和表达式数据类型是程序设计中的基础概念,谭教授在这一章中详细解释了C语言中的各种数据类型,如整型、浮点型、字符型等,以及它们在内存中的存储方式。
同时,本章还涵盖了运算符的分类和使用,以及表达式的求值规则。
第四章:控制语句控制语句是程序流程控制的核心。
谭教授在本章中讲解了条件语句(if、switch)、循环语句(for、while、do-while)以及跳转语句(break、continue、goto)。
通过丰富的实例,帮助读者理解如何使用这些语句来控制程序的执行流程。
第五章:数组数组是存储多个相同类型数据的集合。
谭教授在这一章中介绍了一维数组和二维数组的声明、初始化和使用。
同时,还讨论了数组在内存中的存储方式,以及如何通过指针操作数组。
第六章:函数函数是程序模块化的基础。
谭教授在本章中讲解了函数的定义、声明、调用以及参数传递机制。
此外,还介绍了递归函数的概念和应用。
第七章:指针指针是C语言中一个强大的特性,它允许直接访问内存地址。
本章详细介绍了指针的基本概念、指针与数组的关系、指针的运算以及指针在函数中的应用。
第八章:结构体和联合体结构体和联合体是C语言中用于创建复杂数据类型的工具。
《C语言与程序设计方法(第二版)》勘误表请大家将发现的错误补充进来(请用不同颜色表示你的增加),谢谢!P19例2.1整型常量的表示。
#include <stdio.h>void main() {int a, b, c;a=50; // a为十进制整数50b=-032; // b为八进制整数-32c=0x5b; // c为十六进制整数5bprintf("a=%d, b=%d, c=%d\n", a, b, c); //以十进制整数形式输出a,b,c的值}运行结果如下:a=50, b=-26, c=91P31例2.7整型数据的格式输出。
# include <stdio.h>void main() {int a=-2, b=25;unsigned u=65534, v=28;short c=45;char d='A';printf("a:%d, %u, %o, %x\n", a, a, a, a);printf("u:%d, %u, %o, %x\n", u, u, u, u);printf("b:%d, %u v:%d, %u\n", b, b, v, v);printf("c=%d, d=%d\n", c, d);}运行结果如下:a:-2, 65534, 177776, fffeu:-2, 65534, 177776, fffeb:25, 25 v:28, 28c=45, d=65P33(4) 指定输出宽度。
指定输出宽度和对齐方式需用到附加格式字符m、.n和-。
其中m 为一正整数,用来指定输出宽度(对于f格式符,输出宽度包括整数位、小数点和小数位;对于e 格式符,输出宽度包括尾数部分和指数部分),如果数据的实际宽度比指定输出宽度大,则按实际宽度输出;附加格式符“.n ”的作用是指定输出n 位小数,对于e 格式小数点后仅输出n -1位;附加格式符“-”是用来说明采用左对齐方式,没有“-”时默认是右对齐方式。
《C++程序设计教程第2版》第2次印刷勘误作者:王珊珊臧洌张志航♦P50第1处例4.17程序中的fl前后多双引号是多余的原描述:#include <iostream.h>#include <iomanip.h>void main(){int f1, f2;f1=f2=1;for(int i=1; i<=20; i++){cout << setw(12) << "f1" << setw(12) << f2 ; if(i%2==0) cout«endl; // Af1=f1+f2;f2=f2+f1;}}应修改为:#include <iostream.h>#include <iomanip.h>void main(){int f1, f2;f仁f2=1;for(int i=1; i<=20; i++){cout << setw(12) << f1 << setw(12) << f2 ; if(i%2==0) cout«endl;f1=f1+f2;f2=f2+f1;}}♦P94 例7.10中,prime()函数中的第4行原程序:void prime(int a[],int n){int i, j;for(i=1; i<n/2; i++) 〃a[0]不是素数,因此从a[1]开始判断if( a[i]!=0 )for(j=i+1; j<n; j++)if(a[j]!=0)if(a[j]%a[i]==0) a[j]=0;}应修改为:void prime(int a[],int n){int i, j;for(i=1; i<n/2; i++) //未使用a[0]元素,因此从a[1]开始判断if( a[i]!=0 ) for(j=i+1; j<n; j++) if(a[j]!=0) if(a[j]%a[i]==0) a[j]=0;好像多了一个空行(即本行) ,可删除,不删也可以,看如何方便排版 }♦ P107 将第2、3行红色字下移到“请读者比较这两个方法。
”之前 原描述:例 7.25 输入一行字符,统计其中的单词个数,单词之间用空格隔开本算法中,求单词数的方法为:顺序扫描数组元素,若当前字符是非空格,而其前一个字符是空格, 则单词数加 1 。
红色字应下移#include <iostream.h>#include <string.h>int countwords(char string[ ]){ int i, len, num=0;len=strlen(string);for (i=0; i<len; ){while(string[i]==' ')i++;if (i<len) num++;while(string[i]!=' '&&i<len) i++; }return num;} void main( ){char string[80]; int num;cout<<" 输入一行字符 :" cin.getline(string, 80);num=countwords(string);//滤掉多个连续的空格 //单词数加 1 //跳过一个单词cout«"输入的字符串为:"vvstringvvendl; coutvv"字符串中包含的单词个数为 :"vvnumvvendl; }运行结果如下:输入一行字符 :l am a student. vEnter> 输入的字符串为:l am a student.字符串中包含的单词个数为:4统计单词的函数还可以这样实现:int numwords(char string[]){int i, num;char c=' '; //存放前一字符for (i=num=0; stri ng[i]!='\0: i++ ){if (c==' ' && string[i]!=' ') num++;c=string[i];}return num;}注意:应将上述红色字移至此处请读者比较这两个方法。
应修改为:例7.25输入一行字符,统计其中的单词个数,单词之间用空格隔开#include <iostream.h>#include <string.h>int countwords(char string[]) {int i, len, num=0;len=strlen(string);for (i=0; i<len;) {while(string[i]==' ')i++;if (i<len) num++; while(string[i]!=''&&i<len) i++;} return num; void main(){char string[80]; int num;coutvv"输入一行字符:";cin.getline(string, 80);num=countwords(string);coutvv"输入的字符串为:"vvstringvvendl;coutvv"字符串中包含的单词个数为 :"vvnumvvendl;运行结果如下:输入一行字符 :l am a student. <Enter> 输入的字符串为:l am a student.字符串中包含的单词个数为:4统计单词的函数还可以这样实现://单词数加1〃滤掉多个连续的空格 //单词数加1 //跳过一个单词int numwords(char string[]){int i, num;char c=' '; //存放前一字符for (i=num=0; stri ng[i]!='\0: i++ ){if (c==' ' && string[i]!=' ') num++; // 单词数加1c=string[i];}return num;}本算法中,求单词数的方法为:顺序扫描数组元素,若当前字符是非空格,而其前一个字符是空格, 则单词数加1。
请读者比较这两个方法。
♦P119 例8.5的运行结果,每行前应有7个空格原描述:运行结果如下:1 red yellow blue 原:每行行前无空格2 red yellow white3 red yellow black4 red yellow purple5 red blue yellow6 red blue white115 purple white blue116 purple white black117 purple black red118 purple black yellow119 purple black blue120 purple black white可能的组合数为:120应修改为:运行结果如下:115 purple white blue 116 purple white black117 purple black red118 purple black yellow119 purple black blue120 purple black white可能的组合数为:120应改为a[0]a+1a[1] a[1]+1a[1]+2 a[1]+3 a+2a[2] 图9-16二维数组行指针和元素指针示意每行前加7个空格,每列数据右对齐2 red yellow white3 red yellow black4 red yellow purple 5red blue yellow 6 red blu e! white ♦ P135 图 9-16原描述: 垂直的箭头移动后,箭头上方的文字也应随箭头移动1 red yellow blue♦P225 例13.1对齐方式不对原描述:#include <iostream.h>#include <string.h>class String{int Length;char *Strp;public:String();String(char *s); String(String &s); void Print() //重载构造函数1 //重载构造函数2 //重载构造函数3{coutvv"String="v<Strpvvendl;coutvv"Length="v<Lengthvvendl;}~String( ){ if(Strp) delete [] Strp; } // 析构函数};应修改为:class String{int Length;char *Strp;public:String();String(char *s); String(String &s); //重载构造函数1 //重载构造函数2 //重载构造函数3void Print(){coutvv"String="vvStrpvvendl;coutvv"Length="vvLengthvvendl;}~String( ){ if(Strp) delete [] Strp; }// 析构函数注意:对齐方式,缩进};。