.若有说明语句“int a[10],*p=a;”,对数组元素的正确引用是: A、a[p] B、p[a] C、p+2 D、*(p+2)
1个回答
展开全部
答案为D。参考下面程序23行
p[2]=*(p+2)
#include <iostream>
using namespace std;
void test(double a[3][4])
{
int i,j;
double k;
double* b =a[0];
for(i=0;i<3;i++)
{
k=a[i][0];
//通过for循环找到最大值
for(j=1;j<4;j++)
{
if(k<a[i][j])
{
k=a[i][j];//k记录最大值
}
}
//将最大值与第一列的元素除
for(j=1;j<4;j++)
*(b+i+j)=a[i][j]/k;//k记录最大值 //这个语句就是你要的答案
}
//输出数组,用以验证程序结果
for(i=0;i<3;++i)
{
for(j=0;j<4;++j)
cout<<*(b+i+j)<<" ";
cout<<endl;
}
}
void main()
{
int i,j;
double a[3][4]={1,2,3,4,
5,6,7,8,9,
10,11,12};
//嫌每次输入麻烦,故选择上面的语句
/* for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
cin>>a[i][j];
} */
for(i=0;i<3;++i)
{
for(j=0;j<4;++j)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<endl;
test(a);
}
p[2]=*(p+2)
#include <iostream>
using namespace std;
void test(double a[3][4])
{
int i,j;
double k;
double* b =a[0];
for(i=0;i<3;i++)
{
k=a[i][0];
//通过for循环找到最大值
for(j=1;j<4;j++)
{
if(k<a[i][j])
{
k=a[i][j];//k记录最大值
}
}
//将最大值与第一列的元素除
for(j=1;j<4;j++)
*(b+i+j)=a[i][j]/k;//k记录最大值 //这个语句就是你要的答案
}
//输出数组,用以验证程序结果
for(i=0;i<3;++i)
{
for(j=0;j<4;++j)
cout<<*(b+i+j)<<" ";
cout<<endl;
}
}
void main()
{
int i,j;
double a[3][4]={1,2,3,4,
5,6,7,8,9,
10,11,12};
//嫌每次输入麻烦,故选择上面的语句
/* for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
cin>>a[i][j];
} */
for(i=0;i<3;++i)
{
for(j=0;j<4;++j)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<endl;
test(a);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询