Visual C++面向对象程序设计教程与实验(第二版)清华大学出版社第2章习题参考答案
1.分析下列程序的执行结果:
输出随机数
2. 分析下列程序的执行结果:
i=0
3. C++语言对C语言在结构化程序设计方面进行了哪些扩充?
主要在以下方面进行了扩充:
文件扩展名、注释符、名字空间、输入输出、变量的定义、强制类型转换、动态内存的分配与释放、作用域运算符::、引用、const 修饰符、字符串、函数
4. 下述C++程序有若干处错误,试找出并纠正之。
正确程序为:
#include<iostream.h>
const float PAI=3.14159265;
float square(float r)
{return PAI*r*r;}
float square(float high,float length=0 )
{return high*length;}
float (*fs)(float,float=0);
void main()
{
fs=□
cout<<"The circle's square is "<<fs(1.0)<<'\n';
}
5. 引用类型与指针类型有什么区别?
指针的内容或值是某一变量的内存单元地址,而引用则与初始化它的变量具有相同的内存单元地址。
指针是个变量,可以把它再赋值成其它的地址,然而,建立引用时必须进行初始化并且决不会再指向其它不同的变量。
C++没有提供访问引用本身地址的方法,因为它与指针或其它变量的地址不同,它没有任何意义。
引用总是作为变量的别名使用,引用的地址也就是变量的地址。
引用一旦初始化,就不会与初始化它的变量分开。
6.函数、内联函数以及宏的区别。
程序的模块在C++中通过函数来实现,函数由函数说明和函数体2部分组成。
内联函数是C++语言特有的一种函数附加类别,是通过在函数声明之前插入“inline”关键字实现的。
编译器会将编译后的全部内联函数的目的机器代码复制到程序内所有的引用位置并把往返传送的数据也都溶合进引用位置的计算当中,用来避免函数调用机制所带来的开销,提高程序的执行效率。
显然这是以增加程序代码空间为代价换来的。
宏定义是编译预处理命令,分为带参数的和不带参数的宏定义。
在编译之前进行预处理时,用宏定义中的字符串替换程序中所有出现的宏名。
7. 函数重载有什么好处?
函数重载使函数方便使用,便于记忆,也使程序设计更加灵活,增加程序的可读性。
例如,求两个数中最大值的函数max,不管其参数是整数类型、实数类型、字符串,都可以使用同名函数来实现,调用时只需使用max就可以了,编译器将根据实参的类型判断应该调用哪一个函数。
8. 模板有什么作用?函数模板和模板函数有什么区别?
所谓模板是一种使用无类型参数来产生一系列函数或类的机制,是C++的一个重要特征。
通过模板可以产生类或函数的集合,使它们操作不同的数据类型,从而避免为每一种数据类型产生一个单独的类或函数。
函数模板提供了传递类型的机制。
函数模板定义不是一个实实在在的函数,编译系统不为其产生任何执行代码。
该定义只是对函数的描述,表示它每次能单独处理在类型形式参数表中说明的数据类型。
函数模板只是说明,不能直接执行,需要实例化为模板函数后才能执行。
当编译系统发现有一个函数调用:
<函数名><实参表>;
时,将根据<实参表>中的类型生成一个重载函数,即模板函数。
该模板函数的定义体与函数模板的函数定义体相同,而<形参表>的类型则以<实参表>的实际类型为依据。
VisualC面向对象编程教程第2版(王育坚)清华大学出版社课后答案
VisualC面向对象编程教程第2版(王育坚)清华大学出版社课后答案2-45编写一个程序,输入三角形的三条边的边长,求三角形的面积。
2-45#include#includeintmain(){inta,b,c;int,S;cin>>a>>b>>c;=(a+b+ c)/2;S=powl(某(-a)某(-b)某(-c),0.5);if(S==0)cout<2-46从键盘输入一个大写字母,然后改用小写字母在屏幕输出。
2-46#includeintmain(){charch;inta;cout<>ch;if(ch>=65&&ch<=91){ch =ch+32;//a=(int)ch;cout<2-47用户输入两个整数,编程输出稍大于第一个整数而又是第2个整数的倍数的数。
计算公式是:valuel+value2-value1%value2.2-47#includeintmain(){intvalue1,value2;intreult;cin>>value1>>val ue2;reult=value1+value2-value1%value2;cout<2-48华氏温度转换为摄氏温度的公式是:C=(F-32)某5/9.。
编写一个程序,输入一个华氏温度,程序输出相应的摄氏温度。
请将32和5/9用cont型变量表示。
2-48#includeintmain(){contfloati=32.0;contfloatj=5.0/9.0;floatde gFahr;floatdegCel;cin>>degFahr;//for(degFahr=0;degFahr<=300;degFahr+=10)//{degCel=j某(degFahr-i);cout<2-49从键盘输入20个整数,检查100是否存在于这些整数中,若是的话,求出他是第几个被输入的。
C 面向对象程序设计(2010年清华大学出版社出版的图书)
第1章计算机和C++编程入门 概述 1.1计算机系统 1.2编程和问题求解 1.3 C++入门 1.4测试和调试 小结 自测题答案 编程项目 第2章 C++基础知识 概述
图书五
内容简介
图书目录
《C++面向对象程序设计》从实际应用出发,系统地介绍C++面向对象程序设计的原理、方法和技巧。重点突 出,叙述清楚,深入浅出,论述详尽,使读者既能深刻领会面向对象程序设计的思想,了解面向对象程序设计的 特征,又能掌握C++语言的编程与应用。全书共8章,主要包括:面向对象程序设计语言概述、C++语言基础知识、 类和对象、对象成员和友员、继承和派生、多态性和运算符重载、模板、C++的输入/输出流。在每一章的知识点 后面,都给出了相应的程序设计实例,这些实例不仅有助于读者巩固知识点的内容,而且更有助于读者创新能力 的培养。
图书一
内容提要
目录
C++面向对象程序设计本书介绍了C++面向对象程序设计的基本知识和编程方法,以及C++面向对象的基本特征。 针对初学者的特点,本书力求通过大量实例、习题和上机实验题,以通俗易懂的语言讲解复杂的概念和方法,使读 者能深刻理解和领会面向对象程序设计的特点和风格,掌握其方法和要领,以期帮助读者尽快地迈入面向对象程 序设计的大门。
Savitch教授的研究领域包括复杂性理论、形式语言理论、计算语言学和计算机教材的开发。他因为对复杂 性理论所做的贡献而声名远扬,其中包括他提出的第一个完整语言(complete1anguage)范例。这个奠基性的
Visual C++程序设计案例教程第二章课后答案
(4)已知CTest类定义如下,t是CTest类的对象,则正确的成员访问是。(A)
class CTest {
public:
void SetA(int x)
{ a=x; }
private:
int a;
};
A. t.SetA(10)
B. t.a
C. t-> SetA(10)
(5)继承是通过基类与派生类来实现的。基类的成员在派生类中的访问权限由___继承方式___决定。
(6)派生类的对象可以当成____基类____的对象来处理,因此,指向_____基类______对象的指针也可以指向派生类的对象。
(7)对基类对象成员的初始化是通过___构造函数_____语法实现的。
(8)如果一个类中含有纯虚函数,则称该类为________抽象类______。
};
<各个成员函数的实现>
对象的定义格式:类名对象名;
(2)分析构造函数和析构函数的作用。
构造函数:用于创建和初始化实例;析构函数:析构函数用于销毁类的实例。
(3)简述基类和派生类关系。
任何一个类都可以派生出一个新类,派生类也可以再派生出新类,因此,基类和派生类是相对而言的。 基类与派生类之间的关系有:a:派生类是基类的具体化b:派生类是基类定义的延续c:派生类是基类的组合
};
class Point:public CShape
{
public:
Point(float a,float b);
virtual float area();
virtual float volume();
virtual void show();
清华大学 Visual C# 2000 程序设计 第二章
2.4 数据类型
2.4.1 简单数据类型
2. 布尔型 布尔类型是用来表示“真”和“假”这两个概念的。该类型变量只 有两种取值:“真”和“假”。在C#中,分别采用true和false两个值 来表示。 在C和C++语言中,用0来表示“假”值,其他任何非0的式子都可以 表示“真”这样一个逻辑值。这种的表达方式在C#中是非法的,在C#中, true值不能被其他任何非零值所代替。且在其他数据类型和布尔类型之 间不存在任何转换,C++中常见的将整数类型转换成布尔类型是非法的, 如下所示情形: Bool x = 2; //错误,不存在这种写法,只能是x=true或x=false Int x = 10; If(x == 100) //正确,x==100表达式将返回一个bool型结果 If(x) //错误,C++中的写法,不够严谨C#中被放弃
2.3 变量
2.3.2 变量的声明与赋值
要使用变量,就必须声明它们。即给变量指定一个名称和一种类型。 声明了变量后,编译器才会申请一定大小的存储空间,用来存放变量的 值。 C#中声明变量的语法如下所示: <type> <name>; <type> <name1>,<name2>; <type> <name = value>;
C#语言具有面向对象语言所应有的一切特性,包括封装、继承和 多态。同时,在C#类型系统中,每种类型都可以看作一个对象。任何 值类型、引用类型和Object类型之间都可以进行相互转换。
2.1 C#语言语法概述
3. 消除了大量的程序错误 C#的现代化设计能够消除很多常见的C++编译错误。例如,C#的 资源回收功能减轻了内存管理的负担,变量由环境自动初始化,变量 的类型是安全的。这样,使用C#语言编写和维护那些复杂的应用程序 就变得很方便。 4. 与Web开发紧密结合 C#可以在.NET平台上轻松地构造Web应用程序的扩展框架。C# 语言包含了内置的特性,使任何组件可以转换为XML网络服务,从而 通过Internet被任何操作系统上运行的组件调用。更为重要的是, XML网络服务框架使处理XML网络服务的过程变得简单。
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(“%lf\n”,2*s) (4)m%5==0 ,printf(“%d\n”,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).#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; 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); 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程序设计的任务141-5 #include stdio.hint main ( ){ printf (**************************\n\n);printf( very good!\n\n);printf (**************************\n);return 0;}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最基本的语句——赋值语句593.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年期,到期后将本息再存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语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]】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(“%lf\n”,2*s) (4)m%5==0 ,printf(“%d\n”,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).#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; 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); 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程序设计的任务141-5 #include stdio.hint main ( ){ printf (**************************\n\n);printf( very good!\n\n);printf (**************************\n);return 0;}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最基本的语句——赋值语句593.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年期,到期后将本息再存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); // 存活期存款。
VisualC 面向对象编程教程第2版(王育坚)清华大学出版社课后答案解析
2-45编写一个程序,输入三角形的三条边的边长,求三角形的面积。
2-45#include<iostream.h>#include<math.h>int main(){int a,b,c;int s,S;cin>>a>>b>>c;s=(a+b+c)/2;S=powl(s*(s-a)*(s-b)*(s-c),0.5);if(S==0)cout<<"此三边不能构成三角形!"<<endl;else{cout<<"面积:"<<endl;cout<<S<<endl;}return 0;}2-46从键盘输入一个大写字母,然后改用小写字母在屏幕输出。
2-46#include<iostream.h>int main(){char ch;int a;cout<<"输入一个大写字母:"<<endl;cin>>ch;if(ch>=65 && ch<=91){ch=ch+32;// a=(int)ch;cout<<ch<<endl;}else cout<<"该字母不是字母或不是字母大写!"<<endl; return 0;}2-47用户输入两个整数,编程输出稍大于第一个整数而又是第2个整数的倍数的数。
计算公式是:valuel+value2-value1%value2.2-47#include<iostream.h>int main(){int value1,value2;int result;cin>>value1>>value2;result=value1+value2-value1%value2;cout<<"该整数为:"<<result<<endl;return 0;}2-48华氏温度转换为摄氏温度的公式是:C=(F-32)*5/9.。
C语言程序设计答案——清华大学出版社(第二版)
5、编一程序,从键盘输入一个 5 位正整数,然后分别求出它的个位数、十位数、百位 数、千位数和万位数,并打印出这五位数字的和。如输入 12345,打印出 15(1+2+3+4+5=15)。
4* π *R*R*R
1、下列合法的字符常量是 D.'\n' 2、下列合法的字符串常量是 C."56" 3、合法的C语言标识符是B.sum 4、C语言程序的基本单位是C.函数 5、选出以下语句的输出结果printf("%d",strlen("\t\"\065\xff\n");A.6 6、在C语言中,要求运算数必须是整形的运算符是A.% 7、已知字母A的ASCII码为十进制 65,下面程序的输出是A.67,D
double a,b,max;
答案整理:林子雨 E-mail:ziyulin@ 主页:/linziyu 第 3 页/共 4 页
厦门大学本科生公共课 《C 程序设计基础》 第二版教材习题答案 第二章 C 语言基础
scanf("%lf%lf",&a,&b); max=a>b?a:b; printf("%lf\n",sqrt(max)); }
定义格式为:#define <常量名> <值常量> 变量的定义格式为: 数据类型 变量名 1,变量名 2,…,变量名 n; 或 数据类型 变量名 1=初值 1,变量名 2=初值 2,…,变量名 n=初值 n; 2、 变量的要素有哪些?请用一个例子说明? 名字、类型、值和地址 int a = 1;int 是类型,a 是名字,1 是值,地址是编译器给 a 变量分配的内存空间 3、 变量在整个程序中能有相同的值吗?为什么?请举例说明。 可以,因为变量的值可以被改变,但不是一定被改变。如果程序中没有其它不同的赋值, 变量将保持不变。 4、 为什么程序需要有短整型(short)和长整型(long)? 整型的值集理论上是所有整数,但由于受到计算机存储单元的限制,C 语言的整型只能 表示所有整数的一个有限子集,因此,整数有它的表示范围限制,且不同的 C 语言系统 可表示整数的范围可能不同。不同范围的整型数据所占有的内存空间大小不同。程序开 发人员通过选择能够满足范围要求的类型(short 或 long),可以减少数据存储空间。比 如,当短整型可以满足数据范围要求时,就没有必要选择需要更多存储空间的长整型。 5、 字符’8’和数字 8 有何不同? 字符’8’是字符型,数字 8 是整型 6、 C 语言有字符串变量吗? 没有 7、 C 语言中的运算符“/”和“%”有何区别?C 语言中除法运算符“/”与数学中的运算 符“÷”的用法和功能完全一样吗? “/”是除法,“%”是取余数,“/”与“÷”的用法和功能不完全一样,“÷”得到的是 两数相除后得到的真实值,“/”得到的是两数相除后取整的值。 8、 在 C 语言中,运算符“=”的功能是什么?能用它来判别两个量是否相等吗? “=”是赋值运算符,它将右侧表达式的值赋予左侧变量。不能判别两个量是否相等。 9、 双目运算符两边的操作数可以是不同的类型吗?如果可以,它们如何影响运算的结果? 可以,C 编译器会先对其中一些操作数进行隐式类型转换,使操作数类型一致后进行计 算。转换方向为:char,short->int->unsigned->long->double,float->double 10、描述你所学过的运算符的优先级。 () [] -> . 从左到右
Visual C++面向对象程序设计教程与实验(第二版)清华大学出版社第2章习题参考答案
1.分析下列程序的执行结果:输出随机数2. 分析下列程序的执行结果:i=03. C++语言对C语言在结构化程序设计方面进行了哪些扩充?主要在以下方面进行了扩充:文件扩展名、注释符、名字空间、输入输出、变量的定义、强制类型转换、动态内存的分配与释放、作用域运算符::、引用、const 修饰符、字符串、函数4. 下述C++程序有若干处错误,试找出并纠正之。
正确程序为:#include<iostream.h>const float PAI=3.14159265;float square(float r){return PAI*r*r;}float square(float high,float length=0 ){return high*length;}float (*fs)(float,float=0);void main(){fs=□cout<<"The circle's square is "<<fs(1.0)<<'\n';}5. 引用类型与指针类型有什么区别?指针的内容或值是某一变量的内存单元地址,而引用则与初始化它的变量具有相同的内存单元地址。
指针是个变量,可以把它再赋值成其它的地址,然而,建立引用时必须进行初始化并且决不会再指向其它不同的变量。
C++没有提供访问引用本身地址的方法,因为它与指针或其它变量的地址不同,它没有任何意义。
引用总是作为变量的别名使用,引用的地址也就是变量的地址。
引用一旦初始化,就不会与初始化它的变量分开。
6.函数、内联函数以及宏的区别。
程序的模块在C++中通过函数来实现,函数由函数说明和函数体2部分组成。
内联函数是C++语言特有的一种函数附加类别,是通过在函数声明之前插入“inline”关键字实现的。
编译器会将编译后的全部内联函数的目的机器代码复制到程序内所有的引用位置并把往返传送的数据也都溶合进引用位置的计算当中,用来避免函数调用机制所带来的开销,提高程序的执行效率。
《C++面向对象程序设计(第2版)》第2章 从C到C++
另一类是非标准的C++库头文件,这些头文件带
“.h”。在连接时,编译系统会根据头文件名自动确
Байду номын сангаас
定连接哪一个库。
10
【例】 标准C++程序设计的简单程序
#include <iostream> //2_2.cpp
#include <cstdio>
#include <cmath>
#include <string>
int x1; double x2; char x3; cin>>x1>>x2>>x3; ▪ 假如输入“35.4A”并按Enter键,x1是35;x2 是.4;x3是 'A'
23
cin和字符串
▪ 可以像读取基本类型数据一样,使用cin和>>操作符来读取字 符串,例如: cin >> mystring;
目标设备
123
4
cb
8A x
ty
18
2.2 流与标准输入与输出设备
• 输入流
▪ 输入流 (input stream)是指从输入设备流向内存 的字节序列。
• 输出流
▪ 输出流 (output stream)是指从内存流向输出设备 的字节序列。
• C++中的输入输入流
iostream ▪ cin 输入流对象,C++已将其与键盘关联 ▪ cout 输出流对象,C++已将其与显示器关联
using namespace std;
int main (){
string s1=“Hello”,s2;
