1.阅读程序,写出结果。
#include<iostream.h>
void main( )
{ int *p; int * &rp=p;
int n=100;
p=&n;
cout<< “n=”<<n<<endl;
cout<< “*p=”<<*p<<endl;
cout<< “*rp=”<<*rp<<endl;
if( rp=p)
cout<<”the addresses of rp and p are equal!”<<endl;
else
cout<<”the addresses of rp and p are not equal!”<<endl;
}
2.阅读程序,写出结果。
#include<iostream.h>
char str[20]=”Hello World!”;
char & ref(int a)
{
return str[a];
}
void main( )
{ ref(5)= ‘_’;
cout<<str<<endl;
}
3.阅读程序,写出结果。
#include<iostream.h>
int f(int a)
{
return ++a; }
int g(int &a)
{ return ++a;
}
void main( )
{ int m=0,n=0;
m+=f(g(m));
n+=f(f(n));
cout<<”m=”<<m<<endl;
cout<<”n=”<<n<<endl;
}
4.以下函数用来在x数组中插入a值,x数组中的数据已由小到大顺序存放,指针n所指内存单元中存放数组中数据的个数,插入后数组中的数据仍有序。请填空。
void fun(char *x , char a, int * n)
{ int k , p=0;
x[*n]=a;
while(a>x[p])
_____________;
for(k=*n ; k>p ; k--)
x[k]=____________;
x[p]=a;
++*n;
}
5.若给f函数的形参m传递字符串“□□□4321cde”( □表示空格),则函数的返回值是_____________。
long f( char m[ ])
{ long a;
int s;
while( *m==‘ ’||*m==‘\t’||*m==‘\n’)
m++;
s=(*m==‘-’?-1:1);
if(*m==‘+’||*m==‘-1’)
m++;
for(a=0;*m>= ‘0’&&*m<= ‘9’; m++)
a=10*a+(*m-‘0’);
return s*a;
}
6.函数m(x,n)计算并返回具有n个元素的数组x中的最小元素下标。请填空。
int m(int * x, int n)
{ int i=0,j;
for(j=0;j<n;j++)
if(x[j]<x[i])
________________;
return i;
}
7.阅读以下程序,写出程序的功能。
void f(int x, int y[ ])
{ int a=0 , b;
do
{ b=x%2;
y[a++]=b;
x/=2;
}while(x);
}
8.写出下面程序的运行结果
#include<iostream.h>
int x;
void funA( int & , int );
void funB(int , int &);
int main( )
{ int first;
int second=5;
x=6;
funA(first, second);
cout<<first<< “ ”<<second<< “ ”<<x<<endl;
funB(first ,second)
cout<< first<< “ ”<<second<< “ ”<<x<<endl;
return 0;
}
void fun A( int &a , int b)
{ int first;
first=b+12;
a=2*b;
b=first+4;
}
void funB(int u , int &v)
{ int second;
second=x;
v=second+4;
x=u+v;
}
9.阅读程序,找出程序中的错误,并说明错误原因。
int & Fun( int index , int a[ ])
{ int r=a[index];
return r;
}
10.阅读程序,找出错误并说明原因。
#include<iostream.h>
int Fun( int x, int y=10)
{
return x+y;
}
int Fun( int a)
{
return a*a;
}
void main( )
{
cout<<Fun(5)<<endl;
}