void main(void) {int i=1,j=1; for(:j<10;j++){
if(j>5){i+=2;break;} if(j%2!=0){ j+=2; continue; }
cout<cout<执行程序后输出的第一行是___(8)___ ,第二行是___(9)___ . 7.[程序](2分)
#include int f(int &x,int &y) {x+=y; y+=x;
return(x>y?x:y); }
void main(void) {
int x=20,y=30,z;
z=f(x,y):
cout<cout<执行程序后输出的第一行是___(10)___,第二行是___(11)___. 8.[程序](2分)#include int f1(int n){
if(n==1)return 1;
else return n*n+f1(n-1); }
int f2(int n) {
int mul=1;
if(n==1) mul=1; else mul= n*f2(n-1); return mul; }
void main(void) {
cout<执行程序后输出的第一行是___(12)___,第二行是___(13)___ 9.[程序](3分)#include char *str(char *p1,char*p2) {
char *p=p1; while(*p)p++; *p++=’’;
while(*p++=*p2++); *p++=’’; return p1; }
void main(void) {
char s1*200+=,“NanJin”-; char s2*200+=,“is”-; char s3*+=,“good”-; cout<cout<执行程序后输出的第一行是___(14)___ ,第二行是___(15)____,第三行是___(16)___ 1O.[程序](2分)#include class A{ int x,y; public:A(int a,int b){x=a;y=b;}
virtual void funl(){cout<<“x+y=“<class B:public A{ int m,n; public:B(int a,int b,int c,int d) :A(c,d){m=a ;n=b ;} void fun1(),cout<<“m*n= ”<void print(A &ra){ra.fun1();} void main(void) {A a(10,20),*pa; B *p;
p=new B(20,30,40,50); p->fun1();
pa=&a; pa->fun1(); pa=p; pa->fun1(); print(a); delete p; }
执行程序后输出的第二行是___(17)____,第三行是___(18)___ 完善程序题,共12分
11.设有一条环形铁路,共有n个车站,现有检查组去检查每个车站的服务质量,从第i个车站开始检查,每隔m(已检查过的车站不计算在内)个车站作为下一个要检查的车站,直到所有车站都检查完为止。下面的程序功能是:按以上要求计算出依次检查的车站序号,并输出计算的序号序列和检查循环的圈数。例如,假设共有20个车站,车站的序号依次为:1,2,3,„,19,20;要求从第3个车站开始检查,间隔5个车站,则检查车站的顺序为:
3->8->13->18->4->10->16->2->11->19->7->17->9->1->15->14->20->6->12->5 函数check()中的count记录检查完所有车站时要绕环形铁路的圈数。 [程序](4分)
#include #define N 100int check(int x[],int y[],int n,int i,int m) //x存放车站序号,y存放依次检查的车站 {//n总车站数,i开始检查的车站号,m要间隔的车站数 int k=O,k1,count=0; //k记录已检查车站的个数
x[O]=n; //初始化数组x,x[0]记录最后一个车站号
for(int j=1;jy[k++]=i: //i为第一个检查的车站x[i]=-1: //当“i]为一1时,表示该车站已检查 j=i;
while( ___(19)___){
k1=O; //用k1累加间隔车站个数 while(k1=n){ . count++;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 2 324 361 529 576 625 729 784 841 961 [程序](4分)#include int f(int y) //y若满足条件,返回1:否则返回O {
int i,j,k;
i=y%10; //求个位数
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;icout<<’\n’<<“共有:”<13.在以下程序中,函数create()根据键盘依次输入的整数建立一条单向无序链表,链表上的每一个结点包含一个整数;函数sort()根据链表结点的数据按从小到大的顺序将链表调整为一条有序链表;函数print()将链表上的整数依次输出;函数del()将链表删除。排序算法提示:(1)初始时,使P指向链表的首结点,(2)从P之后的所有结点中找出data值最小的结点。(3)让p1指向该结点,并将P指向结点的data值与pl指向结点的data值进行交换,让P指向下一个结点,(4)重复步骤(2)和(3),直至P指向链表的最后一个结点为止· [程序](4分)
#include struct Node{ int data; Node *next; };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->datadata) ___(28)___; p2=p2->next;}
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<data<<’\t’; p=p->next; }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<