春阅读程序 完善程序题.docx

上传人:b****6 文档编号:7970071 上传时间:2023-01-27 格式:DOCX 页数:10 大小:16.97KB
下载 相关 举报
春阅读程序 完善程序题.docx_第1页
第1页 / 共10页
春阅读程序 完善程序题.docx_第2页
第2页 / 共10页
春阅读程序 完善程序题.docx_第3页
第3页 / 共10页
春阅读程序 完善程序题.docx_第4页
第4页 / 共10页
春阅读程序 完善程序题.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

春阅读程序 完善程序题.docx

《春阅读程序 完善程序题.docx》由会员分享,可在线阅读,更多相关《春阅读程序 完善程序题.docx(10页珍藏版)》请在冰豆网上搜索。

春阅读程序 完善程序题.docx

春阅读程序完善程序题

阅读程序题

5.【程序】(2分)

#include

inta=10;

voidfun(void)

{

inta=15;

:

:

a-=--a;

cout<<:

:

a<<'\t'<

}

voidmain(void)

{

inta=15;

for(inti=-10;i

:

a;i++)fun();

}

执行程序后输出的第一行是(6),第二行是(7)。

6.【程序】(2分)

#include

voidmain(void)

{

inti=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

intf(int&x,int&y)

{

x+=y;

y+=x;

return(x>y?

x:

y);

}

voidmain(void)

{

intx=20,y=30,z;

z=f(x,y);

cout<

z=f(y,x);

cout<

}

执行程序后输出的第一行是(10),第二行是(11)。

8.【程序】(2分)

#include

intf1(intn)

{

if(n==1)return1;

elsereturnn*n+f1(n-1);

}

intf2(intn)

{

intmul=1;

if(n==1)mul=1;

elsemul=n*f2(n-1);

returnmul;

}

voidmain(void)

{

cout<

cout<

}

执行程序后输出的第一行是(12),第二行是(13)。

9.【程序】(3分)

#include

char*str(char*p1,char*p2)

{

char*p=p1;

while(*p)p++;

*p++='';

while(*p++=*p2++);

*p++='';

returnp1;

}

voidmain(void)

{

chars1[200]={"NanJing"};

chars2[200]={"is"};

chars3[]={"good"};

cout<

cout<

cout<

'<

'<

}

执行程序后输出的第一行是(14),第二行是(15),第三行是(16)。

10.【程序】(2分)

#include

classA{

intx,y;

public:

A(inta,intb){x=a;y=b;}

virtualvoidfun1(){cout<<"x+y="<

};

classB:

publicA{

intm,n;

public:

B(inta,intb,intc,intd):

A(c,d){m=a;n=b;}

voidfun1(){cout<<"m*n="<

};

voidprint(A&ra){ra.fun1();}

voidmain()

{

Aa(10,20),*pa;

B*p;

p=newB(20,30,40,50);

p->fun1();

pa=&a;pa->fun1();

pa=p;pa->fun1();

print(a);

deletep;

}

执行程序后输出的第二行是(17),第三行是(18)。

●完善程序题(共12分)

11.设有一条环形铁路,共有n个车站。

现有检查组去检查各个车站的服务质量,从第i个车站开始检查,每隔m(已检查过的车站不计算在内)个车站作为下一个要检查的车站序号,直到所有车站都检查完为止。

下列程序的功能是:

按以上要求计算出一次检查的车站序号,并输出计算的序号序列和检查循环的圈数。

例如:

共有20个车站,车站的序号依次为:

1,2,3~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

#defineN100

intcheck(intx[],inty[],intn,inti,intm)

{

intk=0,k1,count=0;

x[0]=n;

for(intj=1;j

x[j]=j;

y[k++]=i;

x[i]=-1;

j=i;

while((19))

{

k1=0;

while(k1

j++;

if(j>=n){

count++;

j=(20);

}

if(x[j]!

=-1)k1++;

}

y[k++]=(21);

x[j]=-1;

}

returncount;

}

voidmain(void)

{

intA[N],B[N],n,m,i,j,k=0,num;

cout<<"输入车站个数n,第一个开始检查的车站号i,间隔的车站数m:

";

cin>>n>>i>>m;

num=(22);

cout<<"检查顺序:

"<

for(j=0;j

cout<";

cout<

cout<<"全部检查完各个车站,共要循环的圈数为:

"<

}

12.以下程序的功能是求满足以下条件的所有三位数:

(1)该三位数是某一个二位数的平方;

(2)该三位数的个位数、十位数和百位数各不相同,即1到9这九个数字在该数中至多只允许出现一次。

要求每行输出五个数。

例如,满足以上条件的所有三位数有13个,分别为:

169196256289324

361529576625729

784841961

【程序】(4分)

#include

intf(inty)

{

inti,j,k;

i=y%10;

j=(23);

k=y/100;

if((24))

return0;

for(i=11;i<31;i++)

if((25))return1;

return0;

}

voidmain(void)

{

intx[22]={0},count=0;

for(inti=102;i<987;i++){

if(f(i)){

(26);

count++;

}

}

for(i=0;i

cout<

if((i+1)%5==0)cout<<'\n';

}

cout<<'\n'<<"共有:

"<

}

13.在以下程序中,函数creat()根据键盘一次输入的整数建立一条单向无序链表,链表上的每一个结点包含一个整数;函数sort()根据链表结点的数据按从小到大的顺序将链表调整为一条有序链表;函数print()将链表上的整数依次输出;函数del()将链表删除。

排序算法提示:

(1)初始时,使p指向链表的首结点;

(2)从p之后的所有结点中找出data值最小的结点;(3)让p1指向该结点,并将p指向结点的data值与p1指向结点的data值进行交换,让p指向下一个结点;(4)重复步骤

(2)(3),直至p指向链表的最后一个结点为止。

【程序】(4分)

#include

structNode{

intdata;

Node*next;

};

Node*sort(Node*head)

{

Node*p=head,*p1,*p2;

if(p==NULL)returnhead;

while(p->next!

=NULL){

p1=p;

(27);

while(p2!

=NULL){

if(p2->datadata)(28);

p2=p2->next;

}

if(p!

=p1){

intt;

t=p->data;

p->data=p1->data;

p1->data=t;

}

p=p->next;

}

returnhead;

}

Node*creat(void)

{

Node*h=NULL,*p,*p1;

intdata=1;

while(data){

cout<<"输入一个整数,0表示输入结束:

";

cin>>data;

if(data){

p=newNode;

p->data=data;

p->next=NULL;

if(h==NULL)

h=p1=p;

else{

(29);

p1=p;

}

}

}

returnh;

}

voidprint(Node*p)

{

while(p){

cout<data<<'\t';

p=p->next;

}

cout<<'\n';

}

voiddel(Node*h)

{

Node*p;

while(h){

p=h;

(30);

deletep;

}

}

voidmain(void)

{

Node*head;

head=creat();

cout<<"链表上的数据为:

";

print(head);

head=sort(head);

cout<<"排序后链表上的数据为:

";

print(head);

del(head);

cout<

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1