b[i]=a[i]*2;
}
将有n个元素的任意类型数组a中的每个元素乘以2后放到数组b中的相应位置中。
计算机应用专业“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.假定一个结构类型的定义为“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指向这个动态数组,则使用的语句为r=newWorker[n];。
18.假定要访问一个结构x中的由a指针成员所指向的对象,则表示方法为*(x.a)。
19.假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为*(p->b)。
二、给出下列程序运行后的输出结果
以下结果中空格以’ˉ’表示
1.#include
voidmain(){
inta[8]={7,9,11,13,3,8,15,17};
int*p=a;
for(inti=0;i<8;i++){
cout<if((i+1)%4==0)cout<}
}
ˉˉˉˉ7ˉˉˉˉ9ˉˉˉ11ˉˉˉ13
ˉˉˉˉ3ˉˉˉˉ8ˉˉˉ15ˉˉˉ17
2.#include
voidmain(){
inta[5]={3,6,15,7,20};
int*p=a;
for(inti=0;i<5;i++)
cout<cout<for(i=0;i<5;i++)
cout<cout<}
ˉˉˉˉ3ˉˉˉˉ6ˉˉˉ15ˉˉˉˉ7ˉˉˉ20
ˉˉˉ20ˉˉˉˉ7ˉˉˉ15ˉˉˉˉ6ˉˉˉˉ3
3.#include
voidmain(){
inta[8]={4,8,12,16,20,24,28,32};
int*p=a;
do{
cout<<*p<<’’;
p+=3;
}while(pcout<}
41628
4.#include
voidmain(){
intx=20,y=40,*p;
p=&x;cout<<*p<<’’;
*p=x+10;
p=&y;cout<<*p<*p=y+20;cout<}
2040
3060
5.#include
intLA(int*a,intn){
ints=0;
for(inti=0;is+=a[i];
returns;
}
voidmain(){
inta[]={5,10,15,20,25,30};
intb=LA(a,5);
intc=LA(a+3,2);
cout<
}
7545165
6.#include<