《C++语言程序设计》形成性考核作业解答

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C++语言程序设计作业三解答一、填空题1、假定p所指对象的值为28,p+1所指对象的值为62,则*p++的值为28。2、假定p所指对象的值为28,p+1所指对象的值为62,则*++p的值为62。3、假定p所指对象的值为25,p+1所指对象的值为50,则执行“(*p)++;”语句后,p所指对象的值为26。4、假定p所指对象的值为25,p+1所指对象的值为50,则执行“*(p++);”语句后,p所指对象的值为50。5、假定a是一个指针数组,则a+i所指对象的地址比a地址大4*i字节。6、假定a是一个一维数组,则a[i]的指针访问方式为*(a+i)。7、假定a是一个二维数组,则a[i][j]的指针访问方式为*(*(a+i)+j)。8、假定a是一个一维数组,则a[i]对应的存储地址(以字节为单位)为a+i*sizeof(a[0])。9、假定一个二维数组为a[M][N],则a[i][j]对应的存储地址(以字节为单位)为a+(i*N+j)*sizeof(a[0][0])。10、假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为a+i*N*sizeof(a[0][0])。11、假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大4字节。12、假定a为一个字符数组名,则元素a[8]的字节地址为a+8。13、假定a为一个整型数组名,则元素a[4]的字节地址为a+4*4。14、假定一个结构类型的定义为“structA{inta,b;shortc;A*d;};”,则该类型的大小为14字节。15、假定一个结构类型的定义为“structB{inta[8];char*b;};”,则该类型的大小为36字节。16、假定一个结构类型的定义为“structD{inta;union{intb;doublec;};D*d[3];};”,则该类型的大小为24字节。17、假定要动态分配一个类型为Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为Worker*r=newWorker[n];。18、假定要访问一个结构x中的由a指针成员所指向的对象,则表示方法为*(x.a)。19、假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为*(p-b)。二、给出下列程序运行后的输出结果1、#includeiomanip.hvoidmain(){inta[8]={7,9,11,13,3,8,15,17};int*p=a;for(inti=0;i8;i++){coutsetw(5)*p++;if((i+1)%4==0)coutendl;}}运行结果为:7911133815172、#includeiomanip.hvoidmain(){inta[5]={3,6,15,7,20};int*p=a;for(inti=0;i5;i++)coutsetw(5)*p++;coutendl;for(i=0;i5;i++)coutsetw(5)*--p;coutendl;}运行结果为:361572020715633、#includeiomanip.hvoidmain(){inta[8]={4,8,12,16,20,24,28,32};int*p=a;do{cout*p'';p+=3;}while(pa+8);coutendl;}运行结果为:416284、#includeiomanip.hvoidmain(){intx=20,y=40,*p;p=&x;cout*p'';*p=x+10;p=&y;cout*pendl;*p=y+20;coutx''yendl;}运行结果为:204030605、#includeiomanip.hintLA(int*a,intn){ints=0;for(inti=0;in;i++)s+=a[i];returns;}voidmain(){inta[]={5,10,15,20,25,30};intb=LA(a,5);intc=LA(a+3,2);coutb''c''b+2*cendl;}运行结果为:75451656、#includeiomanip.hvoidLC(inta,intb){intx=a;a=b;b=x;couta''bendl;}voidmain(){intx=15,y=36;LC(x,y);coutx''yendl;}运行结果为:361515367、#includeiomanip.hvoidLF(int&x,inty){x=x+y;y=x+y;coutx=x,y=yendl;}voidmain(){intx=5,y=8;coutx=x,y=yendl;LF(x,y);coutx=x,y=yendl;}运行结果为:x=5,y=8x=13,y=21x=13,y=88、#includeiomanip.hvoidLG(int*&a,int&m){a=newint[m];int*p=a;for(inti=0;im;i++)*p++=2*i+1;}voidmain(){int*p,n=5;LG(p,n);for(inti=0;in;i++)coutp[i]'';coutendl;delete[]p;}运行结果为:135799、#includeiomanip.hvoidLH(int*a,intn){int*p=a+n-1;while(ap){intx=*a;*a=*p;*p=x;a++;p--;}}voidmain(){int*d=newint[5];inti;for(i=0;i5;i++){d[i]=2*i+3;coutsetw(5)d[i]'';}coutendl;LH(d,5);for(i=0;i5;i++){coutsetw(5)d[i]'';}coutendl;delete[]d;}运行结果为:35791111975310、#includeiostream.hstructWorker{charname[15];//姓名intage;//年龄floatpay;//工资};voidmain(){Workerx={weirong,55,640};Workery,*p;y=x;p=&x;couty.name''y.age''y.payendl;coutp-name''p-age+5''p-pay-10endl;}运行结果为:weirong55640weirong6063011、#includeiostream.h#includestring.hstructWorker{charname[15];//姓名intage;//年龄floatpay;//工资};voidmain(){Workerx;char*t=liouting;intd=46;floatf=725;strcpy(x.name,t);x.age=d;x.pay=f;coutx.name''x.age''x.payendl;}运行结果为:liouting46725三、写出下列每个函数的功能1、#includeiostream.hvoidLI(intn){int*a=newint[n],*p=a+n;for(inti=0;in;i++)cina[i];for(inti=n-1;i=0;i--)cout*(--p)'';cout'\n';delete[]a;}函数功能:从键盘上顺序输入n个整数,然后逆序输出这n个数。2、#includeiostream.hvoidLK(inta[],intn,int*&b,int&m){floats=0;inti;for(i=0;in;i++)s+=a[i];s/=n;m=0;for(i=0;in;i++)if(a[i]=s)m++;b=newint[m];int*p=b;for(i=0;in;i++)if(a[i]=s)*p++=a[i];}函数功能:计算一维数组a中n个元素的平均值,然后将大于或等于平均值的元素值保存在另一个动态分配的一维数组b中,元素个数保存在变量m中,它们都是引用参数。3、//structWorker{//charname[15];//姓名//intage;//年龄//floatpay;//工资//};istream&operator(istream&istr,Worker&x){cout请输入一个职工记录:姓名、年龄、工资endl;istrx.namex.agex.pay;returnistr;}函数功能:此函数是一个提取操作符“”的重载函数,通过使用该操纵符可以从键盘输入一个职工记录(包括:姓名、年龄和工资)。4、//structStrNode{//charname[15];//字符串域//StrNode*next;//指针域//};voidQB(StrNode*&f,intn){if(n==0){f=NULL;return;}f=newStrNode;cinf-name;StrNode*p=f;while(--n){p=p-next=newStrNode;cinp-name;}p-next=NULL;}函数功能:从键盘输入n个作为姓名的字符串,将其链接成一个单链表,表头结由指针f所指向。5、//structStrNode{charname[15];StrNode*next;};voidQC(StrNode*f){while(f){coutf-name'';f=f-next;}}函数功能:从表头结点开始,输出单链表f中各结点的name域字符串。

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功