c[j]) { c[j+1]=c[j];j-" />阅读下面程序,则程序段的功能是 #include "stdio.h" main() { int c[]={23,1,56,234,7,0,34},i,j,t; for(i=1;i=0 && t>c[j]) { c[j+1]=c[j];j-

阅读下面程序,则程序段的功能是 #include "stdio.h" main() { int c[]={23,1,56,234,7,0,34},i,j,t; for(i=1;i=0 && t>c[j]) { c[j+1]=c[j];j-

admin2010-12-10  23

问题 阅读下面程序,则程序段的功能是
#include "stdio.h"
main()
{    int c[]={23,1,56,234,7,0,34},i,j,t;
for(i=1;i<7;i++)
{    t=c;j=i-1;
while(j>=0 && t>c[j])
{  c[j+1]=c[j];j--;}
c[j+1]=t;}
for(i=0;i<7;i++)
printf("%d ",c);
putchar(′\n′);}

选项 A、对数组元素的升序排列
B、对数组元素的降序排列
C、对数组元素的倒序排列
D、对数组元素的随机排列

答案B

解析 读懂两个循环的关系,是解这个题目的关键,本题的第一个for循环的作用是实现对数组元素的遍历,第二个循环的作用是排序。while(j>=0 && t>c[j]),这个语句是控制排序的关键语句,它即实现了比较两个元素大小的作用,又实现了元素向后移动的作用,不断地把大的数据向前移动,直到找到一个比它小的,或到数据的上界为止。
转载请注明原文地址:https://kaotiyun.com/show/oFPp777K
0

最新回复(0)