若有以下程序: #include〈iostream〉 using namespace std; int main() { int data[4],i,j,temp; for (i=O; i>data[i];

admin2013-05-30  28

问题 若有以下程序:    #include〈iostream〉    using namespace std;    int  main()    {       int data[4],i,j,temp;       for (i=O; i<4; i++)          cin>>data;       for (i=1; i<4; i++)       {          j = i-1;          temp = data;          while (data [j ] >temp&&j >=0)          {             data[j+1] = data[j];             j--;          }          data[j+1] = temp;       }       for(i=O;i<4;i++)          cout〈〈data〈〈" ";       cout〈〈end1;       return 0;    }

选项 A、2843
B、2348
C、8243
D、8432

答案2

解析 本题属于综合题,考查数组和循环语句两方面的知识。此题看起来很复杂,其实不然,根据程序逐步分析:
   ①在程序第1个for语句中,为数组data赋输入的值,即2,8,4,3。
   ②第2个for语句是嵌套式循环,循环次数是3次,即从1到3。第1次循环时, i=1,执行“j=i-1”后,j=0,然后把data[1]的值赋给temp,再进入while循环。
   ③while后的条件表达式“data[j]〉temp&&j〉=0”,就是当data刚大于temp,同时j不小于0时执行while循环体。当while条件表达式成立时,执行“data[j+1]=data[j]”,即当data刚大于data[j]大于data[j+1]时,把它们俩的值交换一下,以此类推,最后实现把数组中的数从小到大排列起来。
   ④最后一个for语句用于打印经过程序处理后数组中的元素。
转载请注明原文地址:https://kaotiyun.com/show/jLNp777K
0

最新回复(0)