c语言指针选择题47Word下载.docx

上传人:b****3 文档编号:16423129 上传时间:2022-11-23 格式:DOCX 页数:15 大小:19.62KB
下载 相关 举报
c语言指针选择题47Word下载.docx_第1页
第1页 / 共15页
c语言指针选择题47Word下载.docx_第2页
第2页 / 共15页
c语言指针选择题47Word下载.docx_第3页
第3页 / 共15页
c语言指针选择题47Word下载.docx_第4页
第4页 / 共15页
c语言指针选择题47Word下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

c语言指针选择题47Word下载.docx

《c语言指针选择题47Word下载.docx》由会员分享,可在线阅读,更多相关《c语言指针选择题47Word下载.docx(15页珍藏版)》请在冰豆网上搜索。

c语言指针选择题47Word下载.docx

a)23 

b)24 

c)25 

d)26

6.若有说明:

long*p,a;

则不能通过scanf语句正确给输入项读入数据的程序段是

A)*p=&

a;

%ld"

,p);

B)p=(long*)malloc(8);

C)scanf("

,p=&

a);

D)scanf("

,&

7.有以下程序

#include<

stdio.h>

intm=1,n=2,*p=&

m,*q=&

n,*r;

r=p;

p=q;

q=r;

printf("

%d,%d,%d,%d\n"

m,n,*p,*q);

程序运行后的输出结果是

A)1,2,1,2 

B)1,2,2,1

C)2,1,2,1 

D)2,1,1,2

8. 

有以下程序

{int 

a=1,b=3,c=5;

int 

*p1=&

a,*p2=&

b,*p=&

c;

*p=*p1*(*p2);

%d\n"

c);

执行后的输出结果是

A)1B)2C)3D)4

9. 

inta,k=4,m=4,*p1=&

k,*p2=&

m;

a=p1==&

a);

程序运行后的输出结果是()

A)4B)1 

C)0 

D)运行时出错,无定值

10. 

在16位编译系统上,若有定义int 

a[]={10,20,30},*p=&

,当执行p++;

后,下列说法错误的是()

A)p向高地址移了一个字节B)p向高地址移了一个存储单元

C)p向高地址移了两个字节D)p与a+1等价

11.有以下程序段 

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&

a[3],b;

b=p[5];

b中的值是()

A)5 

B)6 

C)8 

D)9

12.若有以下定义,则对a数组元素的正确引用是_________.

inta[5],*p=a;

a)*&

a[5] 

b)a+2 

c)*(p+5) 

d)*(a+2)

13.若有以下定义,则p+5表示_______.

a[10],*p=a;

a)元素a[5]的地址 

b)元素a[5]的值

c)元素a[6]的地址 

d)元素a[6]的值

14.设已有定义:

inta[10]={15,12,7,31,47,20,16,28,13,19},*p;

下列语句中正确的是()

A)for(p=a;

a<

(p+10);

a++);

B)for(p=a;

p<

(a+10);

p++);

C)for(p=a,a=a+10;

D)for(p=a;

p+10;

++a);

15.有以下程序段 

#include<

intmain()

intx[]={10,20,30};

int*px=x;

%d,"

++*px);

*px);

px=x;

(*px)++);

*px++);

*++px);

return0;

程序运行后的输出结果是() 

A)11,11,11,12,12,20,20,20B)20,10,11,10,11,10,11,10

C)11,11,11,12,12,13,20,20 

D)20,10,11,20,11,12,20,20

16.设有如下定义:

intarr[]={6,7,8,9,10};

int*ptr;

ptr=arr;

*(ptr+2)+=2;

printf("

%d,%d\n"

*ptr,*(ptr+2));

则程序段的输出结果为 

A)8,10 

B)6,8 

C)7,9 

D)6,10

17.若有定义:

inta[]={2,4,6,8,10,12},*p=a;

则*(p+1)的值是______.*(a+5)的值是_________. 

18.若有以下说明和语句,int 

c[4][5],(*p)[5];

p=c;

能正确引用c数组元素的是______.

A) 

p+1 

B) 

*(p+3) 

 C) 

*(p+1)+3 

D) 

*(p[0]+2))

19.若有定义:

inta[2][3],则对a数组的第i行j列元素地址的正确引用为______.

a)*(a[i]+j) 

b)(a+i) 

c)*(a+j) 

d)a[i]+j

20.若有以下定义:

inta[2][3]={2,4,6,8,10,12};

则a[1][0]的值是_____.*(*(a+1)+0)的值是________.

21.有以下定义

chara[10],*b=a;

不能给数组a输入字符串的语句是()

A)gets(a) 

B)gets(a[0]) 

C)gets(&

a[0]);

D)gets(b);

22.下面程序段的运行结果是_________.

char*s="

abcde"

;

s+=2;

s);

a)cde 

b)字符'

c'

c)字符'

的地址 

d)无确定的输出结果

23.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()

A)chars[10]="

abcdefg"

B)chart[]="

*s=t;

C)chars[10];

s="

D)chars[10];

strcpy(s,"

);

24.设已有定义:

char*st="

howareyou"

下列程序段中正确的是()

A)char 

a[11],*p;

strcpy(p=a+1,&

st[4]);

B)char 

a[11];

strcpy(++a,st);

C)char 

strcpy(a,st);

D)char 

a[],*p;

strcpy(p=&

a[1],st+2);

25.有以下程序 

chara[]="

programming"

b[]="

language"

char*p1,*p2;

inti;

p1=a;

p2=b;

for(i=0;

i<

7;

i++)

if(*(p1+i)==*(p2+i))

%c"

*(p1+i));

输出结果是() 

A)gm 

B)rg 

C)or 

D)ga

26.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是________.

a)c=*p1+*p2;

b)p2=c 

c)p1=p2 

d)c=*p1*(*p2);

27.以下正确的程序段是_________.

a)charstr[20];

b)char*p;

%s"

str);

p);

c)charstr[20];

d)charstr[20],*p=str;

str[2]);

p[2]);

28.若有说明语句 

Itismine"

char*p="

则以下不正确的叙述是________.

a)a+1表示的是字符t的地址

b)p指向另外的字符串时,字符串的长度不受限制

c)p变量中存放的地址值可以改变

d)a中只能存放10个字符

29.下面程序的运行结果是_______.

#include 

<

string.h>

char*s1="

AbDeG"

char*s2="

AbdEg"

s1+=2;

s2+=2;

strcmp(s1,s2));

a)正数 

b)负数 

c)零 

d)不确定的值

30.有以下程序 

voidf(int*x,int*y)

{

intt;

t=*x;

*x=*y;

*y=t;

}

main()

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

p=a;

q=&

a[7];

while(*p!

=*q){f(p,q);

p++;

q--;

8;

i++)printf("

a[i]);

程序运行后的输出结果是______。

A)8,2,3,4,5,6,7,1, 

B)5,6,7,8,1,2,3,4,

C)1,2,3,4,5,6,7,8, 

D)8,7,6,5,4,3,2,1,

31.已定义以下函数 

fun(int 

*p)

return 

*p;

该函数的返回值是

不确定的值 

形参p中存放的值

C) 

形参p所指存储单元中的值 

形参p的地址值

32. 

有以下程序 

intf(intb[][4])

{inti,j,s=0;

for(j=0;

j<

4;

j++)

i=j;

if(i>

2) 

i=3-j;

s+=b[i][j];

returns;

main()

{inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};

f(a));

12 

  B) 

11 

18 

 D) 

16

33.若有以下函数首部

fun(double 

x[10],int 

*n)

则下面针对此函数的函数声明语句中正确的是

A)int 

fun(doublex,int*n);

B)int 

int);

C)int 

fun(double*x,intn);

D)int 

fun(double*, 

int*);

34.有以下程序 

voidsum(int*a)

{a[0]=a[1];

main()

{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;

for(i=2;

i>

=0;

i--)sum(&

aa[i]);

aa[0]);

执行后的输出结果是()

A)4 

B)3 

C)2 

D)1

35.下段代码的运行结果是:

chara;

char*str=&

strcpy(str,"

hello"

printf(str);

A)hello 

B)null 

C)h 

D)发生异常

36.下段程序的运行结果是 

voidmain()

char*p,*q;

charstr[]="

Hello,World\n"

q=p=str;

print(q);

print(p);

voidprint(char*s)

printf(“%s”,s);

A)H 

B)Hello,World 

ello,World

C)Hello,World 

Hello,World

D)ello,World 

ell,World

37.有以下程序 

voidfun(char*c,intd)

*c=*c+1;

d=d+1;

%c,%c,"

*c,d);

void 

chara='

A'

b='

a'

fun(&

b,a);

%c,%c\n"

a,b);

A)B,a,B,a  B)a,B,a,B  C)A,b,A,b  D)b,B,A,b

38、下面选项属于函数指针的是:

A、(int*)p(int,int) 

B、int*p(int,int) 

C、两者都是 

D、两者都不是

39、若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是_______.

A)(*p)max(a,b);

B)*pmax(a,b);

C)(*p)(a,b);

D)*p(a,b);

40、下面几个选项中的代码能通过编译的是 

A)int*fun()

ints[3]={1,3,4};

int*result;

result=fun();

for(inti=0;

3;

result[i]);

return 

0;

B)int&

fun()

C)int*fun()

return&

s;

D)int&

41、下列选项中声明了一个指针数组的是:

A)int*p[2];

B)int(*p)[2];

C)typedefint*intPtr;

intPtrp[2];

D)A和B

E)A和C

F)B和C

42、下面代码能通过编译的是:

A)intmain()

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

int*b[3]={&

a[1],&

a[2],&

a[3]};

int**p=b;

B)intmain()

int*b[3]={a[1],a[2],a[3]};

C)intmain()

int*p=b;

D)intmain()

int*p=&

b;

43、对于语句int*pa[5];

下列描述中正确的是_______.

A)pa是一个指向数组的指针,所指向的数组是5个int型元素

B)pa是一个指向某数组中第5个元素的指针,该元素是int型变量

C)pa[5]表示某个元素的第5个元素的值 

D)pa是一个具有5个元素的指针数组,每个元素是一个int型指针

44、若有以下定义,且0≤i<4,则不正确的赋值语句是_______.

intb[4][6],*p,*q[4];

A)q[i]=b[i];

B)p=b;

C)p=b[i] 

D)q[i]=&

b[0][0];

45、若要对a进行++运算,则a应具有下面说明_______.

A)inta[3][2];

B)char*a[]={“12”,”ab”};

C)char(*a)[3];

D)intb[10],*a=b;

46、若有以下说明语句:

char*language[]={“FORTRAN”,”BASIC”,’’PASCAL”,’’JAVA”,”C”};

char**q;

q=language+2;

则语句printf(“%o\n”,*q)输出的是_______.

A)language[2]元素的地址;

B)字符串PASCAL

C)language[2]元素的值,它是字符串PASCAL的首地址

D)格式说明不正确,无法得到确定的输出

47、若有以下程序:

char*a[3]={"

I"

"

love"

China"

};

char**ptr=a;

%c 

*(*(a+1)+1),*(ptr+1));

这段程序的输出是() 

l

o

C)o 

love

love

题号

答案

1.

B

2.

D

3.

4.

5.

6.

A

7.

8.

C

9.

10.

11.

12.

13.

14.

15.

16.

17.

4,12

18.

19.

20.

8,8

21.

22.

23.

24.

25.

26.

27.

28.

29.

30.

31.

32.

33.

34.

35.

36.

37.

38.

39.

40.

41.

E

42.

43.

44.

B

45.

46.

47.

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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