《C++语言程序设计》形成性考核作业(3)解答_第1页
《C++语言程序设计》形成性考核作业(3)解答_第2页
《C++语言程序设计》形成性考核作业(3)解答_第3页
《C++语言程序设计》形成性考核作业(3)解答_第4页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精品文档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 是一个一维数组,则ai

2、 的指针访问方式为*(a+i)。7 、假定 a 是一个二维数组,则aij 的指针访问方式为*(*(a+i)+j)。可编辑精品文档8 、假定 a 是一个一维数组,则ai 对应的存储地址(以字节为单位)为a+i*sizeof(a0)。9 、假定一个二维数组为aMN ,则 aij 对应的存储地址(以字节为单位)为 a+(i*N+j)*sizeof(a00)。10 、假定一个二维数组为aMN ,则 ai 的地址值(以字节为单位)为a+i*N*sizeof(a00)。11 、假定 p 是一个指向 float 型数据的指针,则p+1 所指数据的地址比p所指数据的地址大4字节。12 、假定 a 为一个字符数

3、组名,则元素a8 的字节地址为a+8。13 、假定 a 为一个整型数组名,则元素a4 的字节地址为a+4*4。14 、假定一个结构类型的定义为“struct Aint a,b; short c ; A*d ;”,则该类型的大小为14字节。15 、假定一个结构类型的定义为“struct Bint a8; char*b ;”,则该类型的大小为36字节。16 、假定一个结构类型的定义为“struct Dint a;union int b;double c; D *d3;”,则该类型的大小为24字节。可编辑精品文档17 、假定要动态分配一个类型为Worker的具有 n 个元素的数组,并由r指向这个动态

4、数组,则使用的语句为Worker *r=new Workern;。18 、假定要访问一个结构x 中的由 a 指针成员所指向的对象,则表示方法为 *(x.a) 。19 、假定要访问一个结构指针p 所指对象中的 b 指针成员所指的对象,则表示方法为 *(p->b)。二、给出下列程序运行后的输出结果1 、#include <iomanip.h>void main( )int a8=7,9,11,13,3,8,15,17;int *p=a;for(int i=0; i<8; i+)cout<<setw(5)<<*p+;if(i+1)%4=0) cout&

5、lt;<endl;运行结果为: 7911133815172 、#include <iomanip.h>void main( )int a5=3,6,15,7,20;int *p=a;for(int i=0; i<5; i+)cout<<setw(5)<<*p+;cout<<endl;可编辑精品文档for(i=0; i<5; i+)cout<<setw(5)<<*-p;cout<<endl;运行结果为:361572020715633 、#include <iomanip.h>void

6、 main( )int a8=4, 8, 12, 16, 20, 24, 28, 32;int *p=a;docout<<*p<<' 'p+=3;while(p<a+8);cout<<endl;运行结果为:416284 、#include <iomanip.h>void main( )int x=20, y=40, *p;p=&x; cout<<*p<<' '*p=x+10;p=&y; cout<<*p<<endl;*p=y+20; cout&l

7、t;<x<<' '<<y<<endl;运行结果为:20 4030 605 、#include <iomanip.h>int LA(int *a, int n)可编辑精品文档int s=0;for(int i=0; i<n; i+)s+=ai;return s;void main( )int a =5, 10, 15, 20, 25, 30;int b=LA(a, 5);int c=LA(a+3, 2);cout<<b<<' '<<c<<' '

8、;<<b+2*c<<endl;运行结果为:75 45 1656 、#include <iomanip.h>void LC(int a, int b)int x=a;a=b; b=x;cout<<a<<' '<<b<<endl;void main( )int x=15, y=36;LC(x, y); cout<<x<<' '<<y<<endl;运行结果为:36 1515 367 、#include <iomanip.h>v

9、oid LF(int &x, int y)x=x+y;y=x+y;cout<<"x="<<x<<",y="<<y<<endl;可编辑精品文档void main( )int x=5, y=8;cout<<"x="<<x<<",y="<<y<<endl;LF(x, y);cout<<"x="<<x<<",y="<

10、<y<<endl;运行结果为:x=5,y=8x=13,y=21x=13,y=88 、#include <iomanip.h>void LG(int * &a, int &m)a=new intm;int *p=a;for(int i=0; i<m; i+)*p+=2*i+1;void main( )int *p, n=5;LG(p, n);for(int i=0; i<n;i+)cout<<pi<<' 'cout<<endl;delete p;运行结果为:135799 、#includ

11、e <iomanip.h>void LH(int *a, int n)int *p=a+n-1;while(a<p)int x=*a;可编辑精品文档*a=*p;*p=x;a+; p-;void main( )int *d=new int5;int i;for(i=0; i<5;i+) di=2*i+3;cout<<setw(5)<<di<<' 'cout<<endl;LH(d, 5);for(i=0; i<5; i+) cout<<setw(5)<<di<<'

12、; 'cout<<endl;delete d;运行结果为:35791111975310 、#include <iostream.h>struct Worker char name15; /姓名int age; /年龄float pay;/工资;void main( )Worker x="weirong", 55, 640;Worker y, *p;y=x; p=&x;可编辑精品文档cout<<<<' '<<y.age<<' '<<y

13、.pay<<endl;cout<<p->name<<' '<<p->age+5<<' '<<p->pay-10<<endl;运行结果为:weirong 55 640weirong 60 63011 、#include <iostream.h>#include <string.h>struct Worker char name15; /姓名int age; /年龄float pay;/工资;void main( )Worker x;char

14、 *t="liouting"int d=46; float f=725;strcpy(, t);x.age=d; x.pay=f;cout<<<<' '<<x.age<<' '<<x.pay<<endl;运行结果为:liouting 46 725三、写出下列每个函数的功能1 、#include <iostream.h>void LI(int n)int *a=new intn,*p=a+n;for(int i=0; i<n; i+

15、) cin>>ai;for(int i=n-1; i>=0; i-) cout<<*(-p)<<' 'cout<<'n'可编辑精品文档delete a;函数功能:从键盘上顺序输入n 个整数,然后逆序输出这n 个数。2 、#include <iostream.h>void LK(int a , int n, int *&b, int &m)float s=0; int i;for(i=0; i<n; i+)s+=ai;s/=n;m=0;for(i=0; i<n; i+)i

16、f(ai>=s) m+;b=new intm;int *p=b;for(i=0; i<n; i+)if(ai>=s) *p+=ai;函数功能:计算一维数组 a 中 n 个元素的平均值,然后将大于或等于平均值的元素值保存在另一个动态分配的一维数组 b 中,元素个数保存在变量 m 中,它们都是引用参数。3 、/structWorker/char name15;/ 姓名/int age; / 年龄/float pay ; / 工资/ ;istream & operator>>(istream &istr, Worker &x)cout<&l

17、t;"请输入一个职工记录:姓名、年龄、工资"<<endl;istr>>>>x.age>>x.pay;return istr;可编辑精品文档函数功能:此函数是一个提取操作符“ >> ”的重载函数,通过使用该操纵符可以从键盘输入一个职工记录(包括:姓名、年龄和工资)。4 、/structStrNode/char name15;/ 字符串域/StrNode *next;/ 指针域/ ;void QB ( StrNode * &f, int n)if(n=0) f=NULL; return;f=new StrNode;cin>>f->name;StrNode *p=f;while(-n)p=p->next

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论