12 以下程序中函数Reverse的功能是对数组a中的前一半元素逆序 后一半元素逆序 再将逆序后的前 后两部分数据位置交换。按要求在空白处填写适当的表达式或语句 使程序完整并符合题目要求。 例如:主程序中数组b中的元素为{16 22 13 41 50 62 27 18 9 10} 调用函数Reverse后 数组b中元素变为 {10 9 18 27 62 50 41 13 22 16} #include <stdio.h> void Reverse(int a[] int n) { int i
问题详情
12、以下程序中函数Reverse的功能是对数组a中的前一半元素逆序、后一半元素逆序,再将逆序后的前、后两部分数据位置交换。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 例如:主程序中数组b中的元素为{16,22,13,41,50,62,27,18,9,10},调用函数Reverse后,数组b中元素变为 {10 9 18 27 62 50 41 13 22 16} #include <stdio.h> void Reverse(int a[],int n) { int i,t; for(i=0;________;i++) { t=a[i]; __________; a[n-i]=t; } } int main() { int b[10]={16,22,13,41,50,62,27,18,9,10}; int i,s=0; __________; for(i=0;i<10;i++) { printf("%4d",b[i]); } r
A.第5行: i<=n/2 第8行: a[i]=a[n-i] 第17行: Reverse(b,9)
B.第5行: i<=n 第8行: a[n-i]=a[i] 第17行: Reverse(b,9)
C.第5行: i<=n/2 第8行: a[n]=a[i] 第17行: Reverse(9,b)
D.第5行: i<=n/2 第8行: a[i]=a[n] 第17行: Reverse(b,9)
参考答案
A 解析:题目中reverse()函数的功能是将具有n个元素的数组a反序存放。在主函数中调用语句是“reverse(b,8);”,实现的功能是把b数组的前8个元素逆置,所以b数组中依次存放的值为“8,7,6,5,4,3,2,1,9,10”。for循环了4次,分别把b[6]、 b[7]、b[8]和b[9]的值(分别是2、1、9、10)加到了s中,s的结果是22,所以最后输出的s值为22。故4个选项中A正确。