c语言08,标准C语言08_01.doc

本文详细解析了一个C语言程序,涉及二维数组的初始化、数组指针的使用、内存地址运算以及常见编程问题。通过实例展示了如何通过指针操作改变数组元素,并深入讲解了指针作为行指针和数组首地址的概念。还涵盖了指针数组、动态数组引用和正确引用数组元素的方法。
摘要由CSDN通过智能技术生成

标准C语言08_01

选择题

以下程序: B

#include

void main( ){

int aa[3][3]={{2},{4},{6}}, i,*p=&aa[0][0];

//if是数组指针int (*p)

//*p存的是一位数组,就是二维数组的第一行

for(i=0;i<2;i++){

if(i ==0) aa[i][i+1]=*p+1; //*p=2; aa[0][1]=3;

else ++p; //列地址加一为aa[0][1]

printf("%d",* p);

}

printf("\n");

}

其输出结果是

A)23 B)26 C)33 D)36

若有定义语句:int(*p)[M]; ,其中的标识符p是 A

A)M个指向整型变量的指针

B)指向M个整型变量的函数指针

C)一个行指针,它指向具有M个整型元素的一维数组

D)具有M个指针元素的一维指针数组,每个元素都只能指向整型量

若有定义:int a[3][4];不能表示数组元素a[1][1]的是__D_____。

A)*(a[1]+1) B)*(&a[1][1])

C)(*(a+1)[1]) D)*(a+5)//行地址超了

若有以下定义和语句:

int s[4][5],(*ps)[5];

ps=s;

则对s数组元素的正确引用形式是 C 。

A)ps+1 B) *(ps+3) C) ps[0][2] D)* (ps+1)+3

若有定义:int a[2][3];则对a数组的第i行第j列元素值得正确引用为( A )

A、*(*(a+i)+j) B、(a+i)[j] C、*(a+i+j) D、*(a+i)+j

若有以下定义和语句,则对a数组元素地址的正确引用为( D )

int a[2][3],(*p)[3]; p=a;

A、*(p+2) B、p[2] C、p[1]+1 D、(p+1)+2

若有定义和语句:

int c[4][5], (*cp)[5]; cp=c;

则对c数组元素的引用正确的是( D )

A、 cp+1 B、*(cp+3) C、*(cp+1)+3 D、*(*cp+2)

以下与int *q[5];等价的定义语句是( C )

A、int q[5]; B、int *q; C、int *(q[5]) D、int (*q)[5]

若有定义int a[]={2,4,6,8,10,12,14,16,18,20,22,24},*q[4],k;则下面程序段出是 指针数组*q[4]//存的是地址

数组指针(*q)[4]//存的是二维数组中首行地址;

for(k=0;k<4;k++) q[k]=&a[k*3];//q[k]存的是a[k*3]的地址

q[4]={&a[0], &a[3], &a[6], &a[9]}

printf(“%d\n”,q[3][0]);

*q[3]====== q[3][0]

A、8 B、16 C、20 D、输出项不合法,结果不确定

下面程序的输出结果是( D )。

int a[2][3]={1,2,3,4,5,6},*p[2],i;//指针数组保存地址

for (i=0;i<2;++i) *(p+i)=a[i];//首行地址

for (i=0;i<3;i++) printf("%d",*(*(p+1)+i));

A)编译出错,无法运行 B)3 4 5

C)2 3 4 D)4 5 6

若已定义:

int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*prt)[3]=a,*p=a[0];

(*prt)[3]//数组指针,保存二维的首行

*p=a[0]; //指针数组,保存一维地址则能够正确表示数组元素a[1][2]的表达式是( B )A、 *((*prt+1)[2]) B、*(*(p+5)) C、(*prt+1)+2 D、*(*(a+1)+2)

如下程序的输出结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值