b[i]=a[i]*2;
}
C++语言程序设计作业(3)
一、填空题
1、假定p所指对象的值为28,p+1所指对象的值为62,则*p++的值为。
2、假定p所指对象的值为28,p+1所指对象的值为62,则*++p的值为。
3、假定p所指对象的值为25,p+1所指对象的值为50,则执行”(*p)++;”语句后,p所指对象的值为。
4、假定p所指对象的值为25,p+1所指对象的值为50,则执行”*(p++);”语句后,p所指对象的值为。
5、假定a是一个指针数组,则a+I所指对象的地址比a地址大字节。
6、假定a是一个一维数组,则a[i]的指针访问方式为。
7、假定a是一个二维数组,则a[i][j]的指针访问方式为。
8、假定a是一个一维数组,则a[i]对应的存储地址(以字节为单位)为。
9、假定一个二维数组为a[M][N],则a[i][j]对应的存储地址(以字节为单位)为。
10、假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为。
11、假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大字节。
12、假定a为一个字符数组名,则元素a[8]的字节地址为。
13、假定a为一个整型数组名,则元素a[4]的字节地址为。
14、假定一个结构类型的定义为”structA{inta,b;shortc;A*d;};”,则该类型的大小为字节。
15、假定一个结构类型的定义为”structB{inta[8];char*b;};”,则该类型的大小为字节。
16、假定一个结构类型的定义为”structD{inta;union{intb;doublec;};D*d[3];};”,则该类型的大小为字节。
17、假定要动态分配一个类型为Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为。
18、假定要访问一个结构x中的由a指针成员所指向的对象,则表示方法为。
19、假定要访问一个结构指针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<}
}
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.
#include
voidmain(){
inta[8]={4,8,12,16,20,24,28,32};
int*p=a;
do{
cout<<*p<<'';
p+=3;
}while(pcout<}
4.
#include
voidmain(){
intx=20,y=40,*p;
p=&x;cout<<*p<<'';
*p=x+10;
p=&y;cout<<*p<*p=y+20;cout<}
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<
}
6.
#include
voidLC(inta,intb){
intx=a;
a=b;b=x;
cout<}
voidmain(){
intx=15,y=36;
LC(x,y);
cout<}
7.
#include
voidLF(int&x,inty){
x=x+y;
y=x+y;
cout<<"x="<}
voidmain(){
intx=5,y=8;
cout<<"x="<LF(x,y);
cout<<"x="<}
8;
8.
#include
voidLG(int*&a,int&m){
a=newint[m];
int*p=a;
for(inti=0;i*p++=2*i+1;
}
voidmain(){
int*p,n=5;
LG(p,n);
for(inti=0;icout<
cout<delete[]p;
}
9.
#include
voidLH(int*a,intn){
int*p=a+n-1;
while(a
intx=*a;
*a=*p;
*p=x;
a++;p--;
}
}
voidmain(){
int*d=newint[5];
inti;
for(i=0;i<5;i++){
d[i]=2*i+3;
cout<}
cout<LH(d,5);
for(i=0;i<5;i++){
cout<}
cout<delete[]d;
}
10.
#include
voidLH(int*a,intn){
int*p=a+n-1;
while(a
intx=*a;
*a=*p;
*p=x;
a++;p--;
}
}
voidmain(){
int*d=newint[5];
inti;
for(i=0;i<5;i++){
d[i]=2*i+3;
cout<}
cout<LH(d,5);
for(i=0;i<5;i++){
cout<}