for(int j=1;j y[k++]=i: //i为第一个检查的车站 x[i]=-1: //当“i]为一1时,表示该车站已检查 j=i; while( ___(19)___){ k1=O; //用k1累加间隔车站个数 while(k1 j=___(20)___; } if(x[j]!=-1)k1++; } y[k++]= ___(21)___; x[j]=-1; } return count; } void main(void) { int A[N],B[N],n,m,i,j,k=O,k1,num;//A记录车站序号,B记录检查顺序 cout<<”输入车站个数n,第一个开始检查的车站号i,间隔的车站数m:”; cin>>n>>i>>m; num=___(22)___ ; cout<<“检查顺序:”< cout<“; cout< cout<<“全部检查完各个车站,共要循环的圈数为:”< 12.以下程序的功能是:求满足以下条件的所有三位数:(1)该三位数是某一个二位数的平方:(2)该三位数的个位数、十位数和百位数各不相同,即l到9这九个数字在该数中至多只允许出现一次.要求每行输出五个数。例如,满足以上条件的所有三位数有13个,分别为: 169 196 256 289 324 361 529 576 625 729 784 841 961 [程序](4分) #include int f(int y) //y若满足条件,返回1:否则返回O { int i,j,k; i=y; //求个位数 j=___(23)___ ; //求十位数 k=y/100; if( ___(24)___) //判是否有相同的数字 return 0; for(i=11:i<=31:i++) //因32.32=1024,已超过三位数 if(___(25)___) return 1; return 0; } void main(void) { int x[22]={0},count=O; for(int i=102:i<987;i++){ if(f(i)){ ___(26)___ ; count++; } } for(i=0;i cout<<’\n’<<“共有:”< 13.在以下程序中,函数create()根据键盘依次输入的整数建立一条单向无序链表,链表上的每一个结点包含一个整数;函数sort()根据链表结点的数据按从小到大的顺序将链表调整为一条有序链表;函数print()将链表上的整数依次输出;函数del()将链表删除。 排序算法提示:(1)初始时,使P指向链表的首结点,(2)从P之后的所有结点中找出data值最小的结点。(3)让p1指向该结点,并将P指向结点的data值与pl指向结点的data值进行交换,让P指向下一个结点,(4)重复步骤(2)和(3),直至P指向链表的最后一个结点为止· [程序](4分) #include Node *sort(Node *head) { Node *p=head,*p1,*p2; if(p==NULL)return head; while(p->next!=NULL){ p1=p; __________(27)___________; while(p2!=NULL){ if(p2->data } if(p!=p1){ int t; t=p->data; p->data=p1->data; p1->data=t; } p=p->next; } return head; } Node *creat(void) { Node *h=NULL,*p,*p1; int data=1; while(data){ cout<<“输入一个整数,0表示输入结束:”; cin>>data; if(data){ p=new Node: p->data=data; p->next=NULL; if(h==NULL) h=p1=p; else{ ___(29)___; p1=p; } } } return h; } void print(Node *p) { while(p){ cout< cout<<’\n’; } void del(Node *h) { Node *p; while(h){ p=h; ___(30)___ delete p; ) } void main(void) ( Node *head; head=creat(); cout<<“链表上的数据为:”; print(head); head=sort(head); cout<<“排序后链表上的数据为:”; print(head); del(head); cout<
相关推荐: