第3章习题参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章 程序设计初步
习题参考答案
1、(略)
2、解
#include
#include
using namespace std;
const float pi=3.1415926; //也可定义为符号 #define pi 3.1415926
void main ( )
{float h,r,l,s,sq,vq,vz;
cout<<"please enter r,h:";
cin>>r>>h;
l=2*pi*r;
s=r*r*pi;
sq=4*pi*r*r;
vq=3.0/4.0*pi*r*r*r;
vz=pi*r*r*h;
cout< < cout<<"l= "< cout<<"s= "< cout<<"sq="< cout<<"vq="< cout<<"vz="< } 3、输入一个华氏温度,要求输出摄氏温度。公式为C=9 5(F-32),输出要有文字说明,取两位小数。 解: #include #include void main () {float c,f; cout<<"请输入一个华氏温度:"; cin>>f; c=5.0/9.0*(f-32); //注意5和9要用实型表示,否则5/9值为0 cout< 4、编程序,用getchar 函数读入两个字符给c1,c2,然后分别用putchar 函数和cout 语句输出这两个字符。并思考以下问题: (1)变量c1,c2应定义为字符型或整型?抑或二者皆可? (2)要求输出c1和c2值的ASCII 码,应如何处理? 解: #include using namespace std; void main ( ) {char c1,c2; //可定义为int cout<<"请输入两个字符c1,c2:"; c1=getchar(); //将输入的第一个字符赋给c1 c2=getchar(); //将输入的第二个字符赋给c2 cout<<"用putchar函数输出结果为:"; putchar(c1); putchar(44); putchar(c2); putchar('\n'); cout<<"用cout语句输出结果为:"; cout< } 回答思考的问题: (1)c1和c2应定义为字符型。若定义为整型,则用putchar函数时输出的是字符,而用上述的cout语句时输出的是a和b的ASCII码。 (2)若想输出a和b的ASCII码,可以将a、b定义为整型,并且用cout语句输出a,b即可。 5、整型变量与字符变量是否在任何情况下都可以互相代替?如: char c1,c2; 与int c1,c2;是否无条件等价? 答:字符数据与整型数据只是在一定条件下可以通用,具体包括以下几种:(1)将一个整数一个字符型变量。 (2)将一个字符赋给一个整型变量 (3)字符数据与整型数据可以混合运算。 (4)在调用函数时函数的实参向形参传值,字符数据与整型数据之间可以通用。 但不是任何情况下二者都可以通用。一是字符变量占一个字节,而整型占四个字节,整数超过255则不能转换。二是用cout语句输出时是按类型进行输出的。 6、答:(略) 7、答:在求一个逻辑表达式时,若结果值为“真”,则在C++中以1表示;若其值为“假”,则以0表示。但在判断一个逻辑量的值时,以0代表“真”,以非0代表“假”。 8、 #include using namespace std; int main ( ) { int a=3,b=4,c=5,x,y; cout<<(a+b>c && b==c)< cout<<(a||b+c && b-c)< cout<<(!(a>b) && !c||1)< cout<<(!(x=a) && (y=b) && 0)< cout<<(!(a+b)+c-1 && b+c/2)< } 结果为:(1)0 (2)1 (3)1 (4)0 (5)1 9、法一 #include using namespace std; int main ( ) {int a,b,c,max; cout<<"please enter three integer numbers:"; cin>>a>>b>>c; max=a; if(max if(max cout<<"max="< } 法二: #include using namespace std; int main ( ) {int a,b,c,temp,max ; cout<<"please enter three integer numbers:"; cin>>a>>b>>c; temp=(a>b)?a:b; /* 将a和b中的大者存入temp中*/ max=(temp>c)?temp:c; /* 将a和b中的大者与c比较,最大者存入max */ cout<<"max="< } 10、 #include using namespace std; int main ( ) {int x,y; cout<<"enter x:"; cin>>x; if (x<1) y=x; else if (x<10) y=2*x-1; else y=3*x-11; cout<<"x="< }