第10章 指针Word文档格式.docx

上传人:b****5 文档编号:19831465 上传时间:2023-01-10 格式:DOCX 页数:34 大小:28.93KB
下载 相关 举报
第10章 指针Word文档格式.docx_第1页
第1页 / 共34页
第10章 指针Word文档格式.docx_第2页
第2页 / 共34页
第10章 指针Word文档格式.docx_第3页
第3页 / 共34页
第10章 指针Word文档格式.docx_第4页
第4页 / 共34页
第10章 指针Word文档格式.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

第10章 指针Word文档格式.docx

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

第10章 指针Word文档格式.docx

B.b='

C.d="

D.a='

和c='

语句都不正确

变量与指针;

2;

D)

5.若有如下定义chara[10],*p=a,则对a数组元素的正确引用是()。

A.*&

a[5]B.a+2C.*(p+5)D.*(a+2)

数组与指针;

6.若有说明:

inti,j=2,*p=&

i;

,则能完成i=j赋值功能的语句是()

A.i=*p;

B.*p=*&

j;

C.i=&

D.i=**p;

变量与指针;

7.以下定义语句中,错误的是()

A.inta[]={1,2};

B.char*a[3];

C.chars[10]="

test"

D.intn=5,a[n];

8.以下不能正确进行字符串赋初值的语句是()

A.charstr[5]="

good!

"

B.charstr[]="

C.char*str="

D.charstr[5]={'

g'

'

o'

d'

A)改为charstr[6]="

9.若有以下定义和语句:

ints[4][5],(*ps)[5];

ps=s;

则对s数组元素的正确引用形式是()

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

3;

10.若有说明:

intn=2,*p=&

n,*q=p;

,则以下非法的赋值语句是()。

A)p=q;

B)*p=*q;

C)n=*q;

D)p=n;

指针的定义;

11.设有说明int(*p)[M];

其中的标识符p是()

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

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

C.一个指向具有M个整型元素的一维数组的指针

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

指向数组的指针;

12.指针s所指字符串的长度为()。

char*s=″\t\″Name\\Address\n″;

A.19B.15C.18D.说明不合法

字符串;

13.与定义int*p[4]等价的是()。

A.intp[4]

B.int*(p[4])

C.int*p

D.int(*p)[4]

(知识点:

14.设有定义”inta=3,b,*p=&

a;

”,则下列语句中使b不为3的语句是()。

A.b=*&

a;

B.b=*a;

C.b=a;

D.b=*p;

15.已知:

int*p();

p是()。

A.指向int型的指针变量

B.int型的指针数组

C.一个指向函数的指针变量,函数的返回值是int型

D.一个函数,该函数的返回值是指向int型的指针变量

指针与函数;

16.设有说明int(*p)[M];

17.以下选项中,不能正确赋值的是()

A.chars1[10];

s1="

Ctest"

B.chars2[]={'

C'

'

t'

e'

s'

C.chars3[20]="

D.char*s4="

Ctest\n"

2;

A)

18.若有以下定义:

chars[20]="

programming"

*ps=s;

则不能代表字符o的表达式是()

A.ps+2

B.s[2]

C.ps[2]

D.ps+=2,*ps

A)

19.下面程序的输出是()

intmain()

char*s="

121"

intk=0,a=0,b=0;

do

{

k++;

if(k%2==0)

a=a+s[k]-'

0'

continue;

}

b=b+s[k]-'

}while(s[k+1]);

k=%da=%db=%d\n"

k,a,b);

}

A.k=3a=2b=3

B.k=3a=3b=2

C.k=2a=3b=2

D.k=2a=2b=3

指针定义;

20.若有以下的定义:

inta[]={1,2,3,4,5,6,7,88,9,10),*p=a;

则值为3的表式是()

A.p+=2,*(p++)

B.p+=2,*++p

C.p+=3,*kp++

D.p+=2,++*p

21.若有以下定义和语句:

intw[2][3],(*pw)[3];

pw=w;

则对w数组元素非法引用是()

A.*(w[0]+2)

B.*(pw+1)[2]

C.pw[0][0]

D.*(pw[1]+2)

22.设有如下定义:

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

int*ptr;

则下列程序段的输出结果为()

ptr=arr;

*(ptr+2)+=2;

printf("

%d,%d\n"

*ptr,*(ptr+2));

A.8,10B.6,8C.7,9D.6,10

23.执行以下程序段后,m的值为()

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

intm,*p;

p=&

a[0][0];

m=(*p)*(*(p+2))*(*(p+4));

A.15B.14C.13D.12

24.有以下程序段

union

intk;

chari[2];

}*s,a;

s=&

s->

i[0]=0x39;

i[1]=0x38;

%x\n"

s->

k);

输出结果是()

A.3839B.3938C.380039D.390038

25.设有如下定义:

int(*ptr)();

则以下叙述中正确的是()

A.ptr是指向一维组数的指针变量

B.ptr是指向int型数据的指针变量

C.ptr是指向函数的指针,该函数返回一个int型数据

D.ptr是一个函数名,该函数的返回值是指向int型数据的指针

函数指针;

1;

26.有以下程序

chara[]="

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.gmB.rgC.orD.ga

27.若有说明:

long*p,a;

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

A.*p=&

scanf("

%ld"

,p);

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

C.scanf("

,p=&

a);

D.scanf("

,&

28.设已有定义:

char*st="

howareyou"

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

A.chara[11],*p;

strcpy(p=a+1,&

st[4]);

B.chara[11];

strcpy(++a,st);

C.chara[11];

strcpy(a,st);

D.chara[],*p;

strcpy(p=&

a[1],st+2);

29.已知:

chars[4]=”cba”;

char*p;

执行下面语句

p=s;

printf(“%c\n”,*p+1);

其输出为()。

A.字符’c’B.字符’b’C.字符’a’D.字符’d’

30.已知:

inta[3][4],(*p)[4]=a;

p+=6;

那么与*p的值相同的是()

A.*(a+6)B.*(&

a[0]+6)C.*(a[1]+2)D.*(&

a[0][0]+6)

31.如下函数

fun(int*p1,*p2)

{

int*p;

*p=*p1;

*p1=*p2;

*p2=*p;

该程序功能为:

()。

A.正确,但无法改变*p1和*p2的值

B.能够成功交换*p1和*p2的值

C.能够成功交换*p1和*p2的地址

D.因为使用了空指针,可能造成系统故障

指针作为函数参数;

二、多项选择题

1.若有以下说明和语句,且0≤i<

10,

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

int*p,i;

p=a;

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

A.*(a+i)B.a[p-a]C.p+iD.*(&

a[i])

数组与指针;

ABD)

2.若有定义:

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

则能正确赋值的程序语句为()

A.p1=&

ch;

scanf(″%c″,p1);

B.p2=(char*)malloc

(1);

scanf(″%c″,p2);

C.p3=getchar();

D.p4=&

*p4=getchar();

指针的定义;

3.strcpy库函数用于复制一个字符串。

若有以下定义:

char*str1=”copy”,str2[10],*str3=”hijklmn”,*str4,*str5=”abcd”;

则对strcpy库函数的正确调用是()

(A)strcpy(str2,str1)(B)strcpy(str3,str1)(C)strcpy(str4,str1)

(D)strcpy(str5,str1)(E)strcpy(str1,str5)

字符串处理函数;

ABDE)

4.设有以下语句,则()是对a数组元素的正确引用。

Chara[]=”qwertyu”,*p=a;

A.a[p-a]B.*(&

a[5])C.*(*(a+5))D.(p+1)[3]

5.若有定义:

inta[3][4],*p=&

则对a数组元素的正确引用的有()

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

AB)

6.对于C语言字符数组,以下说法正确的是()。

A.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

B.可以用关系运算符对字符数组中的字符串进行比较

C.字符数组可以存放字符串

D.字符数组中的字符串不可以整体输入、输出

字符数组;

ACD)

7.不合法的数组定义是()。

A.ints[]="

japanes"

B.ints[2]={0,2,4};

C.chars="

string"

D.chars[]={"

0,1,2,3,4,5"

ABC)

8.若有语句:

charsl[]="

string1"

s2[8],*s3,*s4="

string2"

则()

是对库函数strcpy的正确调用。

A.strcpy(sl,"

);

B.strcpy(s4,"

C.strcpy(s3,"

D.strcpy("

s2);

9.对两个数组s1和s2进行如下初始化

chars1[]="

chinese"

chars2[]={'

c'

h'

i'

n'

则以下叙述错误的是()。

A.s1与s2数组完全相同

B.s1与s2长度相同

C.s1和s2中都存放字符串

D.s1数组比s2数组占用内存大

ABC)

10.下列语句段,错误的是()。

A.staticstr[]={"

ilikethis"

B.char*p="

C.char*p;

strcpy(p,"

D.charstr[13];

str[]="

字符数组与字符指针;

11.下列语句正确的是()。

A.int*str[10];

B.char**p;

C.char*s(),*p;

D.int*p,a;

x=10;

*p=&

12.若已定义a为int型变量,则()是对指针变量p的错误说明和初始化。

A.int*p=aB.int*p=*a;

C.intp=&

aD.int*p=&

13.设有如下定义:

char*s[2]={"

love"

"

niha"

则以下说法错误的是()。

A.s数组元素的值分别是"

和"

B.s数组的两个元素中各自存放了字符'

l'

和'

的地址

C.s数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

D.s是指针变量,它指向含有两个数组元素的字符型一维数组

14.若有说明语句:

inti,x[3][4];

则以下关于x,*x、x[0]、&

x[0][0]的错误描述是()。

A.x、*x、x[0]、&

x[0][0]均表示元素x[0][0]的地址

B.只有x、x[0]和&

x[0][0]表示的是元素x[0][0]的地址

C.只有x[0]和&

D.只有&

BCD)

15.以下说法中正确的是()。

A.指针可以进行加、减等算术运算

B.指针中存放的是地址值

C.指针是一个变量

D.指针变量不占用存储空间

指针运算;

1;

16.设有charstr1[20],str2[20],b,则下列语句不正确的是()。

A.str1={"

mylove"

str2=str1;

B.b="

mn"

C.str1={"

str2={"

dog"

strcpy(str1,str2);

D.b='

a'

答案:

17.若有说明语句:

则能将x[1][1]的值赋给变量i的语句是()。

A.i=*(*(x+1)+1)B.i=x[1][1]

C.i=*(*(x+1))D.i=*(x[1]+1)

18.变量a的值为12,a的地址为2000,若欲使p为指向a的指针变量,则下列赋值不正确的是()。

A.&

a=3B.*p=12

C.*p=2000D.p=&

a

难度系数:

19.对函数调用strcat(strcpy(s1,s2),s3)功能描述错误的是()。

A.将串s1复制到串s2中后再连接到串s3之后

B.将串s1连接到串s2中后再复制到串s3之后

C.将串s2复制到串s1中后再将串s3连接到s1之后

D.将串sr2复制到串s1中后再将串s1复制到s3中

字符串处理函数;

20.下列说法正确的是()。

A.字符数组由若干元素组成,每个元素中放一个字符

B.对数组赋初值要用static存储类别

C.字符指针变量中存放的是地址

D.对字符指针变量赋初值要用static存储类别

21.若有以下语句,且0<

=k<

6,则()是对数组元素地址的不正确表示。

staticintx[]={1,3,5,7,9,11}.*ptr,k;

ptr=x;

A.x++B.&

ptr

C.&

ptr[k]D.&

(x+1)

22.若有以下定义:

chars[20]="

tropetry"

*p=s;

则能代表字符o的表达式是()。

A.p+2B.s[2]

C.p[2]D.p+=2,*p

BCD)

 

23.若有以下定义和语句:

charstr[]="

str2[8],*str3,*str4="

库函数strcpy用以复制字符串。

则以下对库函数strcpy的正确调用是()。

A.strcpy(str1,"

girl1"

B.strcpy(str2,"

girl2"

C.strcpy(str3,"

girl3"

D.strcpy(str4,"

girl4"

24.若有语句int(*ptr)();

则关于ptr错误的是()。

A.ptr是指向一维数组的指针变量。

B.ptr是指向int型数据的指针变量。

C.ptr是指向函数的指针,该函数返回一个int型数据。

D.ptr是一个函数名,该函数的返回值是指向int型数据的指针。

25.若有说明语句:

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

那么值不为3的表达式是()。

A.p+=2,*(p++)B.p+=2,*++p

C.p+=3,*p++D.p+=2,++*p

26.若有说明:

intx,*pb;

那么程序中对pb错误赋值的表达式应该是()。

A.*pb=&

xB.pb=xC.pb=&

xD.*pb=*x

intj,k=7,*p=&

则与j=k;

不等价的语句是()。

A.j=*p;

k;

C.j=&

D.j=**p;

28.main(argc,argv)中形式参数argv的错误说明形式为()。

A.char*argv[]

B.charargv[][]

C.charargv[]

D.char*argv

带参数的主函数;

29.已知函数说明语句“void*f();

”,则它的含义错误是()。

A.函数f的返回值是一个通用型指针

B.函数f的返回值可以是任意的数据类型

C.函数f无返回值

D.指针f指向一个函数,该函数无返回值

返回指针的函数;

30.若用数组名作为函数调用的实参,传递给形参的错误描述是()。

A.数组的首地址

B

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

当前位置:首页 > 高等教育 > 医学

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

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