第五章指针文档格式.docx

上传人:b****6 文档编号:18224040 上传时间:2022-12-14 格式:DOCX 页数:17 大小:32.12KB
下载 相关 举报
第五章指针文档格式.docx_第1页
第1页 / 共17页
第五章指针文档格式.docx_第2页
第2页 / 共17页
第五章指针文档格式.docx_第3页
第3页 / 共17页
第五章指针文档格式.docx_第4页
第4页 / 共17页
第五章指针文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

第五章指针文档格式.docx

《第五章指针文档格式.docx》由会员分享,可在线阅读,更多相关《第五章指针文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

第五章指针文档格式.docx

C.int*p[n];

10.具有相同类型的指针类型变量p与数组a,不能进行的操作是_____。

A.p=a;

B.*p=a[0];

a[0];

a;

11.以下正确的定义和语句是_____。

A.inta[10],*p;

char*s;

p=a;

s=a;

B.doublea[5][3],b[5][3],*s;

b=a;

C.floata[5][3],*p[3];

p[0]=a[0];

p[2]=a[4];

D.inta[5][3],(*pb)[5],(*pp)[3];

pb=a;

pp=a;

12.若有下列定义,则对a数组元素地址的正确引用是_____。

inta[5],*p=a;

A.&

a[5]B.p+2C.a++D.&

a

13.若有下列定义和语句,则对a数组元素的非法引用是_____。

inta[2][3](*pt)[3];

pt=a;

A.pt[0][0]B.*(pt+1)[2]C.*(pt[1]+2)D.*(a[0]+2)

14.若有下列定义,则对a数组元素的正确引用是_____。

A.*(p+5)B.*p+2C.*(a+2)D.*&

a[5]

15.若有下列定义和语句,则对a数组元素的非法引用是_____。

inta[2][3],*prt[2],i;

for(i=0;

i<

2;

i++)prt[i]=a[i];

A.ptr[0][0]B.*(a+1)[2]C.*(ptr[1]+2)D.*(&

a[0][0]+2)

16.以下程序段:

char*alp[]={"

ABC"

"

DEF"

GHI"

};

inti;

puts(alp[1]);

的输出结果是_____。

A.AB.ADGC.ABCD.DEF17.下面各语句行中,能正确进行赋字符串操作的是_____。

A.chars[5]="

{′a′,′b′,′c′,′d′,′e′}B.char*s;

gets(s);

C.char*s;

s="

NOPQRS"

D.chars[5];

scanf("

%s"

&

s);

18.设有以下语句:

charstr[4][12]={"

aaa"

bbb"

ccc"

ddd"

},*strp[4];

4;

i++)strp[i]=str[i];

若0≤k<

4,下列选项中对字符串的非法引用是_____。

A.strpB.str[k]C.strp[k]D.*strp

18.若有inta[][]={{1,2},{3,4}};

则*(a+1),*(*a+1)的含义分别为_____。

A.非法,2B.&

a[1][0],2C.&

a[0][1],3D.a[0][0],4

20.若有以下的定义、说明和语句,则值为101的表达式是_____。

structwc{inta;

int*b;

}*p;

intx0[]={11,12},x1[]={31,32};

staticstructwcx[2]={100,x0,300,x1};

p=x;

A.*p->

bB.p->

aC.++p->

aD.(p++)->

21.若有以下的说明、定义和语句,则值为31的表达式是_____。

structwc

{inta;

}*p;

bB.(++p)->

aC.*(p++)->

bD.*(++p)->

b

22.typedeflongintBIGGY;

的作用是_____。

A.建立了一种新的数据类型B.定义了一个整型变量C.定义了一个长整型变量D.说明了一个新的数据类型标识符

23.设有以下语句:

structst{intn;

structst*next;

staticstructsta[3]={5,&

a[1],7,&

a[2],9,′\0′},*p;

p=&

则值为6的表达式是_____。

A.p++->

nB.p->

n++C.(*p).n++D.++p->

n24.若有定义:

char*p1,*p2,*p3,*p4,ch;

则不能正确赋值的程序语句为_____。

A.p1=&

ch;

scanf("

%c"

p1);

B.p2=(char*)malloc

(1);

p2);

C.*p3=getchar();

D.p4=&

*p4=getchar();

25.若有以下定义和语句,且0≤i<

10,则对数组元素地址的正确表示是_____。

inta[]={1,2,3,4,5,6,7,8,9,0},*p,i;

(a+1)B.a++C.&

pD.&

p[i]

26.已知职工记录描述为:

structworkers

{intno;

charname[20];

charsex;

struct

{intday;

intmonth;

intyear;

}birth;

};

structworkersw;

设变量w中的“生日”是“1993年10月25日”,下列对“生日”的正确赋值方式是_____。

A.day=25;

B.w.day=25;

month=10;

w.month=10;

year=1993;

w.year=1993;

C.w.birth.day=25;

D.birth.day=25;

w.birth.month=10;

birth.month=10;

w.birth.year=1993;

birth.year=1993;

27.当定义一个结构体变量时,系统分配给它的内存是_____。

A.各成员所需内存量的总和B.成员中占内存量最大者所需的容量

C.结构中第一个成员所需内存量D.结构中最后一个成员所需内存量

29.设有如下定义:

structsk{

inta;

floatb;

}data,*p;

若要使p指向data中的a域,正确的赋值语句是_____。

A.p=(structsk*)&

data.a;

B.p=(structsk*)data.a;

D.*p=data.a;

30.以下对枚举类型名的定义中正确的是_____。

A.enuma={sum,mon,tue};

B.enuma{sum=9,mon=-1,tue};

C.enuma={"

sum"

mon"

tue"

D.enuma{"

31.以下程序找出数组中最大值和此元素的下标,数组元素的值由键盘输入,请从对应的一组选择项中,选择正确的填入。

#include"

stdio.h"

main(){inta[10],*p,*s,i;

10;

i++)scanf("

%d"

___

(1)___);

for(p=a,s=a;

___

(2)___<

p++)if(*p>

*s)s=___(3)___;

printf("

max=%d,index=%d\n"

___(4)___,___(5)___);

}

(1)A.*(a+i)B.p+iC.a+iD.a[i]

(2)A.p-aB.s-aC.a-pD.a-s(3)A.pB.a[p]C.a[s]D.a-p(4)A.a[p-a]B.a[p]C.*sD.a[s](5)A.p-aB.pC.s-aD.a-s

32.以下程序输出结果是_____。

#include"

main(){inta[]={1,2,3,4,5,6},*p;

*(p+3)+=2;

%d,%d\n"

*p,*(p+3));

}A.0,5B.1,5C.0,6D.1,6

33.以下程序输出两个整数中大的那个数,两个整数由键盘输入。

请从对应的一组选择项中,选择正确的填入_____。

main(){inta,b,*p1,*p2;

p1=___

(1)___malloc(sizeof(int));

p2=___

(1)___malloc(sizeof(int));

%d%d"

___

(2)___);

if(*p2>

*p1)*p1=*p2;

free(p2);

max=%d\n"

___(3)___);

}

(1)A.intB.int*C.(int)D.(int*)

(2)A.*p1,*p2B.p1,p2C.&

p1,&

p2D.&

a,&

b(3)A.*p1B.*p2C.p1D.p2

34.在以下定义中:

int(*prt)[3];

标识符prt_____。

A.定义不合法B.是一个指针数组名,每个元素是一个指向整数变量的指针C.是一个指针,它指向一个具有三个元素的一维数组D.是一个指向整型变量的指针

35.与以下定义等价的是_____。

int*p[4];

A.intp[4];

B.int*p;

C.int*(p[4]);

D.int(*p)[4];

36.若有如下定义,且0≤i<

4,则错误的赋值是_____。

inta[4][10],*p,*q[4];

A.p=a;

B.q[i]=a[i];

C.p=a[i];

D.q[i]=&

a[2][0];

37.若有定义:

inta[4][10];

则以下选项中对数组元素a[i][j]的错误引用是_____。

(此处0≤i<

4,0≤j<

10)A.*(&

a[0][0]+10*i+j)B.*(a+i)[j]C.*(*(a+i)+j)D.*(a[i]+j)38.若有定义:

inta[4][3],b[3][4],(*prt)[3];

且0≤i<

3,则正确的赋值语句是_____。

A.prt=a;

B.prt=b;

C.prt=b[i];

D.prt=a[i];

39.以下程序建立一个如下所示的二维数组,并按以下格式输出。

1000101010001000101010001#include"

main(){inta[5][5]={0},*p[5],i,j;

5;

i++)p[i]=___

(1)___;

i++){*(p[i]+___

(2)___)=1;

*(p[i]+5-___(3)___)=1;

}for(i=0;

i++){for(j=0;

j<

j++)printf("

%2d"

p[i][j]);

___(4)___;

}}

(1)A.&

a[i][0]B.&

a[i][1]C.&

p[i]D.&

a[0][i]

(2)A.0B.1C.iD.(i+1)

(3)A.0B.1C.iD.(i+1)(4)A.putchar("

\n"

)B.putchar(′\n′)C.putchar(′\0′)D.printf(′\n′)

40.以下程序的输出结果是_____。

main(){inta[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;

i++)p[i]=&

a[i*3];

%d\n"

p[3][2]);

}A.输出项不合法,输出结果不定B.6C.8D.12

41.以下程序输出结果是_____。

main(){inta[20],*p[4],i,k=0;

20;

i++)a[i]=i;

a[i*(i+1)];

i++)k+=p[i][i];

k);

}A.数组元素引用不合法,输出结果不定B.26C.10D.6

42.若在C程序中有以下定义和语句,则以下各组中的表达式都是对a数组元素正确引用的是_____。

(其中0≤i<

3)main(){inta[4][3]={0},(*ptr)[3],i,j;

ptr=a;

…}A.a[i][j],a[i]+j,*(*(a+i)+j)B.*(ptr+i)[j],prt[i]+j,*(*(prt+i)+j)C.*(ptr+i)[j],*(a+i)[j],*(ptr+i)D.ptr[i][j],*(ptr[i]+j),*(a[i]+j)43.若有以下定义和语句,则对a数组元素错误引用的是_____。

inta[12]={0},*p[3],**pp,i;

3;

a[i*4];

pp=p;

A.a[12]B.p[2][3]C.a[10]D.pp[0][1]

44.若在C程序中有以下定义和语句,则以下各组中的表达式全部都是a数组元素的地址的是_____。

3)A.&

a[i][j],p[i]+j,pa[i][j]B.*(pa+i)+j,p[i],*(p+i)+jC.&

a[j],&

p[i],*(*(pa+i)+j)D.**pa,a,pmain(){inta[4][3]={0},*p[4],**pa,i,j;

i++)p[i]=a[i];

pa=p;

…}45.以下程序的输出结果为_____。

main(){inta[2]={10,20};

int*pa=&

a[0],*pb=&

a[1];

*pa=*(pb-1)+5;

*(pa+1)=*pa-5;

a[0],a[1]);

}A.2,5B.2,0C.5,0D.1,046.在下列程序段中,枚举变量c1,c2的值依次是_____,_____。

enumcolor{red,yellow,blue=4,green,white}c1,c2;

c1=yellow;

c2=white;

c1,c2);

A.1,6B.2,5C.1,4D.2,6

47.下列语句执行后的结果是_____。

y=5;

y;

x=*p++;

A.x=5,y=5B.x=5,y=6C.x=6,y=5D.x=6,y=648.变量p为指针变量,若p=&

a,下列说法不正确的有_____。

*p==&

aB.*&

a==aC.(*p)++==a++D.*(p++)==a++

49.有以下程序:

main(){inta,*p;

a=100;

a=%d*p=%d*&

a=%d&

*p=%u"

a,*p,*&

*p);

a++;

a++=%d"

a);

(*p)++;

(*p)++=%d"

*p);

*p++;

*p++=%d\n"

}该程序运行结果为_____。

A.a=100*p=100*&

a=100&

*p=65498a++=101(*p)++=102*p++=-24B.a=100*p=100*&

*p=65498a++=101(*p)++=102*p++=102C.a=100*p=100*&

a=65498&

*p=65498a++=101(*p)++=102*p++=-24D.a=100*p=100*&

*p=65498a++=101(*p)++=101*p++=-24

50.以下程序执行的结果是_____。

point(char*pt);

main(){charb[4]={′a′,′c′,′s′,′f′},*pt=b;

point(pt);

%c\n"

*pt);

}point(char*p){p+=3;

}A.sB.cC.fD.a51.以下程序的运行结果为_____。

char*c[]={"

ENTER"

NEW"

POINT"

FIRST"

char**cp[]={c+3,c+2,c+1,c};

char***cpp=cp;

main(){printf("

%s\n"

**++cpp);

}A.ENTERB.NEWC.POINTD.FIRST52.以下程序的输出结果为_____。

#include<

stdio.h>

main(){chars[]="

123"

*p;

p=s;

%c%c%c\n"

*p++,*p++,*p++);

}A.123B.321C.213D.31253.以下程序的执行结果为_____。

structs1{char*s;

structs1*sip;

main(){staticstructs1a[]={{"

1,a+1},{"

efgh"

2,a+2},{"

ijkl"

3,a}};

structs1*p=a;

inti=0;

%s%s%s"

a[0].s,p->

s,a[2].sip->

i+2,--a[i].i);

++a[i].s[3]);

}A.abcdabcdabcd20eB.abcdefghijkl20eC.abcdabcdijkl21eD.abcdabcdabcd21e

54.执行下面的语句组后,*a、*p、**p、*pp、**pp的值分别为_____。

inta[]={0,1,2,3,4};

int*p[]={a,a+1,a+2,a+3,a+4};

int**pp=p;

A.0,0,0,0,0B.0,数组a的首地址,0,数组a的首地址,0C.0,1,2,3,4D.0,数组a的首地址,0,数组p的首地址,0选择题答案

1.C2.D3.A4.A5.C6.D7.C8.A9.C10.D11.C12.B13.B14.C15.B16.D17.C18.A19.B20.C21.D22.D23.D24.C25.D26.C27.A28.C29.A30.B31.

(1)C

(2)A(3)A(4)C(5)C32.D33.

(1)D

(2)B(3)A34.C35.C36.A37.B38.A39.

(1)A

(2)C(3)D(4)B40.D41.B42.D43.A44.B45.C46.A47.A48.D49.A50.D51.C52.B53.A54.B

5.2写出程序运行结果

1.以下语句段的输出结果是_____。

main()

{char*alp[]={"

i++)puts(alp[i]);

}

2.若有以下的说明和语句,已知int类型占两个字节,则以下的输出结果为_____。

main()

{structst

{chara[10];

intb;

doublec;

printf

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1