《C语言程序设计》第2版 第十章课后习题参考答案

合集下载

第10章C语言程序设计习题答案

第10章C语言程序设计习题答案

C 语言程序设计( Visual C++6.0 环境)》习题答案习题十、思考题1.简述公有类型成员与私有类型成员的区别。

公有(public) 类型成员不但可以被类的成员函数访问,而且可以被外界访问,所以说公有类型定义了类的外部接口。

私有(private) 类型成员只能被类的成员函数访问,外界不能直接访问它。

类的数据成员一般都应该声明为私有成员。

2.简述构造函数与析构函数的作用。

构造函数的作用就是在对象在被创建时利用特定的值构造对象,将对象初始化。

析构函数的作用与构造函数正好相反,它是用来在对象被删除前进行一些清理工作。

析构函数调用之后,对象被撤消了,相应的内存空间也将被释放。

3.简述什么是友元函数。

友元函数是在类定义中由关键字friend 修饰的非成员函数。

友元函数可以是一个普通函数,也可以其它类中的一个成员函数,它不是本类的成员函数,但它可以访问本类的私有成员和保护成员。

4.简述公有继承、私有继承和保护继承三种继承方式的区别。

⑴、当类的继承方式为公有(public 继承)时,基类的公有(public )成员和保护( protected )成员仍然成为派生类的公有成员和保护成员,而基类的私有成员不能被派生类访问。

⑵、当类的继承方式为保护( protected )继承时,基类的公有(public )成员和保护( protected )成员将成为派生类的保护成员,而基类的私有成员不能被派生类访问。

⑶、当类的继承方式为私有(private )继承时,基类的公有(public )成员和保护(protected )成员将成为派生类的私有成员,而基类的私有成员不能被派生类访问。

5.定义一个圆柱体类,其属性为圆柱体的底面半径和高,能计算出圆柱体的体积。

#include<iostream.h>class cylinder{public:cylinder(float r,float h){radius=r;height=h;}float Volume();private:float radius;float height;};float cylinder::Volume(){return 3.14*radius*radius*height;}void main(){float r,h;cout<<" 请输入圆柱体的底面半径和高:"; cin>>r>>h;cylinder x(r,h);cout<<x.Volume()<<endl;}6.从第 5 题中定义的圆柱体类中派生出圆锥类,覆盖计算体积的成员函数。

《C语言程序设计教程(第二版)》习题答案

《C语言程序设计教程(第二版)》习题答案

1 【C语言】《C语言程序设计教程(第二版)》习题答案说明1. 本文所指的《C语言程序设计教程(第二版)》是李凤霞主编、北京理工大学出版社出版的,绿皮。

2 第1章程序设计基础知识一、单项选择题(第23页)1-4.CBBC 5-8.DACA二、填空题(第24页)1.判断条件2.面向过程编程3.结构化4.程序5.面向对象的程序设计语言7.有穷性8.直到型循环9.算法10.可读性11.模块化12.对问题的分析和模块的划分三、应用题(第24页)2.源程序:main(){int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */printf("cock hen chick\n");for(i=1;i<=20;i++)for(j=1;j<=33;j++)for(k=1;k<=33;k++)if (i+j+k*3==100&&i*5+j*3+k==100)printf(" %d %d %d\n",i,j,k*3);}执行结果:cock hen chick4 18 788 11 8112 4 843.现计算斐波那契数列的前20项。

递推法源程序:main(){long a,b;int i;a=b=1;for(i=1;i<=10;i++) /*要计算前30项,把10改为15。

*/{printf("%8ld%8ld",a,b);a=a+b;b=b+a;}}递归法源程序:main(){int i;for(i=0;i<=19;i++)printf("%8d",fib(i));}fib(int i){return(i<=1?1:fib(i-1)+fib(i-2));}执行结果:1 123 5 8 13 21 34 5589 144 233 377 610 987 1597 2584 4181 6765 4.源程序:#include "math.h";main(){double x,x0,deltax;x=1.5;do {x0=pow(x+1,1./3);deltax=fabs(x0-x);x=x0;}while(deltax>1e-12);printf("%.10f\n",x);}执行结果:1.32471795725.源程序略。

C语言程序设计(第二版)习题参考答案

C语言程序设计(第二版)习题参考答案

C语言程序‎设计习题参‎考答案习题 1一、判断题1.在计算机中‎,小数点和正‎负号都有专‎用部件来保‎存和表示。

2.二进制是由‎0和1两个‎数字组成的‎进制方式。

3.二进制数的‎逻辑运算是‎按位进行的‎,位与位之间‎没有进位和‎借位的关系‎。

4.在整数的二‎进制表示方‎法中,0的原码、反码都有两‎种形式。

5.有符号数有‎三种表示法‎:原码、反码和补码‎。

6.常用字符的‎A S CII‎码值从小到‎大的排列规‎律是:空格、阿拉伯数字‎、大写英文字‎母、小写英文字‎母。

解:1.F2.T 3.T 4.T 5.T 6.T二、单选题1.在计算机中‎,最适合进行‎数值加减运‎算的数值编‎码是。

A. 原码B. 反码C. 补码D. 移码2.已知英文小‎写字母m的‎A SCII‎码为十进制‎数109,则英文小写‎字母y的A‎S CII码‎为十进制数‎。

A. 112B. 120C. 121D. 1223.关于ASC‎II码,在计算机中‎的表示方法‎准确地描述‎是。

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语言编‎写的源程序‎经过编译后‎,若没有产生‎编译错误,则系统将()。

C语言程序设计(第二版)习题参考答案

C语言程序设计(第二版)习题参考答案

printf("%d*%d=%d\n",a,a,z);
}
*3.仿照例 1.3 编程,输入两个数后,输出其中较小值。
解:#include<stdio.h>
float min(float x, float y)
{ float m;
if (x<y) m=x;
else m=y;
return m;
}
void main()
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 码为
面积 s(s x)(s y)(s z)
其中 s
x yz 2
程序如下: #include <stdio.h>
#include <math.h>
void main()
{
double x,y,z,s,dime;
scanf("%lf%lf%lf",&x,&y,&z);
dime=sqrt(s*(s-x)*(s-y)*(s-z));
程序如下:
#include <stdio.h>
void main()
{
int a,b,c,s,z;
printf("Please input a b c:\n");

C程序设计教程(第2版)课后习题 完全版

C程序设计教程(第2版)课后习题 完全版

C程序设计教程(第2版)课后习题完全版C程序设计教程(第2版)课后习题完全版在完成了C程序设计教程(第2版)的学习之后,为了巩固所学的知识并提升自己的编程能力,非常有必要进行课后习题的练习。

本文将为大家整理整个教程中的课后习题,供大家参考和练习。

第一章基本概念和语法1. 编写一个C程序,输出"Hello World!"。

#include <stdio.h>int main() {printf("Hello World!");return 0;}2. 编写一个C程序,输入两个整数,计算它们的和并输出结果。

#include <stdio.h>int main() {int num1, num2, sum;printf("输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个数的和为:%d", sum);return 0;}3. 编写一个C程序,输入一个半径,计算并输出圆的面积。

#include <stdio.h>#define PI 3.14159int main() {float radius, area;printf("输入圆的半径:");scanf("%f", &radius);area = PI * radius * radius;printf("圆的面积为:%f", area);return 0;}......第二章控制结构1. 编写一个C程序,输入一个数字,如果它是正数,则输出"是正数";如果它是负数,则输出"是负数";如果它是0,则输出"是零"。

c程序设计(第二版)课后习题答案

c程序设计(第二版)课后习题答案
2
C 语言程序设计(第二版) 课后习题参考答案
putchar(c2);//将变量 c2 的值输出 printf("\n"); printf("%c%c\n",c1,c2);//用 printf 输出 c1、c2 的值 printf("%d,%d\n",c1,c2);//输出 c1,c2 的 ASCII 码 } 第四章 【习题 4.5】 /*有三个整数 a,b,c,由键盘输入,输出其中最大的数,请编程序。*/ /*变量:三个整数 a、b、c,中间变量 t,最大值 max*/ #include<stdio.h> void main() { int a,b,c,t,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); t=a>b?a:b;//比较 a 与 b 的大小,将大者赋给中间变量 t max=t>c?t:c;//比较 t 与 c 的大小,将大者赋给最大值 max printf("the max is:\n"); printf("%d\n",max); } 【习题 4.6】 /*给出一百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'、'E'。90 分以上为'A',80~89 分为 'B',70~79 分为'C',60~69 分为'D',60 分以下为'E'。*/ #include<stdio.h> void main() { int score; printf("please input the score:(0-100)\n"); scanf("%d",&score); if(score>=90&&score<=100) printf("A");//如果成绩大于 90 分,输出 A else if(score>=80&&score<=89) printf("B");//如果成绩在 80~89 之间,输出 B else if(score>=70&&score<=79) printf("C");//如果成绩在 70~79 之间,输出 C else if(score>=60&&score<=69) printf("D");//如果成绩在 60~69 之间,输出 D else printf("E");//成绩小于 60 分时,输出 E printf("\n"); } 【习题 4.7】 /*给一个不多于 5 位的正整数,要求:(1)求出它是几位数;(2)分别输出每一个数字;(3)按 逆顺序输出各位数字,例如原数为 321,应输出 123.*/ /*变量:正整数 x、万位数 a、千位位数 b、百位数 c、十位数 d、个位数 e*/ #include <stdio.h>

C语言程序设计(第2版)-- 课后题答案-推荐下载

《C 语言程序设计能力教程(第二版)》课后作业及实训题
参考答案
第 1 章 进入 C 语言程序世界 二、 1. I love China!
printf("we are students.\n") 2. 6 项目实训题参考答案
1.编写一个 C 程序,输出以下信息: ******************** I am a student! ********************
ቤተ መጻሕፍቲ ባይዱ:
4
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");
float rate=0.0225,capital,deposit; scanf("%d,%f",&n,&capital); deposit=capital*pow(1+rate,n); printf("deposit=%f\n",deposit); } 2.将一个三位数整数,正确分离出它的个位、十位和百位数字,并分别在屏幕上 输出。 main() { int n,a,b,c; scanf("%3d",&n); a=n/100; b=n%100/10; c=n%100%10/1;

c语言程序设计教程第二版课后答案

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语言程序设计(第2版)课后习题答案第一章1.请参照本章例题,编写一个C程序,输出以下信息:**************************V ery good!**************************解:#include<stdio.h>void main(){printf(“**************************”);printf(“\n”);printf(“V ery good!\n”);printf(“\n”);printf(“**************************”);}2.编写一个C程序,输入a、b、c三个值,输出其中最大值。

解:#include<stdio.h>void main(){int a,b,c,max;printf(“请输入三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(max<b) max=b;if(max<c) max=c;printf(“最大数为: %d”,max);}第二章1.假如我国国民生产总值的年增长率为10%,计算10年后我国国民生产总值与现在相比增长多少百分比。

计算公式为P=(1+r)^n,r为年增长率;n为年数;P为与现在相比的百分比。

解:#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个字母代替原来的字母。

例如,字母“A”后面第4个字母是“E”,“E”代替“A”。

因此,“China”应译为“Glmre”。

请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为‟C‟、‟h‟、‟i‟、‟n‟、‟a‟,经过运算,使c1、c2、c3、c4、c5分别变为‟G‟、‟l‟、‟m‟、‟r‟、‟e‟,并输出。

C语言程序设计第2版课后习题答案(贾宗璞 许合利人民邮电-第2版)

C语言习题答案第1章1.选择题(1) C (2) B (3) A2.填空题(1)main (2) main (3) 有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性(4) 顺序、分支和循环(5) 自顶向下,逐步细化、模块化设计、结构化编码第2章1.选择题12 345 6 7 890 1234 5ACCDA D C ABA BBDDB2、填空题(1) 数字、字母、下划线(2)0 (3) 4、8 (4) (a+b)*c/(a-b) (5) -60 (6)-16 (7)9 (8)6、4、2 (9)0 (10)10、6 (11)5.500000 (12)12、4 (13)0 (14)16 (15)6.63、编程题(1)编写一个程序求各种类型数据的存储长度。

#include <stdio.h>main(){printf("int:%d byte\n",sizeof(int));printf("short int:%d byte\n",sizeof(short int));printf("long int:%d byte\n",sizeof(long int));printf("float:%d byte\n",sizeof(float));printf("double:%d byte\n",sizeof(double));printf("long double:%d byte\n",sizeof(long double));printf("char:%d byte\n",sizeof(char));}(2)#include <stdio.h>#define RAT 1.60934main(){float k;printf("input the km:");scanf("%f",&k);printf("mile:%f\n",k/RAT);}第3章1.选择题12 345 67 890(1) ~(10):DDCDD DCDCC2.解析题(1) x=170,x=ㄩㄩㄩ170,x=ㄩㄩㄩ252,x=ㄩㄩㄩㄩaa,x=ㄩㄩㄩ170x=170,x=170ㄩㄩㄩ,x=ㄩㄩㄩ170,x=%6da=513.789185,a=ㄩㄩ513.79,a=513.78918457,a=513.78918457 (2) a=3ㄩb=7x=8.5ㄩy=71.82c1=Aㄩc2=a3.编程题(1)main(){int x,y;scanf("%d%d",&x,&y);printf("商数=%d,余数=%d",x/y,x%y);}(2)main(){double x,y,z,avg;scanf("%lf%lf%lf",&x,&y,&z);avg=(x+y+z)/3;printf("%.1f",avg);}第4章1.选择题(1)~(10)CCAAD CCABD2.填空题(1)①a>0&&b>0||a>0&&c>0||b>0&&c>0②a<b||a<c③a>5||-a>5④(a<=0)&&((int)a)!=a⑤(a%b)!=0(2)①!(x>0) ②1 ③!(x>=0&&x<=5)(3)3、2、2(4) ch>='A'&&ch<='Z' ch=ch-32(5) x<=10&&x>2 x<=2&&x>-1 y=-1 ;(6) a+b>c&&a+c>b&&b+c>a a==b&&a==c a==b||a==c||b==c(7) x<0 c=x/10 y!=-23.编程题(1)#include <stdio.h>main(){int x;printf("please input a number:");scanf("%d",&x);if(x%2==0) printf("x is a even number");else printf("x is a odd number");}(2)#include <stdio.h>main(){int x,y;printf("please input a number:");scanf("%d",&x);if(x>-5 && x<0) { y=x; printf("%d",y); }else if(x==0) { y=x-1; printf("%d",y); }else if(x>0 && x<10) { y=x+1; printf("%d",y); }else printf("the number is error");}(3)#include <stdio.h>main(){ int a,m;printf("please input a number:");scanf("%d",&a);switch(a/10){ case 0:case 1:case 2:m=1;break;case 3:m=2;break;case 4:m=3;break;case 5:m=4;break;default:m=5;break;}printf("%d",m);}(4)#include <stdio.h>main(){float price,tax;printf("please input the price of product:");scanf("%f",&price);if(price>=10000) tax=price*0.05;else if(price>=5000) tax=price*0.03;else if(price>=1000) tax=price*0.02;else tax=0;printf("%f",tax);}(5)#include <stdio.h>main(){float score;printf("please input the score of student:");scanf("%f",&score);if(score>=85) printf("VERY GOOD");else if(score>=60) printf("GOOD");else printf("BAD");}(6)#include <stdio.h>main (){int x,y,z;printf("input two number:");scanf("%d%d",&x,&y);if(x<10 || x>99 || y<10 || y>99)printf("input data error!\n");else{ z=(x/10)*1000+(y/10)*100+(x%10)*10+y%10;printf("%d\n",z);}}第5章1.选择题(1)d (2) c (3)a (4)d (5)a (6)d (7)d (8)b (9)d (10)b (11)c (12)a(13)d (14)d(15)c2.填空题(1) fahr celsius=5.0/9*(fahr-32) fahr+=step (2) 5、4、6 (3) 3*i-2 (4) y-- z*=x (5) 8ㄩ5ㄩ2 (6) j++ i%j==0 j>=i(或j==i) (7)sum<k sum==k j-2 (8) s=0 p=1 j<=i3.改错题(1) 第一处改正:For改为for第二处改正:for(k=1;k<=4;k++)或for(k=0;k<4;k++)第三处改正:ave=sum/4改为ave=sum/4.0(2) 第一处改正:j<=9第二处改正:m=100*i+10*j+k(3) 第一处改正:temp=1第二处改正:temp >=eps第三处改正:r*2(4) 第一处改正:&n第二处改正:== ==(5) 第一处改正:t=m/10改为t=m%10第二处改正:t=0改为t==0第三处改正:m=m%10改为m=/104.编程题(1) 分式累加和。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档