P126 数组的应用习题解答
1. 改错题
见文件“实验指导改错题习题解答”。
2. 填空题(在空白处填入适当内容,将程序补充完整,并上机调试) (1) 求Fibonachi数列(1,1,2,3,5,8,13,??)的前10项。 #include
{ 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 { 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 { (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 {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 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 scanf(\ max=0;min=0; for(i=1;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 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 cout<<\大于等于平均值的实数个数:\} 3. 找出1~100之间能被7或11整除的所有整数,将这些整数放在数组中然后输出,要求一行输出10个数。 程序如下: #include 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 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 { int a[50],n,x,i,j; printf(\输入数列:\ n=0; scanf(\ while(a[n]!=0) { n++; scanf(\ 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库华北电力大学c++实验指导数组的应用习题参考答案在线全文阅读。
相关推荐: