《2022年电大形成性考核册c第三次作业及答案 .pdf》由会员分享,可在线阅读,更多相关《2022年电大形成性考核册c第三次作业及答案 .pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 / 7 计算机应用专业 “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 地址大
2、 未知 字节。6假定 a 是一个一维数组,则ai 的指针访问方式为*(a+i)。7假定 a 是一个二维数组,则ai j的指针访问方式为*(*(a+i)+j)。8 假 定a 是 一 个 一 维 数 组 , 则 ai对 应 的 存 储 地 址 ( 以 字 节 为 单 位 ) 为 (char *)a+i*sizeof(a0)。9假定一个二维数组为aM N,则 ai j对应的存储地址(以字节为单位)为(char *)a+(i*N+j)*sizeof(a00)。10 假 定 一 个 二 维 数 组 aM N , 则ai的 地 址 值 ( 以 字 节 为 单 位 ) 为 (char *)a+i*N*siz
3、eof(a00)。11 假定 p 是一个指向float型数据的指针,则p+1所指数据的地址比p 所指数据的地址大 4 字节。12 假定 a 为一个字符数组名,则元素a8 的字节地址为8 。13 假定 a 为一个整型数组名,则元素a4 的字节地址为16 。14 假定一个结构类型的定义为“ struct Aint a,b ;short c; A*d ; ” ,则该类型的大小为14 字节。15 假定一个结构类型的定义为“ struct Bint a8 ;char* b; ” ,则该类型的大小为 36 字节。16 假定一个结构类型的定义为“ struct D int a; union int b ;
4、double c;D*d3; ” ,则该类型的大小为24 字节。17 假定要动态分配一个类型为Worker的具有 n 个元素的数组,并由r 指向这个动态数组,则使用的语句为r=new Workern。18 假定要访问一个结构x 中的由 a 指针成员所指向的对象,则表示方法为*(x.a)。19 假定要访问一个结构指针p所指对象中的b 指针成员所指的对象,则表示方法为*(p-b)。二、给出下列程序运行后的输出结果以下结果中空格以表示1 include void main()int a8=7,9,11,13,3,8,15,17;精选学习资料 - - - - - - - - - 名师归纳总结 - -
5、- - - - -第 1 页,共 7 页2 / 7 int *p = a;for (int i =0;i8 ;i + +)coutsetw(5) * p + +;if ( i +1 )%4 = =0)coutendl;7911 13 3815 17 2 include void main()int a5=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;3615 72020 715 63 3 in
6、clude void main()int a8 =4,8,12,16,20,24,28,32;int *p = a;do cout *p ;p + =3;while (pa+8);coutendl;4 16 28 4 include 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;20 40 30 60 5 include int LA (int * a,int n)精选学习资料 - - - - - - - - - 名师归纳总结 - -
7、 - - - - -第 2 页,共 7 页3 / 7 int s = 0;for (int i =0;in ;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 b +2 * cendl ;75 45 165 6 include 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;
8、36 15 15 36 7 include void 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 =” y endl;x=5,y=8 x=13,y=21 x=13,y=8 8 include void LG(int * & a, int & m)a = new intm;int * p = a;for (int i = 0; im ;i +
9、+)精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 7 页4 / 7 * p + + =2 * i +1;void main()int * p, n =5;LG( p,n );for ( int i = 0;in ; i + +)cout pi ;coutendl;delete p;1 3 5 7 9 9 include void LH(int * a, int n)int * p = a + n1;whlie (ap )int x = * a;* a = * p;* p = x;a + +;p ;void main()int * d
10、= new int5;int i ;for ( i = 0 ; i5 ;i + +)di=2 * i +3;coutsetw(5)di ;coutendl;LH( d,5 );for ( i = 0 ; i5 ;i + +)coutsetw(5)di ;coutendl;delete d;357911 11 9753 10 include struct Workerchar name15;/ / 姓名int age;/ / 年龄float pay;/ / 工资;精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 7 页5 / 7 void
11、main()Worker x = ” weirong” ,55,640;Worker y, * p;y = x;p =&x;cout y. name y. age y. payendl;coutname age+5 pay10endl;weirong 55 640 weirong 60 630 11 include include struct Workerchar name15;/ / 姓名int age;/ / 年龄float pay;/ / 工资;void main()Worker x;char * t =” liouting”;int d =46;float f =725;strcpy
12、 ( x. name, t);x. age = d;x. pay = f;cout x. name x. age x. payendl;liouting 46 725 三、写出下列每个函数的功能1 include void LI(int n )int * a = new intn, * p = a + n;for (int i =0;i ai;for (i = n1;i =0;i ) cout *( p) ;cout n ;delete a;输入 n 个数并以相反的顺序显示出来。2 include void LK (int a , int n, int * & b, int& m)float
13、s =0;int i ;for (i =0 ;in ;i + +)s + = ai;s/= n;m = 0;for ( i =0 ;i = s)m + +;b = new intm;int * p = b;for ( i =0 ;i = s)* p + + = ai;将数组 a 中大于平均数的元素存放到动态申请的数组b 中,数组b 的大小由m 返回。3/ /struct Worker/ / char name15;/ / 姓名/ / int age;/ / 年龄/ / float pay;/ / 工资/ / ;istream & operator(istream& istr,Worker& x
14、)cout” 请输入一个职工记录:姓名、年龄、工资” x. name x. age x. pay;return istr;重载 istream的 操作符以输入Worker结构对象。4/ / struct StrNode/ / char name15;/ / 字符串域/ / StrNode * next;/ / 指针域/ / ;void QB(StrNode * & f, int n)if(n = = 0) f =NULL;return;f =new StrNode;cinfname;StrNode * p = f;whlie ( n)p = pnext= new StrNode;cinp name;pnext=NULL;创建有 n 个结点的StrNode类型的链表,并从键盘输入每个结点的name值。5/ / struct StrNode char name15;StrNode * next;void QC (StrNode * f)whlie (f)coutnamenext;遍历链表并输出所有结点的name数据成员精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 7 页7 / 7 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 7 页