2023年电大形成性考核册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地址大 未知 字节6.假定a是一个一维数组,则a[i]的指针访问方式为 *(a+i) 7.假定a是一个二维数组,则a[i] [j]的指针访问方式为 *(*(a+i)+j) 可能不正确8.假定a是一个一维数组,则a[i]对应的存储地址(以字节为单位)为 (char *)a+i*sizeof(a[0]) 9.假定一个二维数组为a[M] [N],则a[i] [j]对应的存储地址(以字节为单位)为 (char *)a+(i*N+j)*sizeof(a[0][0]) 。
10.假定一个二维数组a[M] [N],则a[i]的地址值(以字节为单位)为 (char *)a+i*N*sizeof(a[0][0]) 11.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大 4 字节12.假定a为一个字符数组名,则元素a[8]的字节地址为 8 13.假定a为一个整型数组名,则元素a[4]的字节地址为 16 14.假定一个结构类型的定义为“struct A{int a,b;short c;A*d;};”,则该类型的大小为 14 字节15.假定一个结构类型的定义为“struct B{int a[8];char* b;};”,则该类型的大小为 36 字节16.假定一个结构类型的定义为“struct D{int a;union{int b;double c;};D*d[3];};”,则该类型的大小为 24 字节17.假定要动态分配一个类型为Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为 r=new Worker[n]; 18.假定要访问一个结构x中的由a指针成员所指向的对象,则表示方法为 *(x.a) 。
19.假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为 *(p->b) 二、 给出下列程序运行后的输出结果以下结果中空格以’ˉ’表示1.#include struct Worker{char name[15];/ /姓名int age;/ /年龄float pay;/ /工资};void main(){Worker x ={”weirong”,55,640};Worker y, * p;y = x;p =&x;cout<< y. name<< ’ ’ < 2.#include 4./ / struct StrNode{/ / char name[15];/ /字符串域/ / StrNode * next;/ /指针域/ /};void QB(StrNode * & f, int n){if(n = = 0){f =NULL;return;}f =new StrNode;cin>>f->name;StrNode * p = f;whlie(- -n){p = p->next= new StrNode;cin>>p->name;}p->next=NULL;}创建有n个结点的StrNode类型的链表,并从键盘输入每个结点的name值5./ / struct StrNode{char name[15];StrNode * next;};void QC(StrNode * f){whlie(f){cout<< f->name<< ’ ’;f = f->next;}}遍历链表并输出所有结点的name数据成员。