VC教科书课后习题答案.doc_第1页
VC教科书课后习题答案.doc_第2页
VC教科书课后习题答案.doc_第3页
VC教科书课后习题答案.doc_第4页
VC教科书课后习题答案.doc_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

练习题1练习题2练习题3练习题4练习题5练习题6练习题7练习题8练习题9练习题10练习题11练习题12练习题13第一章练习题P.91_1答:(1)正确性(2)可读性和可理解性好(3)可维护性好(4)构思好、简短、执行速度快。1_2答:(1)封装性(2)继承和派生性(3)重载性(4)多态性。1_3答:(1)输入源程序,得到.cpp文件(2)编译,得到.obj文件(3)构件(连接),得到.exe文件(4)执行,运行.exe文件1_4略1_5答:(1)/*注解信息*/,运用于程序的任何地方;(2)/注解信息,运用于行尾。1_6答:(1)分析问题,描述算法(2)编写程序,得到源程序(3)编译源程序,产生目标文件(4)构件(连接),得到可执行文件(5)调试程序。返回第二章练习题P.302_1不合法的有:1.25e3.4(指数必须为整数)、9645( 内只能有一个字符)合法的有:32767(整型)、35u(无符号整型)、3L(长整型)、0.0086 e-32(实型)、87(字符型)、”Computer System”(字符串)、”a” (字符串)、a (字符型)、-0(整型)、+0(整型)、.5(实型)、-.567(实型)2_2定义:以英文字母、下划线开始的,由字母、下划线和数字组成的字符序列。合法的有:abc、English、Else(C+区分大小写,else非法)、China_bb、b3y、AbsFloat不合法的有:2xy(不能以数字开头)、x-y(含非法字符“-”)、if(关键字不能做标识符)、b(3) (含非法字符“(”和“)”)、def(含非法字符“”)、float(关键字不能做标识符)。2_3(1)b=1(2)1 (3)c=102 (4)b=8(5)d=40(6)c=62_4-12E-5=-0.000121.25E-5=0.0000125.01E+3=1050E-6=0.00005 12.345E4=1234502_5字符:a、0x33、r、字符串:”a”、”中国”、”8.24”、”nt0x34”、”0x33”其它:0x66、China、56.34、8.342_6(1) x不正确,在同一个作用域内(相同的范围内)变量不能重复定义;(2) c1不正确,在同一个作用域内(相同的范围内)变量不能重复定义。2_7(1)sin(x)/(x-y)(2)sqrt(s*(s-a)*(s-b)*(s-c)(3)(a+b)*(m+n)(4)(x+y)/(x-y)2_8合法的赋值表达式有:A=b=4.5+7.8、x=(y=4.5)=45、e=xy不合法的赋值表达式有:c=3.5+4.5=x=y=7.96(式中试图把值赋给常量)2_9(1)13(2)25(实型)(3)17(4)120(整型)2_10(1)0(2)1(3)1(4)12_11(1) a=1764,b=7(2) a=6,b=1,c=1(3) a=7,b=7,c=d=15(4) a=91,b=49(5) a=19,b=13,c=19(6) a=6,b=7,c=15,d=152_12(1) a=18(2) b=19(3) c=20(4) d=182_13(1) y=14(2) x=5,y=5,z=13(3) x=40,y=1600(4) x=13,y=5,z=132_14(1) x=1,a=15,b=18,c=21(2) y=0,a=15,b=18,c=21(3) x=1,a=15,b=18,c=22(4) y=1 ,a=15,b=18,c=212_15(1) x=7(实型),a=7(整型)(2) x=7.873,a=7(整型)(3) x=7(实型),y=7.873,a=7(整型)(4) x=7.5,a=25(整型),b=7(整型)返回第三章练习题P.63_1c1= ,c2=a ,c3=3_210099a3_3c1=a ,c2=b ,c3=c3_4291831233_52564001003_63333返回第四章练习题P.604_1C+语句分为:说明语句、控制语句、函数调用语句、表达式语句、空语句和复合语句(也称块语句)六类。C+的基本程序结构分为:顺序结构、选择结构和循环结构三种。4_2#includevoid main()int a,b,c;cinab;ab?(c=a):(c=b);cout大数为:cn;4_3#includevoid main(void)float x,y;cinx;if(x=2.5)y=1.5*x+7.5;else y=9.32*x-34.2;coutx=xty=yendl;4_4#includevoid main(void)float x,y;cinxy;coutx=xty=yy)coutx-y=x-yendl;else couty-x=y-xendl;4_5#include#includevoid main(void)float a,b,c,delta;coutabc;couta=atb=btc=cn;delta=b*b-4*a*c;if(delta0)coutNo solutions!n;elsedelta=sqrt(delta);cout方程的根为:n;coutx1=(-b+delta)/2/at;coutx2=(-b-delta)/2/an;4_6(1) 用条件语句实现#includevoid main()float s;while(1)couts;if(s=90)cout=80)cout=70)cout=60)cout五分制成绩为Dn;else cout五分制成绩为En;(2) 用开关语句实现#includevoid main()float s;while(1)couts;if(s0)break;switch(int)s/10)case 10:case 9:cout五分制成绩为An;break;case 8:cout五分制成绩为Bn;break;case 7:cout五分制成绩为Cn;break;case 6:cout五分制成绩为Dn;break;default:cout五分制成绩为En;break;4_7#includevoid main(void)float a,sum=0;for(int i=1;ia;sum+=a;coutsum=sumtaverage=sum/10endl;4_8#includevoid main(void)int n;float x=1,y=0;cinn;coutn=nt;for(int i=1;i=n;i+)x*=i;y+=x;couty=yendl;4_9#includevoid main(void)int i,k,j,m,n=0;for(i=100;i=999;i+)m=0;k=i;while(k)j=k%10;m+=j*j*j;k/=10;if(m=i)coutit;coutn;4_10#include#include#includevoid main(void)int i,j,k=0,l;for(i=101;i200;i+=2)j=sqrt(i);for(l=2;l=j+1)coutsetw(6)i;k+;if(k%5=0)coutn;coutn;4_11#include#includevoid main(void)for(int i=0;i3;i+)for(int k=1;k=4;k+)cout* ;coutn;coutsetw(i*2+2) ;4_12#includevoid main(void)int n,y0,y1,y2,y3,k;for(n=0;n=3;n+)switch(n)case 0:y0=0;couty0t;break;case 1:y1=1;couty1t;break;case 2:y2=2;couty2t;break;default:for(k=3;n=20;n+)y3=y0+y1+y2;couty3t;y0=y1;y1=y2;y2=y3;k+;if(k%4=0)coutn;coutn;4_13#includevoid main(void)int n,sum=0;coutn;coutn=nn;cout各位数字之和是:;for(int i=1;i=4;i+)sum+=n%10;n/=10;coutsumn;4_14void main(void)int count1=0,count2=0;float n,sum1=0,sum2=0;coutn;if(n=0)break;if(n0)count1+=1;sum1+=n;elsecount2+=1;sum2+=n;cout正数的个数为:count1t正数之和是:sum1n;cout负数的个数为:count2t负数之和是:sum2n;cout总的平均值:(sum1+sum2)/(count1+count2)endl;4_15#includevoid main(void)int n,num;coutn;coutn=nn;cout反序的各位数字分别是:;for(int i=1;i=4;i+)num=n%10;coutnum;n/=10;coutn;4_16#includevoid main(void)int n,s=0;for(n=1;n+)s+=n;if(s=600)break;coutn=nts=sendl;4_17#includevoid main(void)float pi=1;for(int n=1;n=1000;n+)pi*=(n*2.0)/(2*n-1)*(n*2.0)/(2*n+1);coutpi/2=piendl;4_18#includevoid main(void)int i,j,k=0;for(i=1;i=599;i+)if(i%3=0)j=i;while(j)if(j%10=5)coutit;k+;if(k%8=0)coutn;break;j/=10;coutn;算法2int i,j,k=0;for(i=3;i=599;i=i+3)j=i;while(j)if(j%10=5)coutit;k+;if(k%8=0) coutn;break;j/=10;coutn;4_19#includevoid main(void)int i,j1,j2,j3,l;for(i=100;i=999;i+)l=i;j1=l%10;l/=10;j2=l%10;l/=10;j3=l%10;if(j1*j1+j2*j2+j3*j3)=i/11&(j1=j2|j2=j3|j3=j1)coutit;coutn;或#includevoid main(void)int i;for(i=100;i=999;i+)if(i%10)*(i%10)+(i/10%10)*(i/10%10)+(i/100)*(i/100)=i/11)if(!(i%10-i/10%10)*(i/10%10-i/100)*(i%10-i/100)coutit;coutn;返回第五章练习题P.965_1#includevoid main(void) int x,y,z,max; cout输入三个整数!xyz; coutx=xty=ytz=zn; int fun_max(int,int); max=fun_max(fun_max(x,y),z); cout最大数是:maxb) return a;else return b; 5_2#include#includeint fun(int n)if(n0)coutn应为正数!n;exit(1);if(n=0)return 1;return n*fun(n-1);int fun_c(int m,int r)if(m0|r0|mr)cout输入的数不正确!n;exit(1);return fun(m)/(fun(r)*fun(m-r);void main()coutc(4,2)=fun_c(4,2)n;coutc(6,4)=fun_c(6,4)n;coutc(8,7)=fun_c(8,7)n;5_3#include void fun(int x)int t;if(x=0)return; t=x%16;fun(x/16);switch(t)case 15:coutF;break;case 14:coutE;break;case 13:coutD;break;case 12:coutC;break;case 11:coutB;break;case 10:coutA;break;default:coutt;void main()int x;coutx;fun(x);coutendl;5_4#include#includeint fun(int n)int m;m=(int)sqrt(n);for(int k=3;k=m;k+)if(n%k=0)return 0;return 1;void main()int j=0; for(int a=5;a=100;a+=2)if(fun(a)=1)coutat;j+;if(j%5=0)coutn;coutn;5_5#includeint fun(int x,int y)for(int i=x;i+)if(i%y=0&i%x=0)return i;void main()int num1,num2;cinnum1num2;coutnum1和num2的最小公倍数是:fun(num1,num2)n;5_6#includeint fun(int x,int y)for(int i=x;i1;i-)if(y%i=0&x%i=0)return i;return 1;void main()int num1,num2;cinnum1num2;coutnum1和num2的最大公约数是:fun(num1,num2)n;5_7#includeint max(int a ,int b) coutb) return a;else return b;float max(float a ,float b) coutb) return a;else return b;void main(void) int x=1,y=2; float a=1,b=2; cout大数是:max(a,b)endl; cout大数是:max(x,y)endl;5_8#includeinline float fun_max(float a ,float b,float c) return a=b?a:b=b?a:b);void main(void)float x,y,z;cinxyz;cout最大数是: fun_max(x,y,z)endl;5_9#includeint fun1(int n=10) /用循环解int jc=1;for(int i=1;i=n;i+)jc*=i;return jc;int fun2(int n=10) /用递归解if(n=0|n=1)return 1;return n*fun2(n-1);void main()cout10!=fun1()n;cout10!=fun2()n;coutn!=fun1(n)n;coutn!=fun2(n)n;5_12#include#includelong Fibonacci(int n)if(n=1|n=2)return 1;return Fibonacci(n-1)+Fibonacci(n-2);void main()int n;cinn;for(int i=1;i=n;i+)coutsetw(12)Fibonacci(i);if(i%4=0)coutn;coutn;5_13#includefloat H1(int n,float x) /递归if(n=0)return 1;if(n=1)return 2*x;return 2*x*H1(n-1,x)-2*(n-1)*H1(n-2,x);float H2(int n,float x) /非递归循环float h0=1,h1=2*x,h2;if(n=0)return 1;if(n=1)return 2*x;for(int i=2;i=n;i+)h2=2*x*h1-2*(i-1)*h0;h0=h1;h1=h2;return h2;void main()int n;float x;cout请输入一个不小于零的整数和一个褛!nx;cout输入的两个数是:endl;coutn=ntx=xendl;coutHermite数列的前n项分别是:n;for(int i=0;i=n;i+)coutHi=H1(i,x)(H2(i,x)endl;5_15#includevoid fun1(int x) /正序递归int t;if(x=0)return; t=x%10; fun1(x/10); coutt;void fun2(int x) /反序递归int t;if(x=0)return; t=x%10;cout0;i+)y/=10; /求x的位数ifor(;i0;i-) /输出并去掉最高位y=x;for(j=i;j1;j-)y/=10;couty;for(;j0;x/=10)coutx%10;void main()int a=12345;fun1(a);coutn;fun2(a);coutn;fun3(a);coutn;fun4(a);couty)return x;else return y;/mypro.cpp(文件名)#include#includemyfun.hvoid main()float a,b,c,max;cinabc;couta=atb=btc=cn;max=fun_max(fun_max(a,b),c);cout最大数是:maxendl;5_17#include#define MAX(A,B) AB?A:B#define MIN(A,B) AB?B:Avoid main()int x,y,z,max,min;cinxyz;max=MAX(MAX(x,y),z);min=MIN(MIN(x,y),z);cout最大数是:maxt最小数是:minn;5_18#include#include#define AREA(a,b,c) sqrt(a+b+c)/2*(a+b+c)/2-a)*(a+b+c)/2-b)*(a+b+c)/2-c)double area(float a,float b,float c)return sqrt(a+b+c)/2*(a+b+c)/2-a)*(a+b+c)/2-b)*(a+b+c)/2-c);void main()float x,y,z,area1,area2;cinxyz;if(x+yz&y+zx&z+xy)area1=(float)AREA(x,y,z);area2=(float)area(x,y,z);coutarea=area1(area2)n;else cout输入的值不正确!n;*5_14#includelong Acm(int m,int n)if(m0|n0)coutm和n为正整数!;exit(1);if(m=0)return n+1;if(n=0)return Acm(m-1,1);return Acm(m-1,Acm(m,n-1);void main()coutAcm(5,3)=Acm(5,3)n;coutAcm(4,2)=Acm(4,2)n;coutAcm(5,5)=Acm(5,5)n;注:第10、11、14和19不作要求。返回第六章练习题P.1186_1# include void main( ) int a9=1,2,3,4,5,6,7,8,9;int max1=0,max2=0,count=0;for(int k=0;kmax2)max2=ak;if(ak%2!=0)count+=1;if(akmax1)max1=ak;cout最大偶数是:max2endl;if(!count)cout没有奇数!endl;else cout最大奇数是:max1endl;6_2# include void main( ) int i=0,count1=0,count2=0,a100;float sum=0;for(int k=0;kak;if(ak=0)break;for(int j=0;aj;j+)sum+=aj;if(aj0)count1+=1;else count2+=1;coutaverage=sum/(count1+count2)endl;cout正数个数是:count1t负数个数是:count2endl;6_3# include void input(float a,int n)for(int i=0;iai;void sort(float a,int n)for(int i=0;in-1;i+)for(int j=i+1;jaj)float t=ai;ai=aj;aj=t;void output(float a,int n)for(int i=0;in;i+)coutait;coutendl;void main( ) float a10;input(a,10);sort(a,10);output(a,10);6_4# include void input(float a,int n)for(int i=0;iai;float fun_M(float a,int n)float M=0;for(int i=0;in-1;i+)M+=ai;return M/n;float fun_D(float a,int n)float D=0;float M=fun_M(a,n);for(int i=0;in;input(a,n);coutD=fun_D(a,n)endl;6_5#includevoid main()int i,j,sum=0;int a44;for(i=0;i4;i+)for(int j=0;jaij;coutn;for(i=0;i4;i+)for(j=0;j4;j+)if(i=j|(i+j)=3)sum+=aij;coutsum=sumendl;6_6#include#includevoid main()int i,j,t;int a44;for(i=0;i4;i+)for(int j=0;jaij;for(i=0;i4;i+)for(int j=0;j4;j+)coutsetw(6)aij;coutn;cout转置后:n;for(i=0;i4;i+)for(j=i;j4;j+)t=aij;aij=aji;aji=t;for(i=0;i4;i+)for(int j=0;j4;j+)coutsetw(6)aij;coutn;6_7#includevoid input(float a2,int n)for(int i=0;in;i+)for(int j=0;jaij;float average(float a2,int n)float ave=0;for(int i=0;in;i+)for(int j=0;j2;j+)ave+=aij;return ave/(2*n);float average1(float a2,int n)float ave1=0;for(int i=0;in;i+)ave1+=ai0;return ave1/n;float average2(float a2,int n)float ave2=0;for(int i=0;in;i+)ave2+=ai1;return ave2/n;void main()int n;float cla502;cout请输入班级人数!n;cout班级人数为:n。n;cout请依次输入成绩!n;input(cla,n);cout全班平均成绩为:average(cla,n) !n;coutc+平均成绩为:average1(cla,n) !n;cout应用基础平均成绩为:average2(cla,n) !n;6_8_1#includevoid main()char S200;cin.getline(S,200);coutS=Sn;for(int i=0;Si;i+)if(Si= )for(int j=i;Sj;j+)Sj=Sj+1;i-;cout删除空格后S=Sendl;6_8_2#includevoid main()char S200,S1200;cin.getline(S,200);coutS=Sn;for(int j=0,i=0;Si;i+)if(Si!= )S1j+=Si;S1j=0;for(int k=0;S1k;k+)Sk=S1k;Sk=0;cout删除空格后S=Sendl;6_9_1#include#includevoid main()int k;char S200,t;cin.getline(S,200);coutS=Sn;k=strlen(S);for(int i=0;ik/2;i+)t=Si;Si=Sk-i-1;Sk-i-1=t;cout反序为:Sendl;6_9_2#include#includevoid main()int k;char S200;cin.getline(S,200);coutS=Sn;k=strlen(S);cout=0;i-)coutSi;coutendl;6_10#includeint strlen(char s)for(int i=0;si;i+);return i;void main()char S200;cin.getline(S,200);coutS=Sn;cout字符串S的长度为:strlen(S)endl;6_11#includevoid strcpy(char a,char b)for(int i=0;bi;i+)ai=bi;ai=0;void main()char Sa200,Sb200;cin.getline(Sb,200);coutSb=Sbn;strcpy(Sa,Sb);coutSa=Saendl;6_12#includevoid strcat(char a,char b)for(int i=0;ai;i+);for(int j=0;bj;j+,i+)ai=bj;ai=0;void main()char Sa200,Sb200;cin.getline(Sa,200);cin.getline(Sb,200);coutSa=San;coutSb=Sbn;strcat(Sa,Sb);coutSa=Saendl;6_13#include#includevoid main()int a200,b200,l,i=2,k=0;do a0=2;a1=3;ai+=ai-1+2;while(ai200);for(i=0;ai200;i+)l=(int)sqrt(ai);for(int j=3;j=l+1)bk+=ai;bk=0;for(i=0;bi;i+)coutbit;coutendl;返回第七章练习题 P.1357_1struct birthint year;int month;int day;birthday;注:类型为birth,变量为birthday。7_2struct stchar name10;char adress50;int telephone;int code;st1;注:类型为st,变量为st1。7_3结构体内变量y重名。7_4结构体变量s1、s2、s3、s4不能整体输入输出,s1和s3、s2和s4是不同类型的变量,不能相互赋值。7_5#include#define N 10struct char name10, adress50;int telephone,code;stN;void main()int i;for(i=0;sti.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论