vc教科书课后习题答案1_第1页
vc教科书课后习题答案1_第2页
vc教科书课后习题答案1_第3页
vc教科书课后习题答案1_第4页
vc教科书课后习题答案1_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

练习题L练习题Z练习题3练习题4练习题5练习题£练习题2

练习题8练习题9练习题10练习题11练习题12练习题13

第一章练习题P.9

1_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)调试程序。

f返回1

第二章练习题P.30

2_1

不合法的有:1.25e3.4(指数必须为整数)、’\96\45‘内只能有一个字符)

合法的有:32767(整型)、35u(无符号整型)、3L(长整型)、0.0086e-32(实型)、\87,

(字符型)、“ComputerSystem"(字符串)、“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=l(2)1(3)c=102(4)b=8(5)d=40(6)c=6

2_4

-12E-5=-0.000121.25E-5=0.0000125,01E+3=10

50E-6=0.0000512.345E4=123450

2_5

字符:‘a'、'\0x33‘、'\r'、'N

字符串:"a"、"中国"、"8.24"、"\n\t\0x34"、”\Ox33”

其它:'0x66'、China、56.34、’8.34'

2_6

(1)x不正确,在同一个作用域内(相同的范围内)变量不能重复定义;

(2)cl不正确,在同一个作用域内(相同的范围内)变量不能重复定义。

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=x>y

不合法的赋值表达式有: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)1

2_11

(1)a=1764,b=7(2)a=6»b=l,c=l(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=15

2_12

(l)a=18(2)b=19(3)c=20(4)d=18

2_13

(l)y=14(2)x=5,y=5,z=13(3)x=40,y=1600(4)x=13,y=5,z=13

2_14

(1)x=1,a=15,b=18>c=21(2)y=0,a=15,b=18,c=21

(3)x=l»a=15,b=18,c=22(4)y=l,a=15,b=18,c=21

2_15

(l)x=7(实型),a=7(整型)(2)x=7.873,a=7(整型)

(3)x=7(实型7y=7.873,a=7(整型)(4)x=7.5,a=25(整型),b=7(整型)

「返回1

第三章练习题P.37

3_1

cH,c2=H,c3=°,

3_2

10099

a

3_3

cl='a',c2='b',c3='c'

3_4

29183123

3_5

256400100

3_6

3333

f返回1

第四章练习题P.60

4_1

C++语句分为:说明语句、控制语句、函数调用语句、表达式语句、空语句和复合语句(也

称块语句)六类。C++的基本程序结构分为:顺序结构、选择结构和循环结构三种。

4_2

#include<iostream.h>

voidmain()

{inta,b,c;

cin»a»b;

a>b?(c=a):(c=b);

coutvv”大数为:^'«c«^n^;

)

4_3

#include<iostream.h>

voidmain(void)

{floatx,y;

cin»x;

if(x<=2.5)y=1.5*x+7.5;

elsey=9.32*x-34.2;

cout«Hx="«x«,\t,«"y=n«y«endl;

}

4_4

#include<iostream.h>

voidmain(void)

{floatx,y;

cin»x»y;

cout«,,x=,,«x«,\t'«',y=',«y«endl;

if(x>y)cout«"x-y="«x-y«endl;

elsecout«ny-x="«y-x«endl;

}

4_5

#include<iostream.h>

#include<math.h>

voidmain(void)

{floata,b,c,delta;

coutvv"输入三个系数:";

cin»a»b»c;

cout«,'a=u«a«At"«"b=',«b«,\t,«nc="«c«,\n,;

delta=b*b-4*a*c;

if(delta<0)cout«"Nosolutions!”"。';

else{

delta=sqrt(delta);

cout«"方程的根为:\n";

cout«Hx1="«(-b+delta)/2/a«'\t';

cout«nx2="«(-b-delta)/2/a«'\n';

}

)

4_6

⑴用条件语句实现

#include<iostream.h>

voidmain()

{floats;

while(l){

cout«"请输入百分制成绩:";

cin»s;

if(svO)break;〃当负分时退出

elseif(s>=90)cout«”五分制成绩为A\nH;

elseif(s>=80)cout<<”五分制成绩为B\n";

elseif(s>=70)coutvv”五分制成绩为C\n";

elseif(s>=60)cout<<”五分制成绩为D\n”;

elsecouKv”五分制成绩为E\nu;

)

)

⑵用开关语句实现

#include<iostream.h>

voidmain()

{floats;

while(l){

coutvv”请输入百分制成绩:”;

cin»s;

if(s<O)break;

switch((int)s/10){

case10:

case9:cout«"五分制成绩为A\n";break;

case8:cout<<”五分制成绩为B\n";break;

case7:cout«"五分制成绩为C\n";break;

case6:cout«”五分制成绩为D\n";break;

default:cout<<"五分制成绩为E\nM;break;

)

)

}

4_7

#include<iostream.h>

voidmain(void)

{floata,sum=0;

for(inti=l;i<=10;i-H-){

cin»a;

sum+=a;

)

cout«',sum=,'«sum«'\t'«"average="«sum/10«endl;

)

4_8

#include<iostream.h>

voidmain(void)

{intn;

floatx=l,y=0;

cin»n;

cout<v"n="<vnv<At';

for(inti=l;i<=n;i++){

x*=i;

y+=x;

)

cout«',y=',«y«endl;

)

4_9

#include<iostream.h>

voidmain(void)

{inti,k,j,m,n=0;

for(i=100;i<=999;i++){

m=0;k=i;

while(k){

j=k%10;

m+=j*j*j;

U=10;

)

if(m==i)cout«i«^';

)

cout«'\n';

)

4_10

#include<iostream.h>

#include<math.h>

#include<iomanip.h>

voidmain(void)

{inti,j,k=O,l;

for(i=101;i<200;i+=2){

j=sqrt(i);

for(l=2;l<=j;l++)

if(i%l==O)break;

if(l>=j+l){

cout«setw(6)«i;

k++;

if(k%5==0)cout«,\n,;

)

)

cout<v'\n';

)

4_11

#include<iostream.h>

#include<iomanip.h>

voidmain(void)

{for(inti=0;i<3;i++){

for(intk=l;k<=4;k++)

cout«"*

cout«\n,;

cout«setw(i*2+2)«n

)

)

4_12

#include<iostream.h>

voidmain(void)

{intn,y0,yl,y2,y3,k;

for(n=0;n<=3;n++){

switch(n){

case0:y0=0;cout«y0«,\t';break;

casel:yl=l;cout«y1«'\t';break;

case2:y2=2;cout«y2«,\t';break;

default:for(k=3;n<=20;n++){

y3=y0+yl+y2;

cout«y3«,\t';

yO=yl;yl=y2;y2=y3;

k++;

if(k%4==0)cout«,\n,;

)

)

)

cout<v'\n';

)

4_13

#include<iostream.h>

voidmain(void)

{intn,sum=0;

coutvv”输入一个四位数:“;

cin»n;

cout«,,n=,'«n«,\n,;

cout«”各位数字之和是:“;

for(inti=l;i<=4;i++){

sum+=n%10;

n/=10;

cout«sum«\n,;

414

voidmain(void)

{intcount1=0,count2=0;

floatn,sum1=0,sum2=0;

coutvv”输入实数,以0结束!\n”;

while(l){

cin»n;

if(n==O)break;

if(n>0){count1+=1;sum1+=n;}

else{count2+=l;sum2+=n;}

)

cout«”正数的个数为:“vvcounllv<、k<"正数之和是:Nvsumlvv'n';

coutvv”负数的个数为:"vvcount2v<、t'v<”负数之和是:“<<sum2«'\n';

coutvv"总的平均值:“<v(sum1+sum2)/(counl1+count2)vvendl;

}

4_15

#include<iostream.h>

voidmain(void)

{intn,num;

coutvv"输入一个四位数:";

cin»n;

cout«,'n="<<n«,\n';

cout«”反序的各位数字分别是:

for(inti=l;i<=4;i++){

num=n%10;

cout«num;

n/=10;

)

cout<v'\n';

)

4_16

#include<iostream.h>

voidmain(void)

{intn,s=0;

for(n=I;;n++){

s+=n;

if(s>=600)break;

)

cout«"n=,,«n«,\t,«,,s="«s«endl;

}

4_17

#include<iostream.h>

voidmain(void)

{floatpi=l;

for(intn=l;n<=1000;n++)

pi*=(n*2.0)/(2*n・1)*(n*2.0)/(2*n+1);

cout«Mpi/2=u«pi«endl;

)

4_18

#include<iostream.h>

voidmain(void)

{inti,j,k=O;

for(i=l;i<=599;i++){

if(i%3==0){

j=i;

while(j){

if(j%10==5){

cout«i«^';

k++;

if(k%8==0)cout«,\n,;

break;

)

j/=10;

cout«,\n,;

}

算法2

inti,j,k=O;

for(i=3;i<=599;i=i+3)

(

j=i;

while(j)

(

if(j%10==5)

(

cout«i«'\t*;

k++;

if(k%8==0)cout<<\n';

break;

}

j/=IO;

}

)

coutv<\n';

4_19

#include<iostream.h>

voidmain(void)

{inti,jl,j2J3,l;

for(i=100;i<=999;i++){

l=i;

j1=1%10;

l/=10;j2=l%10;

l/=10;j3=l%10;

if((jl*jl+j2*j2+j3*j3)=i/ll&&

(jl==j2llj2=j3llj3==jl))

cout«i«'\t*;

)

coutvv'n';

)

#include<iostream.h>

voidmain(void)

{inti;

for(i=100;i<=999;i++){

if((i%10)*(i%10)+(i/10%10)*(i/10%10)+(i/100)*(i/100)=i/ll)

if(!((i%10-i/10%10)*(i/10%10-i/100)*(i%10-i/100)))cout«i«V;

)

cout«'\n';

)

[返回]

第五章练习题P.96

5_1

#include<iostream.h>

voidmain(void)

{intx,y,z,max;

8出《”输入三个整数!n«endl;

cin»x»y»z;

cout«",x="«x«^,«"y=n«y«V«"z=',«z«^';

intfun_max(int,int);

max=fun_max(fun_max(x,y),z);

coutvv”最大数是:u«max«endl;

}

intfun_max(inta,intb)

{if(a>b)returna;elsereturnb;}

5_2

#include<iostream.h>

#include<stdlib.h>

intfun(intn)

{if(n<0){

coutv<"n应为正数!

exit(l);

if(n==O)retum1;

returnn*fun(n-l);

)

intfun_c(intm,intr)

{if(m<Ollr<Ollm<r){

coutvv”输入的数不正确!,,«,\n,;

exit(l);

)

returnfun(m)/(fun(r)*fun(m-r));

)

voidmain()

{cout<<"c(4,2)="«fun_c(4,2)«'\n';

cout«',c(6,4)=n<<fun_c(6,4)«,\n,;

cout«Mc(8,7)=n«fun_c(8,7)«,\n,;

I

5_3

#include<iostream.h>

voidfun(intx)

{intt;

if(x==O)return;

t=x%16;

fun(x/16);

switch(t){

case15:cout<vF;break;

case14:coutvv'E';break;

case13:cout<<D';break;

case12:coutvv'C';break;

case1l:cout«B;break;

case10:coutvv'A';break;

default:cout«t;

)

)

voidmain()

{intx;

COUt<<"请输入--个十进制整数:";

cin»x;

fun(x);

cout«endl;

)

5_4

#include<iostream.h>

#include<math.h>

intfun(intn)

{intm;

m=(int)sqrt(n);

for(intk=3;k<=m;k++)

if(n%k==O)return0;

return1;

)

voidmain()

{intj=0;

for(inta=5;a<=100;a+=2){

if(fun(a)==l){

cout«a«'\t';

j++;

if(j%5==0)cout«,\n,;

)

)

cout«,\n';

)

5_5

#include<iostream.h>

intfun(intx,inty)

{for(inti=x;;i++)

if(i%y==0&&i%x==0)retumi;

}

voidmain()

{intnuml,num2;

cin»num1»num2;

cout«numl<<"和"vvnum2vv”的最小公倍数是:M«fun(numl,num2)«^*;

)

5_6

#include<iostream.h>

intfun(intx,inty)

{for(inti=x;i>l;i—)

if(y%i==O&&x%i==O)returni;

return1;

}

voidmain()

{intnuml,num2;

cin»num1»num2;

cout«numl<<"和"vvnum2vv”的最大公约数是:"«fun(num1,num2)«^*;

)

5_7

#include<iostream.h>

intmax(inta,intb)

{coutvv"整数!”;

if(a>b)returna;

elsereturnb;

floatmax(floata,floatb)

{coutvv”实数!”;

if(a>b)returna;

elsereturnb;

)

voidmain(void)

{intx=l,y=2;

floata=l,b=2;

coutv<"大数是:"«max(a,b)«endl;

coutvv”大数是:"<vmax(x,y)vvendl;

}

5_8

#include<iostream.h>

inlinefloatfun_max(floata,floatb,floatc)

{return(a>=b?a:b)<c?c:(a>=b?a:b);}

voidmain(void)

{floatx,y,z;

cin»x»y»z;

coutvv"最大数是:fun_max(x,y,z)v<endl;

}

5_9

#include<iostream.h>

intfun1(intn=10)〃用循环解

(

intjc=l;

for(inti=l;i<=n;i++)

jc*=i;

returnjc;

)

intfun2(intn=10)〃用递归解

(

if(n==0lln==1)retum1;

returnn*fun2(n-l);

)

voidmain()

(

cout«10«"!="«fun1()<<、';

cout«10v<"!="<vfun2()<<\n';

intn;

cin»n;

cout«n«H!="«fun1(n)«^1;

cout«n«*,!=u«fun2(n)«,\n,;

5_12

#include<iostream.h>

#include<iomanip.h>

longFibonacci(intn)

{if(n==1lln==2)return1;

returnFibonacci(n-1)+Fibonacci(n-2);

)

voidmain()

{intn;

cin»n;

for(inti=l;i<=n;i++){

cout«setw(12)«Fibonacci(i);

if(i%4==0)cout«\n';

)

coutvv'n';

)

5_13

#include<iostream.h>

floatHl(intn,floatx)〃递归

{if(n==O)return1;

if(n==l)retum2*x;

return2*x*H1(n-1,x)-2*(n-1)*Hl(n-2,x);

)

floatH2(intn,floatx)〃非递归----循环

{floath0=l,hl=2*x,h2;

if(n==O)retum1;

if(n==l)return2*x;

for(inti=2;i<=n;i++){

h2=2*x*hl・2*(i・l)*h0;

h0=hl;hl=h2;

)

returnh2;

}

voidmain()

{intn;

floatx;

coutv<”请输入一个不小于零的整数和一个褛!H«endl;

cin»n»x;

coutvv”输入的两个数是:n«endl;

cout«',n=u«n«r\t,«,'x=,,«x«endl;

cout«MHermite数列的前n项分别是:\nn;

for(inti=0;i<=n;i++){

cout«',H"«i«,,=,,«H1(i,x)«',(,'«H2(i,x)«',),,«endl;

)

5_15

#include<iostream.h>

voidfunl(intx)〃正序----递归

{intt;

if(x==O)retum;

t=x%10;

funl(x/10);

cout«t;

)

voidfun2(intx)〃反序----递归

{intt;

if(x==O)retum;

t=x%10;

cout«t;

fun2(x/10);

)

voidfun3(intx)〃正序----循环

{intj,y=x;

for(inti=0;y>0;i+4-)y/=10;〃求x的位数i

for(;i>0;i-){〃输出并去掉最高位

y=x;

for(j=i;j>l;j-)y/=10;

cout«y;

for(;j<i;j++)y*=10;

y=x-y;

x=y;

)

)

voidfun4(intx)〃反序----循环

{for(;x>0;x/=10)

cout«x%10;

}

voidmain()

{inta=12345;

fun1(a);

cout«'\n';

fun2(a);

coutvv'\n';

fun3(a);

cout«\n';

fun4(a);

cout«,\n';

5_16

//myfun.h(文件名)

floatfun_max(floatx,floaty)

{if(x>y)returnx;

elsereturny;

)

//mypro.cpp(文件名)

#include<iostream.h>

#include"myfun.hH

voidmain()

(

floata,b,c,max;

cin»a»b»c;

cout«"a=u«a«M,«nb=,'«b«M,«"c=',«c«'\n';

max=fun_max(fun_max(a,b),c);

coutvv”最大数是:"«max«endl;

}

5_17

#include<iostream.h>

#defineMAX(A,B)A>B?A:B

#defineMIN(A,B)A>B?B:A

voidmain()

{intx,y,z,max,min;

cin»x»y»z;

max=MAX(MAX(x,y),z);

min=MIN(MIN(x,y),z);

coutvv"最大数是:"vvmaxvv、kv”最小数是:,,«min«r\n,;

}

5_18

#include<iostream.h>

#include<math.h>

#defineAREA(a,b,c)sqrt((a+b+c)/2*((a+b+c)/2-a)*((a+b+c)/2-b)*((a+b+c)/2-c))

doublearea(floata,floatb,floatc)

{returnsqrt((a+b+c)/2*((a+b+c)/2-a)*((a+b+c)/2-b)*((a+b+c)/2-c));}

voidmain()

{floatx,y,z,areal,area2;

cin»x»y»z;

if(x+y>z&&y+z>x&&z+x>y){

areal=(float)AREA(x,y,z);

area2=(float)area(x,y,z);

cout«',area="«areal«,'(',«area2«',)"«,\n';

elsecoutvv”输入的值不正确!"vv'\n';

)

*5」4

#include<stdlib.h>

longAcm(intm,intn)

{if(m<0lln<0){

cout«”m和n为正整数!”;

exit(l);

)

if(m==O)returnn+1;

if(n==O)returnAcm(m-lJ);

returnAcm(m-1,Acm(m,n-l));

)

voidmain()

{cout«',Acm(5,3)="«Acm(5,3)«,\n';

cout«',Acm(4,2)=',«Acm(4,2)«,\n,;

cout«*,Acm(5,5)=,,«Acm(5,5)«,\n,;

)

注:第10、11、14和19不作要求。

「返回1

第六章练习题P.118

6_1

#include<iostream.h>

voidmain()

{inta[9]={1,2,3,4,5,67,8,9);

intmaxl=0,max2=0,count=0;

for(intk=0;k<9;k++){

if(a[k]%2==0&&a[k]>max2)max2=a[k];

if(afk]%2!=0){

count+=1;

if(a[k]>maxl)max1=a[k];

)

)

coutvv”最大偶数是:u«max2«endl;

if(!count)coutvv”没有奇数!"<<endl;

elsecoutvv”最大奇数是:,,«maxl«endl;

)

6_2

#include<iostream.h>

voidmain()

{inti=0,count1=0,count2=0,a[100];

floatsum=0;

for(intk=0;k<100;k++){

cin»a[kj;

if(a[k]=O)break;

for(intj=0;a[j];j++){

sum+=a[j];

if(a[j]>0)count1+=1;

elsecount2+=l;

)

cout«"average=H«sum/(countl+count2)«endl;

coutvv”正数个数是:"v〈count1vv'tNv”负数个数是:n«count2«endl;

)

6_3

#include<iostream.h>

voidinput(floata[],intn)

{for(inti=O;i<n;i++)cin»a[i];}

voidsort(floata[],intn)

{for(inti=0;i<n-l;i++)

for(intj=i+l;j<n;j++)

if(a[i]>a[j]){

floatt=a[i];a[i]=a[j];a[j]=t;

)

)

voidoutput(floata[],intn)

{for(inti=0;i<n;i++)cout«a[i]«,\t,;

cout«endl;

)

voidmain()

{floata[10];

input(aJO);

sort(a,10);

output(aJO);

)

6_4

#include<iostream.h>

voidinput(floatalJ,intn)

{for(inti=O;i<n;i++)cin»a[i];}

floatfun_M(floatalJ,intn)

{floatM=0;

for(inti=0;i<n-1;i++)M+=a[i];

returnM/n;

)

floatfun_D(floata[],intn)

{floatD=0;

floatM=fun_M(a,n);

for(inti=0;i<n;i++)D+=(a[i]-M)*(a[i]-M);

returnD;

voidmain()

{floata[100];

intn;

cin»n;

input(a,n);

cout«',D=',«fun_D(a,n)«endl;

)

6_5

#include<iostream.h>

voidmain()

{intij,sum=0;

inta[4][4];

for(i=0;i<4;i++)

for(intj=0;j<4;j++)cin»a[i][j];

coutvv'n';

for(i=0;i<4;i++)

for(j=0;j<4;j++)if(i==jll(i+j)==3)suirn-=a[i]|j];

cout«',sum=,'«sum«endl;

)

6_6

#include<iostream.h>

#include<iomanip.h>

voidmain()

{inti,j,t;

inta[4][4];

for(i=0;i<4;i++)

for(intj=0;j<4;j++)cin»a[i][jl;

for(i=0;i<4;i++)

{for(intj=0;j<4;j++)cout«setw(6)«a[i][j];

coutvv'n’;

)

coutvv”转置后:\n”;

for(i=0;i<4;i++)

for(j=i;j<4;j++)

{t=a[i][j];a[i][j]=a|j][i];a[j][i]=t;}

for(i=0;i<4;i++)

{for(intj=0;j<4;j++)cout«setw(6)«a[i][j];

cout«An*;

)

6_7

#include<iostream.h>

voidinput(floata[][2],intn)

{for(inti=0;i<n;i++)

for(intj=0;j<2;j++)cin»a[i][j];

I

floataverage(floata[][2],intn)

{floatave=0;

for(inti=0;i<n;i++)

for(intj=0;j<2;j++)ave+=a[i][j];

returnave/(2*n);

)

floataverage1(floata[lf2],intn)

{floatavel=0;

for(inti=0;i<n;i++)avel+=a[i][0];

returnavel/n;

)

floataverage2(floata[][2],intn)

{floatave2=0;

for(inti=0;i<n;i++)ave2+=a[i][l];

returnave2/n;

)

voidmain()

{intn;

floatcla[50][2];

coutvv”请输入班级人数!”vdif;

cin»n;

coutv<”班级人数为:"<<n<<"。

cout«”请依次输入成绩!”《、n,;

input(cla.n);

coutvv”全班平均成绩为:M«average(cla,n)«H!,,«'\n';

cout«”c++平均成绩为:”<vaveragel(cla,n)v<"!”《、’;

coutvv”应用基础平均成绩为:,,«average2(cla,n)«,'!"«,\n,;

)

6_8_1

#include<iostream.h>

voidmain()

{charS[200J;

cin.getline(S,200);

cout«uS=,,«S«'\n';

for(inti=0;S[i];i++)

{if(S[i]==**){

for(intj=i;S[j];j++)S[j]=SU+l];

i-;

)

coutvv”删除空格后S=n«S«endl;

)

6_8_2

#include<iostream.h>

voidmain()

{charS[200],Sl[200];

cin.getline(S,200);

cout«,,S=,,«S«,\n';

for(intj=O,i=O;Sfi];i++)

SI[ji;

for(intk=0;S1[k];k++)S[k]=Sl[k];

S[k]=\Or;

cout«”删除空格后S="«S«endl;

)

6_9_1

#include<iostream.h>

#include<string.h>

voidmain()

{intk;

charS[200],t;

cin.getline(S,200);

cout«,'S="«S«'\n';

k=strlen(S);

for(inti=0;i<k/2;i++)

{t=S[i];S[i]=S[k-i-l];S[k-i-l]=t;

cout«”反序为:n«S«endl;

)

6_9_2

#include<iostream.h>

#include<string.h>

voidmain()

{intk;

charS[200];

cin.getline(S,200);

cout«,,S=,,«S«,\n,;

k=strlen(S);

coutcv"反序为:";

for(inti=k-l;i>=0;i-)cout«S[i];

cout«endl;

}

6_10

#include<iostream.h>

intstrlen(chars[J)

{for(inti=O;s[i];i++);

returni;

)

voidmain()

{charS[200];

cin.getline(S,200);

cout«uS="«S«,\n,;

cout<<”字符串S的长度为:"vvstrien⑸《endl;

)

6_11

#include<iostream.h>

voidstrcpy(chara[],charb[])

{for(inti=0;b[i];i++)a[i]=b[i];

)

voidmain()

{charSa[200],Sb[200];

cin.getline(Sb,200);

cout«“Sb="<<Sb«*\n';

strcpy(Sa,Sb);

cout«HSa="«Sa«endl;

)

6_12

#include<iostream.h>

voidstrcat(chara[],charb[])

{for(inti=0;a[i];i++);

for(intj=O;b[j];j++,i++)a[i]=b[j];

a[iJ=AO*;

)

voidmain()

{charSa[200],Sb[2001;

cin.getline(Sa,200);

cin.getline(Sb,200);

cout«',Sa=,'«Sa«^';

coutvv"Sb="<<Sb«*\n';

strcat(Sa,Sb);

cout«HSa="«Sa«endl;

)

6_13

#include<iostream.h>

#include<math.h>

voidmain()

{inta[2001,b[2001,l,i=2,k=0;

do{

a[0]=2;a[l]=3;

a[i++]=a[i-l]+2;

)

while(a[i]<200);

for(i=0;a[i]<200;i++){

l=(int)sqrt(a[i]);

for(intj=3;j<=l;j++)

if(a[i]%j==O)break;

if(j>=l+l)b[k++]=a[i];

)

b[k]=O;

for(i=0;b[i];i++)cout«b[i]«,\t,;

cout«endl;

}

[返回I

第七章练习题P.135

7_1

structbirth{

intyear;intmonth;intday;

[birthday;

注:类型为birth,变量为birthdayo

7_2

structst{

charname[10J;charadress[50J;

inttelephone;intcode;

}stl;

注:类型为st,变量为stl。

7_3

结构体内变量y重名。

7_4

结构体变量si、s2、s3、s4不能整体输入输出,si和s3、s2和s4是不同类型的变量,不能

相互赋值。

7_5

#include<iostream.h>

#defineN10

struct{

charnameflO],adress[50];

inttelephone,code;

}st[N];

voidmain()

{inti;

for(i=0;i<N;i++)

{cin»st[i].name»stfi].adress»st[i].telephone»st[i].code;}

for(i=0;i<N;i++)

{cout«st[i].name«,\t'«st[i].adress«,\t,«st[i].telephone«V,«st[i].code«,\n,;}

)

7_6

#include<iostream.h>

structcomplex{

floatreal,image;

);

complexjia(complexc1,complexc2,complexc3)

{c3.real=cl.real+c2.real;

c3.image=cl.image+c2.image;

returnc3;

)

complexjian(complexcl,complexc2,complexc3)

{c3.real=cl.real-c2.real;

c3.image=cl.image-c2.image;

returnc3;

)

voidcheng(complexc1,complexc2,complexc3)

{c3.real=cl.real*c2,real-cl.image*c2.image;

c3.image=cl.real*c2.image+cl.image*c2.real;

cout«c3.real«n+"«c3.image«ni"«'\n';

)

voidmain()

{complexfl,f2,f3;

cin»f1.real»f1.image;

cin»f2.real»f2.image;

cout«"fl=H«f1.real«"+H«f1.image«',i,'«,\n,;

cout«,'f2="«f2.real«,,+,,«f2.image«',i,'«,\n,;

cout«n("«f1.real«"+H«f1.image«"i)+u;

coutv<"("vvf2.reakv"+”vvf2.image«"i)=";

cout«jia(fl,f2,f3).real«"+H«jia(fl,f2,f3).image«,'i',«,\n';

coutvv"("v<fl.reakv"+”vvfl.image

cout«,,("«f2.real«"+"«f2.image«ni)=n;

cout«jian(fl,f2,f3).real«,'+"«jian(fl,f2,f3).image«,,i,'«,\n,;;

cout«H(n«f1.real«"+n«f1.image«ni)*n;

cout«,,(M«f2.real«u+,'«f2.image«',i)=n;

cheng(fl,f2,f3);

)

7_7

#include<iostream.h>

#include<math.h>

structpoint{

floatx,y,z;

);

pointinput(pointp)

{coutvv”请输入点的坐标:”;

cin»p.x»p.y»p.z;

returnp;

)

voidoutput(pointp)

{coutvv”点的坐标为:(,,«p.x«M,"«p.y«,,,,,«p.z«',)\n,';}

doubledistance(point,point);

voidmain()

{pointpl,p2;

pl=input(pl);

p2=input(p2);

output(pl);

output(p2);

cout«n(H«pLx«K;,«pl.y«u,n«pLzvv”)与(”《p2.xvv”,”vvp2.yvv”Jvvp2.zvv")的距

离为H«distance(p1,p2)«An';

)

doubledistance(pointpl,pointp2)

{floatdl,d2,d3;

dl=pl.x-p2.x;

<12=pl.y-p2.y;

d3=pl.z-p2.z;

returnsqrt(dl*dl+d2*d2+d3*d3);

)

7_8

#include<iostream.h>

#defineN3

structscore{

charname[10];

intno;

floatc,eng,math,ave;

);

scoreinput(score);

floataverage(floata,floatb,floatc);

voidsort(scoref],intn);

voidprint(score[J,intn);

voidmain()

{scorestudentlNJ;

for(inti=0;i<N;i++)

student[i]=input(student[i]);

for(i=0;i<N;i++)

student[i].ave=average(student[i].c,student[i].eng,student[i].math);

sort(student,N);

print(student,N);

scoreinput(scorest)

{coutvv”请输入姓名:H;cin»;

coutvv”请输入学号:”;cin»st.no;

coutvv”请输入C++成绩:”;cin»st.c;

coulvv”请输入英语成绩:”;cin»st.eng;

coutvv"请输入数学成绩:";cin»st.math;

cout«endl;

returnst;

)

floataverage(floata,floatb,floatc)

{return(a+b+c)/3;}

voidsort(scorest[],intn)

{scoretemp;

for(inti=0;i<n-l;i++)

for(intj=i;j<n;j++)

if(st[i].ave<st[j].ave)

{temp=st[i];st[i]=st[j];st[j]=temp;}

)

voidprint(scorest[],intn)

{COUt«M^10."〈〈“姓名"《“平均”《<++”《"英语“《"数学\11”;

for(inti=0;i<n;i++)

{cout«i;

cout«At*«st[i].no;

cout«V,«st[i].name;

cout«V*«st[i].ave;

cout«\t,«st[i].c;

coutvv*\f<vst[i].eng;

cout«,\t'«st[i].math«endl;

)

)

7_9

#include<iostream.h>

enumweekdays}Sun,Mon,Tue,Wed,Thu,Fri,Sat};

weekdaysinput(int);

voidprint(weekdays);

voidmain()

{inti;

weekdaysday;

cout«H0:Sun,1:Mon,2:Tue,3:Wed,4:Thu,5:Fri,6:Sat\nn;

while(l){

cin»i;

if(i<0lli>6){

couivv”输入的值不对!\n";break;}

elseday=input(i);

print(day);

)

)

weekdaysinput(inti)

{weekdaysday;

switch(i){

caseO:day=Sun;break;

case1:day=Mon;break;

case2:day=Tue;break;

case3:day=Wed;break;

case4:day=Thu;break;

case5:day=Fri;break;

case6:day=Sat;break;

)

returnday;

)

voidprint(weekdaysday)

{switch(day){

caseSun:cout«nTodayisSunday!\n";break;

caseMon:cout«HTodayisMonday!\n";break;

caseTue:cout«"TodayisTuesday!\n;break;

caseWed:cout«"TodayisWednesday!\n";break;

caseThu:cout«"TodayisThursday!\nn;break;

caseFri:cout«"TodayisFriday!\n";break;

caseSat:cout«"TodayisSaturday!\n";break;

)

)

7_10

#include<iostream.h>

enumcolor{Red,Blue,Green};

voidprint(colorcol)

{switch(col){

caseRed:cout«nRed\tn;break;

caseBlue:cout«"Blue\t";break;

caseGreen:cout«HGreen\tM;break;

)

)

voidmain()

{colori,j,k;

intn=0;

for(i=Red;i<=Green;i=(color)((int)i+1))

for(j=Red;j<=Green;j=(color)((int)j+1))

for(k=Red;k<=Green;k=(color)((int)k+1))

if(i!=j&&j!=k&&i!=k){

cout«4-4-n«'\t';

print(i);print(j);print(k);

cout«,'\nH;

)

)

[返回I

第八章练习题P.196

8_1

(1)地址变量不能输入;

(2)p2没有初始化,即悬空时不能对其所指的内存赋值;

(3)~(5)同类型的指针之间才能相互赋值。

8_2

#include<iostream.h>

voidswap(float*pl,fl

温馨提示

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

评论

0/150

提交评论