}
答: 10,9,7,6,5,4,2,1
4.
#include
int a[][3]={1,2,3,4,5,6,7,8,9};
int *p[]={a[0],a[1],a[2]};
int **pp=p;
void main()
{
int (*s)[3]=a;
for(int i(1);i<3;i++)
for(int j(0);j<2;j++)
cout<<*(a[i]+j)<<','<<*(*(p+i)+j)<<','
<<(*(pp+i))[j]<<','<<*(*s+3*i+j)<
}
答: 4,4,4,4
5,5,5,5
7,7,7,7
8,8,8,8
5.
#include
int a[]={1,2,3,4,5,6,7,8,9};
void main()
{
int *pa=a;
cout<<*pa<<',';
cout<<*(pa++)<<',';
26
cout<<*++pa<<',';
cout<<*(pa--)<<',';
pa+=4;
cout<<*pa<<','<<*(pa+2)<
}
答: 1,1,3,3,6,8
6.
#include
void main()
{
char str[][4]={"345","789"},*m[2];
int s(0);
for(int i=0;i<2;i++)
m[i]=str[i];
for(i=0;i<2;i++)
for(int j(0);j<4;j+=2)
s+=m[i][j]-'0';
cout<
}
答: 24
7.
#include
void main()
{
double d1=3.2,d2=5.2;
double &rd1=d1,&rd2=d2;
cout<
rd1=9.3;
cout<
d2=0.8;
cout<<2*rd2<
}
答: 8.4,8.4
14.5,14.5
1.6
8.
#include
void main()
{
int *p;
int *&rp=p;
27
int a=90;
p=&a;
cout<<"a="<
28
cin>>s;
inverse(s);
cout<<"反序后的字符串是 "<
}
void inverse(char p[])
{
int n=strlen(p);
int limit=n/2;
for(int i=0;i
{
char t=p[i];
p[i]=p[n-i-1];
p[n-i-1]=t;
}
}
.
已知一个二维int型数组,编程求出它的最小的元素值。
答:编程如下:
#include
void main()
{
int n[3][2]={{3,8},{-5,9},{2,4}};
int lim=n[0][0];
for(int i=0;i<3;i++)
for(int j=0;j<2;j++)
if(n[i][j]
lim=n[i][j];
cout<<"最小元素值为 "<
}
.
已知字符型指针数组中存放若干个字符串,编程从键盘上修改其中某个字符串。
答:编程如下:
#include
#include
char *str[5]={"abc","def","ghi","jkl","pqo"};
char *modify(int,char []);
void main()
{
int n;
char s[10];
cout<<"修改第几个字符串:";
cin>>n;
cout<<"该字符串修改为:";
cin>>s;
29
cout<<"修改后的字符串是 "<
cout<<"修改后字符指针数组中的字符串如下:\n";
for(int i=0;i<5;i++)
cout<
}
char *modify(int n,char s[])
{
return *(str+n-1)=s;
}
.
有n个小孩排成一圈。从第1个小孩开始作1至3报数,凡报数为3的小孩从圈中出来,求最后出圈的小孩的顺序号是多少?
答:编程如下:
#include
void main()
{
int n,num[100];
cout<<"输入排号人数:";
cin>>n;
int *p=num;
for(int i=0;i
*(p+i)=i+1;
i=0;
int k=0,a=0;
while(a
{
if(*(p+i)!=0)
k++;
if(k==3)
{
*(p+i)=0;
k=0;
a++;
}
i++;
if(i==n)
i=0;
}
while(*p==0)
p++;
cout<<"最后留下的是第 "<<*p<<" 号"<
}