C教程郑阿奇主编课后习题答案_第1页
C教程郑阿奇主编课后习题答案_第2页
C教程郑阿奇主编课后习题答案_第3页
C教程郑阿奇主编课后习题答案_第4页
C教程郑阿奇主编课后习题答案_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、第一章1. C+语言的标准有哪些?它有哪些编程方法?结构化程序设计的结构有哪些?答案:标准:C+国际标准ISO/IEC 14882:1998,常被称为C+98、标准C+或ANSI/ISO C+;C+标准第二版(ISO/IEC 14882:2003)。 3种编程方法:以C语言为子集的结构化程序设计模式、以类为核心的面向对象程序设计模式以及以模版为机制的通用编程模式。 结构化程序设计的结构:顺序结构、选择结构和循环结构。2. 面向对象的程序设计有3个主要特征,他们分别是什么?试举例说明。答案:3个主要特征:封装、继承和多态。 封装:封装是将数据和代码捆绑到一起,避免了外界的干扰和不确定性。例如C+

2、中的类,它定义了该集合中每个对象所共有的属性和方法。 继承:继承是让某个类型的对象获得另一个类型的对象的特征。例如:C+中子类对父类的继承,子类具有父类的特性,同时还可以拥有自己的新特性。 多态:多态是指不同类型的对象接收相同的消息时产生不同的行为。多态机制使具有不同内部结构的对象可以共享相同的外部接口,通过这种方式减小代码的复杂度。例如函数的重载。3. C+是以编译方式实现的高级语言,它的编译过程可分为3个子过程,它们分别是什么?答案:创建、编译和连接。4. 参照本章示例,编写1个C+程序:输入圆的半径,输出其周长。答案:#include <iostream>using name

3、space std;int main() double r, area; cout<<"输入圆的半径: " cin>>r; area=2*3.14159*r; cout<<"圆的周长为:"<<area<<"n" return 0;第二章1.下列常量表示在C+中是否合法?若不合法,指出原因;若合法,指出常量的数据类型。答案:32767:合法,int 35u:合法,无符号整形 1.25e3.4:不合法,e后面的数字必须是整数 3L:合法,长整形 0.0086e-32:合法,实数

4、87:不合法 “Computer System”:合法,字符串 “a”:合法,字符串 a:合法,字符 9645:不合法,96 45分别为字符类型 .5:合法,double2.字符常量与字符串常量有什么区别?指出下列哪些表示字符?哪些表示字符串?哪些既不表示字符也不表示字符串?0x66 China “中国” “8.42” 0x33 56.34 “nt0x34”r 8.34 “0x33” 0答案:字符: , 0 字符串:“中国”, “8.42”, “0x33” 非字符亦非字符串:0x66, China,0x33,56.34,“nt0x34”r, 8.343.定义两个变量a和b,初值分别为8和10,

5、若要a和b的值互换,即a为10,b为8,如何实现(可用另外一个变量t作为过渡)?如不用中间变量又如何实现?答案:用变量t作为过渡#include <iostream>using namespace std;int main() int a=8,b=10; int t; t=a; a=b; b=t; cout<<"a: "<<a<<", b: "<<b<<endl; return 0;不用中间变量:(有两种方法:异或运算或者是先求和运算)#include <iostream>

6、;using namespace std;int main() int a=8,b=10; a=ab; b=ba; a=ab; cout<<"a: "<<a<<", b: "<<b<<endl; return 0;#include <iostream>using namespace std;int main() int a=8,b=10; a=a+b; b=a-b; a=a-b; cout<<"a: "<<a<<",

7、b: "<<b<<endl; return 0;4.用enum定义4个枚举常量Flase、FALSE、TRUE、True,使其值分别等于bool类型中的false、false、true、true。想一想这样做的好处是什么?若使用const来定义,则如何进行?并比较这两种定义的优缺点。答案:enum False=false,FALSE=false,TRUE=true,True=true; 好处:因为VC+中对大小写是敏感的,为了防止用户输入中大小写出错的情况,所以分别又定义了表示true和false的两种形式。const bool False=false; co

8、nst bool FALSE=false;const bool TRUE=true;const bool True=true;优缺点:用enum一次可以定义多个标识符变量,不像const每次只能定义一个; 另外,用const定义看不出其关联性。5.用const常量代替圆周率3.1415926,分别输入半径40和928.335,求圆面积。要求先输出圆周率和半径,再输出其面积。答案:#include <iostream>using namespace std;const double PI=3.14159265;int main() double radius1=40,radius2=

9、928.335; double area1,area2; area1=PI*radius1*radius1; area2=PI*radius2*radius2; cout<<"圆周率: "<<PI<<", 半径: "<<radius1<<", 面积: "<<area1<<endl; cout<<"圆周率: "<<PI<<", 半径: "<<radius2<&l

10、t;", 面积: "<<area2<<endl; return 0;6.设学生人数是一个常数50,编程输出下列结果(双引号也要输出):“How many students in your class?”“50”答案:#include <iostream>using namespace std;const int STDNO=50;int main() cout<<'"'<<"How many students in your class?"<<'&q

11、uot;' cout<<endl; cout<<'"'<< STDNO <<'"'<<endl; return 0;7.设有语句:char c1, c2, c3;cin>>c1>>c2>>c3;若在执行过程中,输入:a b c则cin执行后,c1、c2、c3的值分别是什么?若输入:abcdef则cin执行后,c1、c2、c3的值又分别是什么?答案:输入a b c后,c1的值为 , c2的值为a , c3的值为 输入abcdef后,c1的值为

12、 a , c2的值为b , c3的值为 c8.设有语句:int a, b, c;cin>>hex>>a>>oct>>b>>dec>>c;cout<<hex<<a<<t<<oct<<b<<t<<dec<<c;若在执行过程中,输入:12 12指出cin执行后,a、b、c的值分别是什么?输出的结果是什么?答案:输出结果是:1212 12 a、b、c的值分别是18,10和12。第三章1将下列代数式写成C+的表达式:(1)=sqrt(po

13、w(sin(x),2.5)(2)=(a+b)*h)/(2*m)(3)=exp(x*x)/sqrt(2*3.1415926)2,求出下列算数表达式的值:(1)5+7/3*4=13(2)23.5+9/5+0.5=25.0(3)8+2*9/2=17(4)a +23=97+23=120(5)设x=2.5,y=4.7,a=7x+a%3*(int)(x+y)%2/4 =2.5+1*int(7.2)%2/4=2.5+7%2/4=2.5+1/4=2.5(6) 设x=3.5,y=2.5,a=2,b=3(float)(a+b)/2-(int)x%(int)y=2.5-1=1.5(7) 设x=8a+x%3+5/2-

14、24=97+2+2-20=813,在下列表达式中,哪些是合法的赋值表达式?哪些不是?为什么?(a,b,c,x,y都是已定义的int 型变量)(1)a=b=4.5+7.8 是(2)c=3.5+4.5=x=y=7.9 不是,因为4.5是常量不能作为左值(3)x=(y=4.5)*45 是(4)a=x+=+y 不是,x+不能作为左值4,写出下面表达式运算后a的值,设原来的a都是10.(1)a+=a <=> a=a+a=20(2)a%=(7%2) <=> a=a%(7%2)=10%1=0(3)a*=3+4 <=>a=a*(3+4)=70(4)a/=a+a <=&

15、gt;a=a/(a+a)=10/20=0(5)a-=a <=>a=a-a=0(6)a+=a-=a*=a <=>a+=a-=100 =>a+=0 =>a=05,设m,n的值分别为10,8,指出下列表达式运算后a,b,c,和d的值。(1)a=m+ + n+=10+8=18(2)b=m+ + +n=10+9=19(3)c=+m + +n=11+9=20(4)d=m- + n+=10+8=186,设a,b,c的值分别为5,8,9;指出下列表达式运算后x ,y和z 的值(1)y=(a+b,c+a)=(13,14)=14(2)x=y=a,z=a+b x=5 y=5 z=

16、13(3)y=(x=a*b , x+x , x*x)=(x=40,80,1600)=1600 x=40(4)x=(y=a ,z=a+b)=(y=5,z=13)=13 y=5 z=137,设有变量:float x, y;int a ,b;指出运算下列表达式后x , y, a和b的值。x=a=3.523x=3 y为null a=3 b为null a= x =3.523x=3.523 y为null a=3 b为null x=a=y=3.523x=3.0 y=3.532 a=3 b为nullb=x=(a=25,15/2)x=7.0 y为null a=25 b=78,若有char x=15;使得x的第0

17、位(即二进制位的最右边的那一位,或称最低位)为0,其余位保持不变的赋值表达式是什么?x=x & 1 (其中1是由算出来的)9用sizeof 运算符编写一段测试程序,测试本机中各基本数据类型或字符串所占的字节数,并将其填写到下表中,然后分析其结果。基本数据类型所占字节数基本数据类型或字符串所占字节数char1float4short2double8int 4long double8long4“nChtv0ina”10#include<iostream>using namespace std;int main()cout <<"char类型所占字节数为&qu

18、ot;<< sizeof(char)<<"n"cout <<"short类型所占字节数为"<< sizeof(short)<<"n"cout <<"int类型所占字节数为"<< sizeof(int)<<"n"cout <<"long类型所占字节数为"<< sizeof(long)<<"n"cout <<"

19、;float类型所占字节数为"<< sizeof(float)<<"n"cout <<"double类型所占字节数为"<< sizeof(double)<<"n"cout <<" long double类型所占字节数为"<< sizeof(long double)<<"n"cout <<"字符nChtv0ina所占字节数为"<< sizeof(&q

20、uot;nChtv0ina")<<"n"return 0;10,从键盘输入一个三位数,从左到右用a,b,c表示各位的数字,记为abc.现要求依次输出从右到左的各位数字,即输出另外三位数cba。试设计程序。#include<iostream>using namespace std;int main() int n ,a , b , c , m; /n为输入的三位数,m为需要输出的三位数cout<<"请输入一个三位数:"cin>>n;if(n<=999 && n>=000)

21、c=n%10;b=(n/10)%10;a=(n/10)/10)%10;m=c*100+b*10+a;cout<<"数字"<<n<<"的逆序为"<<m<<endl;else cout<<"输入不正确"<<endl; return 0;第四章:1,设有变量int a=3,b=4,c=5;求下列表达式的值:a+b>c&&b=c è 7>5&&4=5èTrue && False &

22、#232;Fa|b+c&&b>c è 3|9&&4>5è3|0èT!a|!c|bèF|F|4èTa*b&&c+aè15&&8èT 2,设a,b,c的值分别是15,18,19,指出下列表达式运算后x,y,a,b,c的值x=a<b|c+ 表达式运算:x=T&&b|c+=T|c+=T 此时x=T,a=15,b=18,c=19y=a>b&&c+表达式运算:y=F&&c+=F 此时 y=F ,a=15

23、,b=18,c=19x=a+b>c&&c+表达式运算:x=33>19&&c+=T 此时 x=T.a=15,b=18,c=20y=a|b+|c+ 表达式运算:y=T|b+|c+=T 此时 y=T,a=15,b=18,c=193,输入三个整数a,b,c要求按照从小到大的顺序输出#include <iostream.h>main() int a,b,c,temp; cout<<"请输入三个整数:"<<endl;cin >>a>>b>>c; if(a>b)/*如

24、果a>b,交换a与b的值*/ temp=a; a=b; b=temp; if(a>c)/*如果a>c,交换a与c的值*/ temp=a; a=c; c=temp; if(b>c)/*如果b>c,交换b与c的值*/ temp=b; b=c; c=temp; cout<<"这三个数从小到大的排列为"<<endl; cout<<"a="<<a<<endl; cout<<"b="<<b<<endl; cout<&

25、lt;"c="<<c<<endl; 4,有一个数学函数 写一个程序,输入x,输出y.#include <iostream.h>main() int x,y; cout<<"请输入x:" cin >>x; if(x>=10) y=x-1; else if(x>1) y=2*x+2; else y=3*x*x+3*x-1; cout<<"y的值为"<<y<<endl; 5,给出一个百分制的成绩,要求输出成绩为A,B,C,D.其中,8

26、5分以上为A,7584分为B,6574分为C,65分以下为D。#include <iostream.h>main() float fScore; cout<<"请输入一个百分制的成绩:" cin >>fScore; if( fScore>100|fScore<0) cout<<"输入的分数无效"<<endl; else if(fScore>=85) cout<<"A"<<endl; else if(fScore>=75) cou

27、t<<"B"<<endl; else if(fScore>=65) cout<<"C"<<endl; else cout<<"D"<<endl; return 0;6,选(D)7,求下列循环次数for(int i=0,x=0;!x&&i<=5;i+) 循环了6次while(int i=0)i-; 循环了0次int i=5;do cout<<i-<<endl; i-; While(i!=0); 循环了无数次8,编程

28、求100以内被7或5 整除的最大自然数#include <iostream.h> void main()int max; for(int i=0;i<=100;i+) if(i%5=0|i%7=0) max=i; cout<<"这个最大的自然数是"<<max<<endl;9,分析下列程序的输出结果x=5,y=4,z=1k=4<><><># 10,Fibonacci数列中的前两个数是1和1,从第三个数开始,每个数等于前两个数之和。编程计算并输出次数列中的前30个数 。 #include&

29、lt;iostream.h>#include<iomanip.h>void main()int sum=0 ,a=1,b=1;for(int i=1;i<=6;i+)for(int j=1;j<=5;j+) if(i=1&&j<=2)cout<<setw(7)<<1<<","elsesum=a+b;cout<<setw(7)<<sum<<","a=b;b=sum;cout<<endl; 11,编程求n!,即#includ

30、e<iostream.h>#include<iomanip.h>void main()int n,m=1;cout<<"请输入n:"cin>>n;for(int i=0;i<n-1;i+)m*=(n-i);cout <<"n的阶乘为"<<m<<endl;12,从键盘上输入一个整数n的值,按下式求出y 的值,并输出n和y 的值(y用浮点数表示) y=1!+2!+3!+n! #include<iostream.h>#include<iomanip.h&

31、gt;void main()int n,y=0,m=1;cout<<"请输入n:"cin>>n;for(int j=0;j<n;j+)for(int i=0;i<n-j-1;i+)m*=(n-i-j);y+=m;m=1;cout <<"y的值为"<<y<<endl; 13用泰勒级数求e的近似值,直到最后一项小于 为止。 #include<iostream.h>#include<iomanip.h>void main()double e=0.0,m=1;int

32、n=1;dom=m*(m+1);n+;while(m<10*10*10*10*10*10); for(int j=0;j<n;j+)m=1.0;for(int i=0;i<n-j-1;i+)m*=(n-i-j);e+=(1.0/m);cout <<"e的值为"<<e+1<<endl;14,设计一个程序,输出所有的水仙花数。所谓水仙花就是一个三位的整数,其各位数字的立方和等于该数本身。#include<iostream.h>void main()int n=100,a ,b,c; /a 为三位数的个位,b为三位

33、数的十位,c为三位数的百位while(n<=999)a=n%10;b=(n/10)%10;c=n/100;if(a*a*a+b*b*b+c*c*c=n)cout<<n<<endl; n+;15,设计一个程序,输入一个4位整数,将各位数字分开,并按其反序输出。要求必须用循环语句。#include<iostream.h>void main()int n,a ; cout<<"请输入一个四位数:"cin>>n;if(1000<=n && n<=9999) cout<<&quo

34、t;这个四位数的反序为:"for(int i=1;i<=4;i+) a=n%10;n=n/10;cout<<a; elsecout<<"输入不正确"<<endl;cout<<endl;16,求的近似值的公式为其中,n=1,2,3,设计一个程序,求出n=1000时的近似值。#include<iostream.h>void main()int n=1000;double pi,p=1.0;for(n=1000;n>=1;n-)p=p*(2.0*n/(2.0*n-1)*(2.0*n/(2.0*n+1

35、); pi=p*2;cout<<pi<<endl;17,用迭代法求x=。其中公式如下:要求前后两次求出的x的差的绝对值小于。#include <iostream>#include <cmath>using namespace std;int main()double a;const double EPSTLON = 1E-5;cout<<"请输入一个数字:"cin>>a;double xnew=a;double xold;doxold = xnew;xnew = (xold + a/xold)/2;wh

36、ile(fabs(xnew - xold) > EPSTLON);cout<<"它的平方根是:"<<xnew<<endl;return 0;18,打印下列菱形图案。#include<iostream.h> void main() int i,j,num=7; for(i=0;i<num/2;i+) /以中间为线,生成上半部 for(j=0;j<(num-i*2)/2);j+) cout<<" " for(j=0;j<i*2+1;j+) cout<<"

37、*" cout<<endl; for(i=0;i<num;i+) /生成中间的线 cout<<"*" cout<<endl; for(i=(num/2-1);i>=0;i-) /以中间为线,生成下半部 for(j=0;j<(num-i*2)/2);j+) cout<<" " for(j=0;j<i*2+1;j+) cout<<"*" cout<<endl; 第五章1.设计一个函数,要求输入三个整数,求其最大数。编写完整的程序并测试

38、。#include<iostream>using namespace std;int getMax();void main()int max=getMax();cout<<"The max number is: "<<max<<endl;int getMax()int c1,c2,c3;int max;cout<<"输入三个整数:"cin>>c1>>c2>>c3;max=c1;if(max<c2) max=c2;if(max<c3) max=c3;

39、return max;2.设计一个程序,输入一个十进制数,输出相应的十六进制数。设计一个函数实现数制转换。#include<iostream>using namespace std;void getHex(int dec);void convert(int dec);void main()int dec;cout<<"请输入一个整数: "cin>>dec;cout<<"对应的16进制数为:"getHex(dec);cout<<endl;void getHex(int dec)if(dec<

40、=15)convert(dec);elsegetHex(dec/16);getHex(dec%16);void convert(int dec)switch(dec)case 10: cout<<'A'break;case 11: cout<<'B'break;case 12: cout<<'C'break;case 13: cout<<'D'break;case 14: cout<<'E'break;case 15: cout<<'F

41、'break;default: cout<<dec;3.编写一个函数,将华氏温度(f)转化成摄氏温度(c),转换公式为c=(5/9)(f-32)#include<iostream>using namespace std;double getC(double f);void main()double f,c;cout<<"请输入华氏温度(f): "cin>>f;cout<<"对应的摄氏温度(c)为:"c=getC(f);cout<<c<<endl;double ge

42、tC(double f)double c;c=(5.0/9)*(f-32);return c;4.设计一个程序通过重载求两个数中最大数的函数max(),分别实现求两个实数和两个整数及两个字符的最大者。#include<iostream>using namespace std;void getMax(double d1,double d2);void getMax(int i1,int i2);void getMax(char c1,char c2);void main()getMax(1.2,2.3);getMax(3,3);getMax('a','b

43、9;);void getMax(double d1,double d2)/*cout<<d1<<"和"<<d2<<"两数中最大者为"if(d1<d2)cout<<d2<<endl;elsecout<<d1<<endl;*/double max=d1>d2?d1:d2;cout<<d1<<"和"<<d2<<"两数中最大者为"<<max<<e

44、ndl;void getMax(int i1,int i2)/*cout<<i1<<"和"<<i2<<"两数中最大者为"if(i1<i2)cout<<i2<<endl;elsecout<<i1<<endl;*/int max=i1>i2?i1:i2;cout<<i1<<"和"<<i2<<"两数中最大者为"<<max<<endl;void

45、getMax(char c1,char c2)/*cout<<c1<<"和"<<c2<<"两字符中最大者为"if(c1<c2)cout<<c2<<endl;elsecout<<c1<<endl;*/char max=c1>c2?c1:c2;cout<<c1<<"和"<<c2<<"两字符中最大者为"<<max<<endl;5.设计一个程序,

46、通过重载求两个整数、三个整数和四个整数的最小值。#include<iostream>using namespace std;void getMin(int i1,int i2);void getMin(int i1,int i2,int i3);void getMin(int i1,int i2,int i3,int i4);void main()getMin(3,5);getMin(4,5,5);getMin(34,45,89,78);void getMin(int i1,int i2)cout<<i1<<"和"<<i2&l

47、t;<"两数中最小值为"if(i1<i2)cout<<i1<<endl;elsecout<<i2<<endl;void getMin(int i1,int i2,int i3)cout<<i1<<","<<i2<<"和"<<i3<<"三个数中最小值为"int min=i1;if(i1>i2) min=i2;if(min>i3) min=i3;cout<<min&

48、lt;<endl;void getMin(int i1,int i2,int i3,int i4)cout<<i1<<","<<i2<<","<<i3<<"和"<<i4<<"四个数中最小值为"int min,min1,min2;min1=i1,min2=i3;if(i1>i2) min1=i2;if(i3>i4) min2=i4;if(min1>min2) min=min2;else min=mi

49、n1;cout<<min<<endl;6.设计一个程序,通过重载实现两个整数、两个实数和两个复数的加、减运算。#include<iostream>using namespace std;void operation(double d1,double d2);void operation(int i1,int i2);void operation(double real1,double ima1,double real2,double ima2);void main()operation(100.2,90.3);operation(34,45);operati

50、on(6,8,1,5);void operation(double d1,double d2)double sum,result;sum=d1+d2;result=d1-d2;cout<<d1<<'+'<<d2<<'='<<sum<<endl;cout<<d1<<'-'<<d2<<'='<<result<<endl;cout<<endl;void operation(int i

51、1,int i2)int sum,result;sum=i1+i2;result=i1-i2;cout<<i1<<'+'<<i2<<'='<<sum<<endl;cout<<i1<<'-'<<i2<<'='<<result<<endl;cout<<endl;void operation(double real1,double ima1,double real2,double i

52、ma2)double real=real1+real2;double ima=ima1+ima2;cout<<'('<<real1<<'+'<<ima1<<"i)+"<<'('<<real2<<'+'<<ima2<<"i)="<<real<<'+'<<ima<<'i'<<endl;r

53、eal=real1-real2;ima=ima1-ima2;cout<<'('<<real1<<'+'<<ima1<<"i)-"<<'('<<real2<<'+'<<ima2<<"i)="<<real<<'+'<<ima<<'i'<<endl;cout<<endl;7.编

54、程求下式的值,其中用函数实现,且设参数n的默认值为2。 n=1,2,3#include<iostream>#include<cmath>using namespace std;int getResult(int n);void main()int result;result=getResult();cout<<result<<endl;int getResult(int n=2)/递归方法int result=0;for(int i=1;i<=10;i+)result+=pow(n,i);return result;#include<

55、iostream>using namespace std;double hermite(double x,int n);int main()double x;int n;cout<<"输入浮点数x(x>1)和整数n(n>=0):"cin>>x>>n;cout<<endl;if(x<=1|n<0)cout<<"输入数字无效!"<<endl;elsefor(int i=0;i<=n;i+)cout<<"Hermite("

56、<<x<<","<<i<<")="<<hermite(x,i)<<endl;return 0;/*double hermite(double x,int n)/递归方法求Hermite多项式double h;if(n=0)h=1;else if(n=1)h=2*x;else if(n>1)h=2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2);return h;*/double hermite(double x,int n)/非递归方法求Herm

57、ite多项式 double h0=1,h1=2*x,h=0;int i=1;if(n=0) h=1; if(n=1) h=2*x;if(n>1) while(i<n) h=2*x*h1-2*i*h0;h0=h1; h1=h; i+; return h; 10.设计一个函数,要求能将一个正整数n按反序输出,n的位数不定。例如,123输出321。分别用递归函数和非递归函数来实现,编写完整的程序并测试。#include<iostream>using namespace std;void output(int n);void main()output(15451235);cou

58、t<<endl;/*void output(int n)/非递归函数while(n>0)cout<<n%10;n/=10;*/void output(int n)/递归函数if(n>0)cout<<n%10;output(n/10);本章作业情况: 第二题中让设计一个函数实现从十进制到十六进制的转换,很多同学直接用格式算子实现;很多同学程序中出现语句cout<<变量名%16.让设计一个程序通过重载求两个数中最大数的函数max(),分别实现求两个实数和两个整数及两个字符的最大者。有同学把函数名字改成fmax()或者nMax()什么的;有

59、同学直接使用未定义的变量.让用递归和非递归方法求Hermite多项式:很多同学只用递归方法实现;程序中出现2x, 2xh(n-1)第六章1.选择填空。选C: 数组下标中的n只能是常量选D:行号下标取值范围是0,1。列号下表取值范围是0,1,2。所以B,C越界,A代表的是数组b23的第二行第一个元素的存储地址。选B:数组x的长度是6,数组y的长度是52.下列invert函数的功能是将数组a 中n个元素逆序存放,填充方框。i<jai=ajj-函数fingmax找出数组a 的最大元素下标,并返回主函数,输出下标及最大值,填充方框。ak<aikdatapos3.函数fun的功能是判断s所指

60、的字符串是否“回文”,是返回1,否返回0,填充方框。j=strlen(s)-1si!=sjreturn 15.输入一组非0整数(以0为结束标志)到一维数组中,设计一个程序,求平均值,并分别统计这组元素中的正数和负数。 #include <iostream> using namespace std; int main() int array100;double ave;int pos=0,neg=0,sum=0,i;cout << "输入整数(以0结尾): " for(i=0;i<100;i+)cin>>arrayi; sum+=ar

61、rayi;if(arrayi=0)i-;break;else if(arrayi>0) pos+;else neg+;ave=sum/i;cout<<"这个数组的平均数是"<<ave<<endl;cout<<"这个数组有"<<pos<<"个正数"<<endl;cout<<"这个数组有"<<neg<<"个负数"<<endl;return 0;6.输入10个数到一

62、维数组,按从大到小的次序排序后输出,分别用三个函数实现数据的输入,输出及排序 #include <iostream> using namespace std; void INPUT(double array10);void OUTPUT(double array10);void SORT(double array10);int main() double array10;INPUT(array);SORT(array);OUTPUT(array); return 0;void INPUT(double array10) cout<<"请输入十个数"<<endl;for(int i=0;i<=9;i+)cin>>arrayi;cout<<"输入完毕"<<end

温馨提示

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

评论

0/150

提交评论