C语言第三章答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章 数据类型和表达式 3.1 把数学算式或不等式表示成C++表达式 1.2x 2. 3. 4. 5. 6. 7.0(x(20 8.ax-by≠c 9.4x+7y-2=3ab 10.(5同时3x+2≠0 11.age(55或者pay(820 12.place="江苏"同时sex="女" 13.'a'(ch('z'或者'A'(ch('Z' 14.s[2]='0'同时(s[1]='x' 或者 s[1]='X') 参考解答: 1.2*x*(1+x*x/3.0) 2.(1+exp(x))/(1-exp(x)) 3.(-b+sqrt(b*b-4*a*c))/(2*a) 4.1/(pow(3,x)*log(2*x+k)) 5.pow(sin(x+PI/4),3)/(3+pow(cos(x-PI/4),3)) //其中PI常量为 3.14159 6.1/7.0*pow((1+exp(x+1)),n) 7.x>=0 && x<=20 8.a*x-b*y!=c 9.4*x+7*y-2==3*a*b 10.fabs((2*x*x+1)/(3*x+2))<=5 && (3*x+2!=0) 11.age>=55 || pay>=820 12.place=="江苏" && sex=="女" 13.(ch>='a' && ch<='z') || (ch>='A' && ch<='Z') 14.s[2]=='0' && (s[1]=='x' || s[1]=='X') 3.2 根据题目要求编写程序 1.已知一个三角形中三条边的长度分别为a、b和c,试编写一个程序利 用计算公式求出三角形的面积,其中s=(a+b+c)/2,假定a、b和c的值由 键盘输入,并确保任何两边的长度大于等于第三条边。 2.假定一所大学当年招生人数为3000人,若以后每年平均比上一年计 划扩招10%,试编写一个程序计算出5年后将计划招生到多少人? 3.已知有四个整数为a、b、c、d,试计算出它们的算术平均值和几何 平均值。 4.已知x=,y=,试编写一个程序,根据从键盘上输入的a和b的值分别 计算出x和y的值。 参考解答:
1.#include<iostream.h> //支持输入/输出操作 #include<stdlib.h> //支持exit()函数调用 #include<math.h> //支持sqrt()函数调用 void main() { double a,b,c; cout<<"输入三角形的3条边:"; cin>>a>>b>>c; if(a<=0 || b<=0 || c<=0) {cout<<"数据有错! "<<'\n'; exit(1);} if(a+b<c || a+c<b || b+c<a) {cout<<"数据有错! "<<'\n'; exit(1);} double s=(a+b+c)/2; cout<<"三角形面积: "<<sqrt(s*(s-a)*(s-b)*(s-c))<<endl; } 2.#include<iostream.h> #include<math.h> void main() { int n=5; double x=0.1; 年增长率 double y=3000*pow(1+x,n); cout<<"y="<<y<<endl; } 3.#include<iostream.h> #include<math.h> void main() { int a,b,c,d; cout<<"输入4个整数:"; cin>>a>>b>>c>>d; double v1,v2; 均值 v1=(a+b+c+d)/4.0; v2=pow(a*b*c*d,0.25);
bool 21.unsigned 22.double 23.int 24. char 25.int 26.double 27. double 28.double 29.double 30.int 31.int 32. double 33.double 34.double 35.bool 36. bool 37.bool 38.bool 39.bool 40. bool 3.5 求出各表达式的值(补充) 假定各表达式中所使用的变量a、x和r分别为int、double和char型,它 们的值分别为20、4.7和'a',并假定各表达式互不影响。 1.a++ 2.++r 3.a%5 4.a/5 5.r%18 6. 1+a/3%4 7.a/8.0 8.r+=4 9. x=2*(x+5)-1 10.char(a+30) 11.10*sizeof(int) 12.(a<<3)+5 13.a>0 14.a==1 15.a++ && r!='a' 16.++a && r=='a' 17.a || x<=10 18. a==r || a==floor(x) 19.a=(r>'A'?a+10:a-10) 20.a=(r<'A'?a+10:a10) 21.x=(a++, r++) 22.x=(a++, r++, 50) 23.x=pow(3,5) 24.x=fabs(-26.5)+4 25.a=abs(a)%8-10 26. floor(x+0.5) 27.ceil(x-0.5) 28.ceil((x- =0.5) - 0.5) 参考解答: 1.20 2.'b' 3.0 4.4 5.7 6.3 7. 2.5 8.'e'
14.256、22 15.x、x 16.0、1 17.20 18.5 19.9、216 20.0、19 21.(1+x)*sin(48*3.14159/180)、a*pow(x,b)*exp(x+1) 3.4 指出表达式值的类型(补充) 假定各表达式中所使用的变量a为int型,x为double型。 1.327 2.-1.5e6 3.42.0f 4.48L 5.0372 6.0xabc 7.1/3 8.1%3 9.1.0%3 10.a*3/x 11.a*(a+x) 12.1+a*a 13.a+=3 14.x*=2 15.'x' 16.'x'+20 17.true 18.++a 19.short(a) 20.bool(x) 21. (unsigned int) (0256) 22.x=a++ 23.sizeof(bool) 24.char(a+10) 25.abs(x) 26.fabs(a) 27. floor(x) 28.ceil(a) 29.exp(4)+2 30.rand() 31.rand()/100 32.floor(log(x)) 33. pow(a,4) 34.a>10?x:sqrt(x) 35.a>100 36.x!=10 37.a && x 38.a<1 || a>10 39.!x 40.!(a==0) 参考解答: 1.int 2.double 3.float 4. long int 5.int 6.int 7.int 8. int 9.double 10.double 11.double 12. int 13.int 14.double 15.char 16.int 17.bool 18.int 19.short 20.
、
、 和 。 10.若x的值为10,则x+=5的值和运算后的 的值相同,等于 。 11.若x=5,y=10,则计算y*=++x表达式后,x和y的值分别为 和 。 12.若x=25,则计算y=x++表达式后,x和y的值分别为 和 。 13.假定x和ch分别为int型和char型,则sizeof(x)和sizeof(ch)的值 分别为 和 。 14.假定x=64,y=88,则x<<2和y>>2的值分别为 和 。 15.假定x是一个逻辑量,则逻辑表达式x && true的值与 的值 相同,x||false的值也与 的值相同。 16.假定x是一个逻辑量,则x && !x和x || !x的值分别为 和 。 17.假定x=10,则表达式(x<=10?20:30)的值为 。 18.假定x=10.5,y= -4.6,则表达式floor(fabs(x+y))的值为 。 19.表达式sqrt(81)和pow(6,3)的值分别为 和 。 20.随机函数rand()%20的值在 至 区间内。 21.数学算式(1+x)sin48(和axbex+1对应的算术表达式分别为 和 。 参考解答: 1.4、1、1、4、8 2.short、int、long 3.4、2、2 4.46、123、98 5.107、10、92、42、102 6.15 7.符号常量、整数、int 8.3.4E2、5.27E6 9.int、int、double、double、float 10.x、15 11.6、60 12.26、25 13.4、1
9.18.4 40 13.1
10.'2' 11. 12.165 14.0 15.0 16.1 17.1 18.0 19. 30 20.10 21.97 22.50 23.243 24.30.5 25.-6 26.5 27.5 28.4 3.6 求出逻辑表达式的相反式(补充) 1.x 2.x==0 3.a!=true 4.x>=10 5.x!=key && flag 6.p!=NULL && flag==true 7.x>0 && x<10 8.x==key || true 9.x>=a || false 10.ch=='d' || ch=='D' 11.p && p->data!=x 12.i<n && a[i]!=key 13.ch=='(' || ch=='[' || ch=='{' 14.x || i<n && i!=0 参考解答: 1.!x 2.x!=0 3.a==true 4.x<10 5.x==key || !flag 6.p==NULL || flag==false 7.x<=0 || x>=10 8.false 9.x<a 10.ch!='d' && ch!='D' 11.!p || p->data==x 12.i>=n || a[i]==key 13.ch!='(' && ch!='[' && ch!='{' 14.!x && (i>=n || i==0) //使用圆括号为必须,因||的优先级低 于&& 3.7 写出程序运行后的输出结果并上机验证(补充)
//用n表示年数 //用x表示扩大招生的 //用y表示5年后招生人数//用v1和v2分别Fra bibliotek存算术和几何平
cout<<"算术平均值:"<<v1<<endl; cout<<"几何平均值:"<<v2<<endl; } 4.#include<iostream.h> #include<stdlib.h> #include<math.h> void main() { double a,b,x,y,temp; cout<<"输入a和b的值: "; cin>>a>>b; if(a+b==0){cout<<"分母为0!\n"; exit(1);} temp=2/(3*(a+b)); //用temp计算两个公式中公共部分的值 x=temp*a*sin(a); y=temp*b*cos(b); cout<<"x="<<x<<", "<<"y="<<y<<endl; } 3.3 填空题(补充) 1.数据类型int、char、bool、float、double等的类型长度分别为 、 、 、 和 。 2.短整型、标准整型和长整型的最简关键字分别为 、 和 。 3.常数-4.205、1200和6.7E-9分别具有 、 和 位有效数字。 4.数值常量46、0173和0x62对应的十进制值分别为 、 和 。 5.字符常量'k'、'\n'、'\\'、'/052'和'\x66'对应的数值(即十进制 的ASCII码值)分别为 、 、 、 和 。 6.字符串"It\'s\40an\40apple.\n"中包含有 个字符。 7.枚举类型中的每个枚举值都是一个 ,它的值是一个 ,值的类型关键字为 。 8.实数340.0和0.0527E8对应的规格化浮点数分别为 和 。 9.常数100、-25、3.62、1E5和-4.73f的数据类型分别为 、
1.#include<iostream.h> //支持输入/输出操作 #include<stdlib.h> //支持exit()函数调用 #include<math.h> //支持sqrt()函数调用 void main() { double a,b,c; cout<<"输入三角形的3条边:"; cin>>a>>b>>c; if(a<=0 || b<=0 || c<=0) {cout<<"数据有错! "<<'\n'; exit(1);} if(a+b<c || a+c<b || b+c<a) {cout<<"数据有错! "<<'\n'; exit(1);} double s=(a+b+c)/2; cout<<"三角形面积: "<<sqrt(s*(s-a)*(s-b)*(s-c))<<endl; } 2.#include<iostream.h> #include<math.h> void main() { int n=5; double x=0.1; 年增长率 double y=3000*pow(1+x,n); cout<<"y="<<y<<endl; } 3.#include<iostream.h> #include<math.h> void main() { int a,b,c,d; cout<<"输入4个整数:"; cin>>a>>b>>c>>d; double v1,v2; 均值 v1=(a+b+c+d)/4.0; v2=pow(a*b*c*d,0.25);
bool 21.unsigned 22.double 23.int 24. char 25.int 26.double 27. double 28.double 29.double 30.int 31.int 32. double 33.double 34.double 35.bool 36. bool 37.bool 38.bool 39.bool 40. bool 3.5 求出各表达式的值(补充) 假定各表达式中所使用的变量a、x和r分别为int、double和char型,它 们的值分别为20、4.7和'a',并假定各表达式互不影响。 1.a++ 2.++r 3.a%5 4.a/5 5.r%18 6. 1+a/3%4 7.a/8.0 8.r+=4 9. x=2*(x+5)-1 10.char(a+30) 11.10*sizeof(int) 12.(a<<3)+5 13.a>0 14.a==1 15.a++ && r!='a' 16.++a && r=='a' 17.a || x<=10 18. a==r || a==floor(x) 19.a=(r>'A'?a+10:a-10) 20.a=(r<'A'?a+10:a10) 21.x=(a++, r++) 22.x=(a++, r++, 50) 23.x=pow(3,5) 24.x=fabs(-26.5)+4 25.a=abs(a)%8-10 26. floor(x+0.5) 27.ceil(x-0.5) 28.ceil((x- =0.5) - 0.5) 参考解答: 1.20 2.'b' 3.0 4.4 5.7 6.3 7. 2.5 8.'e'
14.256、22 15.x、x 16.0、1 17.20 18.5 19.9、216 20.0、19 21.(1+x)*sin(48*3.14159/180)、a*pow(x,b)*exp(x+1) 3.4 指出表达式值的类型(补充) 假定各表达式中所使用的变量a为int型,x为double型。 1.327 2.-1.5e6 3.42.0f 4.48L 5.0372 6.0xabc 7.1/3 8.1%3 9.1.0%3 10.a*3/x 11.a*(a+x) 12.1+a*a 13.a+=3 14.x*=2 15.'x' 16.'x'+20 17.true 18.++a 19.short(a) 20.bool(x) 21. (unsigned int) (0256) 22.x=a++ 23.sizeof(bool) 24.char(a+10) 25.abs(x) 26.fabs(a) 27. floor(x) 28.ceil(a) 29.exp(4)+2 30.rand() 31.rand()/100 32.floor(log(x)) 33. pow(a,4) 34.a>10?x:sqrt(x) 35.a>100 36.x!=10 37.a && x 38.a<1 || a>10 39.!x 40.!(a==0) 参考解答: 1.int 2.double 3.float 4. long int 5.int 6.int 7.int 8. int 9.double 10.double 11.double 12. int 13.int 14.double 15.char 16.int 17.bool 18.int 19.short 20.
、
、 和 。 10.若x的值为10,则x+=5的值和运算后的 的值相同,等于 。 11.若x=5,y=10,则计算y*=++x表达式后,x和y的值分别为 和 。 12.若x=25,则计算y=x++表达式后,x和y的值分别为 和 。 13.假定x和ch分别为int型和char型,则sizeof(x)和sizeof(ch)的值 分别为 和 。 14.假定x=64,y=88,则x<<2和y>>2的值分别为 和 。 15.假定x是一个逻辑量,则逻辑表达式x && true的值与 的值 相同,x||false的值也与 的值相同。 16.假定x是一个逻辑量,则x && !x和x || !x的值分别为 和 。 17.假定x=10,则表达式(x<=10?20:30)的值为 。 18.假定x=10.5,y= -4.6,则表达式floor(fabs(x+y))的值为 。 19.表达式sqrt(81)和pow(6,3)的值分别为 和 。 20.随机函数rand()%20的值在 至 区间内。 21.数学算式(1+x)sin48(和axbex+1对应的算术表达式分别为 和 。 参考解答: 1.4、1、1、4、8 2.short、int、long 3.4、2、2 4.46、123、98 5.107、10、92、42、102 6.15 7.符号常量、整数、int 8.3.4E2、5.27E6 9.int、int、double、double、float 10.x、15 11.6、60 12.26、25 13.4、1
9.18.4 40 13.1
10.'2' 11. 12.165 14.0 15.0 16.1 17.1 18.0 19. 30 20.10 21.97 22.50 23.243 24.30.5 25.-6 26.5 27.5 28.4 3.6 求出逻辑表达式的相反式(补充) 1.x 2.x==0 3.a!=true 4.x>=10 5.x!=key && flag 6.p!=NULL && flag==true 7.x>0 && x<10 8.x==key || true 9.x>=a || false 10.ch=='d' || ch=='D' 11.p && p->data!=x 12.i<n && a[i]!=key 13.ch=='(' || ch=='[' || ch=='{' 14.x || i<n && i!=0 参考解答: 1.!x 2.x!=0 3.a==true 4.x<10 5.x==key || !flag 6.p==NULL || flag==false 7.x<=0 || x>=10 8.false 9.x<a 10.ch!='d' && ch!='D' 11.!p || p->data==x 12.i>=n || a[i]==key 13.ch!='(' && ch!='[' && ch!='{' 14.!x && (i>=n || i==0) //使用圆括号为必须,因||的优先级低 于&& 3.7 写出程序运行后的输出结果并上机验证(补充)
//用n表示年数 //用x表示扩大招生的 //用y表示5年后招生人数//用v1和v2分别Fra bibliotek存算术和几何平
cout<<"算术平均值:"<<v1<<endl; cout<<"几何平均值:"<<v2<<endl; } 4.#include<iostream.h> #include<stdlib.h> #include<math.h> void main() { double a,b,x,y,temp; cout<<"输入a和b的值: "; cin>>a>>b; if(a+b==0){cout<<"分母为0!\n"; exit(1);} temp=2/(3*(a+b)); //用temp计算两个公式中公共部分的值 x=temp*a*sin(a); y=temp*b*cos(b); cout<<"x="<<x<<", "<<"y="<<y<<endl; } 3.3 填空题(补充) 1.数据类型int、char、bool、float、double等的类型长度分别为 、 、 、 和 。 2.短整型、标准整型和长整型的最简关键字分别为 、 和 。 3.常数-4.205、1200和6.7E-9分别具有 、 和 位有效数字。 4.数值常量46、0173和0x62对应的十进制值分别为 、 和 。 5.字符常量'k'、'\n'、'\\'、'/052'和'\x66'对应的数值(即十进制 的ASCII码值)分别为 、 、 、 和 。 6.字符串"It\'s\40an\40apple.\n"中包含有 个字符。 7.枚举类型中的每个枚举值都是一个 ,它的值是一个 ,值的类型关键字为 。 8.实数340.0和0.0527E8对应的规格化浮点数分别为 和 。 9.常数100、-25、3.62、1E5和-4.73f的数据类型分别为 、