华北电力大学c++实验指导数组的应用习题参考答案

2020-04-21 01:40

P126 数组的应用习题解答

1. 改错题

见文件“实验指导改错题习题解答”。

2. 填空题(在空白处填入适当内容,将程序补充完整,并上机调试) (1) 求Fibonachi数列(1,1,2,3,5,8,13,??)的前10项。 #include void main()

{ int f[11]={0,1,1},n; for(n=3;n<=10;n++)

f[n]= (1) ; for( (2) ;n<=10;n++) cout<

参考答案(1)f[n]= f[n-1]+f[n-2] (2)n=10

(2) 从键盘上输入若干学生的成绩,统计出平均成绩,并输出低于平均分的学生成绩,输入负数结束数据的输入。

#include void main()

{ float x[100],sum=0.0,ave,a; int n=0,i; cin>>a;

while( (1) ) { sum+=a ; x[n]=a ; (2) ; cin>>a;}

ave=sum/n; ;

cout<<\ for(i=0; (3) ;i++) if( (4) )

cout<

参考答案(1)a>=0 (2)n++ (3) i{int a[M][M]={1,2,3,4,5,6,7,8},i,j; float ave[M]; for(i=0;i

{ (1) ; for(j=0;j

ave[i]=ave[i]+ (2) ; ave[i]= (3) ; }

for(i=0;i

cout<<\ \}

参考答案(1)ave[i]=0 (2) a[j][i] (3) ave[i]/M (4) 找出一个5x5矩阵中的最小值及其在数组中的位置。 #include \#define M 5 void main()

{int a[M][M],i,j,h,l; for(i=0;i

for(i=0;i

if( (2) >a[i][j]) { h=i;

(3) ; }

cout<<\最小值:\ (4) <

参考答案(1)cin>>a[i][j] (2) a[h][l] (3) l=j (4)a[h][l]

(5) 程序的功能是将两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差(第一个字串中字符的ASCII码减去第二个字串中字符的ASCII码)。

#include void main()

{char str1[100],str2[100]; int i,s;

printf(\请输入第一个字符串:\ gets(str1);

printf(\请输入第二个字符串:\ gets(str2); i=0;

while( (1) ) i++;

s= (2) ;

printf(\}

参考答案(1)str1[i]==str2[i]&&str1[i]!='\\0' (2) str1[i]-str2[i]

思考: 1. 如果第一个字串为ab,第二个字串为abc,程序的运行结果是什么?根据这个结果判断字符’\\0’

的ASCII码是多少?

答:运行结果为-99。依此判断字符’\\0’的ASCII码为0 2. 对于字符数组str1,关系表达式str1[i]!=’\\0’与str1[i]!=0是否等价? 答:等价。

(6) 子函数的功能是将十进制数转换成二进制数。在主函数中输入十进制数,调用子函数进行转换后,然后输出转换的结果。

#include void main() {int y,n,j,a[8]; (1) ; cin>>y; n= (2) ;

for(j= (3) ;j>=0;j--) cout<

int zh(int a[],int x) { int i; i=0; do

{ a[i]= (4) ;i++; x=x/2; }

while(x>=1); (5) ; }

参考答案(1)int zh(int [],int) (2) zh(a,y) (3) n-1 (4) x%2 (5) return i

(一) 编写程序

1. 从任意n个数构成的数列中找出最大的数和最小的数,将最大的数和最后一个数互换,最小的数和第一个数互换。

程序如下:

#include void main() { int a[50],n,min,max,b,i; printf(\输入数据个数:\ scanf(\ printf(\输入数据:\ for(i=0;i

scanf(\ max=0;min=0; for(i=1;ia[max]) max=i;

if(a[i]

b=a[0]; a[0]=a[min];a[min]=b;

b=a[n-1];a[n-1]=a[max]; a[max]=b; for(i=0;i

2. 从键盘输入任意个大于0的实数,存入一个数组中(输入小于等于0的数,数据输入过程结束),统计并输出其中大于等于平均值的实数个数。

程序如下:

#include void main() { int n,i,b;

float a[50],x,s=0; cout<<\输入实数:\ n=0; cin>>x; while(x>0) { a[n]=x; n++; cin>>x;} for(i=0;i

for(i=0;i=s) b++;}

cout<<\大于等于平均值的实数个数:\}

3. 找出1~100之间能被7或11整除的所有整数,将这些整数放在数组中然后输出,要求一行输出10个数。

程序如下:

#include void main() { int n,i,a[50]; n=0;

for(i=1;i<=100;i++) if(i%7==0||i==0) { a[n]=i;n++;} for(i=0;i

{ if(i==0)printf(\ printf(\ } }

4. 将任意个互不相同且非0的整数组成的数列输入到数组中(输入0结束输入),然后查找某个数是否在这个数列中,若在,就输出该数在数列中的位置,若不在,就输出相关信息。

程序如下:

#include void main() {int a[50],i,x,n;

cout<<\输入数列:\ n=0;

cin>>a[n]; while(a[n]!=0) { n++; cin>>a[n]; }

cout<<\输入要查找的数:\ cin>>x;

for(i=0;i

{ cout<

cout<

5. 查找一数是否在一个数列(由非0整数构成)中,若在,请从数列中删除这个数。 方法一:

#include void main()

{ int a[50],n,x,i,j;

printf(\输入数列:\ n=0;

scanf(\ while(a[n]!=0) { n++;

scanf(\


华北电力大学c++实验指导数组的应用习题参考答案.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:弗迪尔财务制度系列 资产评估工作操作规范

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: