《C++语言程序设计》第3次作业讲评.docVIP

  • 6
  • 0
  • 约5.21千字
  • 约 11页
  • 2018-06-23 发布于湖北
  • 举报
《C++语言程序设计》第三次作业讲评 说明:本次作业对应教材第六、七章的内容。 【讲评】本章主要考核大家对指针的概念的理解,要求掌握指针变量的定义和初始化、指针的各种操作、一维数组元素的下标访问方式与指针访问方式及其之间的转换、引用的概念以及动态空间管理等内容。内容相对前面章节比较难,希望通过作业讲评能够帮助大家把学习中的难题一一解决。下面是对部分问题的讲评。 一、填空题 1.假定p所指对象的值为28,p+1所指对象的值为62,则* p + +的值为 28 。2.假定p所指对象的值为28,p+1所指对象的值为62,则* + + p的值为 。3.假定p所指对象的值为25,p+1所指对象的值为50,则执行“(*p)+ +;”语句后,p所指对象的值为 。(*p)+ +(*p)+ +(*p)+ +4.假定p所指对象的值为25,p+1所指对象的值为50,则执行“*(p+ +);”语句后,p所指对象的值为 。5.假定a是一个指针数组,则a+i所指对象的地址比a地址大 字节。6.假定a是一个一维数组,则a[i]的指针访问方式为 。 7.假定a是一个二维数组,则a[i] [j]的指针访问方式为 *(a[i]+j) *(*(a+i)+j) 。8.假定a是一个一维数组,则a[i]对应的存储地址(以字节为单位)为 。 9.假定一个二维数组为a[M] [N],则a[i] [j]对应的存储地址(以字节为单位)为 a+(i*N+j)*sizeof(a[i][j]) 。 10.假定一个二维数组a[M] [N],则a[i]的地址值(以字节为单位)为 a+(i*N)*sizeof(a[][0]) 或a+i*sizeof(a[i]) 。 11.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大 字节。 12.假定a为一个字符数组名,则元素a[8]的字节地址为 。 13.假定a为一个整型数组名,则元素a[4]的字节地址为 。 14.假定一个结构类型的定义为“struct A{int a,b;short c;A*d;};”,则该类型的大小为 字节。15.假定一个结构类型的定义为“struct B{int a[8];char* b;};”,则该类型的大小为 字节。16.假定一个结构类型的定义为“struct D{int a;union{int b;double c;};D*d[3];};”,则该类型的大小为 字节。17.假定要动态分配一个类型为Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为 。 18.假定要访问一个结构x中的由a指针成员所指向的对象,则表示方法为 。 19.假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为 。 给出下列程序运行后的输出结果1.#includeiomanip.h void main(){ int a[8]={7,9,11,13,3,8,15,17}; int *p = a; for(int i =0;i8;i + +){ coutsetw(5) * p + +; if((i +1)%4 = =0)coutendl; } } 2.#includeiomanip.h void main(){ int a[5]={3,6,15,7,20}; int *p = a; for(int i = 0;i5;i + +) coutsetw(5) * p + +; coutendl; for(i =0;i5;i + +) coutsetw(5) * - -p; coutendl; }3.#includeiomanip.h void main(){ int a[8] ={4,8,12,16,20,24,28,32}; int *p = a; do{ cout *p ’ ’; p + =3; }while(pa+8); coutendl; }4.#includeiomanip.h void main(){ int x =20,y =40, * p; p =x;cout * p ’ ’;* p= x +10;p =y;cout * pendl; * p = y +20;cout x ’ ’ y endl; }5.#includeiomanip.h int LA(int * a,int n){ int s = 0; for(int i =0;in;i + +) s + = a[i]; return s; } void main(){ int a[ ]={5,10,15,20

文档评论(0)

1亿VIP精品文档

相关文档